mikroc book

238
Getting started C programming for PIC microcontroller with mikro C compiler à¢Õ¹â»Ãá¡ÃÁÀÒÉÒ C ÊíÒËÃѺäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ´Ç mikroC ¤ÍÁä¾àÅÍà áÅСÒ÷´Åͧàº×éͧµ¹ ¡ÄÉ´Ò ã¨àÂç¹ ªÑÂÇѲ¹ ÅÔéÁ¾Ã¨ÔµÃÇÔäÅ (C) Innovative Experiment Co.,Ltd. INNOVATIVE EXPERIMENT

Upload: innovative-experiment-coltd

Post on 22-Mar-2016

540 views

Category:

Documents


53 download

DESCRIPTION

คู่มือการเขียนโปรแกรมภาษา C ด้วยซอฟต์แวร์ MikroC เวอร์ชัน 8.2

TRANSCRIPT

Page 1: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����1

Getting started C programming for PIC

microcontroller with mikro C compiler

����������� � ���� ���������������������� ���

�� ��!"#$%������+�����

�& �����'��()�'*��

����������

������� ��������������

(C) Innovative Experiment Co.,Ltd.

�������������������

Page 2: MikroC book

2��� ����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

Getting started C programming for PIC microcontroller with mikro C compiler

��������������� �!"�#��$���%�%&��'���&���() ��*��+,-./ ���0���'��&1$2�&1�*�

������������� ����

���������� ���������������������

�%�%��� *#��1!2&�3����

������������������������� �!"#$$�%�&��'%�&��$������������(��)'� ���$�"$#���)$�$*�)%���*���+,-�.�/����-

0���1�"�����������)�2������%�����3���%����%�&�����'4�����������*��� �*����%�*�����3�5*/�$�� ���������*����%�*����� �!$*�����*��

6��$7�����%�&��$����.*2��������� �!��������������*��� ���)$�$*�)%���*������!��"*� ������� �!'��88����

�������������� ����������������������� ���������������������� ��� ��!�"��������#�����$%�&'��� % ������ ���()������������*���������"+��� ��� ����",�"'����"��!#����������������� ,�� ! ���-�*���%��������������������.�!��$�,/�!�,�0�����1!��2 �"��,����'!�-� �!�,����)����� ����$�,.�$������ ���#����,"��#���#�������������������$ ����",�"'����"���� ������!��$�,/�3!��"�����.��������� ��*�� ����",�"'#���������

������������� �������������������������

���� ���� �����������������+�������*����������������!�� �� ������$��(4��

�9��������������� �!�9�3�:�)�$����'�&�������4�&���&��������"����6�66;<6�=��#(#���%��>�;0�1��#(#���%� (�2"�2���(�"�2�����#2%�?��>0@>)%����%���5678986855:69)%���� 5678986855;

Page 3: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����3

�� �� ��������)'� ����5&*$�$"#���)$�$*�)%���*���.�/����!��"�A2� :��/���"����3�5*�-���&23��&2

%�&��$����9�$�8*:�2�&2$5*�=*B�� ���%�&����:��$*����*���CDEFGHIJKL�3�5*��� '�)'� ��������!%9�3�.�%�&����� '�/����A2������'M�/��� *�=�"��� �.���������!��=*B�� ���*�����3��&2%�����:�� *�=�"�*��CNOOJFPIJKL�%9�3�.�%�&����� '�/��� *�=�"��'M�/���$�5&*23�5* � ��)$.�*���:*3��&2�)�%�&��' �.��� #�(*2$*����*������!Q���*� *�=�"�*��(.���.�.������5&*�3.��������)'� ���'M��'*:�2�!���� �!��(����*������%9�2���2

FHRKE-�$*����*��'M�3��&2��$*����*��%�&��.��"$��������� ���2��������)'� ���/����-�9�3��"��)$�$*�)%���*���+,-��.����� .2��%�&2:�� �!��$�5&*2�5*���"��#������%9�2������������'%��2��� :�*:�2�B����"�����CIHPKNKSL�%�&��*A:'M��9���������*2��"��"*#'��7��:*�:�23���3��� �!�.��:��(*2=*B�� ���%�&� .����������)'� ���%�&����:��FHRKE�,TU�������$�����"A�7� �!"���#$�5&*2�5*%�& :������(��)'� �����.��.*�������.�:�'M�$�5&*2�5*�����)'� ���%�&�����1��&��.���.2:�������3��&2

�9�3��"��3��2�5*�:�����!�9���*1�2����� .2�� �!��V���������)'� ���/����-��.��FHRKE-�$*����*���9�3��"��)$�$*�)%���*���+,-�)��.��'%�&"*���+,-�@WXYY� �!�+,-�@WXXY���$9�*V�"����� .2��BZ2�� �&� �!��"����%�&�9�$�8����1�2���%��*2%�2[���� ���%�&�����1 ��2�3.3��1�2Q����%9�2����.*:�2 ���� �!��"�.*2��.�)��� �:�!���%��*2�!��$9�*V�"�%��\���2������*:�2)'� ����(����*����%��*2� �!Q�%�&���(�����5&*�3.QA.��������1%9�$���(.���� �!�����*"Q����%9�2��'��"%�"��.

�FHRKE-� 'M�=*B�� ���%�2��7� �� �!�.*2��������=5�*��*:�21A��.*2����.�(*2��(��%V�]��&�$5*^HRKEJIJR_KE`HRN������1��&2=5�*��.%�&�aaa�FHRKEJ�DEF�*:�2�������%�2�^HRKEJIJR_KE`HRN�����.'4�)*����3.QA.���������1�����)3���FHRKE-��#:��0b��'%��*2� .2����.B���)���:�9�������������1� .2��$�5&*2�5*�5��c����.$�"�� .��"��)$�$*�)%���*���+,-���.%#�"*��%��2��0Wddde��@Wddd� �!��XWdddd�3�� �:�9����(���(*2�B����.%�&�0���)������� �!�5&*��������=5�*�#:���"A�7����!�����1� .2����.*:�2��:��(.*�9����

���*:�2���%��*2%�&�9���*��3��2�5*�:����%��23��������1%9�2��/���.�FHRKE-��#:�� 0b� ��.*:�2��"A�7�

(*(*"$#7�^HRKEJIJR_KE`HRN��9�3��"���Q ��:�FHRKE-��#:��0b� �5&*�3.���%��*2��.��)*�����&��.���������)'� �����)$�$*�)%���*���+,-��.�/����-��9�3��"QA.� .2��%�&�.*2���� .�#:���"A�7������1���"��#�QA.�������.�.�������=5�*����^HRKEJIJR_KE`HRN�%�&�aaa�FHRKEJ�DEF

�������A.��)$�$*�)%���*���������/����-�'M�'Z���3��&2%�&��������)'� �����)$�$*�)%���*������3�:�.*2�3.$�����������!�*�����! :���$���=�"=.*� �!#:2������������)'� ��� �.���2 :��3.����:**� �!���'��"'��&�)'� �����*��$������1%9���.2:�(���

���������������������� !"#$� %$� &�

Page 4: MikroC book

4��� ����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

� ���,$''�<�: ��0�"��+,-./ ��������������������������������������������������������������������������������������������������������������Y

$''�<�7 ������������������ �$2�&1�*�!"�#��$�+,-./ �%&����&�����������������������6<

$''�<�= ��������������2<&����3&�&����&1���%�%&��'���&��� () �*��+,-./ �������������������������������������������������������������������������������������������������������������������<<

'( )�% ��$*+,� -� .�)� /01�*+,#2$�%�3444444444444444444444444444444444444444444444444444444444444444444445-

'( )�% ��$*+,�����$��67��#2$�%�8�9�:�0��';��2�%�#<%44444444444444444444444444444444444444445�

'( )�% ��$*+,� ���$��67��#2$�%�8�9�:����';��2�%�#<%44444444444444444444444444444444444444445�

'( )�% ��$*+,� � *�=2)2>��?>����=� %��4444444444444444444444444444444444444444444444444444444444445�

$''�<�9 �"����!�1�*�4>1�� �<��?/@AB���������������������������������������������������������������������������������Y6'( )�% ��$*+,� �� .�)�=+�7�6��@A7����,�� �BCDE444444444444444444444444444444444444444444444444444444444��

$''�<�; &���&������������%�%&��'���&���() ���$��+,-./ �%&����&������������������YY'( )�% ��$*+,� 5� 2 ��%2$�$�'%�*+,.�� F��G��H44444444444444444444444444444444444444444444444444444444444��

$''�<�C �������3&��$���D��E F��*�4>1�� �<��&1�+,-./ �%&����&�����������������������������XY'( )�% ��$*+,� �� =>7.62"I�9=�7J�*+,K"�I�� /31� K����6@A7����,�� /LE4444444444444444444444444��

'( )�% ��$*+,� ��=>7.62"I�9=�7J�*+,K"�I�� /31� K����6@A7����,�� /LE�444444444444444444444-�

'( )�% ��$*+,���=>7.62"I�9=�7J�*+,K"�I��/31�K����6@A7����,��/LEM3CNOBP444444444--�

$''�<�8 4>1�� �<�����3&��$#�3�%����"��*&�D�&�&���&��&1���%�%&��'���&���() �������<'( )�% ��$*+,�-��*�=2)��$�.+��9�:2>��Q�>��?��"�R�.62"I�2+2+#$2"4444444444444444--�

$''�<�G 4>1�� �<�&3��%3�������D����1!�HH�I&0���&��J������&�6�&1���%�%&��'���&���() �������������������������������������������������������������������������������������f

'( )�% ��$*+,�--���$��67��@A7����,��8ELMFSTE���)�U�3-5V���44444444444444444444444444-��

'( )�% ��$*+,� -��2>��?>����K"�I��813�9))% �%>2K��%$7444444444444444444444444444444444- -

'( )�% ��$*+,� - �2>��?>����K"�I��813�9=�7J�*+,K"�I��/314444444444444444444444444444-

Page 5: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����5

$''�<�K � *1��4>1�� �<��(LM��&1�+,-./ �����������������������������������������������������������������������������6Y'( )�% ��$*+,���?�)?<"?��"�$��.27"2�%2$��6��@A7����,��UWX44444444444444444444444444444-�

$''�<� :5 �������3&�N?OPQ����D�!2<&!���*&�D��&���&�R����&1

���%�%&��'���&���() ��*�4>1�� �<��&1�+,-./ �%&����&�����������������������g6'( )�% ��$*+,�-����$$�)=>7.62"I�$:Q�>�7&"K?$?2�K*$���2$�9�:?2"# ��%2$�4444444-5

'( )�% ��$*+,�-5�=Y,2=�$.62"I�2�<�$"K����6�$:)����$*�7Z2@%�9�$�444444444444444444-��

'( )�% ��$*+,�-����$=>7.62"I�2:Z 7K?$��=�6����$�R�Q��?>�$+� =�%2$�K��%$744444444-5

'( )�% ��$*+,�-����$$�).62"I�2:Z 7K?$��=�6����$�R�Q��?>�$+� =�%2$�K��%$744444444-55

'( )�% ��$*+,� -�� ��$$�).62"I�2:Z 7K?$��=K����62 ��%2$�$�'%�44444444444444444444444444444444-5�

$''�<� :: �������3&&R���I��0$$$�!�)7 ��*�4>1�� �<��&1�+,-./ �%&����&�����������������Y�

'( )�% ��$*+,����% �%>2)2$��.�)$+�����-5��>27�[\F0/8]-5��6��@A7����,����344444444-��

'( )�% ��$*+,��-�% �%>2��)K"�I��.�"* ̂ � � %2��3XU�� ��6��@A7����,����3444444444444-�

'( )�% ��$*+,����% �%>2)2$��.�)$+�����-5��>27�[\F0/8]-5�6��@A7����,�� �B_OM��3444444444444444444444444444444444444444444444444444444444444444444444444-��

$''�<� :7 �������3&&R���I��$$�?()��&1���%�%&��'���&��� ()

�*�4>1�� �<��&1�+,-./ �%&����&������������������������������������������������������������������������fY

'( )�% ��$*+,�� �% �%>2��)�X3U����&2Z+9'�7=�̀ `�a� � %2��';�2:���2�4444��

$''�<� := �������3&&R���I��0$$$�!#�S<1!��*�4>1�� �<��&1�+,-./ �%&����&��������0>f

'( )�% ��$*+,���2>��?>�2<aQbI" ���&2Z+�1�-������6��@A7����,��BDScdeS444444444444�-�

��%T����U���0�"�%�2<&1�2&�����'��&1'�1V�������������������������������������������������������������006

Page 6: MikroC book

6��� ����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

Page 7: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����7

������� ��������� ��� ����������������������������� � ��!�"�"� � #$�%&'����� (��������������� ������� � ���������������)*+,-����'���.�� �(/0�(��(/����1 ����2���3������������������'�����1������"����������������(���4-)5*67,��8�&�������!��0��!8/�9'������'����:;<$�������=����8�"����8�0�������>��?�������@ ��1��.�����������'�!�A0���1?�0�������!8/�?�1"���"�3����������������

%&'�����������������B���.��!���1���90��� � ��!�"�"� ��'�"���"��C/0������2�1�� ���3���@8!8/3�'��?���D>��!�A0�8A��(/�?�1�E0�����?3�'�981��������1����>���?�9'.�����)*+,-�������B3�'��" %""��D �FG7H��'�1��� ">���810��I���81��!��3�'"�9�A���3����!��0��"0��'1?�0�����"2��" � FG7H������B�����3�'���� �(/0���������� � ��!�"�"� �#$������=����'!����?�

�������3����D>��1BC0���3�'0���"2��1"2�81�90�������!�"0.2'�0BC0�)*+,-�3���?��JK����89'.������'��9���90��" �"�0.�� ���" ��(��"0��������� �(/0�L��" ������"FG7HM��'0��?��>��J��>�"��>� ����?�N�����810���������������������������������!�"03�'0����� � ��!�"�"� �#$����(A0�'�����!�A0�������������� �� �����!��0��90��?�1�� �������>9����"N���'����1?�0�8

�������%&'3�'0��!8/!�"03�'�)*+,-���"'��8 �����3.�'0�����?����&�@ �����B�>��?��/0(A��'!8/����� 90%&'%">���������������� ����

��� ���������� ������ �� !"#$��% �&'( )*�����'��C/0��" �>���A090�)*+,-��3���?���D>��8A��8�J�!�0 (

OF�.���%?�8�8��!8/.����3����!�"0��� � ��!�"�"� �#$����(�����2����?�1�� �P-Q-R#$�:�90�*S7H

JF����� ��"���� ��/�3��?"?����!8/�.�8!8/�TTTF)*+,-7F4-)

.����A�!������>���A0���(�������������21��� 90�>�����

����+�,�&�� �!"#$%�

Page 8: MikroC book

8�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��) ������ +,� #��-.�� -�/0�1��2"�3(�45�6�� $UV���.��� $SW7X,YW7Z�U7[76-5)7SW�VS[*,-S)7SW����1BC0��� ��� !8/������� �(/0�(

�"2����2���"'�3��������������������'3�!8/��81�������1��13��\*+,-��$UV���2�����'�1� � �(/0�(� �(/03�'!8/����1 ����2�����0�8A

�� 4�7�#���#���% ���8 8���� �������������>��� ��������981��"2��'�9� �����������������1� '���>��� .2!������1��12��� ����/0]�������]�9'�&"����"9]���9�2��"2 ��D>��1��'�1�8� L4-6-,� � ^_SWYHM����!�A0�&������������%&'3�'0�������B�"(�������"8/1��&�����"2�8���909'�&"��?"2��>���'�0

������������ ������� ������ ��������� !��"��#���"��$����%�&�'

������������ ���

������������

��������������������������� !"�##�$��%&��"�����'���������(����

���������(����( !)��

���������*���� +�"����,-./0123456738

Page 9: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����9

)� !$2���9/0�#�:;�<5� 3��)*+,-����'���81��"����890����������������'.��������� ��(/�?�13�'������������������������� � ��!�"�"� � #$�������B!����'1?�0�����N���?�?�.2�����"����8��8/1��������>��?��?�1 ���.���������0%"9'�&"�����(/���9'�&"�������.����N�9'�&"�?�0`��"2�����8�����������>��?����@ ��1��

=� #��-.�� -�>'?@#A9@(45�6�� �!8/�?�1���0%"� �0��'�090����������������"2�a0� ��/��?�0�`���13��������

B� � �� !"#$��%� 3�'3������"�������������� �������������"8��"2%�������������������"� ��(/��"��������������8�� '�.����N�3��&������" �b7H�����=�������B3�'���� �(/0��������#$������=����'!�A0���

C� D� <#$#���%������ �(/0�(�����������.��"0���!��0��90��������3�'�&%"���!��0��90�������!8"2���N���"21�03�'�?�1.����"����!��0��90�������!8"2�?�0����BC0�&�����"8/1���"090�8.>���� �?�0�`���'1?�00?�1��1

E� #��/�����F>7��(�&GH�"/<����.�����3�'0���������!8/0?�1�"'��)*+,-��1�0��������9'�&"��������3�'0�����������"����8�?�0`��"2���1?�0���������'1?�0�����1�?�13�'%&'��>/��'������B��81��&'����981���������������.�����1?�0��'0?�19CA�

��)�� ��@$I#�9@�A��4�7�#���#���% ���8 �8����

� '���>��� 90�)*+,-�� ������>��� !8/����'�� �(/0�(�?�13�����981���������!��3�'����981�!����'0?�19CA��'�1 �@�����>�?�0�`���0�8A

��������?0�&�����890��������?�0�`���'

���"(����0��� ����/0������1����I���cPd�e�<5Y47�QY,

���&��1"2�81� ?������>��� 90��� ����/0�?�0`���'

�� �0������3�'0���!���"�� LW7)56YW7M���(�����'�0�&����� '��������>��'

�����.���"2��'�9� '�!8/�981�%>���'��1�������>

��������������?0!8/�'0�����2�����1�0���!��!8/�'0�����'

�������B������?0���3�'0����'�'�1����"(�!8/���&�J���K � LM������( ">���I�!8/��'��?�0�"��90��������N��'

Page 10: MikroC book

10�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

���6/��>&��0�/�.� � ��8 NKK�K�� O�JPQRSTN��U

��(/�2���3�����981����������(3���0 ��A0.����� ����/0��?��'�3�'�� 81 �"��90�(/ ����/0�"'�����I���cPde�<#:�V��L���1BC0����I���W,6� '�0��'�"'�����'�1�������I��<5Y47�QY,M�� ����/0!8/�8 81 �������!8/�"(���'1&?�'����'�.2����f���!�A0�������810�"(/�� � �� ��1�0 ����/0!8/�'0����"'����VSW7,� ����/0��A�.2B&���81�9CA���3�'0��

.�����1?�0��������"(��>�� ����/0�Lcd��"'��� 81 ��cPd��"2�<#:�V�.2����f��'��?�090 ����/0!8/9CA��'��'�1 ���?��d4Z�9CA���3�'�"(�

���>'?@6/��"��� �#���% � T����� NKK�K�� O�JPQRSV+WJRSTN��U

������� ����/0��(�a0� ��/�3���" �"����8����=��90�)*+,-�� ��(/�������(/�a0� ��/���( ����/0�"'�����'�1� �(/0���1�0�"N���g��L���(�� 81 ��cPde<b$hce<#:�V��L�� 81 ��W,6�����'�1<G*iW��"2�<5Y47�QY,M� ?������>��� 90��� ����/0��A�`�.2B&����09CA�����1�������>3�'3�'0����'!��!8

.�����1?�0��������"(��>�� ����/0�Lcd_Out_CP( �"'��� 81 � �cPde<b$hce<#:�V.2����f�����>��� �unsigned char * text 9CA���!��!8���(/�?�13�'%&'�981��������!����&������������� ?������>��� 90 ����/0�8A1?�0B&��'0

Page 11: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����11

��?;/�26$I6�7!A�0�X�����4( ��� � NY� �����

���� �@�����>������.�� ��%>���1�������>��8���!��0�� "'�1����\*4,-^-iW�j-,Z��"21�0�?�1��'�9����>�� ����/0!8/��?B&��'090%&'3�'0�����1 ����/0!8/����>�� %>��?1`���A��%&'3�'�����B��>/���>� ����/0��'���1����"(����&�J���K � LM���K�.����A��"(���!8/���9'�NY� �����

����0�1(��0�61('� Z�������

3���@8!8/��������8 ���1�����`� ��(/3�'�����2�����1�0������?0�?�0`�90���������'1?�0�����N�� %&'3�'0�������B������������?0���!��!8/�'0�����'3��k--+)Y,+�C/0�����B��2�����1�0������?0��A�`���'1?�0�����N�

������������?0�k--+)Y,+�!����'��1�����I���cPd�����'�1�<b$hc��"2 81 ����"9�.����A��������.2���0������?0�Q--+)Y,+�!8/�'0���

����9'�BC0������?0�k--+)Y,+�!����'��1�������I���cPde����"9���0������?0�k--+)Y,+

��29/:;<=14>/<?

��29/:;<=14>/<@

��29/:;<=14>/<A

Page 12: MikroC book

12�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�����I4��!5@���0�61('�2��[��[9.�7����� � \��Q��

��.�����3�'�Q--+)Y,+��"'��%&'3�'0��1�0�����B��2�����1�0���!���?�0`�90���������'��1��0�%?������� 81 ��cPdel�.2����f��'��?�0�l-W-d*S7�9CA���3�'�E��"9���!��!8/�'0�����2�����"'� ">���I��mK

��8 �]M���� (�?��90��'��?�0!8/��01&?!�0�'��'�1�(90�������3�'���0�a0� ��/��"2������!8/3�'

0��1&?3��������9@2��A�

Page 13: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����13

1(7��'��A��A7� <$>'?@#1$-�#�'��'?( � ^Y��� V�M �^V�M�

3��!N��?.����-Z7�VH56-,7,� ������'��?�09'�&"�?�1��"(� ��(/3�'!���BC0���3�'0���a0� ��/�!8/���.�1&?3�����������?�������81�3�'0���a0� ��/��>��?��?�1 ���.����-)5Y4W�h6Y^G������'�

��@����9@%$�� � *_`���8 Sa��Y

1&?3�������?0�!N�9�����90��'��?�0��-Z7�VH56-,7,���(/�"(��9'����.2�8��1���90 81 "���?�0�`�!8/3�'3����������?�13�'�����B3�'0�� ����/0�?�0`���'1?�0�����N�1>/09CA�

Page 14: MikroC book

14�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

1(7��'��6;7�X$$�"b% � cKK�d e��8��������'��?�0����������0%""��D .����� ���" �B'���� ���" �89'%>��"�����'��?�0�8A

.2���09'%>��"���'�1�����8��0�3���@8��?%>��"�����'��?�0�8A.2���09' ����8�?�0���'�!�A0�.'09�����?�1 ���.��!8/3�'�����@8�89'%>��"���������.2��?��'�0��" �G7H�%&'3�'0�������B�9'�BC0���!��!8/��>� ���%>��"����'��1��������>" ">�!8/���!��!8/���09'%>��"��� �������.2��2�����1�0������?0!8/��>�9'%>��"��!��!8

��)�) #��-.�� -�"�#fg>'?@F(���"�3(�45�6�� ��)�)�� ������1�/6�/�9� �NS�++ �a���

����� �(/0�(!8/�?�13�����981��������!8/��8/1�9'0�������������(���.�����9'�&"���<W,*SX���1����0���8A�8A�/�13�A%&A�981��������!���BC0� /�9A�&"�������8A90���������(���R�"9�!8/�>1�3�'���� (�����981�9'�&"�����0%"!8/���&"�d�U� �����'�������81�3�'0������0���8A.2��81�.�����&�J���K � NK��� �a��

Page 15: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����15

��)�)�) 65$4�7�45�6�� #5h( VJcQ ��]M�� ��8 � VJcQ�

����8 ����'0������������� ������������k6-X���(������� ��A��B'�!����� ��"��n��2� '�!8/����9' �����1?�0��81���A���.3�' ������&�@ ��'��?�!?����!8/���03���'��?�0�-Z7�VZ*W-,���0��A�B'��'0���3�'����� ���0� ��������!8/�8�&�������(����3�� '���>��� �����B��81�3�'0��� �(/0�(����8A��'��1��!8/���&�J���K ���]M�� ��8 � VJcQ

��)�)�= 1(7��'��/-.�/��A7� <$X'�("��%��(&�� � iSNPJ J������

� �(/0�(��(/�?�1����"2�?09'�&"������2��?�0��� � ��!�"�"� �"2 ��>���� �����81�3�'0��!����'��1��!8/���&�J���K ��iSNPJ J������ ��(����I���W,6ec��N��'

Page 16: MikroC book

16�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��)�)�B�1(7��'��/-.�/��A7� <$X'�("��%� iSZ F(41 � V+, � V+, J����������� �(/0�(��(/�?�13�����>��?�2��?�0��� � ��!�"�"� ��� ��>���� �%?���� �

o<k��C/03���� � ��!�"�"� �#$����0��� .2�8���&"�o<k��>���A01&?���?��#$�Ophqrrs������'������81�3�'0��.2�'0��!8/���&�J���K ��V+, J�����

��)�)�C 1(7��'��/-.�/��A7� <$X'�(�I22#(:�#?��%� � i,T J������

����� �(/0�(����?0��N���N�9'�&"3��2����N���>� ����1��!8/���&�J���K ��i,T J������

Page 17: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����17

��)�)�E 1(7��'��/-.�/��A7� <$��2���%�1('?@�?� ;0� � cc� ���8 J������

����� �(/0�(����������?���"2�981���� ���?�1 ���.����>��\\��%?������(/�������������81�3�'0��.2�'0��!8/���&�J���K ��cc� ���8 J������

��)�)�j 45�6�� �0�1(�;&�H�"/0�1��24 �<$���kl� Q�, � \Q�, Z���M �8���

����� �(/0�(�?�1������9'�&"�����'�0���3�'�������g��d�U�������� '�������������B3�'0���������g��d�U��"�1��� ��!>��K<sOsp]�ctutv���(����g��d�U�90�!�w��! �;-+*YvOOs�����81�3�'0��.2�'0�9'���!8/���&�J���K ��\Q�, Z���M �8���

��)�)�m 45�6�� �0�1(�A7� <$/0�1��2 Q�, ��?#$A j /'?( � Sn� Sd�� ,��8�

����� �(/0�(�?�1������9'�&"�O���� �������������0%"90�dVU�����"9�x��?��������81�3�'0��.2�'0�9'�!8/���&�J���K ��Sn� Sd�� ,��8�

Page 18: MikroC book

18�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��)�)�o 45�6�� /�7����?���g�#p"�I/0�1��24 �<$ Q�, � Q�, �YK�� �a������

����� �(/0�(�?�1��'�0��������>�w�3�'������&"�d�U��������������1��(/��'�0����������N.��81��'1�"'�����I��l7S7,YW7��������.2��'�0� '�3�'��1�������>������81�3�'0��.2�'0�9'�!8/���&�J���K ��Q�, �YK�� �a������

��)�)��q 1(7��'��1('?@�?� ;0�A7� <$�9�9"�� � ��TPLc �8���

3�'���0 ?��"2��'�99'�&"3���?�1 ���.��9'�&"88���90��� � ��!�"�"� � #$�

Page 19: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����19

��= #��. �7(F>7��( ��������=�� F>7��(;����?�@'��

)*+,-�� ���81����1?�0����981���������(A�=����3�'%&'3�'0��!�"0�"�1����������1�"�0.���>���A0��������)*+,-���"'�����1?�0��������?�0`�.2��N�1&?3���"��� ����������� ��������� ������������������ ����������

���������" ����.N�� ���!8/.2��g�9CA��������1?�0�8A3�'��� � ��!�"�"� � � #$�Othpxx:C/0�N (���" 90����������2��>�� LdVU�k6*S+*SXM

9�A��������g����1?�0����.N�� 9CA���3�'0����89�A�����0�8A

LOM���g���������)*+,-���"'���!8/���&�T��r� � LM� T��r�

LJM�!8/��'��?�0�m57S� �"(���"��� �� ����������� ��������� ������������������ �������������������� �!"# ������� � ��81���g���" � �!"# ������$���

Page 20: MikroC book

20�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

LvM�!8/��'��?�0�#,-y74W�<7Wz5� L��>��@�'��'�190.���M�.2���0��� 90��� � ��!�"�"� �#$��!8/�"(�3�'���'�!�A0 ���B8/��{{�@��|g��������B��"8/1�������� (/�!8/�'0�����'.���&���������"(���"8/1�������� �#$�Othppx��"2 ���B8/��{{�@��|g���L�6-4+M� �!?�����Js\b}

LqM�!8/��'��?�0��'�9���������(��-Z7�VZ*W-,�.2���0��1"2�81�90� ��������dVU~k6*S+*SXF4����0���03��������!8/�ORO

/* * Project name: LED_Blinking (Simple 'Hello World' project) * Copyright: (c) Mikroelektronika, 2005. * Description: This is a simple project. It turns on/off diodes connected to PORTC. It uses bitwise negation to toggle PORTB pins. * Test configuration: MCU: PIC16F877A Dev.Board: EasyPIC4 Oscillator: HS, 08.0000 MHz Ext. Modules: - SW: mikroC v7.0 * NOTES: None.*/void main() {

PORTC = 0;TRISC = 0;while(1) {

PORTC = ~PORTC;Delay_ms(1000);

}}

(����)���������#�*�� (����)+�,������ -.�/�0! 123�4��4567�����%� ��$���������&�)-89���/

���(�����B����� ���

����������� ��� ������������������� ��������������� ������� !��� "#�$ ��%&�'%����� ������"� � ����(��)*+,-./0���1����%2'3 �4��$��"#��� �����5������������������� �/����6����

Page 21: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����21

LrM�!����� ���" � �� '��������3�'��������� �(/0�LFG7HM���1�� 81 ��cPdehu��( ">�!8/� �� � �!8/��>��@�B��'����90����������(��!8/���&�#,-y74W��"'��"(� ����/0kz*6Z��N��'

LtM��"�0.�� ���" �%""��D !8/��'.2���0!8/��'��?�0�\7^^YX7^��'��"?�090�������C/0B'���?�89'%>��"��3�`���'��?�0�\7^^YX7^�.2���09' ����<z447^^��8�981���"2���0.�������?�1 ���.����������"2��?�1 ���.���P:\�!8/B&�3�'0��

��=�) ��?;/�2X$���[0���(A��45�6�� X'�( ,`Ydd�

��������U7QzXX7,�90�)*+,-��!��0�����(�������.��"0���!��0����(>�&�"��� ���(/�&%"�����"8/1��%"0!8/�8.>���� �?�0�̀ ���13������� � ��!�"�"� ���1��?.�������'0���� ��"�������������3�'!��0��.�>0��89�A������3�'0����0�8A

LOM���!8/�# (< Pis #$-���0�/�.� S�� ,`Ydd����( ">���I�� ���>��@�B�� �(/0�(�'����90����������(���9@% Wo� ��(/��>/��'���g���'��?�0�U7QzXX7,

��������� ����������� ��������������������������������������������� �������!"��

Page 22: MikroC book

22�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

LJM��������.2��g���'��?�0�jYW4G�9CA������(/�& ?��������?�0`�%?����'��?�0�jYW4Gj*SZ-T���1.2�'0�"(��8.>���� !8/�'0������.�� ?���81�?�����������������dVU~k6*S+*SX�8.>���� !8/3�'0�� (�TLPJ�� �"2�JP+S� ��>��@�B����0�B��2.0��'��?�0�jYW4G�.2���0������?090�������� �� ��� �L9@2>�&�"��� �������M����0��"�!8/3�'��(/!�� ����/0�L<W-5�TYW4GM�"2��"����0�B��2� L�8.>���� �<WzWz^M

"�������C!�(�����"�!�

D�)�� +�"����2 =EFEG=��� ������� �����������

�C����� ��

���!���� ��

LvM� 3����.��"0���!��0�������B3�'��I��?�0`�!8/1&?��>��@�'����90��'��?�0jYW4G�3�����&%"���!��0����'���(����I� 81 "����0�8A

WB ��( ����������!8/������?0� � �� ����f1&?

WC ��( �������1��">�.������

WE ��( �����1����/� ������.��"0���!��0��

Wj ��( ����������N���1�9'���3��������1?1

Wm ��( ����������N����1��?�9'���3��������1?1

���RWm ��( ����������N�.��.���������1?1

Wo ��( ��g����.��"0���!��0����(>�&�"���

���RW) ��( �g����.��"0���!��0����(>�&�"���

N�R, ���0��'��?�0�>�������"�

Page 23: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����23

LqM� ">�!8/��I�� ����(��5&t Wm���(/����������3�'!��0��������N����?��?�9'����&���!��0��3��������1?1�����I��hp�����(/1`�.�BC0 ����/0��PORTC = ~PORTC; ��0��� ?�90#mPc���?����������������������� �!"���#���$��%&%%�'(���������$��%&))���(� �!"���#���$��%&))'(���������$��%&%%

��=�= �����?;?���'�!D#��$���[0���(�7?@ S�M���a

�"(�!8/���&�u�� � ,`Yd e��8��Ku�� � ������.2���������g���'��?�0�<W-5TYW4G����(/3�'�& ?���"�!8/3�'3����!�� ����/0��(�a0� ��/�.�����������!8"2���N����(.��������1��!8/������?0k,7Y+5-*SW� � L������������?0�1�����!��0��90��������3�����>�&"�"��� M

��13���'��?�0�<W-5TYW4G����09'�&"��0�8A

OF��Y��� ��Y�����0.��������>"���!��0���"2��"�!8/3�'��A0��?��g���'��?�0�U7QzX

JF�,�������������0.��������>"90 ����/0��(�a0� ��/�!8/��>/0���3�'!��0����"?����

vF�S�M���a� ����������0.��������>"���!��0���"2��"�!8/3�'��"�0.������I�P7^7W�W-��7,-

Page 24: MikroC book

24�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

qF�������������'��?�0������������� ?� ���!8/�>"�"��� !8/3�'�C/0��?.�������'0���� ?���81���� ?�!8/������3���" ����.N�� �N��'� %&'()*+,-./'01,-234)35)67./889:;-+-+<8*=>0?0@)<4)2A���B��C�DEF646.G-(HI()*+,-./'01,-234)35)67./889:;-+-+<8*=>0FJ-=%,*+DK(<=

rF�5&t �� ���3�'��(/�8����|g��.����"�3�'�"������>/����!8/�s�L��?.2��?�8%"��� ?���z,,7SW��-zSW� M�3�'����������.����"��n��2�a0� ��/�!8/�'0���

?�!8/���0.2���0!�A03��&����90���>"���!��0��90��� � ��!�"�"� �"2 ���212��"�!8/3�'3����!�� ����/0��(�a0� ��/�

�"�0.���&'.������?����2��90��'��?�0�<W-5TYW4G��"'��?���������!�"0�������������>0��>"���N�� ��(/�&.��������>"�"2 ����"�!8/�������3�'� ��1!�����9�A�����0�8A

LOM����������{{�@��|g���L�6-4+M��!?�����Js�\b}

LJM�� "81� ?����>"�"2 ����"����1 ">�!8/��I���

LvM� ">�!8/��I��SM Ln�� ���(����I��hp���C/0 ��A0��������!�� ����/0�PORTC = 0C/0��"�!8/�<W-5TYW4G�3�'�!?�����v����>"

LqM� ">�!8/��I��SM Ln�� �8� ��A0� �������!�� ����/0�TRISC = 0���0���!8/���9'U76WY� ?�.2�8 ?��!?�� J� ���>"����0�?� ����/0�cP$<����s� 3�' ����"��J����>"��? ?��212��"�90<W-5TYW4G�.2�8 ?��!?�����r� ��(/0.������������ ����/0�?���'��8A�9'����'�1

LrM� ">�!8/��I��SM Ln�� � 8� ��A0� .2�������!���a0� ��/���?�0��"��O��>��!8� 3���@8!8/3�'�<W75�m[7,��������.2��?�9'������0���!��0��3��a0� ��/���A����?.2���0 ?�.��������>"90�a0� ��/��U76Y_~)^LOsssM�����L�.�'03�'��"����� �&?� M�*��+,-./��0� !12�34%5643%7�08��#�9�12��$��(�(�:���5%%;�7%��#��#:#��/��9�12�5�:#��/�,2��

Page 25: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����25

��B 1(7��'��6/��/v������F>71('?@�?� ;0��"�0.�� ���" ��������"'��%&'3�'0�������B��81��&�B>�>�?�0`�����2�����'�1

OF�c���_ YK�d ���0���3�'0����?�1 ���.����������"2��?�1 ���.���P:\C/0.2���0!�A0��>��@��?�1 ���.��!8/�?�01&?�"2��?�1 ���.��!8/3�'��

JFT���8Y�K �K�wK� ���0��>��@���3�'��?�1 ���.����?0����a0� ��/�!8/��81�3�'

Page 26: MikroC book

26�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

vFT���8Y�K ��������K�� ���0������?0���3�'0����?�1 ���.���������90�a0� ��/��?�0�`���13������������BC0��>��@���3�'��?�1 ���.��3���?"2�a0� ��/��'�1

qFT���8Y�K �8���K� ���0��1"2�81�90�a0� ��/��?�0`���1�8����2��������?0��������>/��'��"2�>A����90�a0� ��/�

Page 27: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����27

rFPNc� ����������0��1"2�81�90��?�1 ���.���P:\��"2�8.>���� �?�0`���1���0�(/�"2������?0������90�8.>���� �"2��?�1 ���.����"?���A�

tFPLc� ������'��?�0���0��1"2�81�����������������"8!8/��N�1&?3���?�1 ���.���������

Page 28: MikroC book

28�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��C [�/�2���[0���([��x��%�6?�%3����!������!��0��90��������������!8/�981�9CA���(/3�'��N�%"���!��0��.�>0`

!�0��� ���� �.2�'0�8������� ��"���" � FG7H�C/0������" %""��D 90�)*,+-�� ����"� ��1�0��?�1 ���.���������90��� � ��!�"�"� �#$����0��A�3����!����8A.2�8� �(/0�(�J����!8/��8/1�9'0 (� ��� ���� ���������������"2!�"0��� � ��!�"�"� � #$�� � �"2�� ��� �������������� ��"��������

��� ���� !8/��2���3����0�(�"?��8A��2���'�1

OF��� ������������������ � ��!�"�"� �#$��Z^#$��%?���� ��o<k��(/��?�#�RJss�90��>��!>������8�� �N����>���� �.������LTTTF*S7HF4-FWGM

JF��� �!�"0��?��;�Rpxx�56z^$$����������@8�'0���!�"0!�/�������>�>���A0��� � ��!�"�"� �#$�Ophpxx:���'���?�����B��"8/1�������� �#$�Othppx���(�OphqHHH�3���?��qs�9���'

vF�Pk�Rpxx��JFs��� � �� ����?�1�� �P-Q-R#$�:�!8/�>���A0��� � ��!�"�"� #$�Othppx���?�����B��"8/1�������� �#$�Othpxx:���(�OphqHHH�3���?��qs�9����'

�?���� ��� !8/3�' (� #$�+*WJc\�#,-X,Y))*SX�<-iWTY,7�90�\*4,-4G*5�%&'%">���� � ��!�"�"� �#$������B���� ��"���'��8!8/�TTTF)*4,-4G*5F4-)

��C�� ����������D�k�%6?�% T+���)Jc T��d������d K�y���#$�+*WJc\�#,-X,Y))*SX�<-iWTY,7������� ��� ����������������� � ��!�"�"� �#$�

�"2�Z^#$�������"�!8/�'0!��0���?������ �(/0��������#$�+*WJc\�90�\*4,-4G*5���(� �(/0�������(/�!8/�8���!��0����0����3�!8/�8A�"(�3�'�� ����������?��#�RJss�C/0�����9CA���1��>��!>������8�� �N����>���� �.������.��9'�&"!8/�%1���?�&?��D��@290� �(/0��������#$�+*WJc\����1\*4,-4G*5������������������9'�&""03���?�1 ���.���������90��� � ��!�"�"� �#$�90�� ��#�RJss�.2��������������3��0.�%?��!�0�.��� $�UJ

��C���� �������;��6X'(D9�9�� [9. ���2>&� Tz{)qq

�� ��� !8/3�'����#�RJss� (�#$�+*WJc\�#,-X,Y))*SX�<-iWTY,7���13��������3��/̀ ���A��������.���\*4,-^-iW�F;Vc���0��A�����>���A0���������(/3�'0���%&'3�'0���'0�8����>���A0�\*4,-^-iWF;Vc�h,Y)7T-,+���81�?�

Page 29: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����29

��� ��G9[9.�� "�?#���%! ' 9���������� c����K�y �s�J W������� ��'�(

�>���A0�\*4,-^-iW�F;Vc�h,Y)7T-,+���1�"(��>���A0.����"��� �#$�+*W�J�<7Wz5�[JFsOZ-W;Vc���Z-WS7WiH�3��%?�8�8��������>" ">�!8/��" �Z-WS7WiHF7H7�.23�'��"�3�����>���A0 �&?��C/0.����A�.C0�>���A0��������#$�+*WJc\�#,-X,Y))*SX�<-iWTY,7���1�"(���" �#$�+*WJ<7Wz5F)^*

�A� ��G9[9.�� "�?#���% 9���������� c����K�y �s�J W������� 6$7?

�>���A0��������#$�+*WJc\�#,-X,Y))*SX�<-iWTY,7���1�9'���!8/��"��� �#$�+*W� J<7Wz5�[JFsO�3��%?�8�8��������>" ">�!8/��" �#$�+*WJ<7Wz5F)^*

��C���) �������;��!k$%[9.��?(%41$�;��#?2!D�%A�� c�����a�M

�9'���1�0����� 90�\*4,-4G*5�!8/�TTTF)*4,-4G*5F4-)��"(����9'�U7[76-5)7SW�W--6^��#*4+*W�J�#,-X,Y))7,�U7QzXX7,

��� ��G9[9.�� "�?#���%! ' 9���������� c����K�y �s�J W������� ��'�(

3�'���� ��"���" .�����9'�#$�+*WJ�JFsO�$S^WY66�T*WG�F;Vc�h,Y)7T-,+�.2��'��" #$�+*W�J�<7Wz5�[JFsO�Z-W;VcF}*5�L����"9��� ����.��"8/1���"0�����?�!8/�8����������0"?����M��"'�!�����91�1��" !8/���� ��"���� ��N���'3���"��� � #$�+*W� J�<7Wz5�[JFsO�Z-W;Vc�.����A��9'���3���"��� �#$�+*W�J�<7Wz5�[JFsO�Z-W;Vc����Z-WS7WiH��"(������>" ">�!8/��" �Z-WS7WiHF7H7�.23�'��"�3�����>���A0 �&?��C/0�.����A�.C0!������>���A0��������#*4+**WJc\�#,-X,Y))*SX�<-iWTY,7���1�9'����"'������>" ">�!8/��" � #$�+*WJ<7Wz5F)^*

�A� ��G9[9.�� "�?#���% 9���������� c����K�y �s�J W������� 6$7?

3�'���� ��"���" .�����9'�#$�+*WJ�JFsO�$S^WY66�.2��'��" �#$�+*W�J�<7Wz5�[JFsOF}*5L����"9��� ����.��"8/1���"0�����?�!8/�8����������0"?����M��"'�!�����91�1��" !8/���� ��"������N���'3���"��� �#$�+*W�J�<7Wz5�[JFsO�.����A��9'���3���"��� ��"(������>" ">�!8/��" �#$�+*WJ<7Wz5F)^*��(/��>/��'��>���A0�������

Page 30: MikroC book

30�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��C���= A��(��(����������45�6��

LOM������>" ">���" �>���A0�#$�+*WJ<7Wz5F)^*�.2����f��'��?�0��>/�����>���A0� ">���I��;7HW

LJM�.2����f��'��?�0�.'0������?0��"��� !8/.2!������>���A0������?�'0�����"8/1���"0������?0��"��� 3�' ">���I��;7HW� ��(/%?��9�A����8A��

LvM�.2����f��'��?�0�.'01(�1������>���A0�������� ">���I��;7HW� ��(/����"0

Page 31: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����31

LqM���'��?�0�.'0">9�>!D �� ��� ����f9CA�� ">��$�YX,77���(/������.����A� ">���I��;7HW

LrM���'��?�0�.'0�B��2����>���A0�����������f9CA���.���2!�/0����>���A0���N.���&�@

.����A���'��?�0�.'0����>���A0����������N.���&�@ �.2����f9CA��3�' ">���I���6-^7���(/�g���'��?�0�8A� ���������'.�>A�9�A�������>���A0��������#$�+*WJc\�#,-X,Y))*SX�<-iWTY,7

Page 32: MikroC book

32�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��C�) ���#>-.� �'�#"-.�[�$��[��x��%�6?�%

LOM� � ��>/��'��'�1����?��1�o<k��2��?�0�#�RJss������ ��o<k�90 ��>���� �.����A���g���������#*4+*WJc\�#,-X,Y))*SX�<-iWTY,7���1�"(�!8/�<WY,W���:66�5,-X,Y)^���\*4,-4G*5��#*4+*W�J��JsO�L�"9��� ����.��"8/1���"0��'�������������0"?����M�3��&�!8/�ORJ����0��'��?�0�"��90��������#*4+*WJc\�#,-X,Y))*SX�<-iWTY,7

���� "��"���H

���*���"�!� ���'2975>4IJ:./475

�' "�����(�����

�������K)����(�����

+� �( ! ��B���D2 L1MN2( !��'�B������O'���)�'�D�D��

�������K)����(�����

��������'�D�D��B���*B������K����+����� ���

��������'�D�D��B���*B������K����+��� � ����

��������:�������� ������ (����)�;�7���<:=>�;��5�?���45�@�A<B?�C

Page 33: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����33

LJM���?��1�$�U��2��?�0�� ���������#�RJss������ ���E����1��(�� �!�"0

LJFOM ��G9F>7��22��%�[�$�� sz{mjj M�YK++

��"�����C��������� ���

,�D" �����"����8

�CP�( !"�����'�����+�(���

+��K�D� PK�

��C!�����������K"�K2 Q9R@�������2G=S

LJFOM ��G9F>7��22��%��?2�& 1&'(@(�% PZz{mjj Pn�)qqj�

���� � ����������

������ �������

����

������

����

���

��

�����

��� �������� ��� ��� �� ��� ��� ��� ��� ��

���

���

����

�����

�����

���

���

���

���

���

���

���

���

���

���

������

�� �

��

��

� ���

��

������������

�������������

������������������� �

�����������������1?�0�dVU~k6*S+*SX�!8/��.�����1?�03���"��� ����������� ��������� ������������������ �������������������� �!"# ������ 9����0�1(�����'�?�;�! '�����22��%� PZz{mjj Pn�)qqj ���(��(F(���[�/�2(9�;I�7��v|�2��%�[�$�� sz{mjj M�YK++ #5h(1$�� �����������1?�0���!�������� ���Pk�Rpxx�P7[FJss��&��1"2�81���>/���>�3����0�(��81��&'�"2��'�0��?�1�� �������>������ � ��!�"�"� �#$��C/0.����3�����?�1�� �P-Q-R#$�:

Page 34: MikroC book

34�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

LvM� .����A��� ��� .2���.�������(/��?�"2��� 90��� � ��!�"�"� � #$�!8/��(/��?�'�11?�0�������>� �"'�.2�.'0��� !8/������'��?�090�������

LqM� �"(���" � FG7H�!8/�'0�������������1��!8/���&� h*67� �"(�� $)5-,W�b7H�.2�8��'��?�0���������g���" � �FG7H�!8/�'0����������"0��� � ��!�"�"� � 3�!8/�8A�"(���!8/����������� ��������� ������������������ �������������������� �!"# ������� �"(���" �(/� �!"# ������$C��

LrM� ">�5&t e��� ��(/���� ��"����������1�0�� ���� � ��!�"�"� �#$�

LtM���?�0.���1�?9��� ����3�`��9'�����dVU

�������������������

���

�����

������

����

���

��

�����

���

�� ��

���

���

�������

��

��� �

���

���

� �����������

� ��

LxM���@83�'�� ��;�Rpxx�56z^�$$��"�0.����������"'��3�'����>�� �\mUV���3������PzS�"'�����>�� �PV<Vc���� � ��!�"�"� �#$��.2��>/�!��0����<=>�/��?"22�@"'(?#��(,�#A2�"��?"2��1�2�

Page 35: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����35

��������������� ���������������������������� !"#�!�� $�%�����&�'�� !"��(�)��"*+��,-./0�123��45�6����743��8�98�����(�'3��������������4(:�'3���'�743;8�����<��9���������� !"�!�!�����#����(54�������!����(;'3������ !"

������������ �����������45�6���������9����46

*=0�(>���������������743(��?�@��,-./�(!'��:A���3��B-C�@��,-./������D&����8�����������@��,-./�526�������?

����+�, ������������ � �����()�'*��

�� �����!"#$%������-�����

���������� ������

������������������� �

���������� ������

���� ���� ��� ���������

�!��"�#$%%�&��'(��

�������������)&�$�*&����+� ���! �� ����(�,� �$�

Page 36: MikroC book

36�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

����A�&��:8��8��E�#�&����8���B-C�@��,-./��4����46

*=F=0��������������(G�����A�&��;'3�� !"��(�)��"!�;'3�1��"�������� ������������� !"��(�)��"�4�����!9(G��F++.��8��� !"1��"�������4�����9!(G��F.�#�743�46�A�&��;'3��8����������

*=FH0�������������� (G�����A�&���A�&�8�� !(���"743#;�(�)<� !"��(�)��"!�1��"�������#�743�46�A�&���A�&�8����743��� ���������%?�#;���������I��:4�"�(�'3�(!'���A�&�8�� !(���"������(�����

*=FJ0� �!��"#�"�$� (G��'6�743�A�&��<��<9���!�(�4��(�43����<��(�)��"743�����526�����<9&�'���8�)���

*=FK0� �%"���(G�;8���A�&��<�A�&��(<��"���:�:���7�!(!��"743(!'��#;����(�'3��������:�:���7�!(!��"�@L���8!�(<��"�4:9$��<��M��8(&�'�������2�����(!'��(<��"5�����:�:���7�!(!��"�@L��#&�I?������#�743�46(!'��(G�(<��"��������

*=FN0�&'��(�#;��A�&��:8�:���I43��OO�$��P>��743#;���<���:�:���7�!(!��"@L���&�8��(G��QRS�#�743�46#;�:���I43(78���<���� ��

*H0��A�&��:8�:9$��<��M7��T��"���"&�'�:�� >�?(�;�3�� *.�UV�WX�Y/��U0�5�����:�:���7�!(!��"�@L�� (<��"743(!'��#;����743;8��� �%"���)'�*!��4���(!'��#&�#;����&!���?<<(;8�

+,-+./&� Z������A�(�M���OO�$��P>��<<:�M���!�:���I43��8(�M��KQRS

+0/+./&�Z������A�(�M���OO�$��P>��<<:�M���!:���I43�?��*KQRS�526��0

+1�+./&� Z� �����A�(�M���OO�$��P>��<<:�M���!�!������3A�

+2&+./&�Z������A�(�M���OO�$��P>��<<#;��������7��!����(�)<���9

+13�+.�4+13�+.))�Z�(�)�(�(<M!!��M�(�(<M!������������������3A�

+5 -+.�� 4+5 -+.))� Z� (�)�(�(<M!!��M�(�(<M!���;"�)���7(���"

+&�+.))4+&�+611�Z�(!'��&�'���8(!'��[���������8��5���?!�*��\-�@��/-./0

���������������� �� ����������������������������������������� !�� �"����#$��%���&'�����&�(����)���������������������� ��*

Page 37: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����37

�A�&��<����������(�)��":��6��46#&��A�&��:8�(G�:8���6����� ���:!M�7439]���A�&��<�@L�=^_``a�:8���6�����:'�

�� ������OO�$��P>��(G�<<�0/+./&

���M�(�(<M!���;"�)���7(���"� 75 -+.))8

���M�(�(<M!��������<<#;�������3A�� 713�+.))8

�A�&��<9]��� �(G������(!M�(:�'3��&���I?�&���&��5�����UV�W�7�6�&��

(�'3��A�&��:8�(�4�<����#&���9]��bc�(G����(��)��M6���������� !"��(�)��"#&�8������������� !"������������526���#&������������M

*J0�&!����������� !"��(�)��"(�4�<����!���%?�#;������������I���55���?!#�����A�&��:8��8��E�5��� !"��(�)��"��������743(��?�����������9:"����������&�'�:!M���:���743I<(:�'3���'�5��������������

�8I���������(!43��(<��"5�����:�:���7�!(!��"&�'�:���I43��OO�$��P>���%?����������������I�A�&��:8�������7)�@��,-./�d-/X+�743�9�!8������1���5��&����8��&!�����7��74

*K0�&!��������5(!43��!�5���?!#�� !"��(�)��"!��� ������<��72�������5���(!'��743(��?�����������/�%����������&�'�:!M�743��:��� ���)���

Page 38: MikroC book

38�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�����;�������<��=>�?��&��@�A�BC��"(��&�;D=�E� D���?<<�� ����5�����������4:���:!���:!2���<������� ��������e��������6�%?�743�4�'6�

e���� ������<���!��������I7A�:���(5��#�!�(54���������<�����������7��74��8��743����(�M3�(�M�:'�����7A�:���(5��#���<���7A����5�����?!7��T��"���"���#����:�:���7�!(!��"�@L�

#��?743�Hf=�(G��������8������<5��������� ����743�����<�������������<����� �����!��������g����h� i��";�3������&!��� *�Y�U�+��W�Y�0h� � i��";�3������h;9�:A���3�h�� !"(T�(���"� *R-Y\-�0�!�:A��jM<��������*.���-U/0

�8��8������743�9�#����(54��������������4�����&!���123��4!�� $�����46void main ()

{

�)����#$���}

����������� ��������������������������������������� !"#$�

����-./01/2

���345���� �� �

�$!��

�� �� ���$�

���345���� �� �

���#$�

Page 39: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����39

��F������G��H�BI<��JK>�?��&��@�A�BC��"(��&�������g����#�������� ����5����������(&�'����<�� ����7�3����4�?<<����46

Type VAR_name;

��� Type����������� �������� �������������

VAR_name�����������������������

;'3�743#;��A�&��<����&�'�;'3� i��";�3�#��� ���������I��6�;'3�743�47�6����&����'�&�'����(!5�����?8������������8������ �526�����������(G����&����'��&�'����54�(���#���k�(78���6��(;8���k\Y/=�h�Y��^K� (G����

��L�MKNO�BI� PPD�BI<��;�M����(!55������743#;���<��������:����(!��"� <8�(G��?<<&!��E����� H�<<:'�

���� !"#$%&'(�("�)*� +�,��-�./0� ��#1���� !�22"#$34(56*�+7/�.��,-0

��L����BI<��<CC�@�KIK���=� 7"$��*��'8����<<�A����(�)��4:A�����743�A���#;���8��������<�����char�8�int8�short8�long8

signed�!��unsigned� � ��������A����;8�����(!5������#������743� Hf=�����A�&��:8�<��:8��(;8� short�&�'��signed char��45�����6��8�f=H`�I2�:8��=Ha�(78����������6�(�'3��A��#;������M�#;��short�(�4����8��(�4���)���

%�������� ��� �&�' ���%��������()����*%+�

����������

char������unsigned char

signed char

short������signed short int

unsigned short�����unsigned short int

int������signed int

unsigned �����unsigned int

long������signed long int

unsigned long ����unsigned long int

���������

�������

�������

�����������

�����������

�������

���������� �����

��������

��������������� ������������

������������������

Page 40: MikroC book

40�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�$!������-678int a,b,c,d ;

unsigned height;

long size;

��!���"��������������#��!��$�%� ������&'�����$�������(#� � $��unsigned short

tmp, caracter, loop, loop2;

)*��+����,�����#� $��$������'unsigned short tmp, caracter, loop, loop2;

��L����BI<��<CC�BI� PQHKNR=�7)'���"$*�#�"$�8�A�&��<���������������8�8���(G�����<<�Float�h�double�&�'�����<<�long

double����4�A�����<�"(78����:'��K��<�"�!��45���;8�����(!5��6��8� =F=aNKlKJNm`H�n�=mSJ`�I2�^F`mN^KaaKKma�n��=mJ`

�����6�����<<���(!57g�M�������#;�;'3��Float� (�4����8��(�4���)���

Page 41: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����41

��T�MKNOPD�BI<��

��T����BI<��<CCIU��73�":8����<<�o��\� (G�����<<�M(g ����#;���<9&��� i��";�3�(�'3���8�������#&��4���:'�:8�

�$!������-676void print_temp(char temp)

{

Lcd_Out_Cp(“Temperature:”);

Lcd_Out_Cp(temp);

Lcd_Chr_Cp(223); // degree character

Lcd_Chr_Cp(‘C’);

}

����������� ���������������������������� !"# $%�����������&'�����(�)������*

��T����BI<��<CCDG��R�

������(��":'��!98�5������743�4;�M�5���?!(G�<<(�4������!�������#���(���743(�4���8���������4�?<<�������g��������46

type name[size] ;

������ type ������� ���������������$��-

name �������������������$��-

size ����������$�����&� �����!�����$��-

������������� ���59 �,�

������������ �

������� ������� ������� �������

������� ������� ������� �������

������� ������� ������� �������

������� ������� ������� �������

������� ������� ������� �������

������ ������� ������� �������

�����������

����������� �� ������

���� ���� ���� ���� ���� ��� ���

������������ � ������������ �

�����������

�� ���59 �,�

�� ���59 �,�

����������� ������������*�,-�.����/��0��'%'

Page 42: MikroC book

42�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

(�'3��������(�4��#;������������<9���;46�A�&�8�743��<9����(�M3���<�A�&�8�����6��8�m����I2��A�&�8��p�S-�f=������6�I���A�&������

int digit[5] ;

:8��\�W�/����4���;M�:'�digit[0] ,digit[1] , digit[2], digit[3], digit[4]

�$!������-67:char i ;

char digit[9]; // reserve 9 byte

void main()

{

for (i=0;i<9;i++) // Loop 9 times

{

digit[i] = 0xff ; // Load Memory with 0xff

}

}

�����������(��(� ��(��(��+��,)&�����-�.(�*��/*������'�� 0 �-��.� �-�.(�*�����( 12324 ����5���-���� 678 �,)��������-���� 0 �(�&�,)���9���� :;<< 5.���*����=��������(�+�(����&.��

��T���������@�AKO;U���NV=�KJA�BC�BI<��DG��R�

������������#&�[��:8�5���?!���7��74(�'3��4�������g:8�����:��6�����������46�������g:8��������������'6�743&�8��:����A����������<95���!��������&�'�(����8������)�����������8���8���46

�$!������-67;char digit[10]= {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

�� ���(��/*���������� !># ������ ? ���'����������( 12324 �������(�-�(�,)&����'�� @: �����(�

char digit[]= {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

�� ���(�(+��A�����(�,)����/*���������� !># ������ ? ���'����������( 12324 ������ ���=B���&'�����((+*C������,)&���� �-�.(�*D���(�-�����&��.�)������C��(+��(

Page 43: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����43

��T�F��BI<��DG��R�<CCA �R=N�N

#�<��:��6����(�)<5���?!�5���?!�������?8#��?5��������������5���?!#���(��"�M�M(�4�����������!�(5��I2�5���?!�����7A���������������'6�743��(��"�2������I����'6�743(G�<<����M�M���&�'��J��M�M����������#��?743�Hf=

�$!������-67<char i,j ;

char digit[5][15] ;

void main()

{

for (i=0;i<9;i++) // Loop 9 times

{

for (j=0;j<5;j++)

digit[i][j] = 0xff ; // Load Memory with 0xff

}

}

��(��(���&�� ���������(��(���/*���������5������(�+�(���** E �=�=

��T�L��BI<��MKNOEDRK���D��� 7��"$����3��"�W'�!8

�������(���"7A�&���743(�)<:8���(���5������743;46�A�&�8�� (�'3�(5��I2�&�8��:����A�7�����������4�?<<�������g:8���������46

Type *name ;

��� Type� ����������� �������������.��-$���-

name������������������.��-$���-

�������46�����<9��(���5��&�8��:����A�&�'��4�M�(���"743(G�:8�������6������I#;���O!�� $"�q��A�&�������(�'3���<9��(���5��������6�E����� (;8�

a = &PORTB ;

�������/������$�����'�0102�)*���(����������$��+����34567���$��

Page 44: MikroC book

44�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�$!������-67=char *DAT ; //���������������$�%�������''.��$���-void main(){

PORTB = 0 ; //�����������!+$���-�34567�8�0PORTC = 0 ; //�����������!+$���-�34569�8�0DAT = &PORTB ; //��������:;6�$�('������$��+����34567�)*��$�����'�0102*DAT = 0x90 ; //�+������ ����#������!+$���-���,����"� ���������:;6��<34567�8�01=0>DAT = DAT++ ; //�$.����������"� ��������&� �������������:;6�$�����'�010?*DAT = 0x80; //��+������ ����#������!+$���-�����"� ���������:;6�<34569�8�01@0>

}

!���������������������AB2�+����,�������!+�'$.�����C������������������.��-$���-� �����)��$�$���-�������!�������������')�D�-���-�EFGHI9� J:K�#� � �������"������"

<L>�$�M���������EFGHI9�+� �����$!(��-�����6NOPQ3IFRPNH�$����#����������$���-$�%$'��-3J9L2S@@?�����,��+�TT�U�VM���A0WXY�!���"����Z[�� �� $.���$���������DM�$�%�������\�

Page 45: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����45

<A>�.�.-)��-+����������������������AB2�!���"���������#.�-�!#� #D�-�]^N1

<_>�$�M�� ������:N`abbNH�����������Z[�� �!�����c� ������:N`abbNH��*"���&����dNeNfP�g/HF/`eN�hHIE�eFOP�&� $���������������:;6i�34567�����34569�$.��$� ����� ������:N`abbNH

<j>� $���������''����+��C�� <g/eaN>� &� $�%���$��\�+'��� �����'$'�����������������

<k>����� ������:N`abbNH��������Z[��� �$.��������+����������+������ ���������������$���������

$����,*�'�������DAT = &PORTB ;������( #FG ���������*���5�

$����,*�'������*DAT = 0x90 ;����������� HIJGK ����������'����'(

���$����,*�'�������*DAT = 0x80;�������"������������������-�'�L%��=��%&���� HIJG"

Page 46: MikroC book

46�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��X��GCC�BI� PQYVJMJK��"(��&��<<(!5e��743#;���<���:�:���7�!(!��"�4��?8� K�;�M�� ����8� ���(!5e�����h�e���h

e���M<�!�e���M<&���123�#����(54��������� ����5�������������4���<8����?<<(!5e�����#;�(:�'3��&����A�&������(!5�����4���!�(�4���8���46

����BI� PZ�K�D����(!5743�A�&��#&�(G�(!5e�������526���������mr�&�'��ms�(;8�mrmmm=mmm=� ������(!5���A�&��;�M�(G�<<� !����

����BI� PZ�K<�O����(!5743�A�&��(G�(!5e������526�����������*������ ���0�(;8�

�aaa�������(!5���A�&��;�M�(G�<<� "$�

F���BI� PZ�K�NC� (�'3�����(!5e���M<(G�:8����(!5����e����2���8�A�(G������4���526��6��6�������� �&�'���O!�� $t#�E���������I�u&��:3�5��(!5e���M<��6��6��3�fHh=KahK`Jh^K`I2��KhHlKhl^ahHlN��I��:8�743�A�&��(�M���8��46�����5��%M��!���vbX/��V��YUW-w

KF����(!5e���M<&�����(!5e���M<&���526���������mn�&�'��mx�(;8�mn_`h� mn�_Jm������(!5e���M<&����A�&��;�M����(!5(G�<<�[$!"*$�:� "$�

��\�����P�]̂PD=_ �GOBCCN��������:����(!��"���#&�%?�#;���������I(5��I2��4�M�(���"�8��E�#�����<<M��������#;��F�*�9�0

:�3���&�8��5���?!!����������_U�123��U�&���I2�<M�743�������(5��I2���4:8���6��8�m�I2��a

I����������A�&��#&��<M��m�5���4�M�(���"�@byz���4:8�(78���<�=�(54�����(G�PORTC.F0 = 1 ;

���������<:8�����<M��=�5���4�M�(���"�@byz���8��4:8�(78���<�=�&�'���8�I��#;8�#&��@byzs�<M��m�(78���<�m�(54�����(G�

if (PORTC.F1 == 1) PORTB.F0 = 0 ;

�������46�A�&��<�4�M�(���"�A�:�O%?�#;���������I��<9;'3�5��<M���6�E����(!�� *�?���!�(�4��(74�<(:4�������������;4�5�����:�:���7�!(!��"�@L��(<��"��6��E�0�(;8�

INTCON.TMR0IF = 0; (G����(:!4��" !��M�(���"���"����7(���"�mADCON0.Go=1; (G����(�M3�������7A����5�����?!!���OO�$����!��(G��M�M��!

Page 47: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����47

��`�;@��BV��YVRI�BC����BO���PD=_ <CCCN��A�&��<���#;�������:�:���7�!(!��"743�����4����8��:8�5���?!<<<M�(5��������!%!

�������4:A���3�(�'3���������5���?!(&!8���6�#&���?8#��?<<743(&������8���������!%!�(;8������A����<M�743�4!��M��v=w�#�����743�����������(!'3��<M�5���?!�����!�<�I���!��M�5��<M��(G����

��`���;@��BV<DKO��a�b�76� 8

#;�(�'3�(�4�<(74�<5���?!#�<M�743��������JAc ��dK�e�f�]�CN�QYV���YRC�QYRCQBg;_U��dK�e�f������6�#&�%!!��j"(G�� vmw��4�����:�����M�������7A��������46

� � �

� � �

� � �

� � �

� � �

�����;�"5������& :'��#;���<:8�(!5e�����#�<M�743�������#&�(G��vmw

�$!������-67>int value;

void main()

{

value = 0xAA55 & 0x00FF ; // value = 0x0055

}

�����(��(� ��( FM# ������ :;::<< �� ���(�-�5.� N *=�*��� :;FFOO ������ � P:Q 5.��.�)����������R,�+ N *=��������&� �)� :;::OO �,)���-�'�5���(+�������'�

Page 48: MikroC book

48�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��`���;@��BV�h�7.28

#;�(�'3�(�4�<(74�<5���?!#�<M�743�������� �ORJAc BEi���dK�ejf� �=kVDCN�QYVK@�=����YRC�QYRCQBg;_U��dK�ejf������6�#&�%!!��j"(G��=� ��4�����:�����M�������7A��������46

� � �

� � �

� � �

� � �

� � �

����;�"5������|�:'����<:8�#�<M�743�������#&�(G��v=w

�$!������-67?char value ;

void main()

{

value = 0b00110000 | 0b11000000 ; // value = 0b11110000

}

�����(��(� ��( IJ ���,)���-�5.���*=�*����������� :S::@@:::: �����=��� � P@Q '�������=��� E *=�*���&��+�� � P@Q .()� P:Q D���,B����'���)� :S@@@@::::

��`�F�;@��BV�l�7,.28

#;�(�'3�(�4�<(74�<5���?!#�<M�743���������ORJAc BEi���dK�ejf��=kVDCN�QYVJM���YRC�QYRC��dKejf�QBg;_UA�kD��dK�e�f�QBg;_U��������46��#&�%!!��j"(G��=����4�����:�����M�������7A��������46

� � �

� � �

� � �

� � �

� � �

����;�"5������^:'��#;��!�<5���?!(!5e�����#�<M�743�������(G����5����(�'3��^������v=w

Page 49: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����49

�$!������-67@void main(){

TRISB = 0x00 ; // Set PORTB ==> OUTPUT

while (1){ // Loop

PORTB = (PORTB ^ 0xFF) ; // Toggle PORTB

delay_ms(500); // Call Delay 500 ms

}

}

�����(��(� L������ HIJGK ������* !># �+�-�5.� !># �=��+,(=*��������L�� @TU ��)�������(VIJ ��5�W ���� P@Q ��& N *=� ��������5�(��������X���=*.��)� :;<< ��D���,B����'���+�� ��(����

��`�L�;@��BV�m�7�.-8

#;�(�'3��!�<�I���!��M�5��<M�743��������I��<M�(�M��4!��M�(G�� v=w����!��(G�� vmw�!�I���4!��M�(G��vmw����!��(G��v=w

�$!������-678Avoid main()

{

PORTB = 0x00 ; // Clear PORTB

TRISB = 0x00 ; // Set PORTB ==> OUTPUT

while (1) // Loop

{

PORTB = (~PORTB) ; // Toggle PORTB

delay_ms(500); // Call Delay 500 ms

}

}

��(��(���&�+�-���'������������*�-���� VIJ ����+�������� HIJGK ������������*���=�5.��L��+�� ��(������� ��������*'����D���� HIJGK ����(�&

Page 50: MikroC book

50�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��`�T�;@��BV� kVDKPD=_

�4��������H�:A���3�:'�

�nn��(G�:A���3�(�'3�(!'3��<M�5���?!�7��1����!��7�<M�����5���9�����!��M��vmw

oo� � (G�:A���3�(�'3�(!'3��<M�5���?!�7��5���!��7�<M�����1����9�����!��M��vmw

�$!������-6788char i ; // variable set

void main()

{

PORTB = 0x00 ; // Clear PORTB

TRISB = 0x00 ; // Set PORTB ==> OUTPUT

while (1) // Loop

{

PORTB = 0x01 ; // Start PORTB with 00000001

for (i = 0;i<8;i++ ) // 8 Time loop

{

delay_ms(500); // 500 ms delay

PORTB = PORTB<<1 ; // Shift left 1 bit

}

PORTB = 0x80 ; // Start PORTB with 10000000

for (i=0;i<8;i++) // 8 Time loop

{

delay_ms(500); // 500 ms delay

PORTB = PORTB>>1 ; // Shift right 1 bit

}

}

}

��(��(���&�� ���(�(��'��=�'����*��� HIJGK �����A����(��)����(�&�+ @ *=� ����(L�(����*��(�-���'�� ���5����(�-�����(�-���

Page 51: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����51

��p�;@��BV�����GQ@�Q� D�N�:A���3�743#;����7A�7��!��M���6���#;����%!!��j"5��������7A�������8�(G���M�&�'�(7)�

&�'�(G��vmw�&�'���8#;8� vmw� (78���6�������8��#�:8�5��%!!��j"743������������7A�7��!��M���6��E��8(&�'����<���������5���?!����<<M�����:A���3�743#;���<������7A�7��!��M�����<�����:A���3�����46

bb�*�{�W�.Y|�}B~0 #&�%!!��j"(G���M�� (�'3�(�'3���5743�A���������<(G���M�7�6�:?8

���*{�W�.Y|�by0 #&�%!!��j"(G���M�(�'3�(�'3���5#�(�'3���5&�23�(G���M�

q�*{�W�.Y|�B�/0 #&�%!!��j"(G���M�(�'3�(�'3���5(G�(7)��!�#&�%!!��j"(G�(7)�(�'3�(�'3���5(G���M�

rr (78���<

qr ��8(78���<

o �����8�

n ������8�

or �����8�&�'�(78���<

nr ������8�&�'�(78���<

�$!������-6786char sensor1 ,sensor2 ; // variable set

void main()

{

TRISB =0x00 ;

if ((sensor1>300)&&(sensor2>300))

{

PORTB.F1 = 0 ; // RB1 = 0

PORTB.F0 = 1 ; // RB0 = 1

}

}

!�����������������ONROIHL�����ONROIHA�!�� ���������������_00�!*�!����&� $����#��Fh�$�%!��

Page 52: MikroC book

52�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�$!������-678:void main(){

TRISB =0b11111100 ; // RB0,RB1 = Outputwhile(1){

if ((PORTB.F2==0)||(PORTB.F3==0))PORTB.F0 = 1 ; // RB0 = 1

elsePORTB.F0 = 0 ; // RB0 = 0

}}

�����(��(� L�� JKE .()� JKY *=�5�*=�.�%�.()���&�������=��� � P:Q �� JK: �+�����=��� � P@Q��L�� JKE .()� JKY �� � P@Q ��&�� JK: �+�����=��� � P:Q

���j�;@��BV;@�KIsQ�;sN�H������������ (��4��:A���3�743#;�#����:A���$7��:$M�g����"(�������8��:�<I����7�6��?<<5��

:A���3���M�A�&��<���<���!<�:?$�&����!� i��";�3��M(g 7����4��$�M�M�����46

� :A���3�<���*�}\\�/��U0

f :A���3�!<�*�dXr/�Y./��U0

� :A���3�:?$�*�QX|/�+|�.Y/��U0

� :A���3�&��� *~���p��U0

� :A���3�&��<<(��(g � *��8�����I#;���<���(!5743(G�7g�M�����0

�$!������-678;value = 12 / 5 ; /l�C���.m-$�����'�A�<value�$�%�������''�f^/H>

value = 6 * 3 / 4 ; //�C���.m-$�����'�j����!����2���U��'�_������� ����� ���j

value = 12.5 / 2.3; //���U�����value�$�%�������''�f^/H�C���.m-�����$�����'�k

value = 12.5 / 2.3; //���U�����value�$�%�������''�heI/P�C���.m-�����$�����'�k]j_j?@

value = 12 % 4 ; //�C���.m-���#� ����0�$����!���LA����� ���j��� �#��$����$ n

value = 14 % 5; //�C���.m-���#� ����j

value = -14 % 5; //�C���.m-���#� ���� Bj� $����!�����$����������!���!�������"�$+��

Page 53: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����53

�����;@��BV�EkVDJM�ENV=A�kD O;U��� #;��A�&��<���(�M3�:8�526��=�:8��*�U.�-�-U/0

f�f #;��A�&��<���!�:8�!��=�:8��*\-.�-�-U/0

�$!������--678<int j,k ;

void main()

{

k = 4 ;

while(1)

{

j = k++ ;

}

}

�����(��(������� .������-��-���� Z [ \]] �� \ ���������* O ���� Z ���������* ^��)�������(��(��-��� ���5.� Z [ \ ��� �����&��%�(+�-��-���� \]]

�$!������--678=int j,k ;

void main() {

k = 4 ;

while(1){

j = ++k ;

}

}

�����(��(������� .������-��-���� Z [ ]]\ �� \ ���������* O ��+�� Z �/�����* O ������)�������(��(��+�,=���� \ �������+�-�'������*���� Z

�������������������

Page 54: MikroC book

54�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

Page 55: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����55

������������������ ������������������������������� !�"�#�$�%&��'�������()��*��+,%&��$'�-.��/&!��01#� --���/�����������������2�*0�*��3����%/����������������������43����%�)�����2���0�0#���(&�()�56��0#��0.4���471������������)��*��/���(%&�����3�������8���2"*��"9����)���2��:�:��;<���� 4�����)�������"�#/������"�#9/�2�*0��9-*�������=�;��"*���� !���!�:4����3����%������������ !���2/����������>���2��0#����5�93.�?.@��31�3 2

������������� ������������������

�*��3����%�����(#�0��9"3����� �/��/������/�����������������������������4�;�!0��A'B��:��+'CD��#�/�� !���9"3=.���"9��9"3=���3���/E9��4��9"3����� ��*�� !���2%1�()�� 2�*���4� �+,,CD��2 �� !���������"--�:4�/ -��2�������� �/��/�����������������������������9* ��:4����9"3����� ��*���4�������������������3����%/ -�2�2�*0����15��4�$F��"32����/ -��2� !�"--��9"3=.���"9=���3

����+�, ������������-(�*.�*/�-���*��'������������������������ ��!"#$%�

������������ ������ ��������������� ��������������������� !

���

��

����

��� ���������

��

����

��� ����

�������

����������� ����������������

�����������

����������� ����������������

�����������

Page 56: MikroC book

56�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�������������� !

/������/���������������������3����%�)���2���56�/��.�� ���:�/������ ��G�2�����)���2/����56��.�� ��)��2��20���5H���(.�� I�J� ���� -��(.3����� KL�M� ��-.���4�����������)���2/����56������ ��)��2��20���5H���(.�� I,J� ���� -��(.3����� KL�M� ��-.���4�������2 �"32����15��4�$F+

������������ �"���"�#�����"

3)��� -������D�"9�������N�/�����������������$ %�&'()*�+,���&'())-./��:4�(#�0�;����� !�"��(9�)�������456�/��.�� ��9���������)�/��#���!�)�������456��.�� �2.(.����:������ �2.(.���(9����������)���2�#���4��(.3�����DO�PQ�� 3�0�#������15��4� $F$�(9"32�-.��#��R�����(.3�����DO�PQ��(9"32��#��:4���������)���2���/�������)�������456�/�2.(.����:��9����� ���������������� ����������������������������������� ����� ��!�"#�� $%$&��'��$%$(���� ���) ���������*+,-.

3)��� -������D�������N�"9�������S�/�����������������$ %�&'(()� �:4�(#�0�;�� !�"���/���456�/��.�� ��9����(9��3%��956�/��.�� ��9�����01#�����5�40�"5�3%��9/��/����56��9������:�2.(.���(9������9�)�7#����(.3�����DQMNT�"9�DQMNTU��15��4� $FV"32��)�"��#�-.�/����(.3�����DQMNT��:4����5�40�"5�/�������D�"9�������N�3#*��15��4�$F'"32��)�"��#�-.�����(.3�����DQMNTU� �:4�����)���2�#�2.(.����:��9�������� -������S

��������"�#$������%�����&'��� �� �������()*��+&$������,- .!

�����

�����

�����

�����

����

����

�����

�����

�����

����

����

���

���

����

����

����

����

�����

���

���

���

Page 57: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����57

�����

����

������

�����

������

�����

�����

����

����

������

����

����

������

�����

���

������

�����

����

������

����

���������������� ���������������������������������������� !"#$%��&��'()*+ ,!-"%$�,.'//-0

������������� ��������������������� �!�!�"#�$%&'(���)*)�$'���*+%,

� � � � � � � � � � � � � � � �

�������������� !"

� � � �

�������������� !#

������������

� �

�-����������� ��������).���/!01���� �!�!�"#�$%&'(���)*)�$'���*+%,

� � � � � � � � � � � � � � � �

����������� ���

� � � ���

����������� ���

������������

����1�����2�3������2�45�����4�2���6���������������������� !78-9:;<+ ,.'//-0=->?!-@;<ABCA=!-"%$�,.'//-0 D=-� !�$E=F�G�� �

����������� ������������������������ ��� !��"������#�$��%&���#�$'� ���(�)����*��#�+,'

���2�3�������2�H ��2�H���78-9:;<+ ,.'//-0=->?!-

� � � 2.�$3%45�66�7+�89�:�&�;��<=>?

@;#' ' � -!��.�/)"00�1��23��4����� 5�

+$�6�7

' � ' -!��.�/)"00�1��23��4���89� 5�+$�6897

' � � ��-!��.�/)"00�1��23��(��!�(��:�� 5�:�7

� ' ' -!��.�/)"00�1��23��4���;� 5�+$�6;7

� ' � -!��.�/)"00�1��23��4������ 5�+$�6��7

� � ' -!��.�/)"00�1��23��4����;� 5�+$�6�;7

- - - A��2.�$3%45�66�7+�89�B�.*B&�C?� �<C?#

����I�%�D�J�<�D$EA��*�+�F�:+��(G+����

����������#$����*�/���*� ����+&$������01!23�4�������������������� !56789:788;0<�;���=�<

Page 58: MikroC book

58�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

����������� � �� �� �� � �� �� �����

��������������������

������������������������

���� � � � � � � � ��� ��

���� � � � � � ���

���� � � � � � � � ���

���� � � � � � � ��

���� � � � � � � � ���

���� � � � � � � ���

���� � � � � � � � ���

���� � � � ����� � � ���

���� � � � � � � � ���

���� � � � � � � ���

���� � � � � � ��

���� � � � � � ���

���� � � � � � ���

���� � � � � � � � ���

���� � � � � � ���

�����

���

���

���

���

���

���

���

���

���

���

���

���

��� ���

���

���

���

���

���

���

���

���

��� ���

���

���

���

�����

�����

�����

�����

�����

�����

�����

�����

�����

�����

�����

�����

�����

�������������� ������������������� ����������������������������������� ������������������� ����!!�������� !"���""�������������#$��������������� ��%&���$�� ���#'��������������� ��%&���'

��

���� KL� 3L� H�%�D�M��N2OKL�N2O3L�N2OHL�N2OM� �����N����2�4P�Q������4�2�4����� ����� �� �� ����!R-S=F!-"@R-,-=+ ,+-( "*�@;<ABCA=T9F#�%$�,.'//-0 D=-� !�$E=F�G�� ������=&����=>>"����

����������#$����*�/���*� ����+&$������01!23�4�������������������� !56789:788;0<�;+�<

Page 59: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����59

��������9���*�/���*��%�#��=��&� ����+&$������03.>?�4�������������������� !56778

";G�.�� "*��U�VW�?@���(�)����*�&A��4���B�/ ����BC����D��D���*��:�'�.E��:�8F�:�G�%&��:H'�.E��:H9�! ��������

4��?@�D����������&��4�A����������*��>�(���&� I>=- ��"�����(��C�4�> 4�BC�����?@����������&��

�����

����

�����

����

�����

����

�����

����

����

����

����

���

�����

���

�����

���������

��� ��� ������ ��� ��� ������

������ ������ ������������ ������ ������ ������������

�������:X,�M����U���:X,��U�M��������� !!-"@R-,-=�$E= �=(Y� D=-� !

J'K�L��C�4�>�?@�D���*�>�(���&� I>=)����.�C�4�>�?@������4�A�����*���MN>�J�K�L��C�4�>�?@�D���*����������&��� 5�?@�- ����/������A/����O�7

��A/��&A�� 4�D��4& �����?@����������&���(��?@����=��&�����BC���� �) !�>�(���&B"��4�>����(���"�������C�4�>- �D����(�)����*�P:�$� 4��?@������>�!=

";G�.�� "*��U�VWZ�?@���(�)����*�&A��4���B�/ ����BC����D��D���*��:Q'�.E��:QG�! �������� 4��?@�D����������&��

4�A����������*��>�(���&� I>=- ��"�����(��C�4�> 4�D���*��4& ����BC�����?@�D���*����������&��

R

�����

�����

�����

����

�����

���

����

���

����

����

�����

���

�����

����������

�� ���� �� �� ��

��� ������ ������������ ������ ������ ���������

�������%�D�1���[9\ABC,-= � ��- �N>��?@��'����I�:X,�M����U�HK�:X,��U�]���������� !!-"@R-,-=�$E= �=(Y� D=-� !B\ ,���UHK�:X,��U]

J'K�L��C�4�>�?@�D���*�>�(���&� I>=)����.�C�4�>�?@������4�A�����*���MN>�J�K�L��C�4�>�?@�D���*����������&��� 5�?@�- ����/������A/����O�7

��A/��&A�� 4�D��4& �����?@����������&���(��?@����=��&�����BC���� �) !�>�(���&B"��4�>����(���"�������C�4�>- �D����(�)����*�P:�$� 4��?@������>�!=

��������@���*�/���*��%�#��=��&� ����+&$������03.>?�4�������������������� !56778

Page 60: MikroC book

60�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��������5�)�+�A�*4� �� ��-09����*��)��#���=����� ��&������������ ��B���C

��*���������.*�0������11�# �23#�-4567�89:;7/

/�������20� 4*�5/������������������������>>�(956�"--�1��1�3����%(#�0��9"3�2�� !�=.���"9=���3�0�*��/��LDV�(956�/������ �"--2��5W2�3����%(#�0��9"3=.����2���0��0#��2�0*�#�� !��%���������������(.��I�J�(9�����#�� *��������1� ����� -/���!

���15��4�$F��"32� �XE9*�(�@�0��/��/��LDV���0-� -/�������:4��R

Page 61: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����61

�0.��*. ���+�1�����234���+-���*�����<,=�����>��?��#����� ��!�(� ��S?B�/�T�U�� ����B>&���)����. ��N�I-�-��IB�&�&��*����*�����������4�A�������������MN>�%� �����&A�� 4�.S�������A/�BC����)����NV&*I?��(M��*>�!=

��4�� �����*>B>&���,WU����XYZ[���� 4�� �!�(�����S?B�/�T�U��%&�!�&A��N�I-�-��IB�&�&��*�?@�����������

�@A �� ��>#"��

T�R�� �?3>I?�%����\]^_`��)����NV&*I?��(M��*� I>=�&A��N�I-�-��IB�&�&��*%&�-!��.�/)"00�1��23��>"����

��!"0;ABC� "*F�U^�]���_����̀ `��&A�������������4�A�������������-!��.�/)"00�1��23���9'abc

��������

���

��

���

��

���

���

���

���

��

��

��

��

��

��

��

��

�����

���������

������

��������

�����

��������

���

���������

����!"

����!"

�������?�)�+���$������%���� ����������������()*���#���A�D��!���*4E(�FGHIJ!�����������

Page 62: MikroC book

62�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

���#������� ?��K����JIL,MNLO"PQ� ���#���A�D��!�$%������FGHIJ!� ��B����$������%���� ��������������� �������������������� � !56788:778

void main(){

TRISC=0x00; // Set PORTC ==> outputwhile(1) // loop{

PORTC=0x00; // LED OFFDelay_ms(500);PORTC=0xFF; // LED ONDelay_ms(500);

}}

���#������� ?� �K��� �JIL,MNLOPQ� ���#���A�D�� !� $%������ FGHIJ!� ��B����$������%������R�������������� ��������!� ��������������������� !56788:778

!-"@R-,-=+ ,T$"%!"9

I?�%����C�4�> 4���*�����?@�����*���I>=���?d��- ��'� 4��"�B�����D����(�)����*�P:�$��(���"��?d��- ��'�''� 4��"���+:P�� �A/� 4�� TH#�B�/� ��=S �"���*����B"��4�>>"�%&�4� !��!&��%&�!?d��- �����A/� 4��TH#�B"��4�>B�/� ��=S �"���*������>)! ���BC��= �����)&"��"�N?�= ��� ���A/��

void main(){

TRISC=0x00; // Set PORTC ==> output PORTC=0xAA; // Set Start LED

while(1) // loop{

PORTC=~PORTC; // ToggleDelay_ms(500);

}}

!-"@R-,-=+ ,T$"%!"9

I?�%���BC�����4�A���"�I?�%���B�/�T�U����=��?&�/=��S?%�����)&"�- �>�!=��� ��-C�)"/��,+P�%B�

T�R9�)����I?��(M��*�A/���`_ePf[e'��%&���*I?�%���g�h�������I?�%���B�/�T�U�

T�R8�BC����-��N&*%&�>�!�*I4&>I?�%����A/�B>)��i&&"j*���BC����

T�R;��"�I?�%���

BH�:I+�JKL�M%4M�,*:$�M%4 &�N�?�H &��N����H���5����+D(�E�*NE�+�4*

T�RG�%��NDI?�%������B�/%)>� �I?�%���B�/�T�U9��"���A/�I?��(M��*�?@���`_ePf[e'9Rk�BC����-��N&*%&�>�!�*I4&>I?�%����A/�B>)��i&&"j*���BC����

JKL�M%4 &�N�?�BHH &���:$�+��O(&�&$M%4�J-�-�:��NEA+O(&�&$BHA���2F�5�4*�P=Q��R�#��)��$��E.�A+�&5�����N)�$'��M+

Page 63: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����63

void main(){

TRISC.F0=0; // RC0 ==> Outputwhile(1) // Loop{

PORTC.F0=1; // LED onDelay_ms(200);PORTC.F0=0; // LED offDelay_ms(200);

}}

!-"@R-,-=+ ,T$"%!"9

I?�%������(�)"/� 4��TH#�B�/����:�'��������=�4&�>�>�=!

���#������� ?���K����JIL,MNLO�PQ� ���#���A�D��!�$%������FGHIJ!� ��B����$������%���� ��������������� �������������������� � !56788:778� ��*��B�����������(����� ���������*��&����*)������B��-!O

A=���6��2��7 9[(�� "*&#CABC,-=.-9-":�+C-:X,";G�.�� "*�\-,a�A="DF'����[FC�TFbABC�7"�< ,S9-b�c��GYF��7'<="DS8\-,+C 9#�%�C8�-9FC8bde,!*B'<=�4�TFb@;<�4�S9-b:X,����@;<�C ,!-"�+C-:X,�9;7\-"DS8\-,�M�:X,��

T�R���D�=�I?�%��� 4��TH#�B�/�C�%4� ��:�'��������=�4&�>�>�=!�I>=�D�=�I?�%���N>�>"�I?�%���B�/�T�U8�C�4�>�A/�I?��(M��*�?@���`_ePf[e'8Rk�BC����-��N&*%&�>�!�*I4&>I?�%����A/�B>)��i&&"j*���BC����

T�R��)C�4�"�I?�%���B�/�T�U;��?@����D"��TH#� ��S?%��B�/4&��4&�=���DE���I>= ��-C�)"/�B��-1��l�)��*%&�&�(��B�/�\]^_`��-��N�&��*����=�N!� 4�� 4�BC����)����I?��(M��*��`_ePf[e';�%&�!�%&���*I?�%���g�h������I?�%���B�/�T�U�

T�R��BC����-��N&*%&�>�!�*I4&>I?�%����A/�B>)��i&&"j*���BC����

Page 64: MikroC book

64�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

char i,j;void main(){

TRISC=0x00; // PORTC ==> Outputwhile(1) // Loop{

// **** Running and fill LED ****for (i=0;i<5;i++){

PORTC=0x01;for (j=1;j<8;j++){ PORTC|=(PORTC*2); Delay_ms(200);} // Use OR for fill "1"for (j=1;j<8;j++){ PORTC&=(PORTC/2); Delay_ms(200);} // Use AND for fill "0"

}// **** Running LED From Right to Left ****

for (i=0;i<5;i++){

PORTC=0x01;for (j=1;j<8;j++){ PORTC*=2;Delay_ms(200); } // Use Multiply for Rotate Left

// **** Running LED From Left to Right ****for (j=1;j<8;j++){ PORTC/=2;Delay_ms(200); } // Use Division for Rotate Right

}

// **** Blinking LED ****PORTC=0x55;for (i=0;i<10;i++){ PORTC^=0xFF;Delay_ms(200); } // Use XOR For Toggle bit

}}

!-"@R-,-=+ ,T$"%!"9

I?�%�������C�4�>�S?%��NV!�/�� TH#�4&�=�S?%��I>=���-C�)"/����(">���D���S&��>"����%&�-C�)"/�-S1%&�4���D����� !=� I>=

5�7� ��-C�)"/�-S1- �>�!=�9��A/��&A/�����D���S&N?B��O��=

597�-C�)"/�4��>�!=)��� �A/��&A/�����D���S&N?B��D!�

587�����+:�D���S&>�!=i&-S1�?@������/�&�(���J�K� 4��"�D���S&�>���I>= ���S?%��B�/! ��D���S&��� >.S��+:�>�!=�J�K�(��?@��J�K��)��

5;7������,#�>�!=i&4����?@������/�&�(���J'K� 4��"�D���S&���� >.S���,#�>�!=�J'K�(��?@��J'K

5G7�-C�)"/��W+:��?@�����&"�).���&�(��D�����B�/��������&"�).����4&"����-A����� >.S�W+:�>�!=�J�K�����"��(�.S��&"�&�(���%� .����� >.S��W+:�>�!=�J'K�- �(��?@�- ��>��

���#������� ?9��K����JIL,MNLO9PQ� ���#���A�D��!�$%������FGHIJ!� ��B����$������%���� ��������������� �������������������� � !56788:778� ��*4E(�%�$�������S&�'�$���#�/��+&���E=)*4�����%�������#������%���� mikroC

Page 65: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����65

�0.��*. ���+�5� �67�' �-���*�8��&�3���'������������������ ���19:;<<��=�-���*�� *�->*

��*����%&��H�D��N�I-�-��IB�&�&��*�����������(�BC�4���B�/�?@����������&����A/����/�( �=NV 4�-�"��%���>"��"��4���C��� ������?@���*�����*��>�(���&�(E������C�4�>- � 4��"���(�)����*��#�+,��� ��

���<,=�����>��?��#����� ��!�(� ��S?B�/�T9U�� ����B>&��

��4�� �����*>B>&���,WU����XYZ[���� 4�� �!�(�����S?B�/�T9U��%&�!�&A��N�I-�-��IB�&�&��*�?@�����������

��������

���

���

���

���

���

���

���

���

���

��

!

���

��

��"#�

���������

������

$%�����&

'����

($��($��

����

)*�����'+,

����-�

����-�

����

�������?"�)�+�$%����������$��4E(���������0�#�/�>���R��������������

���

��

����

���

Page 66: MikroC book

66�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

int dat=0,dat1=0;void main(){

ADCON1=0x07; // Set PORTA and PORTE ==> DigitalTRISA=0x00; // PORTA ==> OutputTRISE=0x00; // PORTE ==> OutputPORTE=0x00; // OFF all LEDPORTA=0x00;while(1) // Loop{ Delay_ms(100); // Fast speed delay

if (dat<64) // In Rang of PORTA{

PORTA=dat; // Show data on PORTAdat++; // Increment Data

}else{ dat=0; // Overflow PORTA

if (dat1<8) // Check data for PORTE{dat1++;PORTE=dat1; // Show data on PORTE

} else dat1=0; // Clear data aftr over flow}

}}

!-"@R-,-=+ ,T$"%!"9

���/�(���C�4�> 4�D���*����%&��H��?@�D���*�>�(���&� ���(���"��(E��C�4�> 4��?@�D�����*���� ��B�/(�!�&S?�A/�) �- ����N?%)>�i&="��TH#�B�/� ��=S �"�D���*����%&��H

���#�������?"��K����JIL0>LMNLPQ����#���A�D��!�$%������FGHIJ!���B�������4E(��������0�#�/>� ��������������������� !56788���R��������������

�@A �� ��>#"��T9R�� �?3>I?�%����\]^_`��)����NV&*I?��(M��*� I>=�&A��N�I-�-��IB�&�&��*%&�-!��.�/)"00�1��23��>"����

��!"0;ABC� "*F�U^�]���_����̀ `��&A�������������4�A�������������-!��.�/)"00�1��23���9'abc

T9R9�)����I?��(M��*�A/���`_e�Hef[e��%&���*I?�%���g�h�������I?�%���B�/�T9U�

T9R8�BC����-��N&*%&�>�!�*I4&>I?�%����A/�B>)��i&&"j*���BC����

JKL�BH�5�*2E�)*��)S�+5*A+���� �4$2E�)T,+D(�E�*NE�+�4*��NEM%4�JKL�)*)� &�N�CUV�BHD$EN��5.E�*�+�4*B��WX?-Y<Z[[�)��CUV��(G+)����2���I�N&��(9��3��:�N�*�&A:��JKL�M%4�CUV�N��5.E�*BHN�*NEN�.N��+M�+2E�(&H$�7�-\ � '��(��D.�� � �4A:�D����N� ]N�B���-����*A+.*�$)*&'(M%4�J;�-

mikroC

Page 67: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����67

�0.��*. ���+�, 67�' �-���*�8��&�?���'����19:;;<��=�-���*�� *�->*

)C�4�"�N�I-�-��IB�&�&��*�����������B�/��*����%&��Q�(�.S��C�4�> 4��?@���*����������&���)����A/����/�( �=NV 4�-�"��%���>"��"�� �����C��� ������?@���*�����*��(E�����������C�4�>- � 4���(�)����*�#�+,��� ���)��

���<,=�����>��?��#����� ��!�(� ��S?B�/�T8U�� ����B>&��

��4�� �����*>B>&���,WU����XYZ[���� 4�� �!�(�����S?B�/�T8U��%&�!�?&�/=�N�I-�-��IB�&�&��*�?@�����������

���������

���

��

���

���

��

���

���

���

��

��

��

��

��

���

��

�����

���������

������

��������

�����

��������

���

�������� !

����"#

����"#

���

���

��

���

���

���

��

��

��

��

�������?��)�+���$��4E(���������0�#�/�T� ��������������������� !56778���R��������������

Page 68: MikroC book

68�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

int dat[14] = {0xC0,0x1E0,0x3F0,0x7F8,0xFFC,0x1FFE,0x3FFF,0x3F3F,0x3E1F,0x3C0F,0x3807,0x3003,0x2001,0x00};

// LED pattern arrayint buff;char i;void main(){

ANSEL=0b11100000; // PORTA ==> digital IOANSELH=0x00; // PORTB ==> digital IOTRISA=0xC0; // PORTA ==> outputTRISB=0x00; // PORTB ==> outputwhile(1) // Loop{

for (i=0;i<14;i++) // Loop for get data from array{

buff=dat[i]&0x00FF; // Clear high bytePORTB=buff; // Show low byte ==> PORTBbuff=(dat[i]&0x3F00)/0xff; // Clear low byte and shift rightPORTA=buff; // show high byte ==> PORTADelay_ms(100); // Fast Delay

}}

}

!-"@R-,-=+ ,T$"%!"9

I?�%������)�����"!%?��mne�DE�����?@��"!%?�%������=*�A/���M�- ��S?%�����%)>�i&D���TH#�) !����BC����4&"�(����/�(���C�4�> 4�D���*����%&��Q� �?@���*�>�(���&�I>=�C�4�>- �B�/��(�)����*��,$HT%&���,$HTb�(���"���C�4�> 4��?@���*�����*��

(���"��BC����!�&S?�A/��C�- �(������=*N?) ����B�/D���*�����*���I>=�����%� �D���S&�?@�N��*& �������)C�4�"�%)>�i&B�/��*��Q�%&���������)C�4�"�%)>�i&B�/��*���

���#�������?���K����JIL,MNL778PQ����#���A�D��!�$%������FGHIJ!�������������B��4E(��������0�#�/�T� ��������������������� !56778���R��������������

�@A �� ��>#"��T8R�� �?3>I?�%����\]^_`��)����NV&*I?��(M��*� I>=�&A��N�I-�-��IB�&�&��*%&�-!��.�/)"00�1��23��>"����

�� �&A��N�I-�-��IB�&�&��*�?@������������-!��.�/)"00�1��23���9'abc

T8R9�)����I?��(M��*�A/���`_ePf[e����%&���*I?�%���g�h�������I?�%���B�/�T8U�

T8R8�BC����-��N&*%&�>�!�*I4&>I?�%����A/�B>)��i&&"j*���BC����

T8R;��"�I?�%���

JKL�BHN��5.E�*B�N&*��*��D(M�*���+)��*M�,*5*���+��H���B�NF��:+E*N&*��*D(BH �.E�M%4)� &�N�CUV�)*D$O2&2+OM&���&��WX?-Y<ZZ[�BH5�$�&3)���JKL�D��� O��D$EN�*NEN�.N��+M�+ '��(� �4$� M�,*+%,�+�4*B�)� &�NM] &�N)*D$O2&2+OM&���&�� WX?-Y<ZZ[� �(G+��� ]� '�

mikroC

Page 69: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����69

�0.��*. ���+�@�������/ ��/ A � .*7����<,=�����>��?��#���

��S?B�/� T;U��%)>�!�(�D��N�I-�-��IB�&�&��*�����������B�/������ �)!���*�>��>?& �=>"��D��B�/D�:�;�%&��:Q'��%&������� ��"!����B��S&�"?- ���'^ �N!��A/��C�4�>)g�!�&�(���J�K� �D1�B�/N� ������>)!���*���A/�������>)!���*�?&�/=�).����?@�&�(���J'K�) !�B�/��*����.S��C�4�> 4��?@���*�����*��� ��"��TH#�A/� ��%)>�).������BC����

�� ��!�(� ��S?B�/�T;U�� ����B>&��

��4�� �����*>B>&���,WU����XYZ[���� 4�� �!�(�����S?B�/�T;U�

�������?9�)�+���$������%���� ��������&�������������&+&��� ��������������������� !56788A�*4�(����)�����()*���#���A�D��!����4E(�FGHIJ!�����������4������U�����#���

������

� �

� �

� �

� �

� �

� �

� �

� �

���

��

��

��

��

��

��

��

���

��

�����

����������

�����

��������

� ���

�� ��� �

����

����������

��� !

��� !

�"���

������

����

������

���"�

����� ��

�� ��#� !

��

��

��

��

��

��

��

Page 70: MikroC book

70�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�@A �� ��>#"��

T;R�� �?3>I?�%����\]^_`��)����NV&*I?��(M��*� I>=�&A��N�I-�-��IB�&�&��*%&�-!��.�/)"00�1��23��>"����

��!"0;ABC� "*F�U^�]���_����̀ `��&A�������������4�A�������������-!��.�/)"00�1��23���9'abc

T;R9�)����I?��(M��*�A/��Qn[]k$o]ekp'���%&���*I?�%���g�h�������I?�%���B�/�T;U�

T;R8�BC����-��N&*%&�>�!�*I4&>I?�%����A/�B>)��i&&"j*���BC����

T;R;��"�I?�%����BC�����>)!���*�$��B�/� ��"�D���*��:Q'�)"�������BC����D���TH#

�$�4D$E�5.�N���JKL�M%4NE�'E�� &�N�?����M�,*:$�

�$�4�5.�N���>-�M%4)� &�N�C^��MF�A:��JKL�M%4NF��:+E* &�N�C?��N��5.E�*

T;RG�)����I?��(M��*�A/��Qn[]k$o]ekp'9�%&���*I?�%���g�h�������I?�%���B�/�T;U9

T;R��BC����-��N&*%&�>�!�*I4&>I?�%����A/�B>)��i&&"j*���BC����

T;R��="�-� ��!�(� ��S?B�/� T;U�� ����B>&���(���"��BC�����"�I?�%�����>)!���*�$��B�/� ��"�D���*��:Q'%&��$9�B�/� ��"���*��:�;�)"�������BC����D���TH#

�$�4�5.�N���>-�M%4 &�N�C^��MF�A:��JKL�N��5.E�*N�$2E�)*��)S�+5*�O��BH� �4$2E�)T,+�$�4$%�&�5.�N���>-��E�*NE�+�4*

�$�4�5.�N���>;�M%4 &�N�CUV�MF�A:��JKL�N��5.E�*N�$2E�)*��)S�+5*��NE2E�BH���*� �$�4$%�&�5.�N���>;��E�*NE�+�4*

void main()

{

TRISC.F0=0; // RC0 ==> Output

while(1)

PORTC.F0=~PORTB.F0; // LED at RC0 On when key press

}

!-"@R-,-=+ ,T$"%!"9

I?�%����C�4�>D��:�'� �?@�����*���) !�D��:Q'�B�/ ���?@�)!���*�?@�������=S %&�!��A/�( �=NV-�"��%���(���"���?@����!�&S?�A/��C�- �(������>)!���*�:Q'�%)>�B�/� TH#�:�'� I>=(�%)>�>�!=����&"�- �&�(����A/� 4��>)!���*%&�!�TH#���>)! ��

���#�������?9��K���TVNGQ.WGLQXOPQ����#���A�D��!�$%������FGHIJ!��������������B����$������%���� ��������&������������ �������������������� � !56788

Page 71: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����71

!-"@R-,-=+ ,T$"%!"9

I?�%������(� ����*����B"����*��A/�%)>�i&D���S&B�/N>�(������>)!���*� I>=.���>)!���*�C�%4� �:Q'�(��?@������/�- �D���S& ���(�)����*���*����%� .���>)!���*�:�;�(��?@����&>- �D���S& ���(�)����*��*�����4! ������>)!���*%� &�-�"��(������4� !��!&��9''���&&�!���B��A/�&>i&(��4���)"�i")D��)!���*�B�/BC� 4����>- ��>)!���*O�C�DE��4&�=�q�-�"��

���#�������?9"��K���TVNGQ.WGLQXO"PQ����#���A�D��!�$%������FGHIJ!��������������B����$������%���� ��������&������������ �������������������� � !56788� ��*�%����4�(������ 0#�/�T���R��&�����&+&����$=)�������!���R����������&+&���

void main(){

TRISC=0x00; // All PORTC ==> Outputwhile(1){

if (PORTB.F0==0) // Check SW at RB0{ PORTC++; Delay_ms(200); } // Increment PORTCif (PORTA.F4==0) // Check SW at RA4{ PORTC--; Delay_ms(200);} // Decrement PORTC

}}

�������������������

Page 72: MikroC book

72�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

Page 73: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����73

���������� ���������������� ���� �������� �!������"#�$%��$$�&��'��("��(����� )��������*��+�%�"$ ��&���$��� ��#�$��+$�����$���

���������� �Sound_Init

�,-�����������"#�$��������*��+�"$ ��*'.���&��/�/��� %���� �!�����

������������� ������void Sound_Init(unsigned short *port, unsigned short pin);

�����������port ������������ ���������������������� ������

pin������������� �� ����������������� ������

������������� !Sound_Init(&PORTB, 2);

������������� ������ ���� ������� ����������������

����+�,� ��-�����'�� �./'�0�+�� 1%234

Page 74: MikroC book

74�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

���������� �Sound_Play

�,-������������������ �!�����

������������� ������void Sound_Play(unsigned freq_in_hz, unsigned duration_ms);

�����������freq_in_hz �!"�# �#$�����%��������� &�������� $��!"��' �(��������)���!"��$�!����

*+,-.+/0�)������&# �1&��2�� � 3����� 45565� �&��!�����1� �)��%��7 &���&� � $�#$�������������1&�)� ���2�#��$81&�)��

�� ���"������#$�9�:;<=>?@3A6B�9�:;<=>CD3

�� ���"�������#$�9�:;<=>?@3AC55B�9�:;<=>C3ED33

�&�# �#$���������F������%�2��!"�# �!�G��8�������&)��HI��������Delay_Cyc�(�����)�� ��)��# �#$�����������)� ���J�����

����������� ���������������������

������� �!�"��#$�!�����%��$�������&'&&&'&&&(�)&�*�+,',,,�-./0����� �!$�!�����%�/����������1���$�!0!��������&'&&&-.��2���&3-.

������� �!0!���#$�!�����%��$�������&'&&&'&&&(�&')&&�*�4+&�-.

duration_ms��������&�G�G�$����������� &�������� $��!"�� �� $ ������!"��$�!����*+,-.+/0�)������&# �1&��2�� �3�����45E565

������������� %�������������KK�8#$������CLMN��!"��$���O�$ ����������%����!"��!�����1&�&����2

Sound_Play(2000,1000)

Page 75: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����75

�5-��*- ���+�6��������'�� �./'�0�+��1%234���������������������

�����$�)����F!����P5QO�������&�������������1��#�#�����������������RS=O4:@TT������RS=O4:@@T��J1&�� ������������F�������������������1H���!��)J��&�$�

������������&�UVWQ@TT�U/XYC33T��������&���1&������&������1��#�#������������!"�������RS=O4:@@T

������������&�&����ZWQ@TT�[\*,�SS���� �$�)����F!����P5QO����$�����1��#�#������������!"��RS=O4:@TT

��� �� ��������

P5YO� �!]&�!������^-L_`=������1H���!��)J��� �&������1��#�#�������������G#$�������KK�8��a]��&����2

����&������$�'() *++�',-.%//+�������RS=O4:@@T�#$�������KK�8��a]���C3bMN

����&������$�0) *++�1234�55�������RS=O4:@TT������RS=O4:@TTc�#$�������KK�8��a]���C3bMN

������� ���� ���������������� �������� !��"�"�#��������$� %&'�()**+� ,-���� %&'�()*++./������01� ������ �#2� 34 �$���#�Sound 5#�������#601�77�8�1�� 2� ��������

���

������

����� ��

�����

�� ��

������� ��������

���

���

���

��

��

��

���� �

������� ����

����� �

����

���

��

����

��

��������

��

��

����

���

���

Page 76: MikroC book

76�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

void main(){

Sound_Init(&PORTC,0); // Make pin RC0 ==> Speakerwhile(1){

Sound_Play(2000,1000); // Make 2kHz every 1 secondDelay_ms(1000);

}}

���������6��7������

�!���������&���� �%��U=3��!"�%������d��������� ����������)����2���G�����$��F!� ������#$������CLMN����1!�d�e�O�$ ����

P5YC������1H���!��)J�������<`*+0f/,g����G� ����!�����h�i��=����!���������P5QO

P5Y6������#��1�����G&�$�����&�!�����������&���7����j���������

P5YD�����!�����

56%��7���������� �!���� ����"��8��2!��5�������� �!��3-.9������5����������:��;����5���6��$#�<=��7��$�

P5Y5��&������1%�!�����������!�����# �#$�����%����KK�8�������&�#$�����&������ ��#$������G�$ ���OLMN����6LMN�������)�������������������&�UVWQ@TT���G�ZWQ@TT��!"�������!k��(��# �#$���������O4�����6C��������������KK�8� ��#$������������� $��OLMN�����6LMN� ����#$������F��������$ ���2� ��)1� 1&�� �����1&�� ������

���9����������!3�$�:;<=>?@ABCD����9���E�F��'�1��-�� �GHIJ;'����������#60�1�� ���2����$�%'K�2� !��"�"�#��������$�%&'�()**+�-����%&'�()*++.�2� ��������

�������������������

Page 77: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����77

�������������� ������������������������������������� !"!#$��%��&�'()*+%���!,�-��+!.�/+0'�'��0��1�1��*+#.�+2� 31���&�'()*+%���!,+!%�%��*��'4�#2��+���+�,����/+0'�'��0��1�1��+�*�-����%%'�%'(+��0�+���*����%/+0'�'��0��1�1��� 56789:;<=�*�+��>�������31���%*��������������������/�->?�� 8@�3�12����!A

�� ����/��+���B�3�12�'����������'2���������0�����0C1�.�/��+���D�31�/��+���8��!�3�12���?,����'2��!,��2����������.�/��+��� E

�� ���������!#���2�#'��+����-�+$1�!�!"��+�*�F�*+%$�)�8�3�12�

������0+�$1���!#%��!#%G�����%*44�)�31��5HI������775�E�3�12�

������0+�$1*�,�*����(��+� JKLMN��E�3�12�'������������������+�,��%31�*2��-�+$1*+%$�)

�������������!#%��!#%3��������1���8�3�12�� �O"��.��56789:;<=L�

������"����P�E�3�12�'������*44�)����������Q�#����!,���MPDR6SN�31������1!,#�3�1�1�����!,���MPT�>?��MP<

�� � ���0+�$1�U�,�+�2���(��+3%% ��0'��*� E�3�12�'��� ���������������0+�$1�U�,�+�2���(��+3%% ��0'��*V� �������U�������-�+$1.�*2���U�,�+�2���%%%*� 6E7

������0+�$13�1�*44�)����1����&�������1�8�3�12�

������������������"��������*��+� 5K5��8�3�12�� �O"��.��56789:;<=��(2��TD����

0�#�+�,����,��/�����������������������&��������+!���� �3C1������������������A�W��?A� U�,����3C1���1��-�#�-�#����X��:������A�������*�%�2��+!�����F����%�1��������������A�W����/+2� U�,���������F����%�1�����������������+����%U�,�3C1�3�21��-�#�-�#����X��Y�� �U2��������*44�)�����������!,���MPDR6SN�3C1��6SN:���� ��31�>-�+!�����F����%�1�������������

����+�,�-��*������*�.������������������� ���

���!"#$%������/�����

Page 78: MikroC book

78�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

3%%�!A� ?,�����*�%���%��� 6SNY�31�+!�����F����%�1���������������+� Z6Y�� /�-� �F�����������������������?A�.���%%���3*��.��$��!,�@G8��,��+�#'��+�2�������������.�-���������������?A�/�-��-��+!������!#+������!A

8����F����%�1���������������+�0�#���� �%���Z6Y�.��!��*�����6SN7[S����%���!A/+2+!���� ����/+2+!���������������������?A�/�-��3+-�2����,��/�.���������������������3�12���������2��W�����&������31�+!�����F����%�13�12������������������31-��F��+

E�� ��F����%�13�12������������������

B����!#�C\��U,�%����������������*����%�]�^�_7�������U�,�/�-��&��void interrupt()

T����'�#.�-���,��/���������������������.�1�X)��2��W� �����?A�

@�� �+�,��%�A����.�C\��U�%���������������31-����-���'1!#�3C1������������-�#

����������� ������������������������ ���� +!�-�#���@����'��

8`� ������� ��&��!��*����'�%'(+��������������1�

E`� �!�� ��&��!��*������F����%�13�12����������������������(���)�"����C��1

B`� �!"����&��!��*������F����%�13�12����������������������(���)�"����C��1���!,�E

T`� �#����&��!��*����3*��*>������,��/����3�12����������������������(���)�"����C��1�������2�+�%�56Y8

@`� �#"���&��!��*����3*��*>������,��/����3�12����������������������(���)�2�"2�����!,�E���������2�+�%�56YE

G IE

EEIF

T 0IF

R BIF

IN T F

EEIE

T 0IE

R BIE

IN T E

IN TER R U PT

����������� ������������������������������������������������ ���� ��!"#�����#��$�$�� �%&'

Page 79: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����79

*����%��#1���!#��A��+�����!��*�����A�� @���+!���!A

������������� ���������&��!��*�����!,+!�#*��'4*$�*(�*����%��������������*�+��>�2��31���!#�/�-�(�%���.U-��F�

���%�1���������������+31��������������"�A�a�����/+0'�'��0��1�1���567�+!��#1���!#����!A

�����

���

������

�����

����

������

�����

����

������

�����

����

������

����

���

������

����

���

������

�����

���

������

�����

��

������

���

����$�%�&�!�'&()*+(��,-.//01-�!,+*(.�*2-3�4�����5����6��������� ���� ��7������ ����� ��������������������������������

� ���� ��������������������������������������

����8�%� !�!�' ./219./+(��,-.//01-�!,+*(.�*2-3�4�����5����6��������� ���� ����:���; �<�=<���!���"��� �� �#�$�%���&���������������'&&���

������%��>�!�'�?#>��@./A()B��,-.//01-�!,+*(.�*2-3�4�����5����6������ ���� ���C���� CD6����E�7�� �>�!���"��� �� �#�$�%���&���������������'&&���

����F�%����!�'#G�H����!I-./,+(��,-.//01-�!,+*(.�*2-3�4�����5����6������ ���� ���J�����������#G>H����!���"��� �� �#�$�%���&���������������'&&���

����K� %�#G�!� ' )/-�G��9+,L.��,-.//01-�!,+*(.�*2-3� 4�����5����6������ ���� �������6����M�6�6�������=�� ��G����#GF%#G$

�!���"��� �� �#�$�%���&���������������'&&���

����"�%��>�N�'�?#>��@./A()B��,-.//01-�N(+L�*2-3�4����MO����C���� CD6����E�7�� �>����������������� ���(�)��(*�)

� �������������(�)��(*�)���+���������������������%���&���)���,��-�����!*��')��

������%����N�'#G>H����!I-./,+(��,-.//01-�N(+L�*2-3�4����MO���������� ���� ���J�����������#G>H������������ ��.�//�0�����������1�2�-����������$���34�5678

� �� ����.�//�0�����������1�2�-����������$���34�5678��+����������������������������%���&���)������,��-����"��������)-�9&)������!*��')��

����>�%�#G�N�' )/-�G��9+,L��,-.//01-�N(+L�*2-3�4����MO�����6����M�6��PO��6����������#GF%#G$�������� ��������$-�'������������$���34:�34;

� �������������$-�'����9��&�1����������$���34:�34;�- ����-� �����+����������������������������%���&���)������,��-����"��������)-�9&)������!*��')��

Page 80: MikroC book

80�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

����"�������� � �!���&��!��*������F����%�13�12��������*44�)��������������(���)�2�"2��.�3�12��2��W

*�+��>��-�>?��"�,��2��31���!#�/�-.����%%��� �+!��#1���!#����3�21�%�����!A

�����

�����

������

�����

����

������

�����

����

������

�����

��

������

����

�����

������

����

������

������

�����

�� ��

������

�����

�����

������

��

����$�%� Q �!�' +/+((.(�Q(+@.� )/-�#.+RHS/2-.��,-.//01-�!,+*(.�*2-�3�4�����5����6��������� ���� �T����������<��M6P�������7U6���=�� �������7V�T�� Q

�!���"��� ���#�$�%���&���������������'&&����<����"������19��"��������.��&��

����8�%�WX�!�'WHX��),@./-./��,-.//01-�!,+*(.�*2-3�4�����5����6��������� ���� ���C7OU6�WHX�!���"��� ���#�$�%���&���������������'&&����<����"������19��"��������.��&��

������ %�#��!� 'YQW#��#.Z.2@.� �,-.//01-�!,+*(.�*2-3� 4�����5����6��������� ���� 7T�����������7U6���C7OU6T�������7U6��:��7�'YQW#�3� � �5��[�7�U�;

�!���"��� ���#�$�%���&���������������'&&����<����"������19��"��������.��&��

����F� %��\�!� 'YQW#���/+,]^2-� �,-.//01-�!,+*(.�*2-3� 4�����5����6��������� ���� 7T�����<����7U6���C7OU6T�������7U6��:��7� 'YQW#�3� �5��[�7�U�;

�!���"��� ���#�$�%���&���������������'&&����<����"������19��"��������.��&��

����K� %� QQ �!� 'Q_,Z9/),)0]�Q./2+(� )/-� �,-.//01-�!,+*(.�*2-3� 4�����5����6��������� ���� ���C7OU6`T��7�<���:��7M��a��Cb���� '?QQ 3

�!���"��� ���#�$�%���&���������������'&&����<����"������19��"��������.��&��

����"�%��� ��!�'�� ���,-.//01-�!,+*(.�*2-3�4�����5����6��������� ���� ���C7OU6��� ��!���"��� ���#�$�%���&���������������'&&����<����"������19��"��������.��&��

������%��?#"�!�'�?#"�-)� #"�^+-Z9��,-.//01-�!,+*(.�*2-3�4�����5����6��������� ���� ���������b<����E�7�� �"�M6P������� b���6��"�' ./2)R�/.L2]-./�"3��<����

�!���"��� ���#�$�%���&���������������'&&����<����"������19��"��������.��&��

����>�%��?#��!�'�?#���@./A()B��,-.//01-�!,+*(.�*2-�3�4�����5����6������ ���� ���E�7�� ���C���� CD6��!���"��� ���#�$�%���&���������������'&&����<����"������19��"��������.��&��

Page 81: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����81

����K�������� � �!"

��&��!��*������F����%�13�12��������*44�)��������������(���)�2�"2��.�3�12��2��W���!,� E�*�+��>��-�>?��"�,��2��31���!#�/�-.����%%���+!��#1���!#����!A

�����

�����

� ��

�����

�����

����

������

����

����

������

����

�����

�����

������

������

���

������

����$�b��� �=�����+������"�����

���� 8� %��?�!� '�)^1+/+-)/� �,-.//01-�!,+*(.� *2-3� 4�����5����6��������� ���� ���C7OU6���������M��O���P��6��

���������.��&���������������'&&���

� ������%���&���������������'&&���

������b��� �=�����+������"�����

����F�%�!!�!�'!! #�?�S/2-.��1./+-2),���,-.//01-�!,+*(.�*2-3�4�����5����6��������� ���� 7T������������7U66�c�V�<��b��7�d����7U6����=��7�5�7�U�;

���������.��&���������������'&&���

� ������%���&���������������'&&���

����K� %�G�e�!� 'fG0]� ��)((2]2),��,-.//01-�!,+*(.�*2-3� 4�����5����6��������� ���� ���`����������7U6c�����d�������C7OU6`T��7�<���:��7M��a��Cb���� 'QQ 3� 7T���d����c�CV7O��"��7����

���������.��&���������������'&&���

� ������%���&���������������'&&���

����"�M6P���b��� �=�����+������"�����

����>�%��� "�!�'�� "��,-.//01-�!,+*(.�*2-3�4�����5����6��������� ���� ���C7OU6��� "���������.��&���������������'&&���

� ������%���&���������������'&&���

Page 82: MikroC book

82�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

����F�������� � �#�

��&��!��*����3*��*>������,��/���������������������,������(���)�2�"2����������2�+�%�!��*�����56Y8��+�,����,��/�������������������&��������� �%��*>���.��!��*�����56M8�����A�����*�%�2�+!�����F���GG�%�1��������������A�W��!,�!��*�����56Y8�����/+2�>-�+!�F������*�%�2��%��5Y6Y�31��Z6Y�.��!��*�����6SN7[S�� �/�-�A�'$2����/+2�>-����� �/�-��F��������������������?A��#2��*+%$�)� �*�+��>�2��31���!#�/�-�(�%��#���-�%���T�31��@� %���Nc6:�31��M76:���!,�2��/�-�#2����!#��+!��#1���!#����!A

�����

����

������

�����

���

������

�����

���

����

�����

���

����

����

����

������

����

�����

������

�����

� ���

������

�����

� ���

������

���

����$� %� Q �N� ' +/+((.(� Q(+@.� )/-�#.+RHS/2-.� �,-.//01-�N(+L�*2-3� 4����MO�g��P����<��V�T��������7U6���=�� �������7� ' Q 3

�������� ���� ������-��������

� �� �� ���-���� �����>��&#��������.����.�%1�����,��-����)-�9&)������!*��')��

����8�%�WX�N�'WHX��),@./-./��,-.//01-�N(+L�*2-3�4����MO�g��P����d�������C7OU6�WHX��������'���.�//�0-���� .�&>�0�

� �� ����'���.�//�09�����"���1����.�%1.�&>�0�

������%�#��N�'YQW#��#.Z.2@.��,-.//01-�N(+L�*2-3�4����MO�g��P���������7U6���C7OU6�YQW#�������&�*�*����)��&��)�1��?@A38�) ��

� ����&�*�*����)��&��)�1��?@A38���%���������&���>�.�&>�0�

����F�%��\�N�'YQW#���/+,]^2-��,-.//01-�N(+L�*2-3�4����MO�g��P���<����7U6���C7OU6�YQW#�������&�*�*����). ���)�1��?@A38���%��-���� �����. ����>�

� ����&�*�*����). ���)�1��?@A38�) ���'.��) ���. ����>�.�&>�0���+����������������������������%���&���)�

����K�%�QQ �N�'Q_,Z9/),)0]�Q./2+(� )/-�'QQ 3���,-.//01-�N(+L�*2-3�4����MO�g��P����d�������C7OU6�QQ ���� ���� �����$����������+������(��>��B@@C���$�+����������������������"�1���� �� �� ������$�����$�+��������������������1����+������(��>��@@C� ��"�1�����+�������

�������������������%���&���)�� ���$�����$��"�1��������+����'� �9(���,�(����@C6

�������&���. ����>�����- ��.�&>�0�

Page 83: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����83

(����6DE���.������ �������&���. ����>�����- ��.�&>�0������.<��9���$��������- ��.�&>�0�&�&�.�6DE�(�-(��>��@@C�����.<��9�-F�����- ��.�&>�0�&�&�.�6DE�(�-(��>��@@C�����.<��9���$����!�+�����- ��.�&>�0�&�&�.�6DE�(�-(��>��@@C�����.<��9��&�>��GHIJKLMNOPQOR�����- ��.�&>�0�&�&�.�6DE�(�-(��>��@@C�� ���.<��9���$�����������09��$(��>��@@C�-> ��.2�)9) �����������GSPNOR�����0�.������"��9&&�������.���������.<��9�-F��������09��$(��>��@@C�-> ��.2�)9) �����������GSPNOR��0������.������"��9&&�������.����

(����6DE�.��*�������&���. ����>�����- ��.�&>�0�

����"�%��� ��N�'�� ���,-.//01-�N(+L�*2-3�4����MO�g��P����d�������C7OU6��� �*�+��>3%2�3#���+0�+�������������0+�$1�7758�/�-���!A

(�����)11�&.�//�0���',��1��� GIHTUVWO�XLPOR�������� ������)11�&.�//�0���������$��1�.�����8B3 � �����������)11�&.�//�0���������$��1�.�����8B3 ��+�������������������������%���&��

�)������,��-����"��������)-�9&)������!*��')��

(�������-&���-&.�//�0�GILXTHWO�XLPOR������������-&���-&���>���$��1�.�����8B3 ��� �� �������� �������� �� � �� ������-&���-&���>���$��1�.����� 8B3 � �� �������������� �+���������

����������������������%���&���)������,��-����"��������)-�9&)������!*��')��

/+2+!���.U-���%���!A���������.�-�7758�������.�0�+��5HI

������%��?#"�N�'�?#"�-)� #"�^+-Z9��,-.//01-�N(+L�*2-3�4����MO�g��P�����O������ ���� ����T���7����b<����E�7�� �"�M6P����66�� �"��<����

�������, ����������D�'�9��1�.����,�&�)���D�GCOWSLP�WOQSYUOW�DR��� �� ���� �����, ����������D�'�9��1�.����,�&�)���D�GCOWSLP�WOQSYUOW�DR� �� �����+������������������

�����������%���&���)������,��-����"��������)-�9&)������!*��')��

����>�%��?#��N�'�?#���@./A()B��,-.//01-�N(+L�*2-3�4����MO�g��P�����OC���� CD6����E�7�� ���������������� ��� ���(�)��(*�)

� ������������ ����(�)��(*�)��+�������������������������������%���&���)������,��-����"��������)-�9&)������!*��')��

Page 84: MikroC book

84�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

������������� � �#"��&��!��*����3*��*>������,��/���������������������,������(���)�"����C��1���!,�E�������

�2�+�%�!��*�����56YE� �+�,����,��/�������������������&��������� �%��*>���.��!��*�����56ME����A�����*�%�2�+!�����F����%�1��������������A�W��!,�!��*�����56YE�����/+2�>-�+!�F������*�%�2��%���5Y6Y�31��Z6Y�.��!��*�����6SN7[S�� �/�-�A�'$2����/+2�>-����� �/�-��F��������������������?A�

�����

�����

� �

�����

�����

���

������

����

���

������

����

�����

�����

�����

������

���

������

����$�b��� �=�����+������"���������8�%��?�N�'�)^1+/+-)/��,-.//01-�N(+L�*2-3�4����MO�g��P������������M��O��

���� ����#F���)�1�����-&���-&'�����9����� ���������$-�'���

� �� � ����#F���)�1�����-&���-&'�����9������������$-�'���

������b��� �=�����+������"���������F�%�!!�N�'!! #�?�S/2-.��1./+-2),���,-.//01-�N(+L�*2-3�4����MO�g��P����������7U66�c�V�<��b��7�d����7U6����=��7

���� �������-����>������� )-,)��1+����>���#��-���� .�&>�0����-���� ���$�������-�

� �� �������-����>������� )-,)��1+����>���#���.�%1.�&>�0�����K� %�G�e�N� 'fG0]� ��)((2]2),� �,-.//01-�N(+L�*2-3� 4����MO�g��P���`����������7U6c�����d�������C7OU6`T��7�<���:��7M��a��Cb���� 'QQ 3� 7T���d����c�CV7O��"��7����

��������� ����=��������>�����

� ����������=��������>�&�&�.

����"�M6P���b��� �=�����+������"���������>�%��� "�N�'�� "��,-.//01-�N(+L�*2-3�4����MO�g��P����d�������C7OU6��� "��7��gM�<�M����7CV7O����d�������C7OU6��� ��EO�O����[

0�+������%*44�)����3'������ de������]_f���������� ������)11�&.�//�0���������$��1�.�����8B3 � �����������)11�&.�//�0���������$��1�.�����8B3 ��,��-����)-�9&)������!*��')��

0�+����!#%��!#%*44�)� d_]�e���]_f��������������-&���-&���>���$��1�.�����8B3 ��� �� �������� �������� �����������-&���-&���>���$��1�.�����8B3 ��� ������������������,��-�����!*��')��

/+2+!���.U-���%���!A���������.�-�775E�������.�0�+��5HI

Page 85: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����85

�0-��*- ���+�1�.2�' ��-��*������*�3 � �4567�89

���`T��7�<����h�� OM�� ����������� ���������������������������������� !"�#$%%����&'� �(&)����*+,-�*�./0���1�.23

��4��+*�&'�&,�&�*��*�5���,��56��+7*��� 8*�1���(+��9��:�;���6����'��+*�+� �(&)����6����+*�+� �(&)��1�����4� <*�1��9����(+�:3;� '��5���&�"�+7*��������9�5���&��*&�5=&&'�+,-��>?��56��� �� 8*�1+*��7*�*�

+*�&'� �(&)����*����*5���&�.23� �56���)� ��*� ,@@*A�(��&����,�&��*+8*4��+�BC����+*��������D�1�)���*� *�*�<���+*���9��*�(�5=&�,- ,@@*A�(��&����,�&��*+8*4��+� E!FGH�����*5���&�.23� ��9���,+

���)�������������������+*������

���*+�)�-����������FI$%%�JKLM�!!����&'�����&*����������

������� ()� �*���+������������ ���� *��,�-���.������/��0123&45�/��!"#�����#��$�$�� %&')6788�,�-��9���� ��:"�9 -#�����",�;��'�����<9�=>?@A'���"!��$�� �������B��#�����"

��������

���

���

���

���

���

���

���

���

���

��

��

��

��

��

��

��

��

���

��

����

����������

�����

�������

�� ��

��������

����

!" ����#$

����%&

����%&

�'���

������

�"��

������

���'�

���"� ��

�� ���(� &

��

��

��

��

��

��

��

��

Page 86: MikroC book

86�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��[��������O6���N�� ��O�����+���PQRST"� ��*��U��������+&�� ��4��6�+�������������������1��*�<�� ,@@*A�*VO+*�,���D

������������� ����������������6�+� !"�#$%%���6�� !"�#$%%/���*�<�� ,@@*A�*VO+*�W3XYZ�NW� ��*�������+&�)6���2[MQ\!]^_SSLJ^����15(�5�����+��8*`*�"�&*�����+���������Na��7*+*�����5����1�*�����������+���56���� �-b��,5c�+*��7*�*��N0��,�����+��

����������� ������������������ ����������� ���������� !"� �#$%�$��� ��������� ���&�'��()*+,-.�������� !"���/��%�&��0��%%��1���$��&�21�����3������������������������������� ����3���$����30�������&������� ��$� �� 2&/&30���������������&��������3��3%��������� ����$� ��$��&

char i;void interrupt() // Interrupt Service Routine{

for(i=0;i<10;i++) // Blinking LED when interrupt {

PORTC=0xFF;Delay_ms(100);PORTC=0x00;Delay_ms(100);

} INTCON.INTF=0; // Clear Interrupt flag

}void main() // Main program{

TRISC=0x00; // PORTC ==> OutputINTCON.INTF=0; // Clear Interrupt flag before useINTCON.INTE=1; // Enable interrupt from INT/RB0 PinINTCON.GIE=1; // Enable Global interruptwhile(1) // Main program{

PORTC=0x55; // Running LEDDelay_ms(200);PORTC=0xAA;Delay_ms(200);

}}

�����������������

��(��&������+�����4Ud�+�),��� Q]^_SSLJ^�BC����6���+(��(��&����,�&�����+���1+�1����*�7*�*��������,�����4����+���� '����D�1��9�+*�+15�(-��>?����1����--+,-����+����,+���1��6���-�*��� '��-�(+*��(��&����,�&������1&�������4���U�+�(��&����,�&�+'����+�*+�(��&����,�&�� ���� 7*��,-����+����,+��1��(���*++*�����4���U�+�(��&����,�&�� �*+�,D��������-(�+*��(��&����,�&��*+�*� !FG���1�������-(��(��&����,�&�����+'����������7*�*��+&(� ����+�'*�1�+(��(��&����,�&�

#�����"����()�!C$ �1DE>F&GHI@@JKHLF�#�����",�;��'�+�������=>?@A'���"!��$�� �������+������������ ���� *��,�-���/��!"#�����#��$�$�� � %&')6788MNO �������������������

Page 87: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����87

����������� ��������������������������� ���� ��� �!�� "���#!��!�!�$%�� �����������&�'���&!����(�!�!�$������������� )*!�!����+�,�'��-�.$�� ���/�������!-!'�&��� ��

����������..���������)012320453����6789:5,����&� ��(��.;������ �/

<=��&� ��������� ��>�;���):?@9?8�03AB42:,�����C!�;�;D ������%�('������!E�����#!�*!� �����#C! � ����������/���&�F����������<�.������'�# $>��GH����������G�.�������I& ��� ���� ��!�����I��� �I& �<J����������K�.�����

K=��&� -�.-I���� �����.%�����#!�*!� ��L"��� �-�.-I��!��C!�! %���������� & ��!��.#�*!L��!��������������;�"��!��"�� -��MN��M� � �� �� ����-�.-I�#(� � ��-�.-I����OL!(�.��M����� �!��P! -"��QGGRFH�� �S##I.� ���!�� �.��M�"� T����� ���&����..�!�����&���������..��M�QGGRFH

����+�, �*-�*.������/��0�1��� �

23'�4�+���'�!"#$%������5�����

��������������� ������� � ������ �������� ��������� ������������������������

����������� �������������������������� ��������������������� �!�������"#���������$%&'(�)*+,-./�����012����3�4����$���5������.������� 67 6!�3�����������"#��������

Page 88: MikroC book

88�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

������������ ��������%!����< ��� �&�����!��M

%!����K �� �&�%�!��.'U��/���VWX

%!����Y �� �� %!��.�� LI������ L"�����.-�!���&!�

%!����G �� �� %!�� LI�L"����� ��%��%�����-C!����;�"�%����������������������� ���������������������������������������������������������������� �

%!����W ��� �� %!�� LI����� �L"���"���!��&! ;�"�%�� %�������.��������� �� ��!�"���#����������� ��!�"����������!$%!��&������ �� ��'�����!!�"()����!$%��!��*����!�"�������

%!����J � �� %!�� LI�� �L"���!��D �.���!�����&���.��������

%!����R�$>��<G ��� !���" �� %!%�����%����������&�!$���!�"$%�$���++�,�+%$���()����������"+�����,���&�!$���!�"$%�$���++�-�+%$���()����.-��/��0

��������4��� �3��089�������� ������� � ��: �;<=>??�;@AB4CC?�DE�����3� #F�3:8�����'GHIJ*-$.

���

�����

������

����

���

��

�����

����������

��

�� �� �� �� � � �� �� ��

���

���

��

��

������

�����������

��

�� � � �� �� � � � � ��

��

��

��

���

���� ������

��

��

���

���

���

����

���

��������

��

���

���

���

�!"#$%&

�!'�(#)�"

��*+

� ��

Page 89: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����89

��#�$%�&'(�)*+,�+-�&�. ���������/..��+01�*� �6?Z37����US��M �� �!��P! �C!;��.����&���.���������L"���C! ��-�!��(���� �!�!

L�[ !������������ US��M �� �!��P! �/ #(�"���!�����&���.����������..�G�.���#>�� �%!%������G�$>��R��&! �/ ��&� %!L��M�%��'��-�-� ������M�\]������&���.���������#(�������&*!�� L��M�������

��#���$%�&'(�)*&�02+034�&�0+,�+-�&�. ��������

��#�����$%�&'(�)*�Lcd_Init

US��M �� �/�� �!��C!; �-&!������ �;���.�!�����&��������������C!; ��C!�; &�%!�&!��T�!'��������!����.����� -&!���.����� '��OL!(�C!�; &�L��M����� � "����&��&! �/ �����!��(�����C!�; &�%!���� � "����&��(;�&!������������.%!L��M�%��'��-�-� �������M�\]�� �� ��� �/

�" "����&���.%!L��M�.���R

�� "����&���.%!L��M�.���J

�5 "����&���.%!L��M�.���W

�6 "����&���.%!L��M�.���G

� "����&���.%!L��M�.���Y

��� "����&���.%!L��M�.���K

������ ��!"#��$%&�'()�void Lcd_Init(unsigned short *port);

*���+,-./�0port ������������ ������������������������������������� �� !��"#��$%&

.(1/23��45)��6�Lcd_Init(&PORTB);

������������ �����������������������������

Page 90: MikroC book

90�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��#���#�$%�&'(�)*��Lcd_Config

�C!; ��C!�; &�L��M���(�C!�; &�%!�&!�T����� � "����&���.���������L������/��C!; �US��M �� �!��C!�! L"/ P! �;���.��������� �����C!�; &�%!��/�;������C!; ��!�!�$�"��'����&!�����(���&���"�� '%�&!������!#!�L��M������� �N>������&!�#!�US��M �� �Lcd_Init()�����C!; �%!L��M�'��������&���

������ ��!"#��$%&�'()�void Lcd_Config(unsigned short *port, unsigned short RS,

unsigned short EN, unsigned short WR, unsigned short D7, unsignedshort D6, unsigned short D5, unsigned short D4);

*���+,-./�0*port ���������������������������������'(%���������� �� !��"#��$%&������������ ��

������������������������������������������ � ��������!�� ���������

RS �)*����� �!+���������������� �� !���,-������"#��$%&

EN �)*����� �!+���������������� �� !���./������"#��$%&

WR �)*����� �!+���������������� �� !���,01������"#��$%&

D7,D6,D5,D4��)*����� �!+���������������� �� !���&2�����&3������"#��$%&

.(1/23��45)��6Lcd_Config(PORTD,1,2,0,3,4,5,6);

��������!�"���"� ��� �����#��$�%&��������������������� '��� (�������'���)�'���������� '��� *�������'��+,'��� -�������'���./'��� 01�� 21�� 31�� 4�������'�� 51� 41� 31� 2�����!����

Page 91: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����91

��#�#�$%�&'(�)*�-��7����/���8�

��#�#���$%�&'(�)*�Lcd_Out

� ��C!;��.�&�%��������'����������������������#(�����(.I�C!�; &��$�� )37^,� ���(�C!�; &����������)07:,��&� ���#(�&�%��������'����������..%��%�����#(�� ���������������;�"��� %��-�!��D'�������&� � ��! US��M �� �/#(�������!�����US��M �� �Lcd_Init�;�"��Lcd_Config��&�

������ �� ��!"#��$%&�'()�void Lcd_Out(unsigned short row, unsigned short col, char *text);

*���+,-./�0row ������������ ���4�����"#��$%&col ������������ � 4� �5�����4����6!7*text �������� 4� �5���������4��������������)�8"�9�

.(1/23��45)��6�

Lcd_Out(1, 3, “Hello!”);

�������6��'�78���9:;;<����=�>6��?�%&�@���� ������%��%&��(���A��%&��!�>"�����8���B���8%&��0

��� ��

Page 92: MikroC book

92�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��#�#�#� $%�&'(�)*�Lcd_Out_Cp

�� -C!��������C!�! ;�"� ��.-C!�����LCD_Out ��&-C!���� �/�� �!��&�%��-�!�'���������C!�; &�-��MN��M�S##I.� � #>�'�&#C!�� �����(.I�C!�; &�-��MN��M�&� � �US��M �� �/� ��&!�'��D�!��&� � ��! US��M �� �/#(�������!�����US��M �� �Lcd_Init�;�"��Lcd_Config���&�

������ ��!"#��$%&�'()�void Lcd_Out_Cp(char *text);

*���+,-./�0*text �������� 4� �5���������4��������������)�8"�

.(1/23��45)��6�Lcd_Out_Cp(“Here!”);

�������>6��'�78��������%&��������� ����!�>"����7��$�C��$�D@@E���

��#�#�9�$%�&'(�)*�Lcd_Chr

�� �!��&�%�����L���'.�M�����������������������������&� �!��&�#(�������!��C!; ��C!�; &��$��)37^,� ���(��C!�; &����������)07:,� ��&� ���#(�&�%��������'����&!�'��D�!��&� � ��! US��M �� �/#(�������!�����US��M �� �Lcd_Init�;�"��Lcd_Config���&�

������ ��!"#��$%&�'()�void Lcd_Chr(unsigned short row, unsigned short col, char

character);

*���+,-./�0row ������������ ���4�����"#��$%&col ������������ � 4� �5�����4����6!7character �������� 4� �5��:��!�������������)�8"�

.(1/23��45)��6�char i ;void main(){

i = 0x30 ; // Start i with 0x20 in ASCIITRISC = 0; // PORTC is outputLcd_Init(&PORTC); // Initial default on PORTCdo{

Lcd_Chr(1,1,i); // show i on LCD

Page 93: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����93

i++ ; // Increment idelay_ms(500);

}while(i < 0x3f) ; // Loop Until I more than 0x3F

}

��������!�7���F�=�>6��?�%&��������� ���G�&����#A��7��'����8>���F�@���-H0-�=�@�IJ��7���-H0K�!�>"������>6��?�@L7�%&��G��%&�>I8%&��(�7�����$%&��(

��#�#�6�$%�&'(�)*�Lcd_Chr_Cp

�� �!��&�%�����'.�M�������'���������������������&'�&���!��(.I�C!�; &���������!��&�%������ ���#(�&�%�����'���������C!�; &�-��MN��M�S##I.� ���&!�'��D�!��&� � ��! US��M �� �/#(�������!�����US��M �� �Lcd_Init�;�"��Lcd_Config���&�

������ ��!"#��$%&�'()�void Lcd_Chr_Cp(char character);

*���+,-./�0character��������� 4� �5��:��!�������������)�8"�

.(1/23��45)��6�char i ;void main(){

i = 0x30 ; // Start i with 0x20 in ASCIITRISD = 0; // PORTD is outputLcd_Init(&PORTD); // Initial default on PORTDLcd_Cmd(LCD_SHIFT_RIGHT);do{

Lcd_Chr_Cp(i); // show i on LCDi++ ; // Increment idelay_ms(500);

}while(i < 0x3f) ; // Loop Until I more than 0x3F

}

@����8�G���%!����=������&G8���7!�6����LCD_Chr� >��@L�"M�8��� ������������7��$�C��$��8���B�%&��G����"��@��������� ��M@L��&G�������������=��������

�������� ��� � �

Page 94: MikroC book

94�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��#�#�5�$%�&'(�)*�Lcd_Cmd

�� -C!����L"��-�.-I��!��C!�! %������������ �;���&!�T��!��(����%��-C!�����&!��T������ �!�!��&�'� �/

������������ �� ������������ ��������� ��!"��#�$%�&�����!�$&�����

�����'��(����� �� ������������ ���������)��!"��#�$%�&�����!�$&�����

�����*������� �� ������������ ���������+��!"��#�$%�&�����!�$&�����

�������,�*���� �� ������������ ���������-��!"��#�$%�&�����!�$&�����

�������'.� ��!� ��/&��0�

������',�(�*�1' �� ��%2��/&3���#�$%�&�4���� ���!�$&�� �5�6��$7!8&��.1��$3��!�� &

������,������� �9:;���<:�=!����������

�����,(�'���('��( �<:��������������>&�<�&?#:6�@!3���������

�����A��(B��,�����( �<:������������@@;"C�#@

�����1�D'��,�����'� �!E��&���������������:��&��� �6��$7!/&3� ���$02���.1��$3��!�� &

�����1�D'��,������F* �!E��&���������������:��&6���6��$7!/&3� ���$02���.1��$3��!�� &

�����,�(��( ��9:;���<:�=!6��0�����

�����,�(���� �9:;���<:�=!6��0�����

�����*����'��GHIJ �!E��&6��$7!�������� ��6��$7!/&3� ���$02���.1��$3��!�� &

�����*�����F* �!E��&6��$7!�����6���6��$7!8&/&3� ���$02���.1��$3��!�� &

��������� ��� ������

������ ��!"#��$%&�'()�void Lcd_Cmd(unsigned short command);

*���+,-./�0Command�����������8 �������8 ����������"#��$%&�����������" ���;

Page 95: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����95

�6-��*- ���+�7��.'����/���'8���+���/��0�1

���94�23'�4�+��0:;&�02(:)��+-�;��<�0'�/=0'�����4�<����#)����$3=:�������"����8��������������������������!����'(%:>?@33������'(%:>?@@3��A�"�� ������������#��������������8�����B���)��<A��"�4�

��������!���"�,CD=@33�,EFGHII3�8������"����"������"������������������������)*��!����'(%:>?@@3

��������!���"�"����/D=@33�JKLM�((���� �4�<����#)����$3=:����4�����������������������)*��'(%:>?@33

��>*+�*&�0;����$3G:��)N"�)������OPQRS%�8�����B���)��<A���$&%TEMTI:���6�+����)�����U�5��%����)���������$3=:

$3GV���������������6"�4�����"�)�����������"8�!9�� �W���������

$3G2�� ��)�����

@L�"M����>6��?�'�78����@�>6��?�'�������� �� �%�N�� *����%�������>������O�"���"��G=��8��@L���������P��P�"��@�� ������'����� �������7��$�C��$� >6��'�����8���B��>6��'������8��'

��������?�7�/�� ����� �K� ��� ������� L7M#F�3:8�����'G�����N*(OP��6��"10���:

���

�����

������

����

���

��

�����

����������

��

�� �� �� �� � � �� �� ��

���

���

��

��

������

�����������

��

�� � � �� �� � � � � ��

��

�� ��

���

���� ������

��

��

���

���

���

����

���

��������

��

���

���

���

�!"#$%&�!'�(#)�"��*+

� ��

Page 96: MikroC book

96�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

char *text1 = "Innovative";char *text2 = "Experiment";char txt[4];char i;void main(){

Delay_ms(1000); // Start up DalayTRISD =0x00; // PORTD ==> OUTPUT for LCDLcd_init(&PORTD); // Initialize LCD connected to PORTDLcd_Cmd(LCD_CURSOR_OFF) ; // Turn cursor offfor (i=0;i<4;i++) // Blink lcd{

Lcd_Cmd(LCD_CLEAR); // Clear displayDelay_ms(500);Lcd_Out(1, 3, text1); // Print text to LCD, 2nd row, 1st columnLcd_Out(2, 3, text2); // Print text to LCD, 2nd row, 1st columnDelay_ms(1000);

}for (i=0;i<11;i++) // Shift data left{

Lcd_Cmd(LCD_SHIFT_LEFT);Delay_ms(200);

}for (i=0;i<11;i++) // Shift data right{

Lcd_Cmd(LCD_SHIFT_RIGHT);Delay_ms(200);

}for (i=0;i<4;i++) // blink lcd{

Lcd_Cmd(LCD_CLEAR); // Clear displayDelay_ms(300);Lcd_Out(1, 3, text1); // Print text to LCD, 2nd row, 1st columnLcd_Out(2, 3, text2); // Print text to LCD, 2nd row, 1st columnDelay_ms(300);

}Lcd_Cmd(LCD_CLEAR); // Clear Screeni=0;while(1){

i++; // IncrementLcd_Out(1,1,"Counter "); // Show textByteToStr(i,txt); // Convert Data to StringLcd_Out_cp(txt); // Chow Lcd at cursorDelay_ms(400);

}}

����3�������?��� �3��67 6!�3������������� �������Q����� ����R

��4&���$�/�7��� �+

:G��� 4��4���:�4+��������4����"��������&��)*������7������+" �� !��"#��$%&HG�����"� ���+�������� !��"#��$%&���6 X�� ����)N"����8"�9����������Y���VG�4��#)�2���!������8"�����4�������"#��$%&�9#�������<6��A�����4�������"#��$%&�+"�6��+!2G� 4��#)���������������4���)���Y�������48 ������������4���� !������� X��<��� X�8 ���6��+!����4��ZG� 4��#)��� � 4� !������8"������"#��$%&� ����������A�4 ���"#��$%&�8������8"�� � 4����"�� <6����)������ � 4��������# ���#)����� 8��8��X� ��� �"����B[���� ���C\TE]S-TR

mikroC

Page 97: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����97

��9�$%�&'(�)*�Lcd8�+,�+-�&�. ���������/..�?�.,+������������������%!���� � "����&���.'��-�-� �������M�<<�%!������ -"�

%!%�������H�$>��R�����F���

%!�_`a��C!;��.�!������&! ;�"�%�� %�������.��������

%!�_b��C!;��.�"���!�%�� %�����;�"�-C!����

%!�c��C!;��.�D �.���!�����&���.��������

��� �/ US��M �� �����C!;��.�!�����&���.����������..�F�.��#>�����&!�#!�US��M �� ����!��P! � "���#!����!��&�� ��! �!���dd!e-�.�I���

��� ���

����

���

��

������������

����

��

��

��

���

���

���

���

��

���

��������

��

���

��

�� ��

�� �� ��

� ��

�� � �� ��

�� � � �

��� �� �

� �

����

��

���

���������� !"#���

�����$

���������

�����

����$

�%%

�%%

&��&���

��

'()���*+

, ,

��

���

��

���

���

��������S��� �3��089������"��6�6������0���:�TI��3� �� �������� �>� 2�

Page 98: MikroC book

98�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��9���$%�&'(�)*�Lcd8_Config

� ��C!;��.�C!; �-&!�C!�; &�L��M����� � "����&���.������(�C!�; &�%!�&!��T����� � "����&�L������/��C!; �US��M �� �!��C!�! L"/ P! �;���.�����������!�!�$���.�C!�; &�%!'���!������!�

������ ��!"#��$%&�'()�void Lcd8_Config(unsigned short *ctrlport,unsigned short *dataport, unsigned short RS, unsigned short EN,unsigned short WR, unsigned short D7, unsigned short D6,unsigned short D5, unsigned short D4, unsigned short D3,unsigned short D2, unsigned short D1, unsigned short D0);

*���+,-./�0*ctrlport ������������������������ �� !���4!�7������"#��$%&

*dataport ����������������������������� �� !������#������"#��$%&

RS ����������������� �� !���,-������"#��$%&

EN ����������������� �� !���./������"#��$%&

WR ����������������� �� !���,01������"#��$%&

D7-D0 ����������������� �� !������#��&I�����&3������"#��$%&

.(1/23��45)��6�Lcd8_Config(&PORTC,&PORTD,2,3,0,7,6,5,4,3,2,1,0);

��8�G����&N������� ���������#��$�6!�"���������'�78�7E��>�L�� ��� �����#��$�6!�"���������'�'�����>�L�!�"��'������������>6�������%&��4Q0�����7��

'�#��$����*�������'���)�'����������

'�#��$����0�������'��+�'����������

'�#��$����-�������'���./�'����������

'�#��$��� -�IJ��� 5�������'�� -�IJ�� 5�'����������

Page 99: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����99

��9�#�$%�&'(�)*�Lcd8_Init

� ��C!; ��C!�; &�L��M���(%!%��'��-�-� �������M�\]������ � "����&���.��������� �..� F�.���L������/��C!; �US��M �� �!��C!�! L"/ P! �;���.������ ��� & ������.-C!����Lcd8_Config /+-@�-+7��&A�B*�+A�/B*-���C�0'+;3)D(72(:)��+-��0E.F2C34�C�0'+;3)D(7D*&�02(:)��+-�&�. ���������2;-�*�>*

������ ��!"#��$%&�'()�void Lcd8_Init(unsigned short *ctrlport, unsigned short *dataport);

*���+,-./�0*ctrlport �������"������������������������������������ �� !���4!�7������"#��$%&�Y���

���������"���� ��4�" ���X

���.������"#��$%&� �� !�������4!�7�!+�>

���,-������"#��$%&� �� !�������4!�7�!+�2

���,01 �����"#��$%&� �� !�������4!�7�!+�Z

*dataport � �������"����8��� !������#�� �"����������"��������� ��4�" ���X

���&3������"#��$%&� �� !�����������������������!+�3

���&>������"#��$%&� �� !�����������������������!+�>

���&Z������"#��$%&� �� !�����������������������!+�Z

���&2������"#��$%&� �� !�����������������������!+�2

���&V������"#��$%&� �� !�����������������������!+�V

���&H������"#��$%&� �� !�����������������������!+�H

���&:������"#��$%&� �� !�����������������������!+�:

���&I������"#��$%&� �� !�����������������������!+�I

.(1/23��45)��6�Lcd8_Init(&PORTC,&PORTD);

��8�G����&N��� �����������'�78�7E�'���������� �>�L�� ��� �������'�'��������6��7�����"��G�R��!�"��� �����>�L� ��� �������@���������L�EIJ�>�����6'��#��$�8�@������������6!�"���7!�6����&N>6�������%&�� 4Q0

Page 100: MikroC book

100�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��9�9�$%�&'(�)*�Lcd8_Out

US��M �� �/� ��C!;��.�&�%��������'����������; �!#�����#(�����(.I�C!�; &��$�� )37^,��(�C!�; &����������)07:,��&� �&�%��������'����������..%��%�����#(�� ���������������;�"��� %��-�!��D'����&� � ��! US��M �� �/#(��������US��M �� �Lcd8_Init�;�"� Lcd8_Config��&�

������ ��!"#��$%&�'()�void Lcd8_Out(unsigned short row, unsigned short col, char *text);

*���+,-./�0row ������������ ���4�����"#��$%&col ������������ � 4� �5�����4����6!7

*text �������� 4� �5���������4��������������)�8"�9�

.(1/23��45)��6�Lcd8_Out(1, 3, “Hello!”);

�������6��'�78���9:;;<����=�>6��?�%&�@���� ������%��%&��(���A��%&��!�>"�����8���B���8%&��0�������

��� ��

��9�6�$%�&'(�)*�Lcd8_Out_Cp�� -C!��������C!�! -��!���.-C!�����Lcd8_Out ��&-C!���� �/�&�%��-�!�'���������C!�; &�%��

-��MN��M�S##I.� �#>�'�&�����(.I�C!�; &�-��MN��M��&� � ��! US��M �� �/#(��������US��M �� �Lcd8_Init;�"� Lcd8_Config��&�

������ ��!"#��$%&�'()�void Lcd8_Out_Cp(char *text);

*���+,-./�0*text �������� 4� �5���������4��������������)�8"�9�

.(1/23��45)��6�Lcd8_Out_Cp(“Here!”);

�������>6��'�78��������%&��������� ����!�>"����7��$�C��$�D@@E���

Page 101: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����101

��9�5�$%�&'(�)*�Lcd8_Chr

�� �!��&�%�����; >��'.�M'�������������������#(�����C!; ��C!�; &��$�� )37^,���(�C!�; &����������)07:,��&� �&�%��������'���&� � ��! US��M �� �/#(��������US��M �� �Lcd8_Init;�"� Lcd8_Config��&�

������ ��!"#��$%&�'()�void Lcd8_Chr(unsigned short row, unsigned short col,char character);

*���+,-./�0row ������������ ���4�����"#��$%&

col ������������ � 4� �5�����4����6!7

character��������� 4� �5��:��!�������������)�8"�9�

.(1/23��45)��68char i=0x30; // Start String 0

void main()

{

Delay_ms(1000); // Start up Delay

Lcd8_Init(&PORTC,&PORTD); // E => RC6 : RS => RC4 : R/W => RC5

while(i<0x3A) // Loop until i > 9

{

Lcd8_Chr(1,5,i); // Show i => LCD

Delay_ms(1000);

i++; // Increment i

}

}

@����8�G�����������!�7���F�=�>6��?�%&��������� ���G�&����#A��7��'����8>���F�@���-H0-�=�@�IJ�7���-H0S�6�8��!�>"������>6��?�@L7�%&��G��%&�>I8%&��(�7�����$%&��3

Page 102: MikroC book

102�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��9���$%�&'(�)* Lcd8_Chr_Cp

�� �!��&�%�����; >��'.�M'�����������������������C!�; &�-��MN��M�S##I.� ��&� � ��! US��M �� �/#(��������US��M �� �Lcd8_Init�;�"� Lcd8_Config��&�

������ ��!"#��$%&�'()�void Lcd8_Chr_Cp(char character);

*���+,-./�0character��������� 4� �5��:��!�������������)�8"�9�

.(1/23��45)��69char i=0x30; // Start String 0

void main()

{

Delay_ms(1000); // Start up Delay

Lcd8_Init(&PORTC,&PORTD); // E=RC6:RS=RC4

while(i<0x40) // Loop until 16 character

{

Lcd8_Chr_Cp(i); // Show i => LCD

Delay_ms(1000);

i++; // Increment i

}

}

@����8�G���%!����=������&G8���7!�6����LCD8_Chr��������������7��$�C��$���8���B�%&��G����@�>6��?��M@L��&G�������������=�� ������

��� ����� � � � ��

Page 103: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����103

��9�"�$%�&'(�)*�Lcd8_Cmd

�� US��M �� ���.��#I-C!����-�.-I��!��C!�! %������������ �;���&!�T��������� �!�!��&�'� �/

������ ��!"#��$%&�'()�

������������ �� ������������ ��������� ��!"��#�$%�&�����!�$&�����

�����'��(����� �� ������������ ���������)��!"��#�$%�&�����!�$&�����

�����*������� �� ������������ ���������+��!"��#�$%�&�����!�$&�����

�������,�*���� �� ������������ ���������-��!"��#�$%�&�����!�$&�����

�������'.� ��!� ��/&��0�

������',�(�*�1' �� ��%2��/&3���#�$%�&�4���� ���!�$&�� �5�6��$7!8&��.1��$3��!�� &

������,������� �9:;���<:�=!����������

�����,(�'���('��( �<:��������������>&�<�&?#:6�@!3���������

�����A��(B��,�����( �<:������������@@;"C�#@

�����1�D'��,�����'� �!E��&���������������:��&��� �6��$7!/&3� ���$02���.1��$3��!�� &

�����1�D'��,������F* �!E��&���������������:��&6���6��$7!/&3� ���$02���.1��$3��!�� &

�����,�(��( ��9:;���<:�=!6��0�����

�����,�(���� �9:;���<:�=!6��0�����

�����*����'��GHIJ �!E��&6��$7!�������� ��6��$7!/&3� ���$02���.1��$3��!�� &

�����*�����F* �!E��&6��$7!�����6���6��$7!8&/&3� ���$02���.1��$3��!�� &

��������� ��� ������

������ ��!"#��$%&�'()�void Lcd8_Cmd(unsigned short command);

*���+,-./�0Command�����������8 �������8 ����������"#��$%&�����������" ���;

Page 104: MikroC book

104�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��� ����

��

���

��

������������

����

��

��

��

��

��

��

��

��

��

��������

��

���

��

�� �

�� �� ��

�� ��

� �� �� ��

�� � � �

�� � �

� �

����

��

���

���������� !"���#�

����$

���������

���

���$

�%%

�%%

&���&���

��

'()���*+

��,� ��,�

��

��

��

��

��

��

��

��������>�7�/�� ���3��089�������� �������� �>� 2����"��6�6������0���:�TI�

�6-��*- ���+�<��.'����/���'8���+���/��0�1

���94�23'�4�+��0:;<&�02(:)��+-�;��<�0'�/=0'�����4�<����#)����$@=:�������"���

��������!���"�"����/D=@33�JKLM�((���� �4�<����#)����$@=:����4�����������������������)*��'(%:>?@33

��>*+�*&�0;����$@G:��)N"�)������OPQRS%�8�����B���)��<A���$%&@TEMT���6�+����)�����U�5��%����)���������$@=:

$@GH���������������6"�4�����"�)�����������"8�!9�� �W���������

Page 105: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����105

char *text1 = "Innovative" ;char *text2 = "Experiment" ;char text3=0x30,i ;

void main(){

Lcd8_Init(&PORTC,&PORTD); // Initial default on PORTCLcd8_Out(1,1,text1); // Show string from memoryLcd8_Out(2,1,text2); // Show string from memoryDelay_ms(1000);Lcd8_Cmd(LCD_CLEAR); // Clear LCD displayLcd8_Out_Cp("Show Number 0-9"); // Show text on first rowLcd8_Cmd(LCD_SECOND_ROW); // Set cursor to second rowwhile(text3<0x3A){

Lcd8_Chr_Cp(text3); // Show number 0 to 9text3++; // Increment numberdelay_ms(300);

}for (i=0;i<16;i++){

Lcd8_Cmd(LCD_SHIFT_LEFT); // Shift display leftdelay_ms(300);

}for (i=0;i<16;i++){

Lcd8_Cmd(LCD_SHIFT_RIGHT); // Shift display rightdelay_ms(300);

}Lcd8_Cmd(LCD_CURSOR_OFF); // Off cursor

}

��4&���$�/�7��� �+

�)������! ���������" ���X

:G�����"�����&��)*�����8��� !��������#������"#��$%&�8 4������%��)*������4!�7�

HG�������4���Innovative Experiment��8"������"#��$%&

VG��� 4��4���:�4+�������4�����������<��8"�9��������8"�����4���Show Number 0-9����!��� "���

2G����������Y����)�8"����!��� "����H�^!��� "� ��_������������8"�9����!��� "����H

ZG�4��#)�8"�� � 4����I�����`��"��8"��!!�� ��" !�)�� �� �������

>G�8 ������������4���)"���Y�����6�� !��������� ��"+����������#��4�� ���4)N"����8"�9�������Y���

����3�������>�"#�:����>-@U-B'�����3��V�W����019��67 6!�3���� �K��� ������� L7M#F�3:8����'G>�����N*(OP��6��"10���:

Page 106: MikroC book

106�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

$@GV�� ��)�����

@L�"M����>6��?�'�78��

� ������ ��

����� ��

>�8���&�G�����

� ����� �� � � �

�������� ��

mikroC

Page 107: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����107

��6�$%�&'(�)*�Lcd_Custom� �A�B0�.&A�B*�&�02(:)��+-� �������� B���6�.,+�/..&A�B*���2��@�7

�C!;��.�!�����..��#�� .!�-��/�'�&�!�!�$�C!; �%!L��M��;�����!�'�.�!��� ������'��� �6?Z37��'�������US��M �� �Lcd_Custom� L"�� &���;��!�!�$�C!; �%!L��M�%��'��-�-� �������M�\]���;��!�!�$ "����&���.���������'����&!�����(���������.�!� "����&��..G�.���%!L��M����� ��&���.%!%�����#(�������&� L��M���I&������� ��&� %!L��M����� ��&���.%!-�.-I�%������������D�������&� L��M���I&������� & �� ���&%!L��M���/��K���I&� �/�!�!�$� �- �(��I&�'��

��'����'�!()�12�!3)���������4�"3$���()����&"�+$%�$��!�+5�����67.���$���!��&��(&�����4�"3$���$348$!����"�#!()����12�!3)������

��6���$%�&'(�)*�Lcd_Custom_Config

US��M �� �/� ��C!;��.�C!; �L��M���(%!L��M����� � "����&���.��������� �L������/��C!; �US��M �� �!��C!�! L"/ P! �;���.������ �����!�!�$���.�C!�; &�%!L��M����� � "����&�'���!������!�

������ ��!"#��$%&�'()�void Lcd_Custom_Config(char * data_port, char D7,char D6, char D5, char D4, char * ctrl_port, char RS,char WR, char EN);

*���+,-./�0*dataport � �������"����8��� !������ �� !������#������"#��$%&

D7-D4 ������������ �!+�������������#������� �� !���&3�����&2������"#��$%&

*ctrlport �������"������������������������������������ �� !���4!�7������"#��$%&

RS ������������ �!+����������4!�7�������8��� !���,-������"#��$%&

EN ������������ �!+����������4!�7�������8��� !���./������"#��$%&

WR ������������ �!+����������4!�7�������8��� !���,01������"#��$%&

.(1/23��45)��6��Lcd_Custom_Config(&PORTD,7,6,5,4,&PORTC,4,5,6);

�������������� ��� � ����#��$�6!�"���'�'����� >�L�� � ����� ����#��$�6!�"���'�78�7E���&����!�"��'���������>6�������%&�� 4Q2

Page 108: MikroC book

108�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��6�#�$%�&'(�)*�Lcd_Custom_Out�� US��M �� �/�&�%�����'������������������������(.I�C!�; &��$�� )37^,���(��C!�; &�

��������� )07:,��&� �&�%��������'�� �����..%��%�����#(�� ���������������;�"��� %��-�!��D'������� �!�� ��! US��M �� �/#(��������� �US��M �� � �Lcd_Custom_Config��&�

������ ��!"#��$%&�'()�void Lcd_Custom_Out(char row, char col, char *text);

*���+,-./�0row ������������ ���4�����"#��$%&col ������������ � 4� �5�����4����6!7*text �������� 4� �5���������4��������������)�8"�9�

.(1/23��45)��6��Lcd_Custom_Out(1, 3, “Hello!”);

�������6��'�78���9:;;<�=�>6��%&��������� ������%��%&��(�T���%����U���A��%&��!�>"������B���8%&��0

��� ��

��� ���

����

���

��

������������

����

���

���

���

���

���

���

�������

���

��

�� �

�� �� ��

� ��

�� �� �

� �

��&&

��

���

�������,$�-./!,��0

������

���������

����

�����

�''

�''

1��1���

��

23����*+

4 4

��������X�3��089�������� �������0�L�3� �TI��Y>??����#F�3:8����Lcd_Custom_Config()

Page 109: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����109

��6�9�$%�&'(�)*�Lcd_Custom_Out_Cp�� US��M �� ����C!�! -��!���.US��M �� �Lcd_Custom_Out� ��&-C!���� �/�&�%��-�!�'��������

�C!�; &�-��MN��M�S##I.� ��� �!�� ��! US��M �� �/#(��������� �US��M �� ��Lcd_Custom_Config��&� ������ ��!"#��$%&�'()�void Lcd_Custom_Out_Cp(char *text);

*���+,-./�0*text �������� 4� �5���������4��������������)�8"�9�

.(1/23��45)��6�Lcd_Custom_Out_Cp(“Here!”);

�������>6��'�78��������%&��������� ����!�>"����7��$�C��$�D@@E���

��6�6�$%�&'(�)*�Lcd_Custom_Chr�� US��M �� �&�%�����; >��'.�M'�����������������������&� �&������C!; ��C!�; &��$��)37^,

��(�C!�; &����������)07:,�� �!�� ��! US��M �� �/#(��������� �US��M �� ��Lcd_Custom_Config��&�

������ ��!"#��$%&�'()�void Lcd_Custom_Chr(char row, char col, char character);

*���+,-./�0row ������������ ���4�����"#��$%&col ������������ � 4� �5�����4����6!7character��������� 4� �5��:��!�������������)�8"�9�

.(1/23��45)��6��char i=0x30; // Start String 0void main(){

TRISC=0b10001111; // Bit 4-6 as OUTPUTTRISD=0x0F; // Bit 4-7 as OUTPUTDelay_ms(1000); // Start up DelayLcd_Custom_Config(&PORTD,7,6,5,4,&PORTC,4,5,6);while(i<0x3A) // Loop until i > 9{

Lcd_Custom_Chr(1,5,i); // Show i => LCDDelay_ms(1000);i++; // Increment i

}}

��������!�7����F��=�>6��?�%&��������� �>�8�#A��7��'���F�@���-H0-�IJ��7���-H0S��G>6��?�%&�>I8%&��(�T���%����U�7�����$%&��3

Page 110: MikroC book

110�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��6�5�$%�&'(�)*�Lcd_Custom_Chr_Cp

�� US��M �� �&�%�����; >��'.�M'�����������������������C!�; &�-��MN��M�S##I.� � � �!�� ��! US��M �� �/#(��������� �US��M �� ��Lcd_Custom_Config��&�

������ ��!"#��$%&�'()�void Lcd_Custom_Chr_Cp(char character);

*���+,-./�0character��������� 4� �5��:��!�������������)�8"�9�

.(1/23��45)��6��char i=0x30; // Start String 0

void main()

{

TRISC=0b10001111; // Bit 4-6 as OUTPUT

TRISD=0x0F; // Bit 4-7 as OUTPUT

Delay_ms(1000); // Start up Delay

Lcd_Custom_Config(&PORTD,7,6,5,4,&PORTC,4,5,6);

Lcd_Custom_Cmd(LCD_CLEAR);

while(i<0x40) // Loop until i > 9

{

Lcd_Custom_Chr_Cp(i); // Show i => LCD

Delay_ms(1000);

i++; // Increment i

}

}

@����8�G���%!����=������&G8���7!�6����LCD_Custom_Chr ������������7��$�C��$� ��8���B�%&��G����@�>6��?�'���������� ��M@L��&G�������������=��������

�������� �� � !" #$

Page 111: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����111

��6���$%�&'(�)*�Lcd_Custom_Cmd

�� US��M �� ���.��#I-C!����-�.-I��!��C!�! %������������ �;���&!�T��������� �!�!��&�'� �/

������������ �� ������������ ��������� ��!"��#�$%�&�����!�$&�����

�����'��(����� �� ������������ ���������)��!"��#�$%�&�����!�$&�����

�����*������� �� ������������ ���������+��!"��#�$%�&�����!�$&�����

�������,�*���� �� ������������ ���������-��!"��#�$%�&�����!�$&�����

�������'.� ��!� ��/&��0�

������',�(�*�1' �� ��%2��/&3���#�$%�&�4���� ���!�$&�� �5�6��$7!8&��.1��$3��!�� &

������,������� �9:;���<:�=!����������

�����,(�'���('��( �<:��������������>&�<�&?#:6�@!3���������

�����A��(B��,�����( �<:������������@@;"C�#@

�����1�D'��,�����'� �!E��&���������������:��&��� �6��$7!/&3� ���$02���.1��$3��!�� &

�����1�D'��,������F* �!E��&���������������:��&6���6��$7!/&3� ���$02���.1��$3��!�� &

�����,�(��( ��9:;���<:�=!6��0�����

�����,�(���� �9:;���<:�=!6��0�����

�����*����'��GHIJ �!E��&6��$7!�������� ��6��$7!/&3� ���$02���.1��$3��!�� &

�����*�����F* �!E��&6��$7!�����6���6��$7!8&/&3� ���$02���.1��$3��!�� &

��������� ��� ������

������ ��!"#��$%&�'()�void Lcd_Custom_Cmd(char out_char);

*���+,-./�0Command�����������8 �������8 ����������"#��$%&�����������" ���;

Page 112: MikroC book

112�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��� ���

����

���

��

������������

����

��

��

��

���

���

���

���

���

���

��������

��

���

��

�� ��

�� �� ��

� ��

��� �� �

� �

����

��

���

���������� !"#���

�����$

���������

�����

����$

�%%

�%%

&��&���

��

'()���*+

, ,

�6-��*- ���+�=��.'����/���'8���+���/��0�1

���94�23'�4�+�� 0:;>�?@A%!&�02(:)��+-�;��<�0'�/=0'�����4�<����#)����$`=:�������"���

��������!���"�"����/D=@33�JKLM�((���� �4�<����#)����$`=:����4�����������������������)*��'(%:>?@33

��>*+�*&�0;����$`G:� �)N"�)������OPQRS%�8�����B���)��<A��� $%&aLMTSO]EMT���6�+����)�����U�5��%����)���������$ =̀:

$`GH���������������6"�4�����"�)�����������"8�!9�� �W���������

������� �Z�7�/�� ���3��089�������� ��� ����� 3���� ��1��:��2������"��6�6������0���:TI�� 019��� �� 3�����������#F�3:8����Lcd_Custom

Page 113: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����113

char *text1 = "Innovative" ;char *text2 = "Experiment" ;char text3=0x30,i ;void main(){

TRISC=0b10001111; // Bit 4-6 as OUTPUTTRISD=0x0F; // Bit 4-7 as OUTPUTDelay_ms(1000); // Start up DelayLcd_Custom_Config(&PORTD,7,6,5,4,&PORTC,4,5,6);Lcd_Custom_Cmd(LCD_CLEAR);Lcd_Custom_Cmd(LCD_CURSOR_OFF);Lcd_Custom_Out(1,1,text1); // Show string from memoryLcd_Custom_Out(2,1,text2); // Show string from memoryDelay_ms(1000);Lcd_Custom_Cmd(LCD_CLEAR); // Clear LCD displayLcd_Custom_Out_Cp("Show Number 0-9"); // Show text on first rowLcd_Custom_Cmd(LCD_SECOND_ROW); // Set cursor to second rowwhile(text3<0x3A){

Lcd_Custom_Chr_Cp(text3); // Show number 0 to 9text3++; // Increment numberdelay_ms(300);

}for (i=0;i<16;i++){

Lcd_Custom_Cmd(LCD_SHIFT_LEFT); // Shift display leftdelay_ms(300);

}for (i=0;i<16;i++){

Lcd_Custom_Cmd(LCD_SHIFT_RIGHT); // Shift display rightdelay_ms(300);

}}

��4&���$�/�7��� �+

��+����"�4��������"�������������������)*��������7�<��� X�����"� ���+����� !��"#��$%&��"���������&� �)*�����8��� !������ �������#����6�����%� �� !���4!�7������"#�� $%&���" ! ��)�)�����8 ���8 �������������<��)N"����8"�9�������Y���� ���4�8"�9�����4��� (bbSFcTPFE�.dJERPOEbT���<��8"�9���� 4��4���:�4+�������4�����������<��8"�9��������8"�����4���-eSf�/LOgER�I=`����!��� "!�

<��� X�����"���������Y����)�8"����!��� "����H�̂ !��� "� ��_������������8"�9����!��� "����H��)����������4��#)�����8 �� � 4����I����� `� ������8"�!���"#�� $%&� �"�����8"��!!�� ��" !�)�� �� �������<��� X�8 ������������4���)"���Y�����6�� !��������� ��"+�

����3������ �Z� "#�:� ���'[U-PN\@U-B'� ����3��V�W���������� � ���3��089�������� ��� ���� 3���� ��1��:��2������"��6�6������0���:� TI�� 019��� �� 3�����������#F�3:8���Lcd_Custom ����N*(OP��6��"10���:

Page 114: MikroC book

114�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

$`GV�� ��)�����

@L�"M����>6��?�'�78��

� ������ ��

����� ��

>�8���&�G�����

� ����� �� � � �

�������� ��

�������������������

Page 115: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����115

��������������� ������������������������������������������� �������������!"��#�����$%��������������!"��#����&���&'(�� "&$�!"��#��'��)����*��%+���(����#�����'(���������,�%� -$%�$,����*.-*��&'(������/!���!"��#�$�������������!"��#������,�0%�1��.(%��(����&��� $,�-�&0%����/�23456���)�-"*������������������$�������%����,��"-"��

���������� �Eeprom_Read

�1��7%�� $(������$��������!"��#��������������!"��#����&�������/�8*������%� ���/����%���!����/����!"��#�/*"�%����%������%�"���9:��..�.�����&'(���"���!���!"��#��)����#�;�

������������� ������unsigned short Eeprom_Read(unsigned int address);

�����������address ����������� ����������������������� ��������� ������

���� �����!�" �address��"#��!�" �$%&�'()�*+�,������������!����-���� ��+����!*�������������������� �.����������/0)��������

������������� !unsigned short take;

...

take = Eeprom_Read(0x3F);

����������� ����������������������������������������������� ������!���"#$%�!����������&����'�(���!���take

����+�,-.'�/�+�*0�*1�����1 �� �2� ����3�

����4�����'������������������ ���

Page 116: MikroC book

116�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

���������� �Eeprom_Write

�1��7%�� $(����!���!"��#���$%������������!"��#����&�����-�����!���!"��#*"�%������-.���.������%��!�%�.�*����$�*���������&'(������"�.-�.�*����$�*���!$-�$%��/���!���!"��#���$%������������!"��#����&����-"�����������.*�<�=������.�*���� �>?�@>

���!���!"��#�/*"�%����%������%�"���9:��..�.����&'(���"���!���!"��#���#�;��������(�/�������!"��#�$�

������������� ������void Eeprom_Write(unsigned int address, unsigned short data);

�����������address ����������� ����������������������� ��������� ����������data ��������������������� �����."�!��������������������� �

������������� "EEprom_Write(0x3F,0);

����������� ������������ "� ������������������������� ���'�(!�����)� "#$%

Page 117: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����117

�50��*0 ���+�67 ����� ��1 ��&�������1 �� �2� ����3�����4���

���������������������

��12���� 1� �"����3(45(�1��� ��������� �12�.�6� ��6� ��� 7�* 7�89:();<==�� >�89:();<<=�� .���������>�1����������>������ � ���.?�76" �� ��7����

�����12�* 7��@AB5<==�@CDE/44=����� �����.������6����>�.�6� ��6� ��� 7�"#��* 7�89:();<<=

�����12�* 7������FB5<==�GHIJ�99�1������� ��� �"����3(45(������>�.�6� ��6� ��� 7�"#��89:();<==

��� �� ��������

3(4E(��"K�6" � ��L$MNO:�� ���.?�76" �� ��7�PCGNOLQCJ&����+��76" � �R�S��:����6" � �����3(45(

3(4E/������ ��.��7������76���6" � ���>����*T��!�U7�� ������

����������� ������ ������������������������������������������� ������!� "����#������$%����&' �()*���� �+,-./$����0 ����(

���

�����

������

����

���

��

�����

����

������

��

�� �� �� �� � � �� �� ��

���

���

��

��

������

�����������

��

�� � � �� �� � � � � ��

��

��

��

���

���� ������

��

��

���

���

���

����

���

��������

��

���

���

���

�!"#$%&

�!'�(#)�"

��*+

� ��

Page 118: MikroC book

118�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

char i,j=0x30; // J = Ascii[0]

void main()

{

Lcd_Init(&PORTD); // Use LCD show data

Lcd_Cmd(LCD_CLEAR); // Clear screen

Lcd_Cmd(LCD_CURSOR_OFF); // Cursor off

for (i=0;i<16;i++) // 16 Byte writing

{

Lcd_Chr_Cp(j); // Show writing data on LCD

Eeprom_Write(i,j++); // Write EEPROM

}

Delay_ms(20); // Delay after write

Lcd_Cmd(LCD_SECOND_ROW); // Goto Line 2

for (i=16;i>0;i--) // 16 Byte Reading

{

j=Eeprom_Read(i-1); // Read Last byte first

Lcd_Chr_Cp(j); // show on LCD

Delay_ms(500);

}

}

���������#��$������

6" � ������ ����"�()�� !-���>��������������!�����!-���� 4���� *�()��!�."�!��������������������� ������!-���������!*� 6��� +�������������� ���!��V�����������T��!�U7."���T����* �!�����/�'* �!�����,���6�����3:W

#�������������0&�(�123./+425678�#������9�:��$���!�;������������������������������������������� ���<�0�#�����#�������(�=>$�����&' �()*���� �+,-./$����0 ����(

3(4EX� !�6" � �

���'�����*�+�,����� -./� �����!)�0�����������!�1��������������������������������� ���,�����'������,�����-./��1!)�������'�(������)�����'�����1!)�������'�(����������,��!)����������)2�'������

�������������������

Page 119: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����119

���������������� ��� ���������������������� �!�����"��#��$�$%�%$�%�&����'(���� "���'���'�)�*+��� �!�����"��"������& ��%,����"��"-�����'����.�&�%���%' /0123� ��,�%����45�"�6�7� Adc_Read()� ����8,�*97���,�����:�'���'���"��������� �!�����"��#��$�$%���,��'���'�� �

���������� �Adc_Read�-���7���& "-������,��������� �!�����"��#��$�$%�-�����,8�8���"-���$��� �!

��;<"���� =� (���� 6'�������"�7%,��"���'���'���&�.>&����'"�������.������������������� �%'�%�8 �������,��"��%,�6�%.���������������� ��� �������&� �

������������� ������unsigned Adc_Read(unsigned short channel);

�����������channel������������ ��������������������������

��� �� ������������ ��� !"������#�� ����"������!�� ���$��� %������ &'�()�*������+,�!��-�,$�.���

� ���������������,)!)��� ���)�/0�������������(0!��� �.���channel

������������� �����������

"'���6,��������� ?@� %,��"-������,.�*���%�7�6,�����,��#��$�*A%����"'�� �"%�8��'��%,��"���6,.� ?BC D>7���#�.�*���% ? �$% C �>�%,��"-������,*���% ? �$% C ��#��$�*A%����"'�� E��'����"F%���"%$��97��6,������&���" .���&����#��$�*A%���'�,8G

�����+�,-.'�/�+��0 ��0 1 ���2���'��33 4

�&� ����5��616*����'������������������ ���

Page 120: MikroC book

120�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��������������������� �� !���� ��%�8��'������"��%'�����&��#�"���'���'���"6'�� ?BC ���"F���%�8��� HI/J D>7����*9&��7

�8,��#���� 0KH ��97����".,���)�*+���.��� LC �$%�>�%,���"F���%�8����7��.��� LM �$%int temp;

void main()

{

temp = Adc_Read(0); // read analog value from channel 0

}

�����"#�$����%"���"���&������'��()*+)�$�,,�-�. �)���+/ ��#���)&��0�'���� '%�)�)���123�45�66789

"���6,����-���7��7�"�7�8.,��"����������� �!�����"��#��$�$%�.�� /0123� ����*������,��,�����6������A� �8���,��""�����$��%����7�"�7�8.,��"����������� �!�����"��#��$�$%�����"'�� �-������������������������ ���LMNOPQ �� ���LMNOPQ? ����������������A������&

�����������

���� ���������� �

���������

���

����

�������������� ��

�����

�����

������������

������������

����������

����������

�� ���

�� ���

� ���

�� ���

�� ��� �����

�� ��� �����

�� ���

��������

���

��

��

��

� ��

����������� ����

������� �� �� ��������������� ���������������� ���� ������� �! �"��#$%&'�()

Page 121: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����121

�������"#�$�����8:;<=>�*).��"#�$�����8:;<=?��#����$��%��� O �$% �6,�"F�)�*+��7��,��""������� �! "���6,���45�"�6�7� Adc_Read()

��'%,���,��:>����$��%�����& �%'�����"����"�6,���45�"�6�7� Adc_Read() �'��7��,��""��������"F��8,�7���$��%����&����%�8��&

�������"#�$�����8:3@AB��.��� O �$% ��#����$��%�����"�7�6,�8��A�"��-����.����������� �!�����"��#�

�$�$%� ���������"���6,����������&

�����

�����

���

�����

�����

���

�����

����

���

�����

����

���

����

����

���

����

�� ����

���

�����

�����

���

���

�����

����6�*).�4�C�8:3=�D�8:3=B��78E:�3FGHIJKLFG�3MFNO�=IMINP�QLPK9 � R�����) ������S"�&��$�,,�- �TU��%"���� ���*+)�$�,,�-�. �)���+/ ��#���)

������������ ������������������������������������� ��������������� ������� ������������� ���������������!��������!���������"#$����� �����������%���&%��'����'��

��"��"��&�����6,�'8�"���$% ?@�RS E�$% M �����$��%��� ?@�TBLG �U*������A"�� ���LMNOPQ? �*97��9�"�8��:�7�� �!��;<"���,��".>&�

���� VD� W� *).� X� C�3>=�D�3>=�D�3>=B� 78GYMFZ�3[YGGIM� =IMINP� QLPK9� R� ����) �����$�,,�-�. �)��

��������#()&����*+��'*����������#()&����*+��'*����������#()&����*+��'*����������#()&�!��*+!�'*!���������#()&�,��*+,�'*-���������#()&�-��*+-�'.���/(�"��0(��� �1���������#()&�2��*+2�'.���/(�"��0(��� �1���������#()&�3��*+3�'.���/(�"��0(��� �1�

Page 122: MikroC book

122�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

������C�\@E:@A<�78E:�3FGHIJKLFG�=PYP]K�QLP9�R����*$��$S� .���*+)�$�,,�-�-�����'8�"���$%?@TB

"�!��$% ?@TB ��#� VLW���������456& �����7 �8% 9:��;���<)=�&/(7�>����456& �����������=�&)=:("��?��(�&���456& �����

�$%��&��������:��������%����%$��97�"��������F������!� ����������97����"�"$��*��8���������D%

�������R�0������ ����� ��+/ �^B_

����B�C�8:@A�78E:�@G�QLP9�R�����+U����%���� &��'��()*+)�$�,,�-�. �)���+/ ��#���)

������5�@���AB�&��������75�@���AB�&��

����X��"#�$�����8:3@A�

��#����$��%����8��A�"��-����.����������� �!�����"��#��$�$%��7-�����'8�"��?@�TBC ��.��� O �$% ������$��%���%�8��&�6,"-����"��-����.��.�*���%�7�"�7�8.,��"����������� �!�����"��#��$�$%� ���6,�9�"������.��.,���)�*+��7��,��""������� �!

�����

����

������

�����

������

�����

�����

����

����

������

����

����

������

�����

���

������

�����

����

������

����

����6�C�8:5`�78E:�;IK]MP�5FJaYP�=IMINP�QLP�C�����69�R�����) ���(+*��b))�cd&�����*+)�$�,,�-

������76<)�C66�DE;499#>@F$�=��GHIJ�KLMJNINHO����:54991)&1$):6@�&��P

� � � � � � � � � � � � � � � �

����������� ���

� � � �

����������� ���

������������

� �

������76<)�C66�DE;499#>@1����QNRSJ�KLMJNINHO����:54991)&1$):6@�&��P

� � � � � � � � � � � � � � � �

����������� ���

� � � ���

����������� ���

������������

Page 123: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����123

����4�C�8:3=��78E:�3FGHIJKLFG�3MFNO�=IMINP�QLPK9�R�����) ������S"�$�,,�- �TU��%"���� ���*+)�$�,,�-�. �)���+/ ��#���)

�$%��&���U*������A"�� ���LMNOPQ? %,���6,�'8�"���$% ?@�RL �� ?@�RC �����$��%��� ?@�TBC

��������������� ����� ������ �������������

� � � ����� ����������������� ��������� � � ����� ��������������� � ������ �� � � ����� ���������������!�� ������!��� � � "#$����� �����������%���&%��'�� ��'��� � � ����� ���������������,� ������,�� � � ����� ����������������2� �������2�� � � ����� ���������������2,� ������2,�� � � "#$����� �����������%���&%��'�� ��'��

����V�*).�W X /("#$&����B���@75T�����

����XD��D���*).�BC�135\XD�135\�D�135\�D�135\B�78E:�1FJP�3FGeLZ]JYPLFG�3FGPJFM�QLPK�C�9�R�������� ����%���� &��&�c���%"���� '��()*+)�$�,,�-�. �)���+/ ��#���)�����������������&

����������� � �� �� �� � �� �� �����

�������� ����������������� ��������������

���� � � � � � � � ��� ��

���� � � � � � ���

���� � � � � � � � ���

���� � � � � � � ��

���� � � � � � � � ���

���� � � � � � � ���

���� � � � � � � � ���

���� � � � ����� � � ���

���� � � � � � � � ���

���� � � � � � � ���

���� � � � � � ��

���� � � � � � ���

���� � � � � � ���

���� � � � � � � � ���

���� � � � � � ���

�����

���

���

���

���

���

���

���

���

���

���

���

���

��� ���

���

���

���

���

���

���

���

���

��� ���

���

���

���

�����

�����

�����

�����

�����

�����

�����

�����

�����

�����

�����

�����

�����

�������������� ������������������� ������ ����������������������������!������������������� ����""�������� !"���##�������������#$��������������� ��%&���$�� ���#'��������������� ��%&���'

��

Page 124: MikroC book

124�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��X�����) ������S"�$�,,�- �TU��&��'��()*+)�$�,,�-�. �)���+/ ��#���)&��0�'���� '%�)�)���123�45�66789

"���9�"�8��:�7�� �!��;<"�.��"������� �!��&���8���-��� ��" ��97����"��)%'��'��8��8���"������� �! �������������� �!�����"��#��$�$%�.�� ���LMNOPQ%,���6,�8������ �!�����"��#�.,����$�$%� LC �$%�'�"�� LSY?@ ����'��8� Y?@ �9��'��8��7�6,��"������� �!%'��$% ���(��U*V�A���$)=A�� 0@A��=�&�&"�$C6���456& �����A��:�W$)&�<)��X2�/Y���>��A�� ������&�"���9�"�8��:�7�� �!��;<"�%,���-��>�:>��5������&�,8�

"���9�"�8��:�7-���,���"-����.,������$% ?@�RL �� ?@�RC ����A"�� ���LMNOPQ��%�Z�� �������:�6,�$% ?@�RS �*$7���"�!�����������������A"�� ���LMNOPQ? ��%�����7 O[L ����:>��8�����*��+�.��"���9�"����8��� �!��;<"�.����������� �!�����"��#��$�$%�"���8��:�7����A�.���� �!��;<"���"�*97���,��,�'� Y?@ L\M �����8$���

�"%�8��'���6'��7�8��:�7���D$��%��� SC ]^_ �'� M`YTR� ���'��'�"�� a\S �����8$���D>7����'���"�7�A� �����&� ��97��6,�8��:�7 SC ]^_ �8��6,�'� M`YTR� ��9��6,���D$��%������ =�

����������������������� !"���# ����������������� ��� $�%�"��&!���������������'���()�*+

����� �������

����� �������

����� ����

������ �����

������ �����

������ �����

������ ������

����������� ���������� ��������

��� ������ !"#$� %� &�� '�( )*+$������, - .�/&�"+���0 1*�2����3�0&��.4!��5"��# 67� .�/&�"+���0�6� 3!�5�&"��30�2�88�9��:+�5;���"�� �<=> &"�� !2�88�9��:+�$�"#$� %� ���90�?�#����/5�42;0)

!�������� ������*+�����,��-.� �*�/�+����������01��� ���������������� ���� ������� �! ����/*+��2������3�� ���������01��4���� �� #$%&'�()567

Page 125: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����125

������� 8� +� � 9��*9������� ���� �����:����� 8;<� =� �+�� ����*�* ������� �.#$%&'�((���>"?@AB��.?����Adc_Read�� ��CDEFG%�* ��,�� �.

�76��*6 ���+�88� �9/�' �-.'�/�+��:;<=>?@;AB������8CD,EE:

���� ������%��f���*����1���!�1��$�����2&&3&�1�����,���

�����1�(��4,�,����563788�9:;<�==�1������!�����$�����2&&3&�.��������+�-�����-�������4�����>=?&@A788

&�! �� ���%�)��2&&B&���C,-��.����DEFGH?������+I�4-���!#��4�JK?LM<L�.��/)�/4-��.���N�O��?����-��.�������2&&3&

2&&BP��"�������+/�4.��,���4-��,-��.����/����,��(Q�� /R4����"����

Page 126: MikroC book

126�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

unsigned int temp_res;

void main(){

ADCON1 = 0x80; // Configure analog inputs and VrefTRISA = 0xFF; // PORTA is inputTRISB = 0x3F; // Pins RB7, RB6 are outputsTRISD = 0; // PORTD is outputwhile(1){

temp_res = Adc_Read(2); // Get results of AD conversionPORTD = temp_res; // Send lower 8 bits to PORTDPORTB = temp_res >> 2; // Send 2 most significant bits to RB7, RB6

}}

�������������������

�����1����-�,$��JK?�!������"���,1�� �/��4����1������)�/0�����/��4������������ (�2SK����/��4�K�.��/��4��T�()��@�.��()��8�� U�������"���,1����������4/0�

��������!��-�,$�.���� ���������������,)!)���!����������#(+��1�� �.���temp_resV����� �.��.((�EWLMGXMG�&@�()�Y�!��� U��"����7�()�,�������Z��1��� (/��4��T�.���������()�+���� ���P�� U���/���1��()��7�.���[� ��� �.���temp_res��$�����������$����"�.���()��@�.���8�������!������.�,����()��@�.���8� ��/��4��T�!��� U����$��"�*U"�������������

����������� 8� �A�.� 6<%HIJHKL� �������M�N��%����4��/��� /��� 9��*9������� ���� �������:�����8;<�=��+�� ����*�* ������� �.�#$%&'�((���>"?@AB��.?����Adc_Read�� �CDEFG%�* ��,�� �.

2@B\��,����� (��� ���������� (��+,��]^&�� ��������������.���������2SK

���������� ����������������������������������������� ����� !�"�"#��$ ���%&�����'���(������������'$)*+$��� �,,-��#�%��-.����$��/�������-�����$01$,"#��%/$)*+$01$�%�

2@B_��"�������� %����������$1��$��2SK��������4/0� ����!��,���1��������� ��� �������'�����&`'P\

mikroC

Page 127: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����127

��W��"#�$����%"���"���&������'��()*+)�$�,,�-�. �)���+/ ��#���)&��0�'���� '%�)�)���123�45��6

45�"�6�7� Adc_Read()��.,��-�"����97��6,"������������������������'� �6'� ����� ���LMNOOP E���8���6�������" P\C\C\a �����"���",�5 ����&G �c �����$����S���� ���0�'���� '%�)�)��0��%g������ %��%"��"%"�$g��h� �����&"� '+�*������������'��()�8:3������ ��� ���-�������������������� ���LMNOOP ����#�%�8��'����"���.�������"�� �����&��>�%,�����8����,�"�7�8"�����$��%������������������� ���LMNOOP �7�"�7�8.,���,8�

��W����"#�$�����8:;<=>�*).��"#�$�����8:;<=?

��#����$��%���.��� O �$% �6,�"F�)�*+��7��,��""������� �! ��"���6,���45�"�6�7�Adc_Read() ��'�-���#�%,���,��:>����$��%�����& �%'�����"����"�6,���45�"�6�7� Adc_Read() �,8�'��7��,��""��������"F��8,�7���$��%����&����%�8��&�,8�

��W����"#�$�����8:3@AB

��.��� O �$% ��#����$��%�����"�7�6,�8��A�"��-����.����������� �!�����"��#��$�$%� ���������"���6,����������&

�����

�����

������

�����

�����

������

�����

����

������

�����

���

������

����

����

������

����

����

������

����� �����

���

������

���� ����

������

����6�*).�4�R�8:3=��*).�8:3=B�������� �$�,,�- �TU��%"������'��()�8:3����

�������������� �����������Z�="������

������������ � �����������Z�="�����

������������!�� �����������Z�="�����!�

��������'�� �����������%���&%��'��Z�="���(� :& 0@�-���[\]

Page 128: MikroC book

128�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

����V�Si����R�3>=X�Si��3>=B�����) �����$�,,�-�. �)��%"����������� ���

���������*+�

���������*+�

���������*+�

���������*+!

���������*+,

���������*+-

���������*+2

���������*+3

���������*+

���������*+^

���������*+��

���������*+��

���������*+��

���������*+�!

����������_'.�� �4�&@��)$�&)>&499Y5�4��/@$ B����9Y@:6�)D�7�7W)�;�

���������4�&@��)$�&)>&�&A������X2_�

������R�\@E:@A<����������� ���%���� &��'��()�8:3

VCW b "�����.,������F��$&�

VLW [ ��#�"����$7�%,�"�����.,���

��������������� ��!" :,��$%��&��#� VLW ����8'����'�����8'��.�&�%��"����.,��� �$%��&����#�VCW ��%����%$��97�.�&�%��"�����.,������F��$&�

����B�R�8:@A������h �����)'��()*+)�$�,,�-�. �)���+/ ��#���)

VCW [ ���� ?@� :�"�$�����$

VLW [ ��F�����$���� ?@�

Page 129: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����129

��W�X��"#�$�����8:3@A�

���$��%��� ?@�TBL �6,�*97�"-�����'��������,���$���,"������ ?@� ��"-����������.��)�*+����%�*A%�7���$��%��� ?@=cR^ �� ?@=cRd

�����

����

������

�����

�����

����

�����

����

����

������

����

����

�����

�����

�����

������ ���� ���� ��������

������ �!"#$����%�&������'((��)��*��*+��������!",-./��(0�!",-.1

213$4$��5������678�,,9"�:��/$;<=>?$@AB?C>C=DE$��� �,,-��-���������

� � � � � � � � � � � � � � � �

����������� ���

� � � �

����������� ���

������������

� �

������76<)�C66�DE;499#>@1����QNRSJ�KLMJNINHO����:54991)&1$):6@�&��P

� � � � � � � � � � � � � � � �

����������� ���

� � � ���

����������� ���

������������

����2� 3����������(��� !$213

����4� �56#78����(������&���������9(�:

213$4$FGG203$4$$-�$$FH*I4

����;� 56#7< ����(������&��������� 9�=�:

213$4$F++

203$4$-�$FH*IJ����>�?@��<� �3����������(��� !$213

Page 130: MikroC book

130�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��W�W��"#�$�����8A=<?

��#����$��%����-������9�"��,.�*���% =?C :>� =?ae =?f �� =cC :>� =cS -������#�.�*���%�$�*A%�����"��9��$�$%� �"%$:,���'��,"-�����'� .���'���&����#�.��$�*A%�����" D>7��%"%'����" ���LMNOPP �7��%,��"-����.���'���&�7���$��%��� ?@�TBL

�����

����

�����

����

�����

����

�����

����

����

����

����

���

�����

���

�����

���������

��� ��� ������ ��� ��� ������

������ ������ ������������ ������ ������ ������������

��W�V��"#�$�����8A=<?>

��#����$��%����-������9�"��,.�*���% =gC :>� =gf -������#�.�*���%�$�*A%�����"��9��$�$%� �"%$:,���'��,"-�����'� .���'���&����#�.������" .,���8�� %-����'�.��6'�������"�%'�6'����'��,�����-����%��%-����'�.�*���% �6'� �$�*A% ?BO ����#�.�*���% =gS ��#�%,�

\

�����

�����

�����

����

�����

���

����

���

����

����

�����

���

�����

����������

�� ���� �� �� ��

��� ������ ������������ ������ ������ ���������

��V�&�! �� ����&"� '+�*����c �����������'��()�8:3ELG "-����.�*���% ?@� �7%,��"��%$�%'���,��#�.��$�*A% ���"-�����7���$��%��� Y=�R

ESG "-�����'���,"�����$��%��� ?BRcd �� ?BRcd^ �*97�"-������,.�*���%�7%,��"����#�.��$�*A%�����"

EaG "-�����'��������,���$���������.��)�*+���,6$�D,����9�.8���"���$��%��� ?@�TBL

E`G �9�"6'���$�*A%�7%,��"��%$�%'� ����F�����$"��-����.������ ?@� ���"-�����'��7���$��%��� ?@�TBC

EfG "-�����$% hTi@TBc �����$��%��� ?@�TBC ��,��#� VLW �*97���$7�%,�"�����.,���

EMG �����$% h3i@TBc ��#� VCW D>7�����:>� "�����.,��������"���F��$&� ��"��&��'���'�.,�����"���$��%��� ?@=cRd �� ?@=cR^

Page 131: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����131

�76��*6 ���+�8F �0 ��0 1 ���2��:G���� � �����������*6�*0����*�'

���� ������%��f���*����1���!�1��$�����2&P3&�1�����,���

�����1�(��4,�,����563788�9:;<�==�1������!�����$�����2&P3&�.����������+�-�����-�������4�����>=?&@A778

������� 8O� +� � 9��*9������� ���� �����:����� 8;<� =� �+�� ����*�* ������� �.#$%&'��(��@+>������>���������,P� !��!9 ��/��������������� ���� ������� �! ���>!��

���������

���

���

���

���

���

���

���

���

���

���

���

��

��

��

��

��

��

��

��

���

��

��

��

�� ��

���������

���

��������

������

��������

� ��

������

����

����

��� ����!"

���#$

���#$

�� ��

�� ��%� $

����&'(��) ��*

����&'(�

����&'(�

����&'(�

����&'(�

����&'(�

����&'(�

����&'(�

����&'(�

�����&'(��)���*

Page 132: MikroC book

132�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�����������8O��A�.�6<%QRIJHKL��������M�N��%����4��/��� /��� 9��*9������� ���� �������:�����8;<�=��+�� ����*�* ������� �.�#$%&'��(��@+>������>���������,P� !��!9 ��/��������������� ���� ������� �! ���>!��

void main(){

TRISA = 0xFF; // PORTA => inputTRISB = 0x3F; // Pins RB7, RB6 are outputsTRISD = 0; // PORTD is outputANSEL = 0xFF; // PORTA => AnalogADCON1 = 0x80; // Select Vref and Right JustifyADCON0=0b11001001; // Select Analog1 RC_Mode and ADONwhile(1){

ADCON0.GO=1; // Start conversionwhile(ADCON0.GO); // Waiting conversion done?PORTD=ADRESL; // Load Low Byte to LEDPORTB=ADRESH*64; // Load High Byte and shift left 6 bit to LED

}}

�������������������

-��.���!��"���,1��/��4��J� �����)�/0�� ���� U��"���,��1����!)�����4�J5aS2� �/���1�� �/��4��J�����������,����!��� U��"���,1��/��4��K�.�� ��^T@�� (�^T8���������4/0��/���.�,�Q��2SK����,�������"���,��1��� (��!)�����4�JK?b5'�.���JK?b5&��/��������1�������)�/0��J5P

!��� U��"�������$����)��������.��� ���$�-,��*�()��cb� ���JK?b5'������d&e���!����� ��()���U��������� d'e�.�,�������.������#!��($��4� 1���"���Q�� /R41���!)�����4�JK^Sa2��Z��1��� (��!)�����4>b^fK�.����Q�� /R41���!)�����4�JK^Sag�������()�!��()��'�.���&�+�����()��@�.���8�,�������$�,���@_�!��� U��Z��+�� ���!)�����4�>b^fT��/���.�,�Q�����"������� �/��4��^T@�.���^T8

&�! �� ���%�)��2&PB&� ��C,-��.����DEFGH?������+I�4-���!#��4� -,������+�-�����-�������4.���������� ������hC��, ���U

����A*�����&�BCDE���FGHI�JJ�������>=?&@A788������>=?&@A788J��������� ������hC���P'igj2&PBP������+I�4-���!#��4����JK?kfM<L�.��/)�/4-��.���N�O��?����-��.�������2&P3&2&PB\��"�������+/�4.��,���4-��,-��.����/����,��(Q�� /R4����"����2&PB_��,����� (��� ���������� (��+,��]^&�� ��������������.���������2SK

)*+$����$01$�%�� �9����%�����/-����-.����$01$,"#$:�'�� !����678������� ��������� ����� !�"�"#��$��/$)*+01$�'#����,6��8#$HKL$� ��,"#����678�'��/�&��������M�$;NGKE$��5�,"#$O�����(��#���&���,����$)*+0$�'#����,6��8#$H+1$� ��,"#����678�'��/�&����#'&��M�$;)GKE$��5�,"#$12&PBl��"�������� %����������$1��$��2SK��������4/0� ����!��,���1��������� ��� �������'�����&`'P\

mikroC

Page 133: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����133

������� 8S�+� ���� ���� 9��*9� ���� � ��!�+!@��������/*9���@������:���������� 8%<

�76��*6 ���+� 8H �0 ��0 1 ���2��:G����'I���+���2��J�G

����,�����U����� �����1�����"�Q����+,�!����������!��-�,$�.���� ���������������,)!)��� ��+�-�����-�������4�>=?&@A778���.�,�� �-�,$��2?K�-,����� ���-��.����/����),��� (-�,$��2?K�� U������1�Im��4 ���2?K� ���DEFGH?�������,$���������,���� ���-��.����/)����)�+,�!��� ��������1����Im��4 ��2?K��"��� ( ���$�� ��� ���+,�!�����.���� ����������!��"�+�.�,�Q����-�,$��2?K�!�����.���1����$1��$�.(( ���� �.����U���� -,����������!"������#�!�1�Im��4 ���WordToStr()� 1����.������.��1�Im��4 ��FloatToStr()� 1����.����� ���$���������� �n�)��

���� ������%��f���*����1���!�1��$�����2&\3&�1�����,���

�����1�(��4,�^T63788�^MoBP''8��������,���+,�����-,������+�-�����-�������4�����(��4�>=?&@A778

�����1�(��4,�,����563788�9:;<�==�1������!�����$�����2&\3&�.����������+�-�����-�������4�����>=?&@A778

Page 134: MikroC book

134�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

int dat=0; // Save ADCfloat volts;char txt1[6]; // Save Stringchar txt2[13];char *text1 ="DATA="; // Show Textchar *text2 ="Volt=";

void main(){

TRISA = 0xFF; // PORTA => inputANSEL = 0xFF; // PORTA => AnalogADCON1 = 0x00; // Select Vref and Right JustifyADCON0=0b11001001; // Select Analog1 RC_Mode and ADONLcd_Init(&PORTD); // Init LCD PortLcd_Cmd(LCD_CURSOR_OFF); // LCD cursor offLcd_Cmd(LCD_CLEAR);while(1){

ADCON0.GO=1; // Start conversionwhile(ADCON0.GO); // Waiting conversion done?dat = (ADRESH*4)+(ADRESL/64); // Sum highbyte and lowbyteWordToStr(dat,txt1); // Convert Raw Data to StringLcd_Out(1,1,text1); // Show Line 1 TextLcd_Out(1,6,txt1);volts=(dat*5.0)/1023.0; // Convert to VoltFloatToStr(volts,txt2); // Convert to StringLcd_Out(2,1,text2);Lcd_out(2,6,txt2); // Show LCD Line 2Delay_ms(300);Lcd_Cmd(LCD_CLEAR); // Clear LCD

}}

�������������������

&B����������-�,$��2?K�����.((����%��� (/��4��K�!��+�����������"���, �/��4�����������1�-��.���PB�Q�� /R4!��-�,$�.���� ���������������,)!)����$������1�����$�.(( ���$�),,���*����VJK?b5&�p'q''Y\B����$������!���,$�.���� ���������������,)!)�����"��� ���JK^Sag�.���JK^Sa2������� �-,����������!�����������()� ����!)�����4�JK^Sag�+����*����P�()��V�$��_Y�.��������()� ����!)�����4JK^Sa2�+���� ���@�()��V����@_Y_B��"������+,�.��������� �.����UQ��Im��4 ���WordToStr� -,�����!��/�U������������!"��@� +(�4�"��� (��#(Q�� /R4�����"���+�.�,����-�,$��2?KlB��"������������+,������1��$� ��.��, ��'�����l]�-,�1����Q�� /R4������ �n�)��@B�.����� �n�)��1�������� �.����UQ��Im��4 ���FloatToStr�-,�!�����!��/�U������������!"��&\�+(�4�"��� (��#(Q�� /R4�����"���.�,����-�,$��2?K

�����������8S��A�.�6<%HIJH8%<KL��������M�N��%����4��/��� /��� 9��*9������� ���� �������:����������8%<

Page 135: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����135

&�! �� ���%�)��2&\B&� ��C,-��.����DEFGH?������+I�4-���!#��4� -,������+�-�����-�������4.���������� ������hC��, ���U

����A*�����&�BCDE���FGHI�JJ�������>=?&@A778��������� ������hC���P'igj2&\BP������+I�4-���!#��4����JK?LM<L2?K�.��/)�/4-��.���N�O��?����-��.�������2&\3&2&\B\��"�������+/�4.��,���4-��,-��.����/����,��(Q�� /R4����"����2&\B_��,����� (��� ���������� (��+,��]^&�� ��������������.��������-�,$��2?K

��5'���� �����$���%����� ��,���-��#�%#����$�'�����$)P+$����������

� ����� �

������ �

����

�������������������

Page 136: MikroC book

136�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

Page 137: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����137

������������� ��������������������������������� !�"�#��$%$����%����%&��'��%(�)*+�!,���-�.!���"�+!%/%011)*2)33!45���%��*����*2)33!4�6�(+7!��8�2)33!4������ 9:���;<�=��< 9�;�>��-%?�2)33!4�����@)���!,$0!�+0.!,A�,B)�2&�27!-%)*"�*���C1(+��!0DE,���������"�+!%�7!,!�2%.!,2)33!4��������"@.FG,+&@)�������������!B%.��+)*��;H����$��#B���%&

"�%������I�J�62�,/)0���!,A�,2)33!4����������$0!�+0.!,6/+/�!,+)���)�2�,"-.�+8�6%,�)��K����#�����!+)��.0�� ���D.!�8�,2)33!4�������$0!�+0.!,���!"��6%,�)�#F/%,���#�.1(�!+���!�)C�1E,2!�!%D�7!2)33!4�����#�"@."�+!%$0*$L�$0!��%M0A�,���/�%&#F/%,#�.

����+�,-.�' �/0'�.�+���12���'�!"#$%�

����������� ��������������������� �������� ���������� !�"#$�%�&��'����((�)*+,��%�&�"#$��� �-,��*.���/�012�%�&�"#$��� �-,��*.���/�302�%�&�"#$��� �-,��*.���/�402

��� ���

��� ���

4 .8V

3 .6V

4 .8V

1 .2V

��������

��

��������

��

����� ��������� ������������������� ����������������

���� ����

����

��������

��������

�� ��

����� ���� ���������������

Page 138: MikroC book

138�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

/)0���!,1!+%������ I�J� A����$�!�80/�C#N�+8��OPQ�-�!�DE,�$0!�+0.!,A�,B)�2&@�0,*0+��$0!�+0.!,�����OPQ�A�,$0!�+0.!,�)C,-����),�)C�6%,�)��K�������#�.���!+)*�OP���RST��UJPP�V�WSRX�27!-%)*%������I�J�$��6�(�,������+!%+7!-��$�!�80/�C#N�+8��YOQ�6�(�WOQ�/!��7!�)*

"�+!%$0*$L����/�%&����+/8�)C�1(�Z��6%,�)�#F/%,"-.+)*���/�%&����/�%&+M1(�7!,!��/M�+7!�),�NE�,�!11(��$0!��%M0�!+�+8�#����),�)C�+!%�%)*$0!��%M0A�,���/�%&1E,"@.08[���6%,�)�#FFZ!����Z��"-.+)*���/�%&��08[�����8��$?��+!%�Z��B)�2&#�A)*���/�%&6���6�.0�%)*$0!�+0.!,B)�2&@�0,*0+��B?��"-.#�.$�!6%,�)��K����/!�/.�,+!%��08[�+!%��C�%��+0�!������������� � ��������������$0!�+0.!,B)�2&@�0,*0+��?������*+)*$0!�+0.!,B)�2&�)C,-���%��+0�!��80/�C#N�+8�����1($8�$�!�80/�C#N�+8��������%&�NM�/&A�,$�!$0!�+0.!,B)�2&�)C,-��

"���;H����$��#B���%&#�.�/%���FG,+&@)�������#0.%�,%)*+!%"@.,!�����������"��-��2%.!,2)33!4�����27!-%)*#��$%$����%����%&��'�J\]TTY��������������!++0�!�J�@L���),�)C�+!%"@.,!�FG,+&@)�������1(6*�,��������J�6�(����W��@����^�J_`���������/.�

���������� �Pwm_Init

����$7!2)�,+7!-��$�!�%8��/.�"�+!%�7!,!�"-.6+�����������6�(+7!-��$�!�80/�C#N�+8����!+)*P�FG,+&@)����C1(/.�,D�+�%��++���"@.,!�FG,+&@)���?��a

���� �!�"#$�!�void Pwm_Init(unsigned long freq);

%!�!&���'�(freq����������� ���������������������

��'�)!�*���+,-Pwm_Init(5000);

���������������� �������������������������������� ��� !"#$

Page 139: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����139

���������� �Pwm_Change_Duty

����$7!2)�,+7!-��$�!$0!�+0.!,A�,2)33!4�����-%?�����%��+0�!��80/�C#N�+8�

���� �!�"#$�!�void Pwm_Change_Duty(unsigned short duty_ratio);

%!�!&���'�(duty_ratio ����������� !!�"���#$%���&�'�()*��&+�������,��-������������.���$%���&�'�()*��&+/0�����-

�������.���$%�, 1�&�'�()*��&+�.���$%�!�-2+0����.���$%� !!����&�'�()*��&+/0����,��-��#3�����4)�/��

-�&�'�()*��&+�5�6789:;<=9>?�@� !!AB,��

��'�)!�*���+,�Pwm_Change_Duty(192);

�������������� ���%&'�� ��(!)����*������+����+�,,�-����

���������� �Pwm_Start

����FG,+&@)���%8��/.�+!%�7!,!�A�,+!%2%.!,2)33!4�����"�+!%"@.,!�/.�,�%��+FG,+&@)��Pwm_Init 6�(�Pwm_Change_Duty�+���

���� �!�"#$�!�void Pwm_Start(void);

��'�)!�*����,.Pwm_Start();

���������� �Pwm_Stop

����FG,+&@)��-�L�+!%�7!,!�A�,���������

���� �!�"#$�!�void Pwm_Stop(void);

��'�)!�*���+,/Pwm_Stop();

Page 140: MikroC book

140�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�34��*4 ���+�56�� ��7�� ���8 ��'���*����� �/0'�.�+���12"�+!%����,��C����/)0���!,+!%2%.!,2)33!4����� �B?���7!#�$0*$L�$0!��%M0A�,���/�%&

#F/%,�����7!,!�%�0�+)*0,1%A)*���/�%&���"@.#�N�A)*�-��+%(622�,6**��@*%8�1&�b�c�;<d����*�%&eWIfg

���������������������

�������/#�#C�.���D,EF,����#.+��

��������%�#G�HIJFK11�HLMN ��1�"� �#�.+��)��+��O��+3��) O�#��O.#+�+�#G����%�#G��PQ,RSKK1

��������%�#G.+���TJFK11�UV8W�PP����'����/#'� #C�.���DXF,�2+���+3��) O�#��O.#+�+�#G�����PQ,RSK11�#3���PQ,RSK11Y���� ���"$ZZ�4�[\��� �����"���#$%�D]^�.�����2"�_+��#.���������/#�$% ��'�#G$(����D]^� �"��62�B�����A� ����"��2#�$�`ab����2#�$)c�+�(��"���#$%��/#�$% ��'�#G�*���'���2�����/��)c�+�(�����) O�#��O.#+�+�#G� �PQ

���

���

���

���

���

����

�������

�����

�� ��

��

��

��

�� �� � �

���

�����

��

��

����

��

��

� �

����

��

��

��

��

��

��

��

� �!���

�����

!�������

"�#�$"�#��������

"���$"���������

���

� �

������

������

������

������

�#

%��

��

��

��

��

%��

���&��'� ��

���&��'���

�#

�(� )*���

��

�(� )*���

�����������

���

�� �� ��

�(� )

���

���

���������

������� 56�-�7��-��8��-����9-������,��:*+,��� ; �� !��((�)�"#$������!������7��*�;�����;��/�/��:�"<=>?@3A@@3� !-�+B��: ����PWM�����CDEFG=����*H�/��:

Page 141: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����141

void main(){/* Initial port for control motor */

ANSELH.F0=0; // RB1 ==> Digital IOANSELH.F2=0; // RB2 ==> Digital IOTRISB.F1=0; // Motor B 2ATRISB.F2=0; // Motor B 2BTRISD.F0=0; // Motor A 1ATRISD.F1=0; // MOtor A 1B

/* Initial PWM module freq = 5 kHz */Pwm1_Init(5000); // Initail PWM 1EPwm2_Init(5000); // Initail PWM 2EPwm1_Start();Pwm2_Start();Pwm1_Change_Duty(190); // Motor A 75% SpeedPwm2_Change_Duty(190); // Motor B 75% Speedwhile(1){

PORTD.F0 =0;PORTD.F1 =1; // Motor A ForwardPORTB.F1 =0;PORTB.F2 =1; // Motor B ForwardDelay_ms(2000);PORTB.F1 =1;PORTB.F2 =0; // Motor B BackwardPORTD.F0 =1;PORTD.F1 =0; // Motor A BackwardDelay_ms(2000);

}}

�!�*0!�!��'�1�����&

O�#2�# ������� ������"$ZZ�4d$+"G�&eG �C�+�$��#3������)��.���!f���_�����"$���Pwm_Init()/��$(�#&� '���#.�������O C+����������#"�����"$���Pwm_Start()� 2+0���������� ��������"$ZZ�4�����������"$���Pwm_Chage_Duty()�.���(�������)���.���$%�,X��*���� 3������4������������#G�*'G�/0 �����#0 �4�1!-�� 3����)��$% ��'�#G� ��'�#G/0� g)��.&h.��'#�� ��&�.��2+0� g�+$% ��&�.�"+$%�$)��#3����i

;����������56�*+/:�"#$IJKILM�;������N�O��=��P�Q���� �������-��8��-����9-������,��:*+,���; �� !��((�)�"#$������!������7��*�;�����;��/�/��:�"<=>?@3A@@3� !-�+B��: ����PWM����CDEFG=����*H�/��:

Page 142: MikroC book

142�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��� �� ����� ��

D,EN,���\O�#2�# �b>f<?Q�"#���)c+GO�#�/j�'G����9LW9�2+0d& dGO�#2�# k�l��Q�'� O�#2�# .���DXF,

D,EN �.����#�� )d+G2+0��GO�+O�#2�# �d3��."�%_++$deG��#.����

D,ENm��� ��'�#G)c'#��Ra�/���� �'$� �'�������$%���'Gdg'�����/#�$% ��'�#G

D,ENE�/��$(/���)c���2����/#

6�A����������%�#G�HIJFK11�HLMN ��1�"� �#�/���)c�g����2+��.+��)�.$.�

6�A�������%�#G.+���TJFK11�UV8W�PP��#3�'����/#��(����'�����2�+��/���)c'#��`Ra�"���#$%��/#�$% ��'�#G/���2�����'���������20��������2%'�'�#��2%%�#0/g)���#3�2%%'0�$��F�#�����������$+��)+G���/.+��)����+�) ��$�� �3���/��2%'�'�#��2%%�$+��)+G"� �#�/����#02")ccn�)�) � ��$�� � 3���� �����$% ��'�#G� *���'�����#�#02")ccn����#.���� ��d�" ��#� 6 ��bY���()�A��#3����'�����#����02��'�#G)c'#���#�+3��2%%.�� ���� "� �#����#/����#02")ccn��,���bY���()�

D,EN!� #$O�#2�# �2+��"$���'��#.������� ��'�#G

�.��.�/��%�+.����01&�������2�����3�&���� 4�������5�� ������6+����&�0��&7*+����������'8��01����+��2�6���%�����0����%��3������ 4����5�� �����&7*+����������01�����6�����+�*����&����������%������������2�%��.��.�/0���1����� 4�������3� ����.�

�������������������

Page 143: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����143

����������� ������������� �� ��������� ������������ ������� ��������� ��������������������������� ��������������������� !����"�����#�$ ��%&����������'���������!���������(�#������ �"������ )*+,-.+/01�$�������(�#������ �"�����2��

���������� ������������������������������ !"#$$ %#&$'( )*+,-./0,0#*1�3��������� �"������4��&5���2��#�������'�������6���6�7� �#8��&��"��� 7����������������7&������!��������9�������&��$ �� �

���������� !"#������� $%&"'�())!*+,�-.'/01'#2�)/3**�0140$%15�6�:;���8� ��<=>?@�����ABC.DE����27����������#8��� 2���������������FGE��� �����

<=>?@��'"H�'#��������&�FGEIJKLMM)>1N�FGEIJKLLM� ����������':;���8� ��<=>?@����!����$ ����� ��������$ �LOI�����3����� &������L� &�� &�!'��!��� &��&6�����I� &��$�2�"��������3�� 7��&��6���':;���8� ��<=>?@�������� ��� ��� '����������6

�������Usart_Init( )

#8��7� ����!���"�����������(�#�����"�'�������!��� ������)P+,-�.+/01�#!��� ����� �����������������'���!���"� ������2�2����'�����"� �����3��������$��8�&�� �QDRS� )���"�� T�U��VN4WVNWJMN4WX� 1�$�"������!���"������������3�&�2�"���������!��2���U��"������������$��8�&��QDRS� ��� ��3�����3�������� �������� #�������������2��������������

�����+�,- �*.�*/��01234����5��(+�� �����5�

6���*��7����'������������������ ����� �89'�:�+���'�!"#$%������6�����

Page 144: MikroC book

144�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�����6��"��� �&'������#8���������"��4VTTN�WJTTN�IW4TTN�XMJTT������������ ����!���"� ������� ���2��������������������"�#���� �����9���'���%U ��������� �����������'3��������!���"� �����#!����������'

���!����������!���"� ������� ��YY�9��Z[�����2���������������FGE�2�"����������� 2��� �!��3�����27����$����ABC.DE����27����3�$3�����\&�7�������������� �IT]I

���#8����:;���8� ��Usart_Init( )�3��������'�#8�����"��:;���8� ��� ��� '������� ���#8��������<=>?@������ �^� ��� ��3��:;���8� ���6#8����!�� ���!���"���& ����#����������

�������������void Usart_Init(const long baud_rate);

�����baud_rate������������ ����������������� ��������������������������������

���������������Usart_Init(2400);

�������������� ���������� �����������

�����7�Usart_Data_Ready

:;���8� ���6#8����3�� �"������#� �:�:���7�������!�� ����"���"�!���2�"�:;���8� ���63�����"��_I`��������#� �:�:���7�������!�� �"���"�2���$�����"��_T`����2�"�������'"#� �:�:�������'�"��3�#8����:;���8� ���63��������'�:;���8� ��Usart_Init()��U6����"��

�������������unsigned short Usart_Data_Ready(void);

������� ����� ������ ��� ���������� ��������� ! � "�������#�����" ��!����$���%��#���&''�(!�)*��"��� ��+��

Page 145: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����145

�����8�Usart_Read

:;���8� ���6#8��"���"�����3�� �:�:����������<=>?@� ���'3�����"����������I�2 ��������39,:.(;!�</,/=-.'/01�3�����"��_T`��� �������"�����#8��������� ���63��������!���"���& ����#!��� 7�������������'#8������ ��Usart_Init() �"���$��7� �#!�����"���"������������������3�� �"���������"������"�����':;���8� ��Usart_Data_Ready

�������������unsigned short Usart_Read(void);

���������������if (Usart_Data_Ready())

{

PORTB = Usart_Read();

}

�������������������������� �!��"� #$�$��%� "������&'���(� )*+,-

�����>�Usart_Write

:;���8� ���6#8��"��"����2�'��7�������������23 ���� data �4��5 �6��783 ����3�� 9 ��:��"��#8��������� ���63�������������!���"���& ����#!��� 7�������������'#8��Usart_Init( )��"��

�������������void Usart_Write(unsigned short data);

�����data������������������������� ���!�"��#���

���������������Usart_Write(DAT); // Send data via USART

'�����������.���#�&���/0,����1�!#�2��%���3���

Page 146: MikroC book

146�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�;.��*. ���+�,< �����/'����5��&� / '������������������&���6. �*���

����� �$����$���%��"�&'()*+,--./0���1�!�"������ %2������ !�"��#�����1��3(*4567���1��3(-4367� � %������%2������ ��!8�%��"9����2�����:���3;<=>=�?������ 9���������������� %��������� ������������@1������% �"�A/B=>=�����'(C=>=�$������?�%2������������D�����C)E<)

�()$ &"'/9,'?(�@()�43A)����2���?����D�����C)E<)����������

������2� �"������FB<,--�GHIJ�''��������?�����D�����C)E<)�����%��� �$����$���%��"%�K��&'()*+,--

������� ,�-��%�$��.�������"�/����!/�������0�123�45677��&������%����0���!���0��!8���

Page 147: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����147

���� � !"#$%&'� (�����)���*��+�)�,��-��)��.�)/0�1 ��2+���#$3"45.�)6/1,��2

����� ��!8�%��"%!��� ������1��D��?������$�������������������� ������1��D��������%�������$������%��"�8��� .L;/35�5MNOPQRH0�OPSNT(��� !%��" ��?�%�����$�������5MNOPQRH� %� ������$�� ����%��D�5TTHJ���L;/35�5MNOPQRH�������#U��(53CV5������8���� ��� � �8%�W�� %��������������1�����X �������� ������1�$�������L;/35�5MNOPQRH��������D�

��$����������C)E<)� ����������� �$����$���%��"� ���1��D����� �%���Y*ZZ� 8����8����[�, 8�1��D��,� 8�[� ���2�!��8��@�����)� 8��\�������� 8��8@��#�����@����$�������L;/35�5MNOPQRH�?����������!����8%��"����2�������������1��D�������������

�7��+�)�,1/8��*��

�*9�+�)�,

18��) ��

��1,0����18��) ��

�:�;�9.����91�

Page 148: MikroC book

148�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

-!B#9'#�()?41'�C)E])� %�\�$�������OPSNT(������ ^�"$��%?X��"� $��%��� �$����$���%��"�����������__�W�� \̀������@

����<�����29�=>�?@@�A'BC�DD�%����&'()*+,--�����&'()*+,--/���������__�W�� \̀���=ZAabC)E]=������$��%?X��"2���L;/35cMJc����!8�!"$������d�e��(����$����������C)E<)C)E]>��������� !�"�������"$���$������%!����� f��!g"���������C)E]h����$�������OPSNT(��� !%��"�%�\�$�������L;/35�5MNOPQRH�$�� ����%��D�5TTHJ���L;/35�5MNOPQRH������#U��(53CV5������8���� ��� � �8%�W�� %��������������1�����?���@���������������������!�"��#���������������� �%��%���� �Y*ZZ� 8����X��)� 8�� ����!��8��@���?����� 8�1��D��,� 8�C)E]E����#U�� �%!��%�\�����������#���

C)E]*���8�%!����%����������D����������1��;MQi�RJ�QIOjMN�%!��%���������1��D�%�K���%�1

C)E]-� ��$���������klm� �$����$���%��"�������%�\��\� ^%��@����������@���������8�2"�3n;n5

void main(){ Usart_Init(9600); // Initial Serial Commucation [RC6,RC7] TRISD=0x00; // Set PortD==> output while(1) // Loop { if (Usart_Data_Ready()) // Check Data From Serial { Usart_Write('O'); // Send "OK" Usart_Write('K'); PORTD = Usart_Read(); // Show Data from PC ==> LED } }}

/���������� ,�-�� "9�0� :;<=>?@A?BC� /������D�E�� 3� ��� �&�� ������F.���!/� ��� :;<=>���"�/����!/�������0�123�45677G<H�/ IF.�9J��0.&�!�:;<=>�����KLMNO3����"�����0

����:����+��(�����)

.)0����������%�8��������� ���������1��D��#���%�K��Y*ZZ�,F)������������Usart_Init(9600);

.=0����������!�"��7�%�K�%��"!#�

.>0����D����?� ������1��D��D��������� ��������������if (Usart_Data_Ready())

.h0������1��D��������������e��EF�� �� �

.E0����������� ���������!�"��7

Page 149: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����149

C)E],��o���%�1�)=,����2���o�1��D��?���@����#U�� � %!�����1��D�� ����%���������f�1�Cn7������������� 1��D��#���1��L;/35�5MNOPQRH

��(� 45/����&���� +/6� .7���2�!����&�����!������#8�� ���(��.������ 9�:� ���(�&����������;��'��.7�������<���9��������=>(����2�!� ���6������#8���(����������?9@

��(��������# ��������3���.7&'���������+ABACDAEF�*G�#������2�(�&.�����1��# �������� ��# .��1�H�����H�������%&���

C)E]Y��������1��D�������p�%2���=EE�.7���"��45/����3���������������%�1:���8 ���$��!8�!"�Z6�������������%�1:���8 ���������������%2���Z6//����"��45/���# '�# �#��%�K����

mikroC

Page 150: MikroC book

150�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

���7������ !"#�Soft_Usart���!�� 2���������������FGE��� 2�"������<=>?@��'"H�'#����!�������<=>?@��� ��

�'"2���� ���3�����2�$������#!�3����������#8���7�������&�� ���'"��3�����������7�������!�� �� ��������������� ��'#8�������'����$�������8"�'� $�:;���8� ��� ���!����� ����Soft_Usart� ��:;���8� ��� ��� '������� �����������6

���7���Soft_Usart_Init

����� ���6#8��7� ����!���"���& ����#!��� ����� �����������'�������'�#8������ ��Soft_Uart_Init��6��"��#8��������� �!���:;���8� ��� �^��� ��� '������� ����� ��������\"����7����#�^���6

�������������void Soft_Uart_Init(unsigned short *port, unsigned short rx,

unsigned short tx, unsigned short baud_rate, unsigned short inverted);

�����port�����������������!�"�1� �$����$���%��"����2�������������$���@�1��56����1��36�?����

�D� �!�"�%������

rx�����������%�1����� #��������1�1�1�� 1��D���������� ���@�����Z�����-

tx�����������%�1����� #��������1�1�1����1��D����������� ���@�����Z�����-

$��1��N6�����c6�����������%�K�1�%������

baud_rate���������������%�X���� ������1��D��9����������������D��#���������#��X1�@��D�� ����%�X�1��__�W�� \̀������2���1W��@��������������?��2�����������=hZZ�[�Y*ZZ�[�)Y=ZZ�[�E-*ZZ�%�K����

inverted���������%!���� ������?8����?����� ���!�"��#�������������%�K��Z�?� ��������� ������������%�K��������p���� ���2��Z�?�%�K������ �����

��������������GSoft_Uart_Init(PORTC, 7, 6, 9600,0);

�����������������(����"��# '�(�'����������3����H!"I����+J6��������# �������K+LM�&�7"I����+JN������'���������K,LM�H! ������("I�"�������������ON��� ������������ 1���������# '���7������

Page 151: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����151

���7�7�Soft_Uart_Read

:;���8� ���6#8��7� ��� ����\"������� ��������������$���0..D.�3����"������T���� ������ ������ �9����'���������3�� 2���"�2���� ����!���2�"���'���3�� �� ���$����error��"�����'�#8�:;���8� ���63��������'�#8�:;���8� ��Soft_Uart_Init��"��

�������������unsigned short Soft_Uart_Read(unsigned short *error);

���7�8�Soft_Uart_Write

:;���8� ���63��"�����#����$���data�2�'��7�����������#����$!�"��� �����!��3�����@a�"�����'�#8�:;���8� ���63��������'�#8�:;���8� ��Soft_Uart_Init��"��

�������������void Soft_Uart_Write(char data);

Page 152: MikroC book

152�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�;.��*. ���+� ,=��(+�� �����5���7�����>:�� �&� � �� '?�8*� ��

�����������@���%�����������1��D��#���� ��!8�%��"$�� ���2�$��D��L;/35���������� �$����$���%��"� &'(����?��2����%1���$������%!������������ ���1��D�������%��������;TqcrRNM�L/35�@���@%!��%�K�������������2����1�!�"���p�1� �$����$���%��"�&'(������������1��D��#�������W����$��D��L;/35��D�?���� ��2���������������������������������1��D��#���� #���W"�������%�K������������%!8��?�����1�!�"�������1��D��#������%�

char *err ; // For serial Data Bufferchar DAT ; // Save Datavoid main(){

Soft_Uart_Init(PORTC,7,6,9600,0); // Initial Software serial portTRISD=0x00; // PORTD ==> Outputwhile(1){

DAT = Soft_Uart_Read(&err); // Read Serial dataif (err==0) // Check Data tranfer complete ?{

Soft_Uart_Write('O'); // send "OK" To PCSoft_Uart_Write('K');PORTD=DAT; // Show Data ==> LED

}}

}

����:����+��(�����)

.)0����������%�8��������� ���������1��D��#���%�K��Y*ZZ�,F)�����������Soft_Uart_Init(PORTC,7,6,9600,0);

.=0����������!�"��7�%�K�%��"!#�

.>0����D����?� ������1��D��D��������� ��������������DAT = Soft_Uart_Read(&err);

.h0������1��D��������������e��EF�� �� �

.E0����������� ���������!�"��7

/���������� ,�4�� "9�0� ;OP?:<=>BC� /������D�E�� 3� ��� �&�� ������F.���!/� ��� :;<=>���"�/����!/�������0�123�45677G<H�/ IF.�9J��0.&�!�;OP?Q:RN?�����KLMNO3����"�����0

Page 153: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����153

�()$ &"'/9,'?(�@()�43A)��������2���?����D�����C)E<)����������

������2� �"������FB<,--�GHIJ�''��������?�����D�����C)E<)�����%��� �$����$���%��"%�K��&'()*+,--

-!B#9'#�()?41'�C)*])� %�\�$�������OPSNT(������ ^�"$��%?X��"� $��%��� �$����$���%��"�����������__�W�� \̀������@

����<�����29�=>�?@@�A'BC�DD�%����&'()*+,--�����&'()*+,--/���������__�W�� \̀���=ZAabC)*]=������$��%?X��"2���;TqcL/35����!8�!"$������d�e��(����$����������C)*<)C)*]>��������� !�"�������"$���$������%!����� f��!g"���������C)*]h����$�������OPSNT(��� !%��"�%�\�$�������L;/35�5MNOPQRH�$�� ����%��D�5TTHJ���L;/35�5MNOPQRH������#U��(53CV5������8���� ��� � �8%�W�� %��������������1�����?���@���������������������!�"��#���������������� �%��%���� �Y*ZZ� 8����X��)� 8�� ����!��8��@���?����� 8�1��D��,� 8�C)*]E����#U�� �%!��%�\�����������#���

C)*]*���8�%!����%����������D����������1��;MQi�RJ�QIOjMN�%!��%���������1��D�%�K���%�1

C)*]-� ��$���������klm� �$����$���%��"�������%�\��\� ^%��@����������@���������8�2"�3n;n5

C)*],��o���%�1�)=,����2���o�1��D��?���@����#U�� � %!�����1��D�� ����%���������f�1�Cn7������������� 1��D��#���1��L;/35�5MNOPQRH

��(� 45/����&���� +/6� .7���2�!����&�����!������#8�� ���(��.������ 9�:� ���(�&����������;��'��.7�������<���9��������=>(����2�!� ���6������#8���(����������?9@

��(��������# ��������3���.7&'���������+ABACDAEF�*G��2�(�&.�����1��# �������� ��# .��1�H�����H�������%&���

mikroC

Page 154: MikroC book

154�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

���8�1C�'=�#D4�!*)=ED+$9')�?="$�=";A-.'��!*F/401���������3�����#8�:;���8� ����$���H�b��E��� �ABC.DE����27��������'���#!�$���\�7�c��

���$������������'����$���H�b��E� �7� ����!������������������<=>?@�2�����'�������$�"3�������� �U����������$�������!�������3&�������� ����� ��� '������� ����<=>?@� ���'�"��

���!�� 2���������������FGE��� ������<=>?@�����3&������!���� #8��� ������������d�����$���3&��������( �����4��������

Ie��G����)@.+RfAB/�f/+/,f�+R-�gDR/.Dh�.0SBf/0.1��#8��� ���$�$������������"�����

4e��H����)?0g0Bi0�f/+/,f�+R-�gDR/.Dh�.0SBf/0.1��#8��� ���$�$������������� ����

de��IJ�K�)=0.B+h�jD./�P+,-�.+/0�S0R0.+/D.1�#8����!���������(�#�����"�'�������

Ve��G�LK�)@.+RfAB/�-+/+�.0SBf/0.1��#8���( ������ ��������"�

Xe��H�LK�)?0g0Bi0�-+/+�.0SBf/0.1�#8���( ������ �� ������

���8����G����)=ED+$9')�3+4�+:(#M31MNA*N2/�()+,�-.'/01�����

����

������

�����

���

������

�����

����

������

�����

���

������

����

�������

����

���

������

�����

�� �

����

�����

����

������

���

*D9�O�P�H�����H���Q� ������ ������R���S� &�����$!"������&���YY�9��Z[���������������� ; <�6�4�5 ����:4=������������ ;

>?@ A ������78�B7��C����� �������6���������DD�C�EF��G�2��>H@ A ������78�B7��C�����:��� �5 ��6���������DD�C�EF��I���6J��������:��������

��:�����J����K6�2���3 ����G�2�<��������������� ;LMN*D9�T�P��GU��UPR������ ������R���R���S� &���������"�����$ �W� &�

>?@ A ���������6�3 ������� 9 ��:>H@ A ���������6�3 ������� O ��:

*D9�V�P��GLW������ ������R���R���S� &���������������������"�>?@ A ���������:�J�6�3 ����>H@ A ���������:�J�6�3 ����

Page 155: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����155

*D9�>�P��XWH����������Y�� ������R���S� &������!������������������<=>?@>?@ A ������������������>H@ A ����������������

*D9�8��] <�6�4����5 �� �6��6��78 >?@ !������ PQRHST9U(1*D9�8�P��LWZJS����Y�J���Q�H���������R��S��+,�*D9�J���Q��)���!�� �FGEIJKLLa1

�������������� ;>H@ A �6� V/')W ����������6�3 �������=�:6�<7 !��:4=I�K�����42�����X�����J��1>?@ A ����6���: V/')W ����������3 ���������C�

������������ ; <�6�5 ����:4=*D9�7�P�J�K[��[\��R��Y������ ������R���S� &������!������������(�#�����"�'�������

�������������� ;>?@ A �������:�����J����K6�2���3 ����:��� !��:�������������::���1>H@ A �������:�����J����K6�2���3 ������� !��:�������������:���1

������������ ; <�6�4����5 ����:4=*D9���P���]������� ��� �^����\ ���� ���� �R��S�*D9����S� &�$����������3&������ �:�:����"�

>?@ A �4I���:����������� !YZM1 �:�� ���<�6J6��>H@ A �4I���:����������� !YZM1 J6��

*D9���P��GUZ��U���R���^����� ���Y�����S� &���( ���� &��� �W��������"�����$ �W� &���:4=�5 ���IB3 ������:�4� O ���C4�4����������6�3 ������� O ��: ��2�����:��: Y[O ���2�������K

�5 �78��:����:4=3������������3 �����B���<�

���8�7��H����)=ED+$9')�3+4�+:(#M31MNA*N2/�())!*-.'/01

�����

����

������

�����

���

������

�����

����

������

�����

����

������

����

��

������

����

����

����

�����

����

����

�����

���

����

� ��

*D9�O�P��ILW��������_�������R���R���S� &���������������������<=>?@>?@ A ���������>H@ A ���������������5 ������� \Z]MY ���� 3� MLU^M(_ ��� MLS^Y(_ �5 ����������

\Z]MY ������������3 �����B��� �������: U ��� S 3���4I���:��� YMQZR K����:�78 >H@

Page 156: MikroC book

156�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

*D9�T�P��GU��UPR�����������R���R���S� &���������� ����$ �W� &�>?@ A �����������3 ������� 9 ��:>H@ A �����������3 ������� O ��:

*D9�V�P���LW����\������������R���R���S� &���������� �������6����'��3����'��!��3���� ������ �9��������������� �����������A���� ; <�6�5 ����:4=������������A����:��� ;

>?@ A ���������������3 �������=���42J>H@ A ���������������3 �������=���42J

*D9�>�P�H�LW��H������ ����������R���R���S� &���������� �����"���� ��>?@ A ���������������3 ����:6������>H@ A ���������������3 ����:6������

*D9�8�P��ZZLW���YY�� �Y���������R���R���S� &�����������33� $�������5 ���C4�����������3 ������� O ��:��6��=

>?@ A ������������:�JII��������� 3 ����I�K�������=��� �����:�4� O �5 �78��:����:4=<� >H@ A ������������:�JII��������� �6�`�� �������������������:�����7:� ����4���K6�2���

3 ����<72�����������������: MZM K����:*D9�7�P�`L����`����\�������R���S� &�$3������\&�7������:������

��:�78 >H@ ������4�J��`�������������3 ��������3a=*D9���P�aL����a������������R���S� &�$3������\&�7����� ��3�����8�����������

>?@ A <�6�4�J�� �̀���������3a=>H@ A �����J�� �̀�����3a= �����K���42����:4=<� � J2������42����: RMbc

*D9���P��GUZ��U���R���^������Y�Y�����S� &���( ���� &��� �W��������� ����$ �W� &���:4=�5 ���IB3 ������:�4� O ���C4�4������������3 ������� O ��: ��2�����:��: M[O ���2�������K

�5 �78��:����:4=3������������3 �����B���<�

Page 157: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����157

���8�8� �+,A#�b($#D4'!9)($)5Ac#�():,(;?'4-.'/01d)&'*'4$)9$E$#'$)$9')�

#�����<=>?@�#8��"�������&��������(�#�����"�'�������!��� ������3����������7�'�8�����'������������� ��6����������#��!����%&�������$�%&����������'����������'��L� &���3&�������� �����������������IJ�K� ��'3��� ����� ������2�������&��������L� &��7� ������&��������(�#�����"�'�������� ��� �������#��!����%&������������������"���� ������ &�*?kl�) &��4������3&�������@m=@>1��7� ����!��'"������������(�����$ � ��$�������$����������7��n�#�������� �deVeI�%U �#������2��$���������!�� �����9!��"��������(�#�����"�'�������!��� �����#�$�"���� ��2�2�����'

���!�� �"��������#���3&�������=F*?k�%U �#8�#�������!���������(�#�����"�'������������������92��3������� �� �#�������� � IT]I�$�"3����"�\&�7����&��U6���������'"���"�2���6

���!��#!������� ��YY�9��Z[��!��� )!��������� �����&���1� ��"��� �IJolp�������� �������"��� �WNJTT� &��"��&����� ����'"�� ������ �������������$ ��%&�������������������������7��n�����9&�5�����2�������6

.����91� ��s�������

��

������

�������� �

�������

��'�� �"��m�����"������3&�������=F*?k�$�"��� ��3������#���3&�������=F*?k�����������3�������(���"�����=F*?k�3U������4X�����"��4X�$���� ����2�#����!��"� ������3�2��

��������� ����� �����������!%( �����&�����S%F!���#��I�� ������ ����� ���� / I�������T�����������$������0� ;1U=V

������������� ���������������

����������� �������������

��

���������� ������������

��

�������������� �����������

��������������������

��

Page 158: MikroC book

158�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

������q��������

����� �

�q�WNJIX� &��"��&����

�� ������&��"�\&�7���IX� &��"��&����������������9����������%(�������\&�7��2��3��

e�NA(/fD4%1(4�q�) ������� �����9] ������� �������1r� ������� ���������aITTs

����q��TeIXJ4Xs

�'"��2��(����#� ����9������������\&�7��2����'������!��#!������ ������ �����'������(���$�����'���!�� &��*?kl������_I`

����

��������

��������������

����������

����� �����

���������� � ������

�������� �������

�������� �����

��������������

����������

����� �����

��������������

����������

����� �����

��������������

����������

����� �����

����

������� ����

������ ����

����� �� ��� ����

������������

��� � � ��� � � ������ ��� �� ���� ����� � ����� ���� ������ ��� ��� ���� ���� �� ���� ��� � ��� ��� � �� ��� � �������� ���� �� ����� ���� �� ����� ��� �� ����� ���� �� ��� ��������� ���� �� ���� ��� � ���� � ��� � ����� ����� � ��� �������� ��� � ���� ��� ��� � � ��� � ��� ����� � ��� ���� �� ��� � �� ��� ��� � � ��� � � ��� ��� ���� � �� � ��� � � ��� � � ��� � � ��� ������� ��� � ��� � � ��� � � ��� � � ��� ������� � � ��� � � ��� � � ��� � � ��� �������� � � ���� � � ������ ����� ���� ���������� � ��� ����� � ��� ����� ��� � ������ ��������

�����������

� �� ���

� �� ���

����

��������

��������������

����������

����� �����

���������� � ������

�������� �������

�������� �����

��������������

����������

����� �����

��������������

����������

����� �����

����

������� ����

������ ����

����� �� ���

����� ����� ��� ����� ����� � ����� ����� �� ��� ����� �����

������ ����� � ������ ���� �� ������ ����� �� ����� ���� ������

���� ���� �� ������ ��� �� ���� ����� � ����� ���� ����

������ ���� �� ������ ���� �� ���� ����� � ������ ���� ����

������� ���� �� ��� ����� ����� ����� � ������� ���� ������

��� � ������ ����� � ��� � � ������ ����� ����

��� � � ��� � � ��� ��� ���

���� � � ��� ��� ��� ����

��������� �W��� ���I�+���I ��������$������0� ;1U=VX� ����� ���$���� ��+����0�YS!�0�%���� ��� �������� ! F �/� ���:;<=>������!F!/ � �+Y��/��!&��&�����S%�����G�U=VZ�[�\]H

��������� �^��� ���I�+���I ��������$������0� ;1U=VX� ����� ���$���� ��+����0�YS!�0�%���� ��� �������� ! F �/� ���:;<=>������!F!/ � �+Y��/��!&��&�����S%����G�U=VZ�[�\�]H

Page 159: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����159

������6��� ���!���"� �����#!�"��'���'������#���3&�������=F*?k�3����#!��"����2�������&���H�'#��"�������&� ����������%�����'���"�����5�'�������6���� �����������!���������(�#�����"�'�������!��� �����#!�"����!'������������������<=>?@���6�"������ ����!���"�#!�"���' ���'$��3U���& ����������#!�"� �7� ����������#����#8����3U�2�������"������3&�������=F*?k��� ������"��^������6��"�����\&�7������ ���������6�#��!��%&�������$���%&�������2��#�������� �IT]4��$�IT]d� � �\�#8��������������"�#������2�#8�2���'��'2�"�������'��������9#!�"

���>��()?b(�(#-'�F/401�������c#Fd/4'M6D�FN)#!+���>����()+,�-.'/01c#Fd/4'M6D�FN)#!+

#����� �IT]4�$���2���$�������"�����#��!����%&��������!��#3�����Y�������������'"�� 8&:����3&����������"��)/.+RfAB/�ftBu/�.0SBf/0.�v�@=?1���'#�8&:����3&������ ��3������� 2����3����3&��������( �������!�� ����"�!����@m?wk������� ��������"�3������'���'���@m?wk�3����6�3��"�'����"�2�'��8&:����3&�������@=?� ��� �������"� &��[����'�������#�8���"��!������2�$��

!��3���� ������"� &��[����'���2��@=?�3�2���� ����#!�"3����3&�������@m?wk�%U ���&��U6�H�'#�2%��&������������'����3&�������@m?wk�3��"���$� &��@mGK�) &��V������3&�������FG?I1�3��%�!���������(���� &�&�����������2����(3���&�����&������������U6�� &��@mGK�3����'��2���(�"���� �������"�'�������#!�"�#���3&�������@m?wk��"����������8&:����3&�������@=?�3�$���\"�� &��@?o@�) &�I������3&�������@m=@>1� ��� ��@=?��"��3��%� &���6������6�\�#8�������������'����$������33� ������ '�$���� &���6�7� ���& ��������"������(2��

����

����

������������

�����

��� ���

���

���� ���� ���������������

����������������

���

���������������������������

���� ���

� ������ �

������ �!"!���

����

���

��������W�" �+����������������F!/ � �+Y��/��!&����/� ���:;<=>�F!�123�4567_

Page 160: MikroC book

160�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�����& �����"��������3������<=>?@� ��&��U6���� ��%� &��@mwO� ) &�� X������3&������@m=@>1�$�"�����& ����3�&�#�����x& ��&3���&��U6�!��3���� ��3&�������@m?wk�2���� ������'�����$� ������3�����������������YY�9��Z[���������"�'��������U6��)����� �IT]4������ 1�����3���@m?wk�3��"�2�'��8&:����3&�������@=?�$���'�'�"����2������7�����?EJr@ayrEz���'�� ��7����'������3� �:�:���$���YY�9�� �������I��������� &��=FwO�) &��M������3&�������?E=@>1%U ������%� &���6��&{���6�����3�2�"�������"����2�2��

����� ������3���& �������' &���& �����"����'���� &��T�3��U����� &��M�!����L��U6��'"�� ������!��������������"���������"�$ �L�!����W� &��$��"� &��[����'����I� &�������'� ��������� �I�8���������� &��@?o@�3�$3���"�8&:����3&������2�"�"����6�$�"��& ��"� &���& �����$�3��%��7� �$3���"��"��!��3���� �"����� &�������'��"���"� &��[����'������������ �IT]d������

+)2g-!B#9'#�()�b(d#4cd.F/401�������+,�-.'/01c#Fd/4'M6D�FN)#!+<4.4!�#=B

)I1����!����������� ������#��=F*?k�!��#8� �����������(��������%� &�*?kl����'

)41�����:;���8� �����&��"�\"��7����������$����!��#!�������#��!����%&���������'����%� &��=FwO�$����'�� &��=|OE

)d1�����������#!���&��&����������������������%� &��@mGw

)V1���(���� &����"�������'�%� &��@mwO��"�\#!�$:��@mGK����%����2����'

)X1����!�������#���3&�������@m?wk��7� ���& �����"�����

��������^�" �+�����%��������������/ � �+Y��/��!&����/� ���:;<=>�F!�123�4567_

������������ ������������

�������� �����������

�������������� �!" �#

�$�%���� �&'(����)*

���������������� ����������$�%���

� �&'(����+�

� ��� �,�- � ��. � ��/ � ��0�1�2��3 � �45��-�

t tt tt t

t tt t

t t

������ ���������

Page 161: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����161

���>�7��())!*-.'/01c#Fd/4'M6D�FN)#!+2���$������������$���#����� � IT]V����!��#!������ ����$ ��%&�������#����

<=>?@��������������%� &��E?wO�) &��V������3&�������?E=@>1��"������3����"������������7����?EMr?ayry@���� &��\"����3� �:�:��������"�"�����'���������)-+/+�.0gDi0.}1�%U �H�'#���������� ������������(������������ ������(��IJ���"���� ��������6���6�7� �#!�����<=>?@��������� ����������$��"�'����"�2�'��8&:����3&����������� !����?=?�).0g0Bi0�ftBu/�.0SBf/0.1�2����(��U6���"�\#!��������� ����2���'"������"����$��� ������������ �� ������3���& �3�� &���& ������"����'���� &��T�3��U� &�M�!����L��U6��'"�� �������$�������'��� &��[����'

����������������

���� ���������������!#$%

����������������

���������������������������

����

���� ����*

+�)�,

�?��0

���

���

�����

�����&'��(����� �)*+,+!-./01.-23

���

���

��

�����

���� ��

���� � ��

���

���

������

�����

���

�� ��

����

����

��4�������56���������������� �

��*+�

)�,�?��0

������ �!"!���

��� ���

���� ����

��������`�" �+��������&�������F!/ � �+Y��/��!&����/� ���:;<=>�F!�123�4567_

Page 162: MikroC book

162�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

!��#3�������� �������8&:����3&�������?=?�!��3���� ���33� &��[����'�������� ����2�������#��?=?�3��"�2�'����3&��������������� �?E?wk�!��3���� �"�'����������(3�� �9� &�$:��?EGK�) &��X�������3&������� �FG?I1�3����%��!���������(���� &�&�����������2���(3���&��&������������U6��$:��?EGK�3����'����� �����#���3&�������?E?wk����"�����2�$��"���

��3&��������������� �?E?wk����4�8�������$ �KGK~���������� �����"��3����"�����"������#!��� ����2�������(���7����� �����d�2 ��2���"���� ���#��9��� ������"�'���������6��4�2 ��3����3&������?E?wk�����#�2 ���� ���������������"����<=>?@�2����������'����3�����( 2���� �?=?��"��

#���9��� ���������33� &��[����'2���$�"#���3&�������?E?wk�'���������'"�3���&��!�����9�8���������������'��"��F'$A')�)!#���������������� &��~w??�3����%��7� �$3������\&�7������"���"�\#!�����#��?=?�!�'2��$�����"�'�������3���?=?�2�'����3&�������?E?wk�3���'� '�6�2����� ��"��� &��~w??�'�����%��'"� &��~w??����������'��2�����'��� ��������%�:��$���

����\&�7�����$ !�U ��� ��3��&��U6�2������NA(/fD4%1(4?(�$�)/-.'/01� �^����\�������3���&��U6���� �������33� &��[����'7 �"������3&��_T`�%U ������ �������� &���& �����������#�8�����2���"�\#!�2�"������������2���"��2���� �����'"���� �9��"��!�����6!���2�"� � ��� �������33� 7 �"�������3&��_T`������ ������������ �(3���& �����"�2���"�\#!���&�����"������ &�$������_T`�%U �$���� 3�&�$�������� &���& �����������8���"�2�����#!������� �� ������\&�7��� &��Kw??�3����%��7� �$3������\&�7������"������ �������"���"������3&�������?E?wk� &��Kw??�3������ ������'��������&����!������� �������6�#!�"������� &��Kw??�3���'�����_T`���'��������&��'"��2��(���!����&�����\&�7������:�������U6��$���������� ����$ �W� &��3�������'"��'& ��� 3������������"������3���?E=@>��U6����"���7� ����b����� &��� �W����2���3����6�3U��"���"������3&�������?E?wk�7� ��"������#��L� &��� �!���7������ ��� �����"���� &��Kw??����'

+)2g-!B#9'#�()�b(d#4cd.F/401�������)!*-.'/01c#Fd/4'M6D�FN)#!+<4.4!�#=B

)I1����!����������� ������#��=F*?k�!��#8� �����������(��������%� &��*?kl

)41�����:;���8� �����&��"�\"��7����������$����!��#!�������#��!����%&���������'����%� &��=FwO�$����'�� &��=|OE

)d1�����������#!���&��&�����������������%� &��?EGw

)V1������������� ����$ �W� &�#!��%� &��?mW

Page 163: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����163

)X1� ��(���� &����� ������'����%� &��E?wO

)J1� &�$:��?EGK����%���� ��� �������(3�&6��3���&��&�����������!����(���� &2��

)M1��"�����������3&�������?E=@>��7� ��"������ &��� �W����!����������� ����$ �W� &��$����3�� ����\&�7���� ��3��&��U6���!�"������� ����

)L1��"�������L� &��� �� ���������'�"��\"�������3&�������?E?wk

)W1������&�����\&�7���U6��#!����'�� &�$3������\&�7��!��� &��E?wO

���V��()c .'D#$9')�)!g9�$%&"')!*-.'/01����� ����������$ #8��&n���������3���"�3����������"���������3���"�������

������$��������������2��������"���� ��^�$���� ���� ����2�"���������� �"�����3�Y!�'2��

���$��2�����#8�����&�����������������8"�'����#!����$���2�"3������������������3�� ����� �����������2�������#��"���� ��^�2��� ��3���"�3�������������3���&��������������6�!�U �3U���������������#����$���'"�' �&����&������������������� ������������"�\#!������ �������������������'& ��U6�

���!�� 2���������������FGE�2������'��"�� �&����&��������������!�� ����� ���������������<=>?@�2��$�����'#!���������(���� &����&�������������6���'����%� &��?EGw�#���3&������FGwI���� ����������"�������� &��?EGK�3����%����� ���&�����&������������%�7�'3�������2�'��:;���8� � �&����&�����������������$�������#����$���'"�' �&����&�����������3����(3�"���� 3��� �����������$������&�"�2�

#�:;���8� � �&����&�����������3������������ ���"���"�3����3&�������?E?wk�%U ���� ��"���"�$��3�����������'��$:��&������������?EGK���'��������&

Page 164: MikroC book

164�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�;.��*. ���+�,@ � ��/'����5����&?.'��������� ����/ ��A.��*������*�'

�����������@%�K�������%�����%1���$������d�e��(� %!���� �#���� �$����$���%��"� &'(������������1��D��#���� ��!8�%��"f���!�"��#��� ���$�� ���2�̂ l��"2����� � ����!8%ue1��OPSNT(�� !%��"� ���?�%�K����%1������������?8�%��"���%�����1�����

����� �����������@%�K�����������1��D��#���?�� �$����$���%��"� &'()*+,--� �����f�������������L/35�5MNOPQRH�1��OPNST(��� !%��"

�()$ &"'/9,'?(�@()�43A)��������2���?����D�����C)E<)����������������2� �"������FB<,--�GHIJ�''��������?�����D�����C)E<)�����%��� �$����$���%��"%�K��&'()*+,--

-!B#9'#�()?41'�C)-])� %�\�$�������OPSNT(������ ^�"$��%?X��"� $��%��� �$����$���%��"�����������__�W�� \̀������@

����<�����29�=>�?@@�A'BC�DD�%����&'()*+,--�����&'()*+,--/���������__�W�� \̀���=ZAab

char dat ;void main(){ SPBRG = 129; // 9600 bps TXSTA.BRGH = 1 ; // Baudrate mode set High TXSTA.TXEN = 1 ; // Enble Transmitter RCSTA.SPEN = 1 ; // Enable Serial Port while(1) { dat = 'A' ; // First Character while(PIR1.TXIF) // Test Buffer Blank { TXREG = dat ; // Send dat delay_ms(500); // Delay 500 ms dat = dat++ ; // Increment dat } }}

����:����+��(�����)

%�K�$���������������e��.�������@0�1����e��/�%�K���� ���� �����f�f���!�"��#����$��%���2������e����Z]E��8�����$�������W��� �%�� ��%���� �Y[*ZZ� 8����8����

/����������,�7��"9�0�>_:<=>BC�/������D�E��3���� �&�� ������������������!/� ���:;<=>����"�/����!/�������0� 123�45677G<H� �%I������ ! ���"�I&���$������0�%��8���������!/ I���

Page 165: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����165

C)-]=������$��%?X��"2���56L/35����!8�!"$������d�e��(����$����������C)-<)C)-]>��������� !�"�������"$���$������%!����� f��!g"���������C)-]h����$�������OPSNT(��� !%��"�%�\�$�������L;/35�5MNOPQRH�$�� ����%��D�5TTHJ���L;/35�5MNOPQRH������#U��(53CV5������8���� ��� � �8%�W�� %��������������1�����?���@���������������������!�"��#���������������� �%��%���� �Y*ZZ� 8����X��)� 8�� ����!��8��@���?����� 8�1��D��,� 8�C)-]E����#U�� �%!��%�\�����������#���

C)-]*� ��$���������klm� �$����$���%��"�������%�\��\� ^%��@����������@���������8�2"�3n;n5

��(��������# ��������3���.7&'���������+ABACDAEF� 0� &����>8� ���#"���2�(�&.������# �#�P��-QJQ�/QRRR�1��!���������(���#����

mikroC

Page 166: MikroC book

166�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�;.��*. ���+�,B ��������5����&?.'��������� ����/ ��A.��*������*�'

�����������@%�K�������%�����%1���$������d�e��(� %!���� �#���� �$����$���%��"� &'(� 1��D��#���?����!8�%��"��������?��$�������L/35�5MNOPQRH�1��OPNST(��� !%��"�%!������f�f����Cn7�������D�� !�"��7�$������8���� $��D��L;/35��@�?�%�K����%1���$������%!����������� �����?8�%��"�� �#�1�$��D��L;/35�$�����

�()$ &"'/9,'?(�@()�43A)������2���?����D�����C)E<)����������������2� �"������FB<,--�GHIJ�''��������?�����D�����C)E<)�����%��� �$����$���%��"%�K��&'()*+,--

-!B#9'#�()?41'�C),])� %�\�$�������OPSNT(������ ^�"$��%?X��"� $��%��� �$����$���%��"�����������__�W�� \̀������@

����<�����29�=>�?@@�A'BC�DD�%����&'()*+,--�����&'()*+,--/���������__�W�� \̀���=ZAab

char dat;void main(){ TRISD = 0 ; // PORTB ==> output SPBRG = 129; // 9600 bps TXSTA.BRGH = 1 ; // Baudrate mode set High RCSTA.SPEN = 1 ; // Enable Serial Port RCSTA.CREN = 1 ; // Enable Continuous receive dat = RCREG ; // clear buffer data dat = RCREG ; // clear buffer data dat = RCREG ; // clear buffer data while(1) { while(!PIE1.RCIF) // Test Received data {

PORTD = RCREG ; // Show data on PORTB } }}

����:����+��(�����)

%�K�$�������� 1��D�?��!�"��#�������������?� 8��3('+� %�����1��D�%1������ ̂ %^�" 8���@?�%�K��v)w�?���@����1��D����� ����� ���!�"��7���������������%�8���������������@����?�����%X�%% 8����������1��D��#��������������� �%�������?�������1��D��>���@�%!��%�����"����� ̂ %^�"

/����������,�6��"9�0�=_:<=>BC�/������D�E��3���� �&�� �������&����������!/� ���:;<=>����"�/����!/�������0� 123�45677G<H� �%I������ ! ���"�I&���$������0�%��8���������!/ I���

Page 167: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����167

C),]=������$��%?X��"2���36L/35����!8�!"$������d�e��(����$����������C),<)C),]>��������� !�"�������"$���$������%!����� f��!g"���������C),]h����$�������OPSNT(��� !%��"�%�\�$�������L;/35�5MNOPQRH�$�� ����%��D�5TTHJ���L;/35�5MNOPQRH������#U��(53CV5������8���� ��� � �8%�W�� %��������������1�����?���@���������������������!�"��#���������������� �%��%���� �Y*ZZ� 8����X��)� 8�� ����!��8��@���?����� 8�1��D��,� 8�C),]E����#U�� �%!��%�\�����������#���

C),]*���8�%!����%����������D����������1��;MQi�RJ�QIOjMN�%!��%���������1��D�%�K���%�1

C),]-� ��$���������klm� �$����$���%��"�������%�\��\� ^%��@����������@���������8�2"�3n;n5

C),],��o���%�1�*E����2���o�1��D��?���@����#U�� �%!�����1��D�� ����%���������f�1��Cn7

��(�45/����&��� ���N�&�7 �����.7���=>(������# ���;��'��������9�����9������L�9�������;��'� �����(��.������NS���('��������#8��������;��'� ����(�1�H�����H�������%�# 1�.7�������������;��'�����;��'� ��=>(�����NS�;��'� .7�����# ��9�����9�;��'���&�7��L�9�;��'� �

����45/���� �����'����>(�����45/���������% � ��%�����TUV:66�WXYZ� [[���("I��������"����������8

mikroC

Page 168: MikroC book

168�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�;.��*. ���+�,C ��������5����&?.'���������>:��.��*������*�

���������@���%�����%1���$������d�e��(�%!����� #���� �$����$���%��"�&'(�� 1��D��#���� �2�����8�%��"���"�$����������� �$����$���%��"�&'(�1 �Cn7����1�!�"��37-��8���!�8 ������%�������d������8��� �������� 1��D�����%��������� 1��D�%1������X?��������1�1��D��@�����!�"��7����

�()$ &"'/9,'?(�@()�43A)������2���?����D�����C)E<)����������������2� �"������FB<,--�GHIJ�''��������?�����D�����C)E<)�����%��� �$����$���%��"%�K��&'()*+,--

-!B#9'#�()?41'�C)Y])� %�\�$�������OPSNT(������ ^�"$��%?X��"� $��%��� �$����$���%��"�����������__�W�� \̀������@

����<�����29�=>�?@@�A'BC�DD�%����&'()*+,--�����&'()*+,--/���������__�W�� \̀���=ZAabC)Y]=������$��%?X��"2���'QcMNNIGcL/35����!8�!"$������d�e��(����$����������C)Y<)C)Y]>��������� !�"�������"$���$������%!����� f��!g"���������C)Y]h����$�������OPSNT(��� !%��"�%�\�$�������L;/35�5MNOPQRH�$�� ����%��D�5TTHJ���L;/35�5MNOPQRH������#U��(53CV5������8���� ��� � �8%�W�� %��������������1�����?���@���������������������!�"��#���������������� �%��%���� �Y*ZZ� 8����X��)� 8�� ����!��8��@���?����� 8�1��D��,� 8�C)Y]E����#U�� �%!��%�\�����������#���

C)Y]*���8�%!����%����������D����������1��;MQi�RJ�QIOjMN�%!��%���������1��D�%�K���%�1

C)Y]-���$���������klm� �$����$���%��"�������%�\��\� ^%��@����������@���������8�2"�3n;n5����%���������f�1��Cn7

45/���(2��%��+/6����72��

C)Y],��o���%�1�*E����2���o�1��D��?���@����#U�� �%!�����1��D�� ����%���������f�1��Cn7

��(�45/����&��� ���N�&�7 �����.7���=>(������# ���;��'��������9�����9������L�9�������;��'� �����(��.������NS���('��������#8��������;��'� ����(�1�H�����H�������%�# 1�.7�������������;��'�����;��'� ��=>(�����NS�;��'� .7�����# ��9�����9�;��'���&�7��L�9�;��'� �

Page 169: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����169

����:����+��(�����)

?��$������%�K�����2�8�%��"���"%1����2�����������?� ���� 1��D��%��������� 1��D�%1����?�%�8����8�%��"���"� ����9�!��D?����$�� ���������� l̂��"2�� �8���8�%��"���"� 9���?�������1�1��D����� �� ������!�"��7�������1W���� �������8�%��"���"�$������?���������� �$����$���%��"���1��D�v)w�����vZw� ���1�!�"��37-�9������Cn7� ����������Cn7�%�8������!�8

l̂��"2���enable_int()� �2����������%�8���������� ���8�%��"���"� $��?�%X�%% 8����������1�8�%��"���"�>������%X�%% 8�8�%��"���"���� 1��D��#����%X�%% 8�8�%��"���"?��#���W"��!�������%X�%% 8����8�%��"���"���

char dat ;void interrupt(){

PORTD = RCREG ; // Receive Interrupt}void enable_int(){

PIE1.RCIE = 1 ; // Enable receive interruptINTCON.PEIE = 1 ; // Enable peripheral interruptINTCON.GIE = 1 ; // Enable Global interrupt

}void main(){

TRISD = 0 ; // PORTD ==> outputSPBRG = 129; // 9600 bpsenable_int() ;TXSTA.BRGH = 1 ; // Baudrate mode set HighRCSTA.SPEN = 1 ; // Enable Serial PortRCSTA.CREN = 1 ; // Enable Continuous receivedat = RCREG ; // clear buffer datadat = RCREG ; // clear buffer datadat = RCREG ; // clear buffer datawhile(1){

PORTD.F7 =0; // Blinking LEDdelay_ms(500); // ON RD7PORTD.F7 = 1;delay_ms(500);

}}

/����������,�a��"9�0�2b?@NNcd?:<=>BC�/������D�E��3���� �&�� �������&����������!/� ���:;<=>���"�/����!/�������0� 123�45677G<H� �%I���F.���!����0�&��0

�������������������

Page 170: MikroC book

170�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

Page 171: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����171

��������������� ���������������������������� �� ��!"��# $�����$"�%�%����&������#�'�(%��)*+,-���� #.�%����/ �#%����(%�01���2��"�����������"3�����'�4�$�4(������������(�5��#%�����3���# $�����$"�%�%����&���"�� �$ �6%�5�����7'� 6%�����89:;<=+�9>>&?(%�#%�����3���# $�����$"�%�%����&���"��# � �$ �6%���%�����5��� �7�.����7��$ �6%�����# ��.�4�.������� �'�����@2'���

������������������ ��

�����������������I2C_Init

@2'�3����������� �'�(%���� !���AA� ��BC��7����������� 5���'�����������$ �6%�����D��'�����4�@2'���01���2����E������ �

������������� ������void I2C_Init(unsigned long clock);

������clock����������������� �������������������� �� ��������������� !��"#� $����%%� � &'(

��)�*����'�+��,�����+��,������-�)$��.//0"#�1�2+��,������-� ���3//�0"#

����������������I2C_Init(100000);

���������������� ��������������� ���� ������������ ��!"���������#����$#����� %&&'()

�����+�,, �*-�*.��/��0��&������ �1�

�� �23'�4�+���'�!"#$%������5�����

Page 172: MikroC book

172�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�����������������I2C_Start

@2'�3����@�'������(%�����AA� �><:+<����#������@2'����'�����4�01���2���I2C_Init������

������������� ������unsigned short I2C_Start(void);

��� �� �����4������56,7��,89��:����;<2�������/����%��

����������������I2C_Start();

�����������������I2C_Repeated_Start

01���2����ED�����AA� ���� �'���5��><:+<���E�"��������#��$�44�# � ��������AA� �4����5��><-F

������������� ������void I2C_Repeated_Start(void);

����������������I2C_Repeated_Start();

�����������������I2C_Is_Idle

����01���2��"������� ������������.�'� "������7'� 6%���#���5�# �

������������� ������unsigned short I2C_Is_Idle(void);

��� �� �����%� �����<2�������=.>����%���������?�<2�������=/>

����������������if (I2C_Is_Idle())

{

I2C_Start();

...

}

Page 173: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����173

�����������������I2C_Rd@2'����7'� 6%7����G�#��D������� ���%0@���������$�4D��'�� ��������AA� ���6'

8HI,J-KL=MN=�O�H�P?���5��# ���6'�8Q-<�HI,J-KL=MN=�O�QH�P?����#��'�4������@2'���01���2����ED��'�����4�@2'���01���2���I2C_Init�(%��I2C_Start�����

������������� ������unsigned short I2C_Rd(unsigned short ack);

������ack������ !��=/>�<24�� ���@A0BCDEFGHF����� !��������?�<2 �� �������%��������@A0BCDEFGHF

��������������� unsigned short take;...take = I2C_Rd(0);

�����������������I2C_Wr����01���2���3������7'� 6%7����G�#�����#�4����� ���� �����@2'���01���2����ED�

�'�����4�@2'���01���2���I2C_Init�(%��I2C_Start�����

������������� ������unsigned short I2C_Wr(unsigned short data);

������data�������������,�.�4%):�)����������4 ����2%%%� �&'(

��� �� ���������=/>�����4������56,7��,��6,�I;�

���������������!I2C_Write(0xA3);

�����������������I2C_Stop����01���2���3�������AA� �><-F�@�'��������

������������� ������void I2C_Stop(void);

���������������"I2C_Stop();

Page 174: MikroC book

174�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

������������� ���������������������������� ������������ ��������������� �������������������� !����"�#��$�%&�'��()�������$�*�)(��+),-.�/-

'��012�3�4�567�8�9:;��*#�<��<������2)�= ���*����>�*$�%&�� �'��?2������������)!��-�@2"=#(=<�A�>�*���)BBCD+&�����D�*-�D�*-�-�!�= ����.*��?2��&�D�*-�-�!�= �����)BBC-E1�F&!>G*>-���H�-�)��#"��FH�-��������#��)-.���<3��C4(-()������FH$�*������D+&�������.*��?2@2"���)BBC-E1�.���<3��C4@��2"�)#.--�)-$3���#-���H�-�@��D����H��)(�������<3��C4@��2"�)#� ">G*��)�.*��?2��#��)(���H�-��A#"2���F&!.@��D���

��.*��?2(-()�������&G !�D�&������D3I-F���#����������!��"����� ������������������ ���#-���)BBC-E1��&G !�D�&��#�������##�$��%&����"����� �� ���� ������ ����� ��� � � >-���J�(����$3-&/"D�&�����)BBCF)/����#�����'()�!�' *

�"$�����+,-����./������ �� ���KLM�@2"�K�N� D3I-���)BBC���F�OF�� 5P��Q���� ����8� 8���;��*���&������)#�*-F-+?2�)3�)(@���)-

RST� $#*�2��D#2� D+ !�>�*���&��-"2����?�>-.C"F&!$���&��������>G*�-�F)/��)�G�#�>-��3U���)-�)BBC�(�#-F&!��&D.*�>-���)BBCF)/����#��D��4+<�� .���<3��C4F&!�����?�(-()�� �����*���&2)�VC"D3I-#��D��-D31�� 5�9���Q����;���� �=�2D2W�D���4D31��5�9�����88�� ��;��)�@�����2"D�&��>-�?3F&!�MX�Y

�)�������F��.*��?2(-()�� ���� �?����� YZZ���'2(�����#�-F&>-'���3���� 5: ��Q��Q���Q�;� @2"�?����� [ZZ��'2(�����#�-F&>-'���=#�D�W#�?�� 5\�: ���Q�;� 5��=<C��()��F�DF=-�=F&!�67�8�9:��H�-�;��<3��C4F&!�����#���?�(-()������"�*���&=�=#�<$00U�#�F&!D���.�/-�"�#�����KLM�@2"�K�N�$��D��-�[ZZ9]����D.*����<3��C4(-()�����>G*.*��?2�H��)(��D.*������=�= ��^�(���5^�P� ��QQ��::��_;��� ��YZ�(���5YZ�P� ��QQ��::��_;

0!����������� �� ()������3�"��(�*#����)BBC���D�*-��)�F&!$�*�2�#�@2*#= ��KLM�@2"�K�N��<3��C4F&!���+�#�(-()�����

�&$�*������)�-)/-���*���&���H�-��?3@((.����������(-()���� �D�&��#��'3�'�=�2�59�� ���8;� � D+ !�>�*̀ ?*>G*�-F�(#��.C"-&/�<3��C4>��������)-��?��@2"�<3��C4�)#>�D3I-�)#�)(�� ��)#�������$3-&/".��J�(�2)�VC"��-*F&!�@2"-���.���<3��C4F&!�����?�(-()�� ���� D+ !�D3I-.*���2�+ /-a-���-F&!"�J�(���FH�-.��()�� �������$3

�<3��C4F&!D3I-`?*��*�.*��?2�� ����.*��?2� D�&��#���)#���� 5 ���:�� ��;�<3��C4F&!D3I-`?*�)(.*��?2�D�&��#���)#�)(�5�����b��;>-�<3��C4(-()�� ���� ����D3I-$�*F)/��)#�)(@2"�)#���� (��<3��C4FH�-*F&!D3I-�)#�)(D+&������D�&�#� "$���&

�<3��C4>�(-()�� ����F&!FH�-*F&!D3I-�)#���D+&������D�&�#

��������

�����

����

�������

����� ��

�����

����

���� ��

���

����������������������

�����������������������

�������������� ����� �������������� �����

�� ��

������� �� ��� ���� � ���� ���������� ��������������� � !

�<3��C4F&!FH�-*F&!=#(=<�)��#"��FH�-�� ���������(-()������D�&��#���������123456789

�<3��C4F&!�?�=#(=<��� ��<3��C4F&!���+�#�D.*$3(-()������D�&��#����!:25;4<79

.*��H�-�.����������(-()�� ����= �5Y;� �����F��.*��?2"D���.�/-D� !�()�#��DF�-)/-5�;�>-�"�#�������F��.*��?2�D� !�>��W��F&!��

K�N��&��-"D3I-2����?����.*��?2�*���)�V.*��?2$#*�����>�*D�����D32&!�-@32�.�/-D�W�.����c"-)/-��)BBCF&!D���.�/-"$�*�)(��@32=#����D3I-�)BBC=#(=<�@F-

Page 175: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����175

�=�������+-�>������� �� �&�*#��)-�S��A#"��)�-&/5Y;�����?�� 2@A5BC6DA5E9� �A#"-&/D���.�/-D� !���-"2���(-���KLM� @2"�K�N� D3I-2����?�F)/�=?�� � -)!-

���=#�#�� �����F��.*��?2����D��!��*-.�/-$�*5�;� D�+�������F?����-�����! 256486G464 684B5H789� D���.�/-D� !����KLM��&��D32&!�-@32��"�)(2����

�?�$3�!H�>-.C"F&!���K�N��&��-"2����?��D�&���A#"F&!D���.�/--&/#���A#"D��!��*-�5KdMed;5X;������!-I������?�����2G464<4;JG9���A#"-&/D���.�/-�)���A#"D��!��*-�'����-"2���F&!D���.�/-(-��

KLM��W= �.*��?2F&!FH�����F��� D� !����K�N� D3I-2����?����-"F&!���KLM��*��=�F&!� D+ !�>�*�<3��C4�)(�?*.*��?2>-)��#"-)/-#�� D3I-� fZg��� �� fYg�.*��?2�D�����D32&!�-@32�$�*>-.C"F&!���K�N� D3I-2����!H�@��D� !�>��W��F&!�*����>�*D��������F��.*��?2������(?�C4���-"2���F&!.�KLM��*��=�F&!�2��G�#�D#2F&!���K�N��&��-"2����?���D�����D32&!�-@32���-"2���>-.C"F&!���K�N��&2����?���?�-)/-� �<3��C4��D���4F&!FH��=#(=<�����F��.*��?2"@32=#����D3I-�A#"��<��� ��A#"D��!��*-�W$�*� � FH>�*.*��?2F&!FH�����F��-)/-D���=#�`��+2�.�/-

5[; �����������! 24KLBCM;7GN79� � D���.�/-�2)��F&!�����F��.*��?2��)#�����)��)#�)(D���.�/-������(?�C4'���)#���"FH�����.*��?2��Y�(��D�&��#��(���)(�?*� 5��h��i8�Q_��P� ;��&��-"D3I-2����?���2)�����.*��?2�=�(�*#-���#-�<3��C4��D���4"FH������)BBC�)(�?*+�DOV%�!��)�+)-J4�)(�)BBC-E1���<3��C4�D20F&!�?��*����>-���������� ��H2) ���������?� >-.C"-)/-�W"�H D-��(���)(�?*F&!�&��-"2����!H D+ ! ���(�-��>�*F�(#�$�*�)(.*��?2>-@��2"$(�4D�&�(�*��@2*#

5S;�0�"-���F?����-�����!256COG464684B5H789� D���.�/-D� !����KLM��&��D32&!�-@32��"�)(2�����!H$3�?��>-.C"F&!���K�N��&��-"2����?��D�&���A#"F&!D���.�/--&/#���A#"��<��5Kdj6;

>-�?3F&!�MYY����D3I-$��"@���D#2F&!@��������D����A#"���k�(-()������$��#�"D3I-�A#"()�#��lD��!��*-l���F��.*��?2l� �)(�?*� @2"��<������F��.*��?2

����I��������� �� ���-F&!"D��!��*-�����F��.*��?2�"�#���<3��C4���k�F&!�����?�(-()���*���&���*�����<3��C4D�&����-�'����

�*�����<3��C4(-()������-)/-">G*���*����@((�^�(���� ��YZ�(���>-��C&F&!�&�<3��C4�����?�(-()�$�����>G*���*����@((�^�(���WD+&��+��@���*�&�<3��C4�����?�(-()����#��Y�^�@��D����HD3I-�*��>G*���*����@((�YZ�(�����2)��F&!�������<3��C4@��2"�)#$�*D�&�(�*��@2*#� �W"D��!��*-�����F��.*��?2�)-���$3

���������� ����������������������������������������

��������� �

���������� ����������������������������������������

���������

�����������������������������������������������

����������� ��������

������������������������������������

���

���

�����������������������������������������������

����������� ������ �

�������� ��"#��$��%��&�$�# �'�(��)� *��(�������� � !

Page 176: MikroC book

176�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�������F>����P�+�2P�DJ64GG8755JBN9.*��?2$(�4@��F&!D���.�/-�2)���A#"D��!��*-= �

.*��?2F&!>G*>-���*�����<3��C4F&!�*����������� '���&�?3@((@���>-�?3F&!�MYY�X�>-�^�(��(-�#�F)/�(���mKn��*#�"D3I-.*��?2@��D���.���<3��C4�D20F&!�*�����������'��

� � � � �� �� �� ���

����� ����� ����� ����� ���� ���� ����� �����

��� �������������������� ������������

���� �� �!

������� �+����$�����%�&,(������ $�#�#��@(��D3I-�(���H�-�@��D���=�F&!� 5\�o�Q� �QQ��::� P� ;� H-#-� [�(���%�!�.*��?2-&/�<3��C4@��2"�)#"�?��H�-���`?*`2��� $������D32&!�-@32�@�*$.$�*� �)���&�� X� (��D3I-(���H�-�@��D���F&!����'3�@���$�*� 59��_�����P8��QQ��::� P� ;� '��`?*>G*�-�*���H�-���-"2���>�*@��.� MZ�M�� .���<3��C4F&!�&��DG !�����@((()�� ���� ��#->-(��NKn�D3I-(��F&!>G*�H�-�����-�� �D.&�-.*��?2�)(�<3��C4�D20�)#-)/-k����(���NKn��D3I-�fZg��������*����D.&�-.*��?2$3�)��<3��C4-)/-��*D3I-� fYg�"D3I-����-.*��?2��<3��C4�D20

.*��?2>-$(�4����= �� .*��?2=#(=<�� 5��� ��8� Pp �;� >-�<3��C4@��2"�)#�&���H�-�.*��?2=#(=<�F&!@������)-$3����)#����� $�%&.��+��4��&.*��?2=#(=<�F&!>G*�H�-�#�� (��>�D3I-��-+<��(��>�D3I-D��4+<�� >-.C"F&!$�%&� ML�qLM���*����.*��?2=#(=<�D+ !��H�-�>�*FH�-D3I-#���ML���� ��LM��D3I-�*-

.*��?2>-$(�4����= �� .*��?2F&!FH�����F������ 5Q� �;�2)��F&!�&�����F��.*��?2>-@��2"$(�4��<3��C4�D20F&!$�*�)(���������*������)BBC�)(�?*��(�2)(��*#�F<�

=�)/���>-�?3F&!�MYY�[�@����?3@((.*��?2�-<���F&!D���.�/->-��������(-()������.�����*����@((�^�(��

�������F>�����Q�+�"�&.*��?2D+�!�D���.�/-�D2W�-*���'��>-$(�4@���2)��D����A#"D��!��*-��*���H�-�>�*� �S�(��(-�&.*��?2D3I-

YYYYZ���#-�&����(���)��D3I-(��@��D���.���<3��C4F&!�*�����������>-(���NKn�.��.*��?2$(�4@���)�=�D3I-���H�-�#�� �*������-�� �D.&�-.*��?2�)(�<3��C4�D20�)#F&!�*�����������*#�� .*��?2$(�4����D3I-.*��?2@��D���>-$(�4F&!� �.���<3��C4F&!�*�����������*#��.*��?2$(�4�)�$3��D3I-.*��?2=#(=<��.*��?2�2)��-)/-�W"D3I-.*��?2���F&!>G*>-��������

DG�-D�&�#�)(���*����@((� ^�(����2)�����F��.*��?2=�(F<�$(�4� �*���&�A#"�)(�?*D���.�/-� D+ !�>�*��"(#-�����F��.*��?2�����HD-�-���$3$�*� >-�?3F&!�MYY�S�@����?3@((.*��?2�-<���.�����*����@((�YZ�(��

��������-����$�����%�&,(������ '. $���/��0�

��������1����$�����%�&,(������ '. $���2��0�

��������

���������� ����������������������������������������������� �������

��������!��"����#$

�������� ����� �����

���������� �%!&��������'��(�����)���#

����(*��+�� ��������&�,����-./01.2�3.14

�����

��������&��*�/���$

������5����� �������&� ���

�����!����"��#$���%�&�'���������� ��

�����!����"��#$���%�&�'���������� ��

����� ����� �

���������� �"������������!

6����&��

��� ����� ����� ����

�����

���������� �����������������

�������� �������������������� ��!"#��������$���# ������!#%

�������� ���� ����� ���

���������� �&���������'(�'������)���#����������� ���������� ���

*+,-.+/�0+.1

���� ��

�������������$,���%������������ ������2��!���

���� � ��

�����������������3�� �)����������(!

�����

�����������������3�� �)����������(!

Page 177: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����177

�6-��*- ���+�17 *-�*.����������������,8�4.�'9:;<=>?@,8��� �23'�4�+���1�

[email protected]�� !�%��:,��%����:�.Q��������%�R�5����2%%%� �&'(�+,�%�)��%��:,���4�S����7��:)5����2%%%� �&'(��%��:�T(U'V/.Q��$��������%�R�����$������;���,��� ��O'/L.�1 ,�����)����%��:,�[email protected]� ����� ��O'/L'�� !���<� �%���:���%��:,�[email protected]������<�����4�S��$����5����2%%%� �&'(<I��$���� �����)��7���%��:,��%����:�[email protected]� ����$�����������4,�����I��W�%��:,� +,���� �� �����XY@�1�2�X(O��7���R,�,���1�2�$���,1�,�,� ���1)��2%��:,���1)�)������,�����������<�Z�� ��:%�%��:,

���� ��!"#$��$��%�&'()*+,-�������4�S�T(U'V/.Q�����T[A\CA][^�� !�4�S����7��:)�'��6_����`�6�7R)a���):7R)b�5����2%%%� �&'(

����%����:�.'c�4,��.Q�)���7����481 ,� ���2����$����

��)��7������4,��W�%��:,��$���� �������%����:4,��.'W�)��,��� �� �������%�R��7�� ��� ��

��<R,)������ ��5� ����:� !�����:�6���%�-������%��;�<R,)�� �)6� �,��<��̀ deb�1�2 �)6)����<��̀ d(b ��������4�����7��)������ �, ��)��4,�����

��76��,���� ��5� �������:�''/cfAag@���%+��,4,� �� R,�Q//���)):)������

��<R,)���2%%%� �&'(�1%%�&Y(�)��5��a)�����1�21%%�hXi�V���

�����,%��:,�.gjW��S�)6��)�

��������3 2�$�# 4(������ �56783�9:�����#������&;��:�<)� =)�(��������� !

#$%�&'(�������)#*#+,�&'(�������)#*

&�-./���0/1�����(/(��2�����0( &'(�������3$+����4�5���/.��

Page 178: MikroC book

178�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

���

��

���

��

��

� ���

� ���

��

���

���

�������

��������

�� ������

���

���

��� ���

������

�����

������

������

��

��

���� �

���

��������

� ���

� ���

� ���

��

��

��

�!

!

��� ���

���""

�""

�##

������

�������

�� ��

�� ��

��

�!

��

� ���

� ��!

� ���

� ���

��� ���

!

��

��� ��

�!� ��

�"� ��

�#� ��

��� ��

��$� ��

���� ��

�� � ��

�%��

�%�

�%�&

�%�'

�%��

�%�#

�%�"

�%�!

�(�

�(

�(&

�('

�(�

�(#

�("

�(!

���

���

���

���

���

���

���

���

��

��

�!

��

��

��

��

��

��

��

��

��

��

��

�!

��

$�

$�

$�

$�

$�

$!

$�

$

��%�� ��

!

����

��"� ��

��#� ��

���� ��

��'� ��

��&� ��

��!� ��

���� ��

� $� ��

�%��

�%��$

�%���

�%��

�%��&

�%��'

�%���

�%��#

�(�

�(�$

�(��

�(�

�(�&

�(�'

�(��

�(�#

���

���

���

���

���

���

���

���

��

��

�!

��

��

��

��

��

��

��

��

��

��

��

�!

��

$�

$�

$�

$�

$�

$!

$�

$

� ���

� ���

� ���

� ����

��

��

��

��

� ���

� ��!

� ���

� ���

��%�� ��

��

������

��

������

��

������

��

�����

��

�����

���

������

���

������

��

�����

��

������

���

�������

���

�������

���

�������

���

�������

���

������

���

������

��

�������

������ ��

����&���

����������

�����

����&!��

��� �����������

�'����

������

��(��������)*�

�!������

���&�!�

��

����� ��

!���&!��

����&�!�

��������3 2 �� ���%������� ����#�56783�9:�>.� %�"�>�������?!@ +2:���A(4��,�

Page 179: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����179

.�/��0����$1#2�23$��!$"�3�!4$�!�3�!56��������� ��T(U'V/.Q� � !�4�S����7��:)�6�7R)���):7R)���,�.Q�%6)�5����2%%%� � &'(�� ������$���,���

� !��6�7R)�������):7R)4,�������6 �2� +,���R� �%�)6���� ��<,���;

����7��:)� !�1%%�'��6_������%�R�� !��6�7R)�������):7R)4,�)��,����� k��2��6�)��� !��6�7R)�� �� ��,����2%%%� �&'(�,���+��,������-� ��4,�����������1�,�,� �V�����7����� �����)��7���4�S4,��W�)��+,����%� �&'(��,���������7��:) �������%��21 ��;�S��: 1�2S6��:4,�� �'gl@�)����������6��)��:�� ):1%%�,��� �,��$������������� ���1 �����7��:)�6�7R)����<6 �)��: $����%��-%�����7��:)�6�7R)���6,�6��)��:�� ):�� ����������)����%4�+�����+�������:��,�6��4,��R�)��

#�7�!$����!"%!6$����$��%�&'()*+,-�����)6,)����%%��:,�[email protected]��-������)6,)����%4�S�T(U'V/.Q��������+,�)�������+ �1����7��

�$���,����T(U'V/.Q��$�����7���$���,���7��:)��;���,� !����):7R)�<����;�<I� �����������4 �����7��:)��;���,�-<2�$���� �������%�R�����:��;�� .Q�)��4,�����;�)�����)6,)��+,� �R ,���;

`.b� ���$� ��)6,)����%4�S�T(U'V/.Q� �7���$���,� !�+��,����������`'b� ���$� ���7��)6,)����%�<6 �)��:�&eY&M/�`1�,�,� �/j/Qb`Vb��$���,�����7��:)�W�%6)����� !����):7R)�+,���������=/>������%�R�%6)����<6 �)��:�&eY&M/`3b� ���$� ���7��)6,)����%�<6 �)��:�&eY&M.�`1�,�,� �/j/mb`gb��$���,�����7��:)�W�%6)%��� !����):7R)�+,���������=/>������%�R�%6)����<6 �)��:�&eY&M.`Qb� ���$� ���7��)6,)�� ����������%�<6 �)��:�����7��:)4%):�����1�,�,� �/j//`mb� ���$� ���7��)6,)�� ����������%�<6 �)��:�����7��:)4%):%��1�,�,� �/j/.

<����;�)�����)6,)����������1��� ������$�������� !�+ �1���k�n��(� �7���, �%����$����,����+ �1�����O'/L.

Page 180: MikroC book

180�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

char I2CInit_=0;char y;int i,j;void Relay16(unsigned int x){

if (I2CInit_==0){

I2C_Init(100000); // Call initial L2CI2C_Start(); // Start communicationI2C_Wr(0x40); // Address MCP23016 and Write CommandI2C_Wr(0x06); // Command for access IODIR0I2C_Wr(0x00); // Set DIR0 to OUTPUTI2C_Stop(); // Stop communication

I2C_Start(); // Start communicationI2C_Wr(0x40); // Address MCP23016 and Write CommandI2C_Wr(0x07); // Command for access IODIR1I2C_Wr(0x00); // Set DIR0 to OUTPUTI2C_Stop(); // Stop communicationI2CInit_=1;

}y=x%256;I2C_Start(); // Issue I2C start signalI2C_Wr(0x40); // Send byte via I2C (device address + W)I2C_Wr(0x00); // Send byte (data address)I2C_Wr(y); // Send byte (data address)I2C_Stop();

x=x/256;I2C_Start(); // Issue I2C start signalI2C_Wr(0x40); // Send byte via I2C (device address + W)I2C_Wr(0x01); // Send byte (data address)I2C_Wr(x); // Send byte (data address)I2C_Stop();

}void main(){ while(1) // Loop { i=1; // Start value while(i<32768) // End loop value {

Relay16(i); // Send Data to ZX-relay16Delay_ms(500);i=i*2; // Shift left

}Relay16(i); // Send Last bitDelay_ms(500);

}}

���$��%����3 2�"B&��� !CDEFGHDIJKL����$��%M�N��!��O�4������,<� �("&������P L��� �QPRCS!��%"��&���� ��T���0#�)�����%#�&�������� � !��� "%�����(���&�&����@�!:UV//WVV/

���������2��6�����.+ �1�������<2�$����� [����$���������%6)4 ���S����1��� �������%89��:����MFEfo.Q� `b�SI��$������

)6,)����%%��:,�[email protected]�� $����%89��:����MFEfo.Q`b�<2�$���,�����7��:)��;���,� !����):7R)�<����;���%���)��1 ��j��������1��� !��W�%6)����1�2�W�%6)%���$�����W�%6)���� ��4 ���1�,�,� �/j//��7����%�MNO@P.�I��W�1�2�$�����W�%6)%� ��4 ���1�,�,� �/j/.��7�� ��4 ��%�MNO@Pp��I��.Q

Page 181: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����181

���4�8�$ !6$9��:���%;<���������<����� ��O'/LV�������,�����������%��:,�,����dKLWmm�^Eqr�&&����)����<�)���� ��O'/LV��������%��:,�MsKLWmm\Ftu'//m����)����<�)���� ��O'/L3

#�7�!$����9%�$�O'/u.� � �,+ �1����l[0\C(� ����48�:+ ��<-�):� +,������4�+�����+�������:1�2����� �����������,���;

����7�����0(�89�:""�;<=>�33�������U&(.QvWmm������U&(.QvWmm@������ ������������'/T"#

����7�����0(�?@9�:""�ABCD�EE"�������U&(.QvWWm������ ������������'/T"#

��� ��

��� ��

���

��

��

���

��

�����

����������

���������

����

��� ��

����

� ��� ��

����

���������

����!"

����!"

��

�� ���#� "

�� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ���

������� ������� ������ ������ ������� ������� ������� ����� ������ ������ ������ ������ ����� ����������� ������

������

(��!�)��"��$�*���!��� �

�� ��

���� ��������

� � �

���

��

��� �

������

��������3 2+�� ���#&� ,<� �(�%#�&��������� !��� "%�����(���&�&����@�!:UV//WVV/

Page 182: MikroC book

182�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ���

������� ������� ������ ������ ������� ������� ������� ����� ������ ������ ������ ������ ����� ����������� ������

������

(��!�)��"��$�*���!��� �

�� ��

���� ��������

� � �

���

��

��� �

�����

��� � ��� �����

�� ������ �����

����

������

����

����

��

����

� ������� �� �� �� �� �� �� �� ��

��

������������

�����

��

�����

� ���

�����

����

���

������

�����

��

�����

��

������� �3 2-�� ���#&� ,<� �(�%#�&��������� !��� "%�����(���&�&����@�!:UVV/�����,<�����#�7X6V//�CDYK 22/

O'/u'� ����+ ��<-�):����&'(\FEfoiFrw�1�276�7:+ �1���k�n��(�)��+ �1�����O'/L.

O'/uV��$�������47�:1�2,���:+��,+ �1����7���, �%5���7x:����$����

O'/u3�<���48���1��%��:,�[email protected]�1�2%��:,�,���4�+�����+�������:

O'/ug����+ �1���� ����)����$��������ONY�1�2����:%�%��:,�[email protected]

��*����$��+,-�./�������*�0,+12%�� 3�������3�4�56*�0,+12%7� ����3�8 ���/8*������9��:;*�/��8<����;3����������3�;8��*��;��=�;*

mikroC

Page 183: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����183

�6-��*- ���+�1,*-�*.������A���B��-C�-D-*���E�F7G��� �23'�4�+���1�

+�,����-��6_,6<6)���(TUX/V� ����� �� ����%4�+�����+�������:4,�5������)��<<�%���������7�� :1�25����2%%%� �&'(�+,���2%%%� �&'(�<2 ����� �����������)$�1���������������2���, �� R,�/u.��_�+,�4��<$�� !�)��������$������������$����1 ������,�?���

���� ��O'.L.�1 ,�����)�1�2���<�,�����+�,���(TUX/V� ������� ��O'.L'�1 ,����������%��:,�����)���@YKL(TUX/V�SI����1%%�7���$�������� 2,�������)�������������$�����,�����%%��:,�MsKLWmm� \Ftu'//m� ����������)��������%�����-��)��:1%%�hXi� 4,������������)���,�����%%��:,�,����dKLWmm�^Eqr�&&������� ��)����<�)������������-��)��:�&Y(�)�����

#�7�!$����!"%!6$���= %>���./?0������<��)������)6,)��5����2%%%� � &'(�<I�)������%�I�1�,�,� ���+�,���(TUX/V� �SI��-����F+E

���G���������2�.�1�1�2�F+�����G���������� ��2�.�1�+,���;�)�����)6,)����%+�,���(TUX/V��,���;

����(04��)���������4��)��������������H� �������(

/���0I'������JJ�7I�1�0/���0I'�2������������� ����(

#$%����G���/���.���4����K������ 3�+#+,����G���/���.���4����K������ 3�+L M

������� 3 �$�# ����)� $&��O�$4() ���O�4�������)�,<� �(�%#�&�!?@Z2+

������&&�����.�.�/G1N�� OPQ �R.6 � ��6��1/1��0G1�����G�����K.�141

�ST/G���

Page 184: MikroC book

184�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

���

�����

�������3 �$�# � ���� ����#��[6!?@Z2+�$&�����<T��%�)�����%#�&�!?@Z2+

��

� ��

�� ���

�����

�� ���

�����

���

���

���

���

�������

���

! �

��

� ��

��

���

"�

���

"�

���

"�

���

���������� ��������

��

���

� �

���"�

#��$��

��������

%�� ���

������

&'()*

��/�N�/���0�U+@�2����JJ�7�K������ 3�+

&'(�����JJ�72���K������ 3�+���G���/������������&�/I����������0(�(1��G����4������&�� V/��(���0(W ��/�N�/���0���/.��

���G����S(��H�6.(�1+PU#E�

��/�N�/���0�U+@�2��/���0I'���JJ�7I�1�0

��S�0�(�S(�1���(�����G�����������/I���G�����G�������S�� VXY<Z[AY\Z]^W

A7 A6 A5 A4 A3 A2 A1

1 2 3 4 5 6 7 8 9

D 7

1 2 3 4 5 6 7 8 9

D 6 D 5 D 4 D 3 D 2 D 1 D 0 A C KA C KR /W

1 1 0 0 0 0 0 0

S ta rt B it �������������� ������������ ������������� ������!���"� �#$%��!��&'#(!�� )�����"���

�*+,*�-.*

A7 A6 A5 A4 A3 A2 A1

1 2 3 4 5 6 7 8 9

D 7

1 2 3 4 5 6 7 8 9

D 6 D 5 D 4 D 3 D 2 D 1 D 0 A C KA C K

1 1 0 0 0 0 0 1

S ta rt B it ���������������"���������$�)�������������/�������0��%!'#(���"���$�)�������

�*12�-.*

R/W

�������3 +�$�# "#��$��%��&��� ����0#�)�����%#�&�!?@Z2+�=)�(��������� !

Page 185: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����185

`.b� ��%6)��6�)���`Xwf\wb��7��1<������2%%%� �&'(��)���7������%������

`'b� �����1�,�,� �y(/��7���2%R����)������)6,)���7��������������%+�,���(TUX/V

`Vb� �����)$�1�����<6 �)��:����(TUX/V��)��������������SI�����2���,�<6 �)��:)���?�1 ,���)������O'.L.

`3b� �����1�,�,� �y(.��7���2%R����)�������������������<��+�,���(TUX/V

`gb��������������<��+�,���(TUX/V�����-%4�������������<$�

`Qb� ��%6)��R,� `XwC^b� �7���R)6��� �� ���������1�2�$���,���%� ������ k��2%� ����

<����;�)�����)6,)����������1��� ������$�������� !�+ �1���k�n��(� �7���, �%����$����,����+ �1�����O'.L.

���������� ���� ��������

� ��������� ���������������� ������������������������ !!"

#������������������$��%�&����������'��(������!))"�*��+�,������-./�����0�����!)1)���0�2&3����

4#!���������5�����6��7��3�5$��������*�������89:;<=���,>���������'��(�����(���./���*��

'#?���������5�����6��7��3�5$��������*�������89:;<= ��,>���������'��(�����(���./���*��

@#)�����������A��,�������6��7���BCDEF=CGE<:�HCDI9�"�,>���������'��(�����(���./���*��

��#�������������A��,�������6��7���BCDEF=CGE<:�HCDI9 "�,>���������'��(�����(���./���*��

� #�� 2*�7J&����������2&�,>����4 2*�7J&����2*�2&A�������2�&

�!����/�������A��,�����������3��*./��&��A��,�����������&����%���&�*K�� !!���&�L%/�%5(��������������%M

���� ����3 ���;&����;#�� ���0��������\ 4%#�� �%#�&�!?@Z2+

Page 186: MikroC book

186�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

���$��%���� 3 �"B&��!?@Z2+JDIJKL� ���$��%M�N��!��� �QPRCS!����,<��#�������O� �(�� "&������� !�#��;����0#�)�����%#�&�!?@Z2+���T���)�(�)��� �0]

int Dat,Dat1,Dat2,High;char Version,Unused,Low;char *Text1="CMPS03 Ver.";char Text[6];void show(){

ByteToSTr(Version,Text); // Convert data to stringLcd_Out(1,11,Text); // Show LCD line1Dat=(HIGH*256)+Low; // Sum low byte + high byteDat1=Dat/10; // Convert to degreeDat2=(Dat%10)&0x0F; // Convert decimal notationWordToStr(Dat1,Text); // Convert to stringLcd_Out(2,1,Text); // show compass degree ==> LCDLcd_Out(2,6,"."); // decimal pointLcd_Chr(2,7,(Dat2+0x30));Lcd_Out_Cp(" Degree");

}void main(){

Lcd_Init(&PORTD);Lcd_Cmd(LCD_CURSOR_OFF);Lcd_Cmd(LCD_CLEAR);Lcd_Out(1,1,text1);while(1){

I2C_Init(100000);I2C_Start(); // issue I2C start signalI2C_Wr(0xC0); // send byte via I2C to cmps03 addres 0xC0I2C_Wr(0x00); // send byte (register adres)I2C_Repeated_Start(); // issue I2C signal repeated startI2C_Wr(0xC1); // send byte (request data from EEPROM)

Version=I2C_Rd(1); // Read revisionDelay_ms(5);Unused=I2C_Rd(1); // Read unusedDelay_ms(5);High=I2C_Rd(1); // Read High byteDelay_ms(5);Low=I2C_Rd(0); // Read Low byteI2C_Stop(); // Stop I2CShow(); // Show on LCDDelay_ms(500);

}}

���������2��6�����.

+ �1���1%������$����� !��'� ���� ���1��� !����)6,)����%+�,���(TUX/V�5���%� � &'(� �7����������<6 �)��:1)��24%):�����)��������+,���6��<6 �)��:1 ,��R�����%��:,��<6 �)��:1 ,����1%%���%�`������1)�4��4,�������b��<6 �)��:���������_�1%%�2���,�`.Q�%6)b

�����'� � !�����$���������4,�<��+�,���(TUX/V���1 ������������� )�����n��7���$�4 1 ,�5��+�,���O(Y� � +,��R�����%��:,<2�$�4 1 ,��%����,%����+�,���O(Y�<����;��$��������6_��������4,���4%):%�1�2��������<6 �)��:�������1%%�2���,������������,����./��7�����4,�����6_���<�6����������_� ����_n�4,�<���������$���1 ,�� !�����_�6������������_�

Page 187: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����187

���@���;!6��6�9"A9��$B��$"�;�6= %>���./?0��7����������,�6_������+�,���(TUX/V������1����$����� R,�<I���6�7R) $����% ��%1)������6_���

�����6����;��;7�� �2+���:������$���,�6_��������6��z7�2 $����%5���������+,�)��� {�� �������<6��=/>� ��������6�7R) $����% ��%1)��+�,����(TUX/V�SI��-������Q�������%��:,�@YKL(TUX/V���%+�,���(TUX/V�<2� �6)�:�,)6, ����,�%)6,)�;�4�����1������� ��%1)�����;�)��,���;

`.b����+�,���(TUX/V�������%7�;�����,����������+�,��4 ����6_�������, �6)�:�.����;�

`'b����+�,���(TUX/V�������%7�;�����,����������+�,��4 ����6_)2��������, �6)�:

`Vb����+�,���(TUX/V�������%7�;�����,����������+�,��4 ����6_�)���, �6)�:�.����;�

`3b����+�,���(TUX/V�������%7�;�����,����������+�,��4 ����6_)2���)���, �6)�:

� !���� 6;� R,��� ��%)�;�����6_��������6����+�,���(TUX/V� +,�+�,��<2��-%��������6��;4�������������<$���7���1�24��)��� ��%)�;��������������<���48��;�����;�����

�!

� ��

�"�� � �

���

�!

�� ��

�#��

����

������

�� �� �� � �� �� �� �� �"

�!

���

!

!$

%���&

'(���������

��

� �� �� �� �� ) * � � �� �

��

��

!�

���� ������

��

��

��

��

��

��

��

� ��

�*

�)

��

����� ����

��

�+� ,

��!

��

�-.�/��

-0$1��$.

��#23

�� �

��

��

���

���

���

���� ��

���

��

��

���

����������������������

�����

���

� �

���

��

��� ��� �

� ������

�!

�*������

�������3 2-�� ���#&� ,<� �(�%#�&��������� !��� "%�����(���&�&����@�!:UV//�,(����0#�)�����%#�&��̂%�0]�!?@Z2+

Page 188: MikroC book

188�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

���4�8�$ !6$9��:���%;<���������<����� ��O'.L3�������,�����������%��:,�,����dKLWmm�^Eqr�&&����)����<�)���� ��O'.L3��������%��:,�MsKLWmm\Ftu'//m����)����<�)���� ��O'.Lg

#�7�!$����9%�$�O'.u.� � �,+ �1����l[0\C(� ����48�:+ ��<-�):� +,������4�+�����+�������:1�2����� �����������,���;

����7�����0(�89�:""�;<=>�33�������U&(.QvWmm������U&(.QvWmm@������ ������������'/T"#����7�����0(�?@9�:""�ABCD�EE"�������U&(.QvWWm������ ������������'/T"#

O'.u'� ����+ ��<-�):����(TUX/VwFrw�1�276�7:+ �1���k�n��(�)��+ �1�����O'.L.

��������3 2-�� ���#&� ,<� �(�%#�&��������� !��� "%�����(���&�&����@�!:UVV/�����,<�����#7X6V//�CDYK 22/

������ �����

� ������� ����

����

������

����

���

��

����

� ������� �� �� �� �� �� �� �� ��

��

������������

�����

��

�����

� ���

�����

����

���

������

�����

��

�����

��

���

��

��

���

������

��

��

��

��

�#(�4���������5�$/6�00

�����

���

� �

���

��

�� �� ���

Page 189: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����189

O'.uV��$�������47�:1�2,���:+��,+ �1����7���, �%5���7x:����$����O'.u3� ��%1)���6_�����;�1�����-�+�������6����1��+�,���(TUX/VO'.ug� ���+ �1����<����;��,������%+�,���(TUX/V� ������4 ���6_���)���?�1���)��< �%5�����$����5������+�,���O(Y

./������ +�-�4���*��8��:�#;�<>��:;*������?@AB&C�./����.����4����D���*������*;*E�:;*������?@A&C���: ���D��./8����. E��=;./����.�������*��*���

� ����� ���

��� � ��

� ��

mikroC

Page 190: MikroC book

190�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�������������?CDEF ���!"%!6$$�@����������� ���=%2� 6G�B= %>����� ���3���# $�����$"�%�%���� &���"��# � �$ �6%� �����46�R�4@��/�� ��!������������ �

���� ���� #�'�'�4���@2'#%����� >-S<T���� @��)*,+-���� #.�%���� $�4D�"3����@�$� � �������(%�# ����������������( %�� �������

@����"3����7��#%������E@2'U����%�R�4@�# $�����$"�%�%����.5���3������%�@������'���!�������V�7�����������E����@2'���#%�������ED��'��4��%�����@2'��������������������� �

�����������������?CDEF ��F�CHDIJ

@2'@�����3����������� �'�@�'�������������������(��7�.����"���3� �@2'����D��'�����4�@2'�������"��D�@2'���01���2���5��V�7��#%�����>-S<T���

������������� ������void Soft_I2C_Config(unsigned short *port, const unsigned short

SDA, const unsigned short SCL);

������port������7��:)���4�+�����+�������:�����$���,� !��XY@�1�2�X(O

SDA�����)$�1���������4�+�����+�������:�)������������� !����XY@������/��I��m�`������������;�b

SCL�����)$�1���������4�+�����+�������:�)������������� !����X(O������/��I��m�`������������;�b

���������������:Soft_I2C_Config(&PORTB, 1, 2);

��������� ��������F;�<��G� �F=�;� ��;������� �����8������:��0G%�����:��A-1����:��0G�����:��A�+

�����������������?CDEF ��F?EKLE

@2'��'���AA� �><:+<�����"3����������5��7�4�7'� 6%�����������������4�@2'���01���2����ED��'�����4�01���2���I2C_Init�����

������������� ������void Soft_I2C_Start(void);

���������������_Soft_I2C_Start();

Page 191: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����191

�����������������?CDEF ��F)MKN@2'����7'� 6%7����G�#��D������� ���%0@��������������@2'���01���2����ED��'�����4�

@2'���01���2���Soft_I2C_Config��(%��Soft_I2C_Start������������������ ������unsigned short Soft_I2C_Read(unsigned short ack);

��� �� ���������.�4%):<���R ���: ��8�)6,)��,���������ack������ !��=/>�<24�� �� �������%����`@A0BCDEFGHFb����� !�������?�<2 �� �������%���

����������������Etake = Soft_I2C_Read(0);

�������;������:�;���4��;H��� <���I����$�3#�./���#���� JK'L

�����������������?CDEF ��FOLIEM����01���2�����7'� 6%7����G�#�����#�4��������������@2'���01���2����ED��'�����4�

@2'���01���2���Soft_I2C_Config��(%��Soft_I2C_Start�����

������������� ������unsigned short Soft_I2C_Write(unsigned short data);

������data�����������.�4%):�)����������4 ����2%%%� �&'(

��� �� ���������=/>����4������56,7��,��6,�I;�

�����������������Soft_I2C_Write(0xA3);

�:/8�:�;����&M1C��*3����������

�����������������?CDEF ��F?ECP����01���2������AA� �><-F�@�'������������������� ������void Soft_I2C_Stop(void);

���������������Soft_I2C_Stop();

Page 192: MikroC book

192�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�6-��*- ���+�11 *-�*.��9:;<=>?@,8���������������,8�4.�'�� �23'�4�+��F%HIJ�1�

�� |6%�)6�����'/�� !����)6,)��4�+�����+�������:�U&(.QvWmm`@b������U&(.QvWWm���%�[email protected]%��:,��%����:�.Q�����5����2%%%� �&'(�+,����+�,��%� �&'(�k����4�+�����+�������:5���������M(3aXY@1�2���M(VaX(O�1�������������89��:����['A

�$

���

��

���

��

�����

������������

���������

����

��� ��

����

� ��� ��

����

���������

����!"

����!"

��

�� ���#� "

�� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ���

������� ������� ������ ������ ������� ������� ������� ����� ������ ������ ������ ������ ����� ����������� ������

������

���������� � ���� ���

�� ��

���� ��������

� � �

���

��

��� �

������

������� � 3 �� ���#&� �0#�)������������������� � !� �#;,<��������,#*�$&�B_ ��<��(� ZS`JaP L�� �QPRCS!���%"��&���

Page 193: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����193

�� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ����� ���

������� ������� ������ ������ ������� ������� ������� ����� ������ ������ ������ ������ ����� ����������� ������

������

(��!�)��"��$�*���!��� �

�� ��

���� ��������

� � �

���

��

��� �

�����

��� � ��� �����

�� ������ �����

����

������

����

���

��

����

� ������� �� �� �� �� �� �� �� ��

��

������������

�����

��

�����

� ���

�����

����

���

������

�����

��

�����

��

������� � 3 �� ���#&� �0#�)������������������� � !� �#;,<��������,#*�$&�B_ ��<��(� ZS`JaP L�� �QPRCS!���%"��&��������,<�����#�7X6V//�CDYK 22/

$����%������,����;<21)�)���<�� |6%�)6����� '/�)���� ���89��:����XC}w~&'(�1����$���� �������������7��:)�,?����4�+�����+�������:�U&(� �����)6,)����%�R ���:�2%%%� � &'(� $����%������,����;�����������M(m� � !����XY@�1�2������M(Q� � !����X(O�,��1 ,���<������)������ �� O''L.� ���)�������+ �1���k�n��(�����������, �%����$����1 ,���+ �1����� O''L.

���4�8�$ !6$9��:���%;<���������<����� ��O''L.�������,�����������%��:,�,����dKLWmm�^Eqr�&&����)����<�)���� ��O''L.��������%��:,�MsKLWmm\Ftu'//m����)����<�)���� ��O''L'

Page 194: MikroC book

194�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

���$��%����3 2�"B&��ZS`J� !HDIJKL����$��%M�N��!��O�4������,<� �("&������ZS`JaP L��� �QPRCS!��%"��&������T���0#�)������������� !�#��;�������,#*��� "%�����(���&�&����@�!:UV//WVV/

char I2CInit_=0;char y;int i,j;void Relay16(unsigned int x){

if (I2CInit_==0){

Soft_I2C_Config(&PORTC,7,6); // Call initial L2CSoft_I2C_Start(); // Start communicationSoft_I2C_Write(0x40); // Address MCP23016 and Write CommandSoft_I2C_Write(0x06); // Command for access IODIR0Soft_I2C_Write(0x00); // Set DIR0 to OUTPUTSoft_I2C_Stop(); // Stop communication

Soft_I2C_Start(); // Start communicationSoft_I2C_Write(0x40); // Address MCP23016 and Write CommandSoft_I2C_Write(0x07); // Command for access IODIR1Soft_I2C_Write(0x00); // Set DIR0 to OUTPUTSoft_I2C_Stop(); // Stop communicationI2CInit_=1;

}y=x%256; // y=low Byte of dataSoft_I2C_Start(); // Issue I2C start signalSoft_I2C_Write(0x40); // Send byte via I2C (device address + W)Soft_I2C_Write(0x00); // Send byte (data address)Soft_I2C_Write(y); // Send byte (data address)Soft_I2C_Stop();

x=x/256; // x=high byteSoft_I2C_Start(); // Issue I2C start signalSoft_I2C_Write(0x40); // Send byte via I2C (device address + W)Soft_I2C_Write(0x01); // Send byte (data address)Soft_I2C_Write(x); // Send byte (data address)Soft_I2C_Stop();

}void main(){

while(1) // Loop{

i=1; // Start valuewhile(i<32768) // End loop value{

Relay16(i); // Send Data to ZX-relay16Delay_ms(500);i=i*2; // Shift left

}Relay16(i); // Send Last bitDelay_ms(500);

}}

���������2��6�����.+ �1�������<2�$����� [����$���������%6)4 ���S����1��� �������%89��:����MFEfo.Q� `b�SI��$������

)6,)����%%��:,�[email protected]� � $����%89��:����MFEfo.Q`b�<2�������89��:����XC}w~['A� �7���$���,���)6,)����%�R ���:�2%%%� �&'(����1����7��:)�������������<����;���%���)��1 ��j��������1��� !��W�%6)����1�2�W%6)%���$�����W�%6)���� ��4 ���1�,�,� �/j//��7����%�MNO@P.��I��W�1�2�$�����W�%6)%� ��4 ���1�,�,� /j/.��7�� ��4 ��%�MNO@Pp��I��.Q

Page 195: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����195

#�7�!$����9%�$�O''u.� � �,+ �1����l[0\C(� ����48�:+ ��<-�):� +,������4�+�����+�������:1�2����� �����������,���;

����7�����0(�89�:""�;<=>�33�������U&(.QvWmm������U&(.QvWmm@������ ������������'/T"#

����7�����0(�?@9�:""�ABCD�EE"�������U&(.QvWWm������ ������������'/T"#

O''u'� ����+ ��<-�):����XC}w&'(iFrw�1�276�7:+ �1���k�n��(�)��+ �1�����O''L.

O''uV��$�������47�:1�2,���:+��,+ �1����7���, �%5���7x:����$����

O''u3�<���48���1��%��:,�[email protected]�1�2%��:,�,���4�+�����+�������:

O''ug����+ �1���� ����)����$��������ONY�1�2����:%�%��:,�[email protected]

��*����$��+,-�./�������*�0,+12%�� 3�������3�4�56*�0,+12%7� ����3�8 ���/8*������9��:;*�/��8<����;3����������3�;8��*��;��=�;*

Page 196: MikroC book

196�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

Page 197: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����197

����������� ������ ������������������������ ������!"��#�$�%���&������'()���*�+,�-./0��123�45��6�6��/������� ��7�89�9�:�,����*; �����/03�48928*<<9��=�����>�892�9��9��?9��@�$�AB������������5�4���2/C9)9�D923�48�1�61;6 ���*�/0��1�9������������ ������������� ���������������� !"��#$%&"'$'(���!")�*��'" �+',(*!-�D923�������@����;��E 8�1������� ������F�G;;6���������������������� ���������������������������� !"���� �G�H��#$��� ���%� ��&���'�$���(�������������������� )***+���#$

8928*<<9�/03�43��9��,���G;;�������H�;�412�892I4����I49��J�"���!%K�892I4�����J�"��AL"%K�8928*<<9��9MN�9��O������$�A$P�Q��7R%�G�H892���� ������8��'��O��S��O���$"�Q���%��23��H;;�=�892EH�1�I9I4����I49�412�*�

�*12�9)I) �����/03�4�9��,���G;;�0T5�4G���5U0���12619�EC900+��3�� ����FVW7XXXK5U0G��)8*<<9�H�9����&��,E,���������YZ�[\>]�I)�^�X�O��!O"�L_�!"%K�5U0G��)8*<<9��,E,����&�H�9���������@7�>`FF�I)�@�$�A$ ��%K�5U0�������6��I�920�/����a���9/,�b7cF\dFI)�@�$�A$ ��%K�5U01*� ��D��,�������Z�]dFe�I)�Z����O���_�$A!JL$"A�%K�5U0G8�)f��*1��I�[8�1���92��*��������@Yg[F]`�I)�@�X�_%���&��4�

�����+�,- �*.�*/����0��1�����'������������������ ���

�� �23'�4�+���'�!"#$%������5�����

Page 198: MikroC book

198�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

./0.��1�231�1 4���������5���!")�*��!")6&!"�*�5$ !"7�%!-����a���;,�3�4������@����/C9)9�3����������I98*<<9�/03�4��&���*��0�=�I96�

]h�I9I4����G;;� ������������Z�"��iL"�Q��Zi%���,-. +*/�01 1��02 3�3� "��$4567889778���:�;-2<��F>

Fh�I9I4����I49G;;� ���� ��������Z�"�� �!� Q� �Z�%��,-. +*/�01 1��02 3�3� "��$4567889778���:�;-2<��#=

=h�I98*<<9��9MN�9� ���� ��������7�A$P� Q� �7R%��,-. +*/�01 1��02 3�3� "��$4567889778���:�;-2<��]\

:49�9���������8��'�EH�0I98*<<9�/0�4)3�4)9��+,�0�� ]�I96��I9���� �����8��'����S������$"�Q���%��,-. +*/�01 11��02 3�3� "���$4567889778���:�;-2<��[

3��9�/C9)9�I)������@����3����������89�9�:�������G;;/C9)9�5�4��9���92���2�C9���5�4E9�;,�61;6 �3��0E,8��������7ic�;,��e�:j)� V�G�H�0E,8���������^Y^�;,��d�G�H�[8C9��*;�C9�*;�9�����3�4)9����������89�9�:8� �5�4�*)�0T

�]%� ���������98�������8��'�������������98�����I9��7R���&�I9�9��+ �8*<<9��9MN�9�:49��&�����8��'�I9��7R���&�I9,�+ �8*<<9��9MN�9

�F%� ����I*T1I)8*<<9��9MN�9

�=%� �����9�8 ��8*<<9�I4���,�+ �� ��j)��9)�����1)��92%

�>%� ����I;I98*<<9��9MN�9� �I;I9IjT�����)%

�V%� ����*��98*<<9��9MN�9�3����0/C9)9�3������98����

�d%� ��������I) �����8��'�3����0/C9)9�3�����8��'

3����/0�]Fk]�G8�)5�HG����9�/C9)9�I)������@�������/C9)9�3���������

������@������H�;�412�,'���0E,8�����*18�)G�H�*;I4�����������l�G�H�0E,8����;*'�'�����mno��,'���0E,8���������l�3�48C9��*;����I4����I49�E9��*1 ��������2����;,��@�m����3����0�*;I4����I4���� ���EH/22:��8�)�I49�9/9)I9��Z���I498�������l�E�6�;�\�;,�����]�5;���aEH:�92/�5�2*)�0E,8��������mno�3����08�)I4����I4���/0�4)�9�8�)E9�;*8I4���EH:��8�)�92*)�0E,8��������mno�G�418�)���92*)�����l�E9��*T������l�EH����I4����/9)I9��Zi�G;;� ���

Page 199: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����199

������������ ��

������������������

������������ ����

������������ ����

��������������������

����� ���������

���������� !"

#�$%�&�'()��*+�, *�����-����.-/��0��01$&�2&�*

����3�������4

.���

�����51�(��.�-66

��

� ������789:;78<=�>?@:?@�"A<B=7

����4 � ������������'��#�$%�

� ������,�� ��������

� �#�$%�C�,D�

����������

�����

���������

������ ����

������������ ��������������� ���������������� ���������������

Page 200: MikroC book

200�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

���I4���3�;*'�'����a��G'���mo��;,��e�3��0E,8��������ZY^%�EH�U��+�4�p��*;G'������o��;,��=�3��0E,8�������l]%�Uj)/C93�4��,��9�,������*���IjT���9��0�9��a���;,�514�Ej)89�9�:3�4��H�2���E9�G'��/*T)8)3��9�61;6 �E*)�1H�9��I02�G�H�9�I4�����+�5��3�4��,��9����*�I)I4���IjT�

�49�619�:0I)8*<<9��9MN�93�����������0T89�9�:����5�4:j)�>�6�96�

]h�619�:08*<<9��9MN�9��*�q>�Uj)�/�9�*;619�:08*<<9��9MN�9D923�� �^7r%

Fh�619�:08*<<9��9MN�9��*�q]d

=h�619�:08*<<9��9MN�9��*�qd>

>h�6�9I)�0E,8�����^@lFqF

�*)�*T�619�:08*<<9��9MN�98�)8 �3����������6��V@st�/06�,8���Fe@st

E9�I4���I49)�4��89�9�:8� ���&�I*T����9�3�4)9�������@���� �+�/C9)9�3���������5�4�*)�0T

�]%��C9���3�4I9� �l7>q�Z�� ��&�,�+ ��I9�l7Vq�Zi�G�H�l7=q�7R� ��&��9��+ �+�4�/*T)�C9���3�4I9+���/03�4�a���;,� �����8��'��&�I9+����9��+ �

�F%� �C9���619�:0I)8*<<9��9MN�9/03�4�C9���E*)�1H�9�/C9)9�E9�;,����@=Q���@e�G�HI*T1I)8*<<9��9MN�9E9�;,��7R��3��0E,8��������7ic�3�4��)�*;619��4)�9�I) �����8��'�8C9��*;619�:0�4)����3�4�C9�1�9619�:0/C9)9�I) �����8��'

�=%������'8I)8*<<9��9MN�9E9�;,��7Rb�3��0E,8���������^Y^�3�4��)�*; �����8��'

�>%� �a���;,� �����8��'

�V%��a���;,� ������98�������2�9��U�;,�����bc�3��0E,8��������7ic

�d%��I02�I4���5�/0�0E,8��������mno��+�8*)3�4������������,��4�/C9)9�

�[%� �3�4�9��*;k8�)I4����8�aE8�;����� ��2�9���1E8;G'���mo� 3��0E,8��������^Y^��:49;,��0T�U���&��u]v�G8�)1�9�9��*;8�)I4���3�5;���*T�p��8�aE8�;����G�41

�\%��9�I4���/0�*;5�4E9��0E,8��������mno�Uj)�9��9�I4���/0�0E,8�����*1�0T�EH��&��9��6�02��G'���mo���2*����*�,

�`%��C9I4���5���H�1�f����/C9�9��*;k8�)�I4���3�5;��:*�5�

Page 201: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����201

./0/���8����1�������3����0/0�C9���3�45��6�6��/������� ��7]do\[[q\\[�/C9)9�3�����������98����

�����/0�C9�9������/*T)���Ej)��&� �����8��'�G�H3�4)9��+02)�=�I96���ZiK��Z��G�H��7RG�H�412619�89�9�:I)������@����3����������89�9�:/0EH�C9���3�4/C9)9�5�4/*T)�98����G�H8��'�3����/0�]FkF�G8�)�9�������5��6�6��/��������1��*����/C9)9�3������������2�*1��j)EH��&� ������98����G�H0��*1��j)�4)��&� �����8��'

������������ ��

������������������

����������� ���������������������

���

���

��������������������

�����

������������ ��

������������������

��������� ���������������������

���

�����������������

�����

���

���

�������������!�� �"# ���$�$ ������� �%��"&'��(��(')�&���)�!(��������

Page 202: MikroC book

202�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

./09�:���1�;�������8��<= ����>�����5

./090.�?@��=�� �Spi_Init��&�'()���*��C9���6�9��,��4�G���9�������G;;������9��?9����26�9�9��?9���H�;�412

]h�/C9)9���&������98����

Fh�619�:08*<<9��9MN�9�oAO$q>

=h�8:9�H�2 ��,)I)I98*<<9��9MN�9�E,�� uev

>h��9�8�)I4�����,�IjT�/0I;I9IjT�

Vh���1E�*;8*<<9�,�+ ��I49�9/0�C9G���)�j)��9)I)���6���

8C9��*;�9���*;G��)6�9/05����&��9��9��?9��0TEH�4)��02�3�4'()���*��Spi_Init_Advanced

������������� ������void Spi_Init(void);

����������������Spi_Init();

./090/�?@��=�� �Spi_Init_Advanced��&��9��C9���6�9��,��4����2/C9)9���&������98������619�:08*<<9��9MN�9�oAO$q>���1E

�*;8*<<9�,�+ ��I49�9/0�C9G���)�j)��9)I)���6���� �8:9�H�2 ��,)I)I98*<<9��9MN�9�E,�uev���G�H�9�8�)I4�����,�IjT�/0I;I9IjT�

������������� ������void Spi_Init_Advanced(unsigned short master,unsigned short data_sample, unsigned short clock_idle,unsigned short transmit_edge);

������master� ������������ ���������������������������

MASTER_OSC_DIV4 //���������������� �����������������!���"�#$%&'(MASTER_OSC_DIV16 //���������������� �����������������!���"�#$%&')*MASTER_OSC_DIV64 //���������������� �����������������!���"�#$%&'*(MASTER_TMR2 //���������������� ������������������+��,���� �-SLAVE_SS_ENABLE //� ��.���"/��� ��0����������� � 0����1SLAVE_SS_DIS //�/����"/��� ��0����������� � 0����1

Page 203: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����203

data_sample� �23�� ���������!���� � 4++�"�������/56�� �7DATA_SAMPLE_MIDDLE //�� 4++�"�������89�����!�������� :2;�09DATA_SAMPLE_END //�� 4++�"�������89�����!�2��7�6��� :2;�09

clock_idle� �23�� �����<���76/9�����������������CLK_IDLE_HIGH //���=�4��76/9��23��+/��>)?CLK_IDLE_LOW //���=�4��76/9��23��+/��>@?

transmit_edge� �23�� ������"������ �"�� �!�����:����,2LOW_2_HIGH //�����:�<:��!���09�������������2�897+���>@?�,2�23�>)?HIGH_2_LOW //�����:�<:��!���09�������������2�897+���>)?�,2�23�>@?

����������������Spi_Init_Advanced(MASTER_OSC_DIV4, DATA_SAMPLE_MIDDLE, CLK_IDLE_LOW,

LOW_2_HIGH)

90./09�?@��=�� �Spi_Read��&�'()���*�8�)6�93��*1G���buffer �5�+�4�8*<<9��9MN�9�G�H��*;6�9I4�����*;�9

������������� ������unsigned short Spi_Read(unsigned short buffer);

����������������short take, buffer;

...

take = Spi_Read(buffer);

������������� ������������������������������� ���take

90./0A�?@��=�� �Spi_Write��&�'()���*�8�)I4���5�2*) ������������2I4���3��*1G���dataEH:���I02�5�2*)�0E,8����

���mno�G�H��,��4��9�8�)I4���

������������� ������void Spi_Write(unsigned short data);

����������������Spi_Write(1);

�������!"��� �������#������$�"�����������

Page 204: MikroC book

204�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�6.��*. ���+�-7 *.�*/����8��9:--���;���'��<< =�.>.*����?��&� ��

��� ����8A�����<B�4/C8�� ����������4�7!���� ��09���!���"�62� � �89����� �/�!��""������62� � �89��������23��4�7!��;0��DE�(F--�,�G8�2��������/+/����23�������HIJEK�;4������87�)-�"/�

��<������4���B�AC//�:�;�8����DD1<��E����8F G 1����;4������87��� �2���������:�<B��)-�"/����8���� 56��-��!������� <��0�����������587��!���874,����/�!�L!� �"""�������;4��<89������������:��6�-@DMN������ <���� ���� 56�,���,1��8A7��O-PQ�<B��ORPRS :2�89� T-UV)������ +������ �7����87����:�� 8+/���� ������ ������,�G8� �DE�(F--

������� *+�����,&�������( ���� ���,-.�" �%���������������� �� /���0�12

��

��

��

��

��

���

�������

���

� �

�����

�����

����

����

����

����

���

������

���

����

������

���

����

������

��

����

�����

��

����

������

��

����

�����

��

����

�����

����

�����

����

����

�����

�����

�����

�����

����

����

�����

����

����

�������� ���� ���� ���� ����

����� ���!"#�$%!&!"%!&#�'()(*+�,-+.�/����012����3���1���44�5�����������6���6��

%&'�(���$���� ���$�"�)*+*

%#'�(���$���� ���$�"�)*+,

���������#78�$9:;8�<=>?+�#?@@(A�&B=+AB)�,-+.�/����012����C0C��D�E������FG����6��������

%&'�(�����-��./��"����0�0���%#'�(���-��./��"����0�0���

���������H!�$I?+>?+�HJ-=�K()(*+�,-+.�/����012�������L�����44�50���DFG�

%&'�(�$�$�1���������2-�� �"3�������4���������1�5�6789�5���� �3:�:���;<&=>%#'�(���$�$�����2-�� �"3�������4���������6789�5���� �3:�:���;<&=>

���������KM%N�$I?+>?+�OBP(A�%BP=�&B=+AB)�,-+.�/���� �� GQ���3���F1����������3�0���DFG�

%&'�(�3:!����:��"����0�0��������4����?�.@�������4�����:�4� 3�A�! "%#'� (� 2��2��.@�������������$4��""�� ��"�������4��

����R�ST�������%R�ST��%���$%!&�%J+J�,-+'.�/����L�Q�16�3���1�������

Page 205: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����205

�������*+��� ������'�������������� �� /���0�12

��� ��� �� ���� ��� �� � �� �� � �� �� �� �� �� �

������������������� �

��

���

���

���

� � � � � � � � �� �� �� �� �� ��

���������� ���������

�;E�����=�4;H �31���4���B�AC//DE�(F--��8 8+/���� ���� �"������ �������� �"����:�/+/����587���4�874��������!�7�!��� �����

�9;0�� 8+/���� ��87;����9��HWXYZ�E[DDJIK

� :2�89�T-UV-����,���� ��4������� ��87����:�,27�� 8+/���� ;����9����,�G8�DE�(F--�+���.,�4!���� � /9����/�!���"�DE�(F--��������������E���23�>@?�+���A2\�����������������89����E]��!��47��87����:������� ������ 0��E$^_`a�b`c�(�"/�"��!��47"/�����:�/+/����8��)-�"/�������874���������������TIJE��23�>)?�;���,4�+�4!�+��!�����:�; "����4�2�897�23��+/��>@?��89���E���.�����2�897�23��+/�>)?��47�� ��������+B�<:��!����,2����S$dc

+�� :2�""�� �/�!���������89��!�4�����4����� <���DE�(F--�������� !4���"���E)*#eQQ�,������� :2�89� T-UVU� �7+�������89�!�������587��U� �����!��A�����I��GB9��23�� �"����:����� �"�� �/�!���"�DE�(F--� ,�!+���23���������� ����� �"�2 �� ��509���9�������DE�(F--�������A�����2 �� ��89T-UV)��7�+��23�� �!�;!�����:�,27���DE�(F--���A��!���J�����f��7+��5/9�;!�� ���BA�6�g�U�4/��8��� �5/9�� ���23�� �5/9��""�48;:�;!��BA� 09�7�g���� � 4+��"L���5C +����4/C8�� ������/�/��� 4��89������ 56����,�G8��DE�(F--

�1�������21�I1�=��J�=�����4�+ � :2�89�T-UVU���� ����

4�K � �1�2���T-UP)� �2��2 �� ��h`ij$E�� ���,1� �2 �+.�� � �7��0��,��; ;��� ���� ���;4��<89�������������8A

����5�����D6�NU�VWW�>)?'�<<���0�����E)*#eQQ�� 0����E)*#eQQJ�;4��<89������������-@DMN

Page 206: MikroC book

206�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

#include <built_in.h>char i;int vout; //***********************************' // MCP4922 Configuration Constants ' //***********************************'const char A_B1_G1 = 0x70; //Channel A Buffered x1Gainconst char A_B1_G2 = 0x50; //Channel A Buffered x2Gainconst char A_B0_G1 = 0x30; //Channel A nonBuffered x1Gainconst char A_B0_G2 = 0x10; //Channel A nonBuffered x2Gainconst char B_B1_G1 = 0xF0; //Channel B Buffered x1Gainconst char B_B1_G2 = 0xD0; //Channel B Buffered x2Gainconst char B_B0_G1 = 0xB0; //Channel B nonBuffered x1Gainconst char B_B0_G2 = 0x90; //Channel B nonBuffered x2Gainconst char SHDN = 0x00; //Channel A & B Output = High Impedance

void DAC_OUT(char config,int output){

PORTC.F0=0; // Enable Chip SelectSPI_Write(config+Hi(output));SPI_Write(Lo(output));PORTC.F0=1; // 'DAC output refreshed at this point

}void main(){

PORTC=0x00; // clear portCTRISC.F0=0; // Chip select line set to outputSpi_Init(); // Initial SpiPORTC.F0=1; // Disable Chip SelectDAC_OUT(SHDN,0);while(1){

for (i=1;i<13;i++) {

vout=(1<<i)-1;DAC_OUT(A_B0_G1,vout); // Output on channel ADAC_OUT(B_B0_G1,vout); // Output on channel BDelay_ms(3000); // 3 Second delay to watch output on mulltimeter

}}

}

����������� *+���3�%��� 456478��������9�:��0�.����&;�<=>?@0�$ ��A�� �%�A�� "-�"# �&;� /��0�12���)�!(3B��%!&����� �� ��<=>?@0

���������L��X�����Q

1k�� ��9�DAC_OUT��������89�!�����:��-�,"� ,27��,�G8�DE�(F--��7� /9�+����.���"/��� �/�!���"DE�(F--�+���A�!�����:������� �����,25 �����"����:��(�"/�"���;!�/+/����89������ �!������47����:��e�"/��!���H�� �7��(�"/�"�����e�"/��!��+����1k�� ��9�l`�����m$����!47��7��09������1k�� ��98A+������`^&mdno�,1� �bd`mnp`^Pl��5/9���/��������47K

���� �"�2 �� ������+�������5� ��XE@� �23���� 56���!4���09�g�+�<:�����+��1k�� ��9Spi_Init()�+���A��9�����2 �� �4�!�����:�,27���DE�(F--�GB9�����������������,�!���"�1�1� ��� ��7�7��!���"�)��7��� �!�����:�/+/����89������ �2��;!��23� ��+��5/9�;!��BA; �A����-���!�� ��!+���@��23�-q�(q�e��23��

Page 207: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����207

�������*++�'�,���� �����!�� �"# ���$�$ ������� �%�� 0�CDEFF��&; G���H%��� �/I���������J$� � /��; �%��0�12

���

���

������ ������

���

������

�������

��

���

��� �

����

��

���

���

���

���

�������

��� ����!

���"

����"

��� �

����������

����

���#��

�� $%&"%&�

���#��

�� $%&"%&�

���

���

���

������ ������

���

������

�������

��

���

��� �

����

��

���

���

���

���

�������

��� ����!

���"

����"

��� �

����������

����

���#��

�� $%&"%&�

���#��

�� $%&"%&�

���

T-UP-�� ����2 �+.�� �09�����Yo%c����5/�5 �2 �� �=�r��E�����2 �� ��89�T-UV)

T-UPU������ ;��,5� ����4 ����2 �� ��509����"L���5C �� �����

T-UPU��� 87��� �!����������/���� ��7��0��7!�4�� ���O)@Sn&��BA,2����4�!���7"4������89���)(����,�G8DE�(F--��!4��7�"�!���"� �4

T-UP(� ��2 �� ��������L��� �����L!�����/�/���

�B!�"����@��2� �"3���4:��CD��$�"����-��"�����&���EC"�FG6HI������D���������:���������&6����2��D"J3$��������$� ��" �"3���B��:3CD����K�L� �:����

Page 208: MikroC book

208�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

Page 209: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����209

���������������� ������������������������������������ ������������������� !���"#�"�$��%�&' ��! �(%�����&&�)*+",��� *���*-.���#��/�.0��,�"����&&�)��123��$��4�5�,6$�3��7.�-������� *6����3���������������43��!������8�*����,5�3����&&�)��#�5�-9�6���-"�*:;�����&&�)��123�(�0�$��.$��.���,����� +�5��)�5�3 �3<)���,��:��&&�)-"�:��3=����(�!0. �%.�,��,*$ �6���*�"3$.��������� �������������>����*$ �0�9��4�! ���,�4���,�7���0.�,8(�3�������������� (�!0. �/-�?� @�0�"3��39�6�����*�0/$��.�,%��*5��3��7.�-������� 5�*3���A#�(�!0. �/-�?� @�0��#��3��7.�-������� *:;�!����B�,>�����(��������0

�� ��!"��#� ��$%����&%�'###��(�)*%�$+����&&�)����������"#*:;�����&&�)!����,-�C-�,�!0.����� �����7*���-�,/��(�-�C

-�,*�"$D�(�%.$,*$ �6�A�,8��4:3�)?���������0��,�"3�����4�.�,%��*5�$.�0�$(�*:;����*0��?�0�$(�*:;��* E� >��.$�(6&.�4:3�)?���*0��?���/�>�����>-� * ��?� �.$��4:3�)?�* E/��!3.�/�B"$���4)6D���F6�.$�$��59�!���*:;�0����4:3�)?���*0��?*:;�0�$5��*0�"��$��+����! ��$��4�3��7.�-������� ������&&�)��#������� -�#,6��5�7�3�., ,������&&�)-"��"��.*+",*���*�"$�"#-�#,6���(���6$.�,3��-9�,���4:3�)?���*0��?! ��* E�����7*:;�/��-�#,0�$�.,! �0�$�����A#���.3��*,����/���,3��-9�,��(��)���#��30�$�.�,�7��6�3�"3��*�"������ 5�3�4:3�)?���*0��?/:�,�4:3�)?�* E�0�$�.,����4:3�)?���*0��?�0�$�������4:3�)?�* E�(�-�,0�,�����6�3*:;�3���.������� 5�3�4:3�)?�* E�0�$�.,5�3 �*:;��4:3�)?�* E�! �0�$�������4:3�)?���*0��?��(���������������0��,�"�4:3�)?���*0��?*+",0�$*�"$*-.���#�

����&&�)��,��������"#0��,39�6���D�$�:30�/$�-"� �5�3��,�-9�/��>�3��0.�0�$0���-���.����7A,�GHIJ �+� ��:3��/E* "#,�KLM���,��#��4:3�)?-"��9�*�����0.�����������"#5A,0��,��3!��(6�*��0?+40-"�0��,0.�3������&&�)�" �3<)�*:;��� * @3*0��?*:2�6���*���*:2��(���:-"���N���!��,/���!3��3�������������� !��6�A�,��*��#�,0��

�����+�,- �*.�*/��0��1��&������,�� �

�� �23'�4�+���'�!"#$%������5�����

Page 210: MikroC book

210�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�� ,�!"��#� �&%������� �4:3�)?���*0��?*:;��4:3�)?*+",0�$*�"$���������-"������7����*%" ����&&�)/���>�

5�39�*���54�*����0����,/-�?� @�0��$3��-9�(6�����&&�)*:;� �5�30�9�(�%.$,*$ �6�A�,�5�3��#�-9�(6�3 ����*:;� �5�3��,�7��6�3�4:3�)?�* E0��,3���.,����� 3 �����,���*0��?��4:3�)?�* E5�*:;�0�$�$��4��D�$���,����&&�)0.�/:5�*��@5��#�3���$�3���!0.7��6�3�4:3�)?���*0��?0��,3���.,����� 3@5������7�9�*���3��0.�/:/��*

EO,3?%�����,/-�?� @�0-"�39�6��>��4:3�)?���*0��?�"��$3���G�EO,3?%�������������� &%�$��-�� ��./0/1�2��$�3$�&4�5���./67�7616�2��$��&-+�&4�5��8�9��:.;1/�<=/��! ��$��&-+�&4�5��8>9��:.;1/�?/.<��/-�?� @�0�"*B0(%�(�3��*����0��0��0.�3���4:3�)?�* E�(��)�-"�/-�?� @�03���.��5��9�6����.������� -"��.,��5�3�4:3�)?�* E��.$�/-�?� @�03��*�"������ �P�Q! ��PRQ�(%��9�6���*�"������ /:�,�4:3�)?�* E�.������&&�)��,����

-�,�����4:3�)?�* E�"EO,3?%���-�#,��#��N�EO,3?%�������������� &%�$� #��%��@./0/=A/�2�$��&-+�&4�5��8�9� �:.;1/�<=/��! ��$��&-+�&4�5��8>9� �:.;1/�?/.<��/-�?� @�0��,3��0�����,(%��9�6���0�����,3��0��0.�5�3�4:3�)?���*0��?�>��4:3�)?�* E0�$-"�7�3* ��35�0��,�.,��&&�)0�����, ,������&&�)*+���!5�,(6��4:3�)?���*0��?-���$.���)��"#0��0.�3��/��! �$��.$�/-�?� @�03��*�"������ �P�Q�! ��PRQ�(%��.,����� /:�,�4:3�)?���*0��?�.������&&�)��,����BA�,5����+��S?3��/-�?� @�03���.������� ��,�4:3�)?���*0��?�3��!3!�EO,3?%�����,!0. �/-�?� @�05�(%��$���$��,���*$ �! � �3<)���,��:��&&�)*:;�0�$39�6���! �-43���#,-"��"3��*: "��!: ,EO,3?%���0��,-9�(6�����&&�)��.(��D�$�$.�,*����BA�,3@���3��-9�(6�����&&�)*:;� �5�3��,�.�,�����/�>��$���-"

������������� �������������������������

���

�������������

�������� ����

�������� ����

�������� ����

���

Page 211: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����211

�� , �� ������� �$��-�� B�' #��%

�4:3�)?���*0��?-9�(6�*3��3���"*B0������&&�)*+���!5�,!3.�4:3�)?�* E�>�3��-9�(6�����&&�)*:;� �5�30�9�0.�*����,�.�,����GTR�/�>��$���-"�! �5�0��,-9�(6�����&&�)3 ����*:;� �5�3��,D�(��GTR�/�>��$���-"6 �,5�3��#��7��6�3�"�4:3�)?�* E0.���.������&&�)5��"3��0�����,��&&�)�"*B0��#���$������������ � ��������� >�3��-9�(6�����&&�)*:;� �5�30�9�0.�*����,���:����)�UR�VGR�/�>��$���-"�6 �,5�3��&&�)�"*B0:��3=:����)��L�UR�/�>��$���-"����:-"���N�V�!��,/-�?� @�0��,3���"*B0! �3��0�����,

�� , ,�������� �$�3$�&4�5�&%!C��"��$�� ��B�'�$��&-+�&4�5�&%!C��"����D

*����0��,3���.������� 5�3�4:3�)?�* E��4:3�)?���*0��?5�-9�(6�����&&�)*:;� �5�30�9����:����)����L�/�>��$���-"�5�3��#�0��,-9�(6��7�����,��3 ����*:;� �5�3��,��4:3�)?�* E5��.,����� ��(6��4:3�)?���*0��?>�7������� *:;�� PRQ��4:3�)?�* E5�-9�(6�����&&�)*:;� �5�30�9����:����)�GL�/�>��$���-"� ! �$-9�(6�3 ������.�D�$� �5�3��,�"3���#,�!0.7��*:;������ P�Q��4:3�)?�* E5�-9�(6�����&&�)*:;� �5�3��,0.�*����,/:�"3�GL�/�>��$���-"��$�*$ �-�#,6��(�/-�?� @�0�"#:����)�UR��VR�/�>��$���-"� ��������(�/-�?� @�0�"#(%�*$ ��$�/�.*3����VR�/�>��$���-"��(��)�-"��4:3�)?���*0��?5�(%�*$ �(�3���.������� ��.��6$.�,��L�! ��UR�/�>��$���-"6 �,5�3*����0��/-�?� @�0�"#� � (���:-"�� �N�N�!��,��:��&&�)��,/-�?� @�03���.������� ��,�4:3�)?���*0��?BA�,�" �3<)�*6����3��3��*�"������ ��,�4:3�)?�* E�! �/-�?� @�0-�#,��,5�*3���A#�(�*$ �*�"$3���3 .�$���� *�����4:3�)?���*0��?�.����4:3�)?�* E3@0��,*�"�

����������� �����

���������������������� �!�"����#�

�����

$%������ �����

���������������������� �!�"���&'

���������!(�������� �!�"����#�

���������!(�������� �!�"���&'

������

���)������ �����

������� ��� ����� !������� "�# ����������$���%���&������������������

Page 212: MikroC book

212�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�������������� !���������$'��� $����� �����"�������������� !����� $���$'��� $���%���&�� (

����������� ����

�������� ����

����������������������� �!�" ���#�

����������������������� �!�" ��$%

&������� ����

�� �!�" ���#��'�����������!(�)%*���$!�+�+

�� �!�" ��$%�'�����������!(�)%*���$!�+�+

���������������",�������)����-)�%��!���.

���������!(���%�������� �!�" ��$%�!/%"���)%*���$!�01!��

�� , �� ������� �$��&-+�&4�5�&%!C��"��$�� ��

*�����4:3�)?���*0��?0��,3��*�"������ ��4:3�)?���*0��?5�-9�(6�����&&�)*:;� �5�30�9����:����)����L�/�>��$���-"�5�3��#�0��,-9�(6��7�����,��3 ����*:;� �5�3��,�! �$*�"������ /��(�-��-"�7������� -"�0��,3��*�"�/:�,�4:3�)?�* E*:;��PRQ��4:3�)?���*0��?5�-9�(6�����&&�)*:;� �5�30�9����:����)�GL�/�>��$���-"�! �$-9�(6�����&&�)3 ������.�D�$� �5�3��,�"3���#,!0.7��0��,3��*�"������ � P�Q��4:3�)?���*0��?5�-9�(6�����&&�)*:;� �5�3��,0.�*����,/:�"3�GL/�>��$���-"��$�*$ �-�#,6��(�/-�?� @�0�"#:����)�UR��VR�/�>��$���-"� � (���:-"�� �N�G�! ��N�L!��,��:��&&�)��,/-�?� @�03��*�"������ ��,�4:3�)?���*0��?BA�,�" �3<)�*6����3��3���.������� ��,�4:3�)?�* E�! �/-�?� @�0-�#,��,5�*3���A#�(�%.$,*$ �*�"$3���3 .�$���� *�����4:3�)?���*0��?*�"���4:3�)?�* E3@0��,�.�������

Page 213: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����213

��������)������ !����� $���$'��� ���$���%���&���� �����"�������������� !���������$'��� $���%���&�� (

��������*������ !����� $���$'��� �+,-�$���%���&���� ����

����������� ����

���������� �

������������������������� �! ���"�

������������������������� �! ��#$

����������� �

��������� %!&�������'����('�$�� ���)

����������� ����

�������� ����

����������������������� �!�" ���#�

����������������������� �!�" ��$%

&������� ����

���������!'"(�������)����*)�%��!���+

Page 214: MikroC book

214�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�� ���5CB##&%�$��E*�$�&4�5�B##(�-*%�$+����:�F�1G�H���IJ�HK���JLF���H���

(�3�������������� �������6�A�,����4:3�)?���*0��?�����70��0.��4:3�)?�* E/�����#, ����0�$*-.���#���4:3�)?�* E!0. �0�$5A,0��,�"����� 39�6��!��*���*'+��0�$�>�*3@�/$�(�6�.$�$��59����D�(��4:3�)?�* E0�$��#�8�>�:30��4:3�)?�* E(��������!���"#5��"6�.$�$��59������UG���06����T�/�0?��9�6���*3@������ 0.�,8�-"��9���&��,�4:3�)?!0. �0�$�BA�,:��3����$

�H��6����,0��3� �59��$��T���0

VH�* �6��:��59�0�$���� WX�Y�Z�����59��$��GT���0

NH��6��0�$5����$�����+ ���[\[�]�[^_X _WX�\�`�Y`WY_^�[a�_J��59��$��T���0

���(%�,�������7�.������� :��59�0�$��,�4:3�)?�* E/�����$3��(%��9����,�.��6�.$�$��59����\�W`�\bc�]�dNN���(�3�)"-"�������"�4:3�)?�* E0�$*�"$/�.59�*:;�0��,���,!��*���(�3��0��0.�

��:!��3��0��0.����������6�A�,��5�*����0���A#�� *�����4:3�)?���*0��?-9�3���"*B0! �39�6��!��*�����,�4:3�)?-"�-9�3��0��0.��7��6�3�"�4:3�)?�* E*+",0�$*�"$�����7������#�0��3��0��0.�3��6�.$�$��59����(��4:3�)?�* E/���5�*�"3$�S"3����,3 .�$��$���3 �� 3(�3M+M$�NO$���6������C����0P�L�.<G�Q�d[[��5�3��#���3��0�����5�3�4:3�)?�* E�*����3��0����������)?3@5������7*����0����#�0��3���.��6���*�"������ /��0.�/:

�� R���#�$�-�'###��(�)*%�$+� ��J�S�F��/ ����"�eY�f �����3!����*+����������3���������������! ��"���39�6��(�*����,�$��7"�

��,��&&�)��123�-"�(%�3��/�>�����>-� * ��?�gh[�0��,/�.���3$.��Gcij

�"EO,3?%���0.�,8�(�/ ����"�eY�f ���(6�(%�,����,�"#

Page 215: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����215

�� R ��DT%��U�*��Ow_Reset

(%��9�6����"*B0�4:3�)?�eY�f ���-"�*%����0.���.3����+��?0-"�39�6���!0.EO,3?%����"#5�(%�/��*'+��3��/�B"�kl�TVR�*-.���#�

������������� ������unsigned short Ow_Reset(unsigned short *port, unsigned short pin);

������port� ���������� �����������������������������

pin� ������������ �����������������������������

��� �� �� �� �������!�"����#$ ��%���&��'()*+,)� �� �������-�"��.�� ��%���&��'()*+,)

����������������Ow_Reset(&PORTA, 5);

����������� ������������������� ��������� ���

�� R ,�DT%��U�*��Ow_Read

*:;�EO,3?%����.������� 5�3�4:3�)?���������6�A�,��

������������� ������unsigned short Ow_Read(unsigned short *port, unsigned short pin);

������port� ���������� �����������������������������

pin� ������������ �����������������������������

��� �� �� �� ������/0��-�.����������.1�$���%���&����2�����

����������������unsigned short tmp;

...

tmp = Ow_Read(&PORTA, 5);

���������� ���!�"�#�$�%���&�� ������������������������'(��)� ���������%(!%*!���� *+���tmp

Page 216: MikroC book

216�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

� �� ��DT%��U�*��Ow_Write

*:;�EO,3?%����.,����� /:�,�������6�A�,��

������������� ������void Ow_Write(unsigned short *port, unsigned short pin,unsigned short par);

������port� ���������� �����������������������������

pin� ������������ �����������������������������

par� ��������/0�-�.����������������.�������������

����������������Ow_Write(&PORTA, 5, 0xCC);

��������� ���,-..�%�� ��/��� ���������������� ������������

Page 217: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����217

�6.��*. ���+�78 �/ ��/ �01��9�.: ��;�� <=,>?7@�� �23'�4�+��%ABC"$B

&4�5��$%����V�+��!C&%��- �MNN�#!"(W5���70�XY,>����.�3���#$$���%&4/�5����������51������2���������������������������6���� ���78�������������

����2�����9������.:�0�;��4������02�����#1���� #��02����1������0��%&4/�5��/�����-<��5��=1�����#0�������0� ���%&4/�5�/��%1�>?!��5005#5����

�/�������/0����7@-AB<!�����1����;

� � � � �� �� �� �� �� �� �� ��� ��� ��� ����

������ ������ ������ ����� ������ ����� ����� ����� ���� ����� ����� ����� ����� ���� ����� ����

����������� �������� ��

�����������C<DE-��1��5�����/0���1�-<��5������%&4/�5�������.1�$���7@-AB<!

��������

��� �� �����

������ �������

��������

���� ���� ��������

������ �������

�����������

���� �����

���� ���� ��������

���� ���� ��������

���� ���� ��������

���� ���� ��������

���� ���� ��������

���� ���� ��������

���� ���� ��������

���� ���� ��������

���� ���� ��������

�����

����

����

�����

�����

�����

��� �

� ���

����

���

��������

�������

����

����

�������

��������

���

����������.�)��$'��� /010�� ���23�� � ���/�����0����2���%&�4��0���3�/�/'$���56�78�,

Page 218: MikroC book

218�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�$�N��(�3M+M$�NO$Z��70�XY,>���/�����C<DE-��1����$�1��#� #��$��� �F��� 1���7@-AB<!�$2�F�.1�#������#� #��$������ ���

�������������F� ���������%&4/�51����/�� GHIJ9� ���������%&4/�51�������� GHCJ�02 �������$5����������1���������� GK'(L+MN,OP+'(� ,)M+QP),J� =1��������5�����$���.:�����7@-AB<!� ������HI9�HC�02 ����$5����������1���������$2"/����������$����#� #��$������ ���=1����=����5�R/������������"��.�02������0������.����� �������1 �������������5��������������.1�

A�J[�\IFK���J�F�\����F�Q��-N��� ���O$(���$��O$%$�����������0��� �� #��02����1����%&4/�5����7@-AB<!�����.1�����/������$�1����/01����;

� �� �� � � � � �

����� ����� ����� ����� ���� ���� ����� �����

��#�����0��� �� #��02����1$2��2���R����5��S-�02�S!�1����;

�� �� ��������� ������� �� ��������������

� �

� �

� �

� �

������

������

������

������

�� !"����������#�$%*+,-&'(

�'! "����������#�$%*+,-&)(

�!"����������#�$%*+,-&�(

!"�����������#�$%*+,-(

����� ����������� �������

����������� ������

��������������������������

��������������������������

������������ !"#$%&!��

� �����'��())�*

� �����'��(+��*

� �����'��(�+�*

�,�

��������������������������

��������������������������

������������ !"#$%&!��

�����

����

����

�����

�����

�����

�����

�����

���� ����!���"�"#$��

���� ����!���%�$&�'�%#(

������� .�)��#�/����1�/���9�:����$�����3�23��1;�4��<��56�78�,

Page 219: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����219

�$��UE*� 3�$%]$���BM�������#�$����/�����C<DE<�������10����=1����.�3��7@-AB<!���������� �����ST!�3����������������;$2���������#��������<U<V ����.#�1�#������������1�R0$2�1�R���=�1/0�CT7�3��������� �����7

&�^� ��$����%C<DU-� ��W1=������X+V,'T������.:0�=���$F���� =1��0���.�= � ��=��0�0���02 #��"����YY�&��ZW��1����;

���������� !�"#�$%%�&'()�**��0����[\T-]^A>>�����[\T-]^A>>_� #��"����YY�&��ZW���<!`Ia

C<DU<������=���$F��������7@-AB<!H)QP�02 5� �=�����4�b��T����=���������C<DE-

C<DU6������� ��. 0�021�#��=01=������ ����1���R00� c����������

C<DUD����=������1/R0������������=�1/0�CT7

���'"(�#�0.1�+�(� �����2�"3�������%(!&��14$567,�( ���8

� ��� �� �� � �

C<DU?� �� #��������.�3��7@-AB<!� � ���1/�����0�����0� ���%&4/�5

�������.�)��3�1��/ ������0/����%���&����������������$����=2�2��=�� ����>?@�AB7CCD77C�/'3�(E��������FGHIJKH�$���LJMKF@�2���9 ���

������������

��

����

������������� ����������������

��

�� �� � �� � � �� �� ���

� �

���

��

��

������

�����������

��

�� � � �� �� � � � �

��

��

������

� ������

��

��

���

���

��

����

��

� � �

��

� �

�������

��

�������!

��

� ���

"��"���

#!����$%&

�'�

��

�'�

Page 220: MikroC book

220�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

=��#������� .�)���( ��56�78�,NHOPQR� =��#���4�S��@��;������LJMKF@�2���9 ��� 9����/������<�'(E��������FGHIJKH�<�����0/2������%���&����������������$����=2�2��=�� ����>?@�AB7CC

int Temp; // Save temperaturechar Temp1; // Save lowbyte temperaturevoid Display(int Dat) // Function display temp on LCD{

int Dat1; // Internal variablechar text[6];

Dat1=Dat/16; // Integer valueDat%=16; // Decimal point valueDat*=625; // Convert to 4 digit point valueif (Dat==0) Lcd_Out(1,13,"0000"); // Leading zeroelse if(Dat==625) Lcd_Out(1,13,"0625"); // Leading zero if namber < 4 digitelse{

WordToStr(Dat,text); // Convert decimal point to StringLcd_Out(1,12,text); // Show string on LCD

}WordToStr(Dat1,text); // Convert Integer value to StringLcd_Out(1,7,text); // Show string on LCDLcd_Out(1,12,".");Lcd_Out(1,4,"TEMP="); // Show Text

}void main(){// Initialize LCD on PORTD and prepare for output

Lcd_Init(&PORTD);Lcd_Cmd(Lcd_CURSOR_OFF);while(1) // main loop{

Ow_Reset(&PORTC,0); // Onewire reset signalOw_Write(&PORTC,0,0xCC); // Issue command SKIP_ROMOw_Write(&PORTC,0,0x44); // Issue command CONVERT_TDelay_us(120);

Ow_Reset(&PORTC,0);Ow_Write(&PORTC,0,0xCC); // Issue command SKIP_ROMOw_Write(&PORTC,0,0xBE); // Issue command READ_SCRATCHPADDelay_ms(400);

//Format DS18B20 [S][S][S][S][S][D6][D5][D4]==[D3][D2][D1][D0][D-1][D-2][D-3][D-4]Temp1= Ow_Read(&PORTC,0); // Get temperature LSBTemp = Ow_Read(&PORTC,0); // Get temperature MSBTemp <<= 8; // Shift to highbyteTemp += Temp1; // Form the resultDisplay(Temp); // Format and display result on LCDDelay_ms(500);

}}

���������+��,�����-

�������������#����=�����0����5��$��

-U�����1 ����5����������=�1/0�CT7��������;�0������ �����7

Page 221: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����221

<U��51�����������������=1������YY�&���3�.�����7@-AB<!

6U������ �������@d\[�Se`�� ���������������5��1�1������7@-AB<!

DU���� �������TefghSH�� ������7@-AB<!���5����;��������0� ���%&4/�5

?U� ��5�������;�������� � ������ ������$���7@-AB<!� #��� ����������� ��$����#� #��$��@TS_HTI[_7�3�����F� ���%&4/�5����0� �����F$0�#���.#�

]U� ��5����;����������� ���%&4/�5� =1����� ��.������������0�#���1�#�����/0.����/�

>U��������/0�������.1���F�.#�����#���P)Xi�$����;������������:j��������Display()� � ������ ���1�R0������$��CT7

������������:j��������Display()���1����;

-U���� ���%&4/�5�������� ���%&4/�5$���#���F���� ���%&4/�5��������0��k�5��

<U��0� ����#�0��k�5�������=1� /&1�#��]<?�3���$2.1� ����#�0��k�5�����1�D��5� �1�

6U��������0� ������/����/������#���b�� ������.��1�R0���=�1/0�CT7

DU�"�� �����.1�$������0������!� �������0� ���GWordToStrJ�$2�� �������!�3�����������.��1�R0$2��51��������#����$��������� �������if�����#��02��5��0�k/�������&���� �����.1������!�����]<?

?U��� ��$���#���F����0�������#���b��0�#���.��1�R0���=�1/0CT7

=��#������� .�)���( ��56�78�,NHOPQR� =��#���4�S��@��;������LJMKF@�2���9 ��� 9����/������<�'(E��������FGHIJKH�<�����0/2������%���&����������������$����=2�2��=�� ����>?@�AB7CC

Page 222: MikroC book

222�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

Page 223: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����223

����������� ��������������������������������� �!������������ ����������������������������� ����������������������� �������

����! ���������"����"��������#$%&'()*+�� ��!���,��"����������, ��"������!� ���������� "������"!����������� ��,�-.�����/��.�������� ���������"����"�������#$%&'()*+���01����23�1�������4�����4������� � ��������#$%&'()*35)*&5)*25)*265)**5)**6�7�� �!� �.�1����������4���8��������������/� �������4��,����7�����69&

��������

�&�� ���(+�'�(�,� �����'� '- ��� ��

������������� ���������������������������������� !"�� �����#$�%&'�"( )$�*+,����-./�01��!�2��03454��67��89�-��".��'!&'�"1:�;���<����=>?��'!�����89�-��"@#$��A1��"�<���"�����B��'01���C)�"����<���������"�<C)�DC)�D�����"E/ ���/C��8."�F=G-/HFIJF7*��'!D'K���<���"�2-D�0D(��H��'01��:���K�D�LL�M<�/D�&'�"( ) +,# N+, ��D'K������K�9/��!������' ��OPQ"��K�����R$���0��-./�01��!-�0���9���&������#45D:�.�����/�0'01�7%Q���� ��/:�8<0�9S!8T ��'01���C)�"���8"�E/O�Q���-;0���'01�����$U4���KV'1:��'�1��������1�����OPQ��'�/��D�'�R./�� ��'01�D'K����"��K�T���R1��

����������� ���������� ����� � ��������������

NX-877 PlusII ������������� ��������� ��������������������������� ������������������ ����������

������������ ��� ������� ��������� �������������� !��"��� �#!$�%&'(�� ��������)

Page 224: MikroC book

224�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��������!�"�#��$"%&'()�)�%(�������*

�������

���������

�� �� ��

� �������

���

�������

�������

��

����

������

���

����

�� �����

�� ��

�� ��

����� ���

�����

��

!���

!��

��

�������

�"�

�"��

�#

�"�

�"

�"�

�"

�"�

�"�����

��

��

��

��

��

��������

����

����

��

���

���

���

��

���

��

���

���

���������

���������

������$�

���������%&'�

�� ��� ��%&'

�������

�������

� ����

�"�

�"�

�"�

�"

�"����(

�"

�"�

�"�����

�"�

�"�

� ����

� ��

��

��������

������������������

�"�

���

�"�

����������)

���������$)

������!

����������

������$����

�� ���(�������!�����( ������!�!����

� ����

�� ���

���

��

���

��

���

���

���

����(�(�

����(�(�

����(�(�

���(�(

����(�(�

�� �(�(

����(�(�

����(�(�

� ����

���

���

��

���

��

���

���

���

#

�*

�*�

�*�

�*�

�*�

�* �������

�*��������

�*��������

� ����

��

��

�* ��

��

��

��

��

��

#

�#

�*� ���

���

��������

�*����

���

���

����

Page 225: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����225

�������"#�$��%#�&��'()�*�$+�,-("�.�,�,����������������� ����������'()������������������

!����,����:�7 �����"����"��������#$%&'()*+������������������������ ������������������������������������ � �������!"#�$$��%�&�'�������(�� ��)*+�,��-��(./&��� � ;�7�����������!��1 �6&<=>��,����?����"!�����!��"������� ��,�-.���@ABC��/��.�������

/��.�������.�����! ,��!����������������0�D�/��.�;����8��� �4 ��23�1�>����/��.�6'��-.�;E639E6D>F�/��.�G�)��-.�;EG39EG*>F�/��.�%�)��-.�;E%39E%*>F�/��.�B�)��-.�;EB39EB*>���/��.�C�H��-.�;EC39EC=>�!���� ���4 ��=)�1������ ,����?�� ���4�. /��.��B�����C���

, ����������-�,�::�8��IJ���� ��-,.�����?���=3�@KL�����0�������1���"������. ���!����-�1��������-�,�::�8��IJ����������KM

,��!����!� � ���N��������OP9)**�#QRS$$����!� � ���N,��!�������&��4����TDU����0���� �N���0��! 4���8���0!������������ ��

������/�012����3�-��������(���������������1������������������VCB���-�.��WX���?X�H=�� �"���� �����=

, ���, �����&'�� �������7�����69H��4�� . .��. ������/������������,�� ������ ��� �

������4�)�5�6'��7��012�-8)��&��'()��������������.����, ���,�Y�.����1�*�, ���� �H�!�������������"��� ���������

. �Z���-��[3\��1 ����1�� ��1�VCB��X������! �VCB�.-�,� ��� ����. ���1�. ���W����.�����������.-�/�]�W�� "����.��. ���������������,. ���. ���W����.��� �! � ��

��������+�"�#��,-.�'�%/�0��*�+!��$��

���������

������

������� �

�����

������������� ��������������������

���������

������

�� �����

�����

���

��

��

���

���

���

���

��� �

��

��

��

��

��

��

�����������

������

���������

�����

���������

������

���������

�����

���

��

��

���

���

���

���

��� �

��

��

��

��

��

��

��

������������� ���������������!"���

Page 226: MikroC book

226�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

������9�6:�(�5("#6���8�*�8,�("��;'<":�8,)�5�6*��'8==">�$�"��+�*?��353-���/���! ���������������������,�::�8����������-�-.�^�����#$%&'()*+��,����?

�������� "��,���������������OP9)**�#QRS$$��X�� �.�����!� � ������������ ��� � 39DU,��!�������2�� �"���� .��. ���������� ��� � ��&3_ �����.�����!����-��81�����

������@�)�5�')3-���3�A�-�����������������-��[3\�1����2�� �"���� ,�-.����.-��� �����2�.����������. .��

. �����/7����� �����! !��,�-.���� ?7����!���� �����. ���������.�/4.1���������-��[&\����,�-.��?7���!�������. ��������-���-��[3\������.�/4.

��������)�5�A8�'��5������-���,����?�����-�,�::�8/��,�,���!������-�.�0�W��-�� D3`� ��������?���� � 2�� ���� &KLF� &3KLF

&33KL�����&_KL�"������W������#aP2&33����!� ����,� �,�::�8/��,�������������?������ ,�-.����.-��� �����/��.������������,�� �����?������VCB�2�.��������� �����?����� �! Y7 �� ������

��������1�"�#��,-.�02"�������$"%�+�3�24�55'2�0/�6�748*

������ ������ ������

��� ������ �����������������������������

���

���������

����� ����� ����� �����

���

����

�����

���

����

����������

��������

��������

��������

��������

�� �� �� ��

��������9� "�#��3�$�#$����� 2%��25)$�& :�;9<��=�3�25� ���"�#���.>

���

����

�����

����

��

����

��

����

��

���

��

��

��

��

��

��������?�"�#��"/0�*�/%6�0�1��$�� ����������"�#�62��*�#�%����0��*�@AB@A

��

��

��

��

� � � ��

�����������

� ��

�����

����

���

��

�����

���

�����

�*�������*�+�

Page 227: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����227

�������'()���BC��-(����D��0�2��6�$�<"�A��*E#�F�������� ����.��������]��.��,��!��������. "��7��V%B������1��1���.�0�. �&'�?X

=3�.����b���&�?X�=���������"����������1�.����.�c���d$%9V%B������.��. ���������� ��� �&3_,��!�����������������������,�Y�1"��7��V%B

, �����1��,�::�8�,��������"/��e�"W�&��4��"�����"/��e�"W��0����� �����?����"W���W�������.���!������?������Z��1 ���.����� �����?����0��,�::�8����������������,4����.-����� ������8�=�?X�H_KL

�����������$"%��C��'0$�(' ���,>.�����=�(6���D�(8

��

��

��

��

��

��

��

��

��

��

��

��

��

��

����

�����

�������

���

�����

���������

����

�����

������� �E� "�#���C��'0$�� .F�G!;� &�8�"2 ��H3I�'/0/ 0$�J$�%��5552������

���������

��

���

������������

������

������������

��

�� �

���

� �����������

����������

�� ������

���������

���������

���������

��

���

���

��

���������

���

��������E��$"%��C��'0$�6��*0�%�4�'�KF!+!

Page 228: MikroC book

228�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��������'()���BC��-(���*+�>��$,,,8'���'"#��G��HIJKL�������� ����.������������. �BM&)G=3��W����48!^7�-����-�-.��WX�����!�X���

4���8������ ���.-�. Y ��������,!�X�,��� ;&9fghi>�1�BjQQjS�MikglmnloRmpnh�"���������.�����W��BM&)G=3��� �! /� ��� ��

�����M�'()���BC��-(�A���-���+���NO�/4/�/���! �����OP9)**�#QRS$$�,����?������������ � ����? ����X�� ����.�������

�����. ���/��.�4����EM9=H=�1��/-��.��� �/���� ���"���������,��,��1 �7�"���� �W������$%V=H=�!���@6P=H=����4�. ,��!������1 �7�����4����;E+B>��1 ��������/-��.���/��, . ������"����"�������� ����4�. ,�����, 1 �7������4���� ;q+B>� �����"����"�������������/-��.�����,��!����4������. �����/-��.���� ����]��.����BG9r�.������

�������P�67�-(�)�5���1����=<D+*��-0�����4�. ��0,-0��)33��4�

��/���/PP�,�����*�6+�������������������� ���6,,6Q��7("�A���-�ROS��/�����>'�,8-3�"�����3�

�������������� ������������������������������� ���������

��!"�# ����!���!$��������%&'�(�(���)�"*�+������$��#�, �&'-.

�����/0-�#1)�12��3 ��$4�����5�) ��6%7809:�;<9=0;�#�3����>?

��1����2�@"� �)��A���# ���)�����$��B����# ��

��D�"��(����-/H�� !�.��'!&'�"1:�89�-��"-��-2/�-/H.��'!&'�"1:����"E/� � <��"

�� �/C�����9W�0������������V0.��'!&'�"1:�89�-��"-��-2/�-/H.��'!&'�"1:����"E/� � <��"

��������������H-�9�����X@#$��YZ[\A1��TCV�-!�B�<C)�89�-��"�"8&�&��8��/�/�����-/H]\����'(�0Q�;�����0-1̂���Q$

��T�2��-'���:�0�����H��9_K���K���'K�8�'D� `�>P%*P%@

���:�0��8�!�"����0����2�/ V!0a�!����<K)"

8�!����<K)"��K"�������0�"8&�&��8��/�/�����V�D�"��(�E���"E/�<K)"��K" -/H��'��8./�89�-��"�'"��V0�2b��"-'��/��D������ )cccU6defgehdYUeg6&��.�.�����Ndi$j*

���7�����69&3���,�!� �.����, ���������0!��1�#P9=33

Page 229: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����229

������������������ ��

������������������

����������������������� ��!"�����"#��������$�%!��

����&��'����!���

��(��)*+,

�-����)*�. ��/�0�.123145�60&����78�#9����"�����!#��:������

��������;��� ��$"%���4�5����=�)2L������!;;�5��* (���4�'&'()�)�%(�������*�� >��55 F��J$�%6��*0�MFG

��;�!�����<�-!���#9������!��'� �������&�&��

%������!�9��������!�9�%� <��/8!��/!���!��!��'

6����60&���"���9�� ������������� ���������

��������������������

Page 230: MikroC book

230�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

����������� ����

��������������

��������������

������������������������������� �

��������������� ��

���������� ����������������������� ��

��������������������������

������������ ��������������������������������

���������� ������������� ������� ��

������ ��!"#$%&�������������

"' ����() ��������� �

$*&#����+"�����������

������,���-�# ./%�������� ������� ��

����������� ��������������������������� ���� !!"#$%&''!

�� ���� 0"�"��# ���������

�����������-�������������

����������� ��������������������������� �!���!"���!#$���%&'(������������� ������������������������������� �����!"#$%&�����'()��(�*+ �,�-.�

������/�)�.�0��12�3.��� -����4-�10�56��75�1/��8#90��56�� :;+��-6� ��;+�1���7���<(����7��56��-=�-6��.��>���?�<(�����.@1-.�-��22.�7���12�5;+�5(�3���A���>���� � ����(��� �*��56��������-6(1B�75�1 �,���C������7����.1�A��*+�D$$

���)���*����!#+�,%+��#�

�� E:������������� �����!"#$%&��������>��(��'(1(��.@1)�����(����)�����7���2(����F=� -������� ��;+�1���7���<(����/6(��(172G�� "#9����*�12�3.��� -����4-�1���:>�F�����475�1�=H�(1�(�)�>���3.���#� I������� -���3�(� �C��J���KL1�%M�����N�-.����*�'(�F1 �O��I5'()�.�3.� 5*�1

Page 231: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����231

���*�8P9�75�1/�-6�-�1�.�3(F���-3�1������������ ���������A��8#9�$%�-.��.�Q��������.��7���*�456�1)�.1�� 2>�-6�5'()�.� :;+��-6��.��>���?��*+�*�(�5;+�5(�3���A�7����>���7�������.5� "�#���*2>�-6��=�F>- �(-�F>-7���=2=-��7���=�F>-���(����R�:6�1���'(1(�����7�- -��*+�DD��J������E:�����.@17���.��(����7��7�����2>�����3�(����N��S�%��T��=@�

�����(��+��,��$�,�,-�

�����)�����.�"�����"+�&%&���

).�E25'(�.U�;�������������� �����!"#$%&�����*3(F���-�=�F>- �(-�F>-E)�-6�E:�1(�����(�KL1�NT�3(�<(�E������������� �����.1���������������A�-6(1�B��(��(��� :6����A��!VW F;+�E)�5(�(�K��.���(� �C��� -������-(�-��1�(�����A�7��15.UU(?���(��� �,��=2=-��XD9#YIL+1�!"#$%&������� -�*���D9#���(��� �*���$���=-����(�KL1�$J�:6�1��.1�.@����������������� ���� F*�1-.� �*��2L1-6��.��>���?��=�F>- �(-�F>- F;+�5��(1 �,�)>6���-������6(116(��(������* I�(�=� ��I � -������WZ[��'( �=���(�K*+5.UU(?�(\]�( F;+�E)������������� �����'(1(�����*+��(� �C�KL1�T��(��'(5.+1-6��=�(�*

�������/��-�� .0

������������-��1�(�7�1�.��4 �*@�1�=�F>- �,�7�1�.��44(̂���75-�1�J���KL1� %M� X��6��� �=��_%MY�������������*�(�-=�-.@1����K6(��DD�3�(��J������7��-6�5(��(�.12>�-6��4 �*@�17�� �����=�����C�����3(-.� �C�� �;+�-��1�(�E:�1(��C F*�1���2>7�- -��*+3�(��DD�2'(����J������1E�����K6(�

Page 232: MikroC book

232�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

��������&���� ���(��)���*�������� !!�"#$%&''!����� ����+)���,���,+��-�.���./�)�.0��� 123�

�����������

��

��

�����

��

���

���

���� �

���� ��

������

������

���

�������

���������

����

�� ��

�!

��

�� �� ! �

��

���

��

��

��"#

��

��

$���

��"#

�%

�%

�%

�%

��

��

� �&�

�"� �������

�"� ������

'���('������������

'� �('� ����������

��������

����������

����������

����������

�������

���������

��

�&�

����

��!��

����

��!��

��

)$�

�����

"��!#�

����!

�����

"��!#�

�!

��

)!$

����!

������

"��!#

)!$

���&�

*���"�

���&

���

���

�� ��

����

����

)!$

�!

��

)!$

������+� ��

������+���

���

���

��,��� �

���

����������

����������

�"���#�

�"���#�

�"��#!

��!��#�

�����#�

�����#�

�����#�

����#�

!

�� $ ����

���$ ���

�" �����

��"�����

)!$

)!$

���&�

���&�

���

���-#��

�� ����

)!$

���!

������������� ����������������

"

� � ! � � � � ��*

)!$

���

)$

$�

.#��'

,+���������

��

�� �� �� �� � � � ! �! �

��

�!

��

$��

�&� ������

��

��

��

��

��

��

�!

��

��

�����

�!!�

�"���

��

��

��

+�

���%#

�!

��

��

��

���

���

���

)!$

'�

�"�

�!

/� 0

!$

��

� 01!$

��

/� 01!$

��

/� 01!$

*�

#�

��

�����

������

��

/��

�#��

2�

!/�$

��

�3�

�"

45�.#�

!

�#!��

6�

0 ���� 2�

!/�$

-���������

���

)!$

)$�

��

� 0

�$

��

� 0

�$

��

� 0

�/�$

��

/� 0

!$

��

�&

�"�

4#

������������ ������

�"!

�4*(���

���

���

��

��

�& �

��&

)$�

����� ���������

���� � ���

����

����

Page 233: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����233

�������������2>�12�<(�26(��45�=-:�:=+17����.�3L@�� X`a�b�cbY� F;+��'()�����.�7�1�.��4 �*@�1�12��.@1)������*+� _TM� � �.@1�*@ �;+�12(� �;+� �=+�-��26(��4E)�7�6�12�� ���.�3�17�1�.��*+7�- -��*+2��6��B����1������(�E:��12�26(��45�=-:�:=+17����.�3L@��*@�'(E)�7�1�.��4 �*@�1�12�����.1�1�.�Q(���.���A6�*+� _TM���A6���� 2���6(���.�7�1�.�3�17�- -��*+2����1-+'(�(�2�=1B� X����(?$�TMY�2L1��65(�(�K�.�Q(���.�7�1�.�������

5'()�.�E���?*�*+7�1�.�2(�7�- -��*+��-+'(��6(� JM��12�-��22.�7�1�.�7�- -��*+2��'(1(�7��72�1 -;������(�*+�8P9�5* )�;�1-'(7)�61��Ddd��/A�E:�1(���� ��*+��7�- -��*+E)�6�.��*

�����������1��,2&

�*�����.��N�56�������������

������������ ������� ������������������������*���A��8#9�$%�-.��.�Q�������.� :;+��-6��.������������� ��������-6�3(��9J�KL1��9��3�1�!"#$%&���� 3�(�.�3(�9J�KL19��3�1���A��8#9� F;+� 3*��3���A�75�1/�7���'(5.+10�-6�3(��9N��.�3(�P� F;+��̂��5.UU(?F.�5�5'()�.� �C� � �=��(��'(1(�3�1���A��8#9�7��-6�3(��9�� 3�(�.�3(��e�3�1���A��8#9� F;+� �;���(� 3*��3���A�)�;��'(5.+1���.1���A��8#9��*-.�-�(��(���.��6(����M�$��6(�$�f ��'()��(�*+��.���(� 3��3�12�75�1/��K�()(�-��1�(�E)� �]��456�1)�.13�1���A��8#9�E)��'(�(�-6�2.g� �����*+��A6��(�3�(�;�3�1���A��8#9�X��-=2�-6����7���Y�K�(-��1�(��]� F;+����)�.�F�.11(�E)����2.g� �����*@���

������� � E:�75�15K(�� �;@�1-�����������������-6��8P9����� $���1 3�(�.�3(F���-���N�3�1������������ �����!"#$%&���

Page 234: MikroC book

234�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

����������E:�75�1/��(��'(1(�����5.UU(? 5*�1����-6��'(�F1 �O��I 3�(�*+3(F���-�#����(�K*+ ��I7��I�3�1�'(�F1 �O��I�*@��A6��)�6(1�$�KL1�NfZ[

$*&#�����1 �,��������

��������������

�����3�����4���!�#�4�!%��!�4�!

�(��.�5.UU(?�=�F>-)�;�3.��>���?� �(-�F>-<(����5(�(�K����'(������-�1/6(�3(����� 0�D��KL1��DN0��DT0� ��P��KL1��P��7����#N�KL1��#�� �3(F���- )�6(�*@5(�(�K�'()���(��'(1(����)�(��A�7����.1�*@

5)6������7������89,����7����:�1&;��<��89,��<�

X$�$Y��#�4�!�;��&�(� F;+��.�5.UU(?�=�F>-7�����(���561 3�(��������/��.1�12�7��15.UU(?���(��� �,��=2=-��3�(��$���=-<(�E������������� ����� !"#$%&���

X$��Y��#�4�!�#-#!�&� F;+��.�5.UU(?��2=��h�i�7���h$i�2(��>���?�<(����

� �-�2 2��������#3#2

Page 235: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����235

X$�NY�%��!�4�!�#-#!�&� F;+�5615.UU(?��2=��h�i�7���h$i����.1�>���?�<(����X$�JY��#�4�!�#�%!�����=!��5'()�.��(��'(1(�7���*@2���1�.� jF(�3(F���-����k"ld

�6(�.@�� �;+� �C� � �=��(�-��5��1�=� -����.�-�2(�<(�����7���*�(� ��*+��7��15K(���*+��2=� �=�3L@��*+3(F���-������*@�I*F*�A2����������'(1(��*+���7����6����=�(��=� -����.�-��.��*

�� �!�"�#�"�$%&'���$�(�������)"*�#�� +���$,#*����$-./$�0$�1"�&$��'

5�6���>��1&;��>3

X��$Y��#�4�!�#-#!�&�� F;+��.�5.UU(?��2=��h�i�7���h$i�2(��>���?�<(����X���Y�%��!�4�!�#-#!�&� F;+�5615.UU(?��2=��h�i�7���h$i����.1�>���?�<(����X��NY�$�%?@A��!���;������B�>������'()��E)���#N� �,�3(5.UU(?�(\]��(��>���

Xe#8Y�7��3(��#J� � �,�3(3���A���>���� Xe9DY�5'()�.� :;+��-6��.��>���?�<(����/6(������.5"�#� �-.���6(13�1�>���?������.5� "�#����7�6�#W!e�N����A� 3C��=H�= �C�����=�5�0�9e$N�����I*m(� ��(�(\]�(2�=1�X�*�������C��Y0��J#SS����I*)�6����(�2'(3���A��*�*F���0�n�P8Do$%������3.��* ����$%�:6�1�0�9e$%�$���I*�.��>?)<A�=0�eZd$$����A��.���(�:;@�5.�F.�p�� �,�-��

%45673# ��!"�28�0�9������"

:;<=*$>?@A#����2-���")�#@A#����+� �,���-�#./%

Page 236: MikroC book

236�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

:;<B$C*DEEDF# ��!"���� 2G��!"�G� )+� ��"!0!H :;<6*=IE@A����2-�

���� �������#@A#����

;BJJ<5=E

:;<KK#�����������������#KLK#���

5�6��>C�1&;��>

XN�$Y��#�4�!�#-#!�&�� F;+��.�5.UU(?��2=��h�i�7���h$i�2(��>���?�<(����

XN��Y�%��!�4�!�#-#!�&� F;+�5615.UU(?��2=��h�i�7���h$i����.1�>���?�<(����

XN�NY�$���������@A����$D��E&���(������3(F���-�*@ :;+��-6��.����A�5;+�5(�3���A���>���)�;��qeD�d�<(�E��!"#$%&�����.1�.@�2L15(�(�K�'(��E:� :;+��-6��.��>���?�<(��������.@1F���-��>���3�1���F=� -���� F;+�5;+�5(�3���A���>�����)�6(1�.�7���.�����3(��#%� �,�3(�.�3���A���>���� X�S9Y�7��3(��#�� �,�3(5613���A���>���� XdS9Y� E���?*�*+-��1�(� :;+��-6��.�F���-��>���3�1���F=� -���2�-��1-6�3(�.@15�1�*@/6(��12�7��1���.�5.UU(?������I*��(�I*4 ���� ����� WD�N�� �,�-��� ���2(��.@��.15(�(�K-6�3(F���-�.@15�1�*@�.��>���?�5;+�5(�3���A���>���7�����5(�� �(�=� n�8qPdrrdZ� F;+��.�5613���A���>����.����F=� -���)�;����H.F�� ��;+���*+/6(�������A�Ap0����A������7�������!�r�F;+��.�5613���A���>���/6(������n"s�PP0neP�Mr$%������3.� I����� -����$%�:6�10�n$�������m(� ��(�(\]�(2�=17����>���0�n$R������.��.�7�� �6���.� 5*�17����>���0�nJJ������5�=-:� �-�=�I��JSJ�2>��� �,�-��

Page 237: MikroC book

����������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*�����237

�����:��,-�$����%!���.0!�,

�(�3.��� -����4-�13�1������������E:���I* �����8�RN9�5(�(�K3.��� -����4-�1�����:6�1�����'()�� �,�:6�1�W$��7���W�������12�3.��� -���:6�1�W$�����.��(�����>�2(�3(��9���.��9$�7�� �C� � �=��(��'(1(�����3(��#��E�3?��*+:6�1�W������.��(�����>�2(�3(F���-���$��.�����7�� �C� � �=��(��'(1(�����3(F���-��#$��*+ �(-�F>-3�1�12�3.��� -����.@15�1:6�1�*�8P9���5*75�1/��(��'(1(�3�1�� -���� X5* 3*��72�1�(�26(��4-�13.@��7��5*7�172�1�(�26(���.�3.@�Y

5'()�.�3( �C� � �=��.@�����2(��'(�(E:� �C� � �=�)�;� �]��]��(��'(1(�3�1�12�3.��� -���7-6��-.�7�����.1E:�����>���(� �C�E��(�)�>�3�1�� -����������������̂�5.UU(?�!VW� 3�(�*+3( �C� � �=��*@7��

�����C�����$��%F���"���%!���

3(���J0���T�7����#T�E:�5'()�.�3.� I������� -��������4 �*@�13�1 I������� -�������(���-�12(�7�- -��*+� F;+�E)��*���75�(�F��*+E:�3.��� -���� :6� �*���.��� -����4-�1���(�5.+11(�2(������������� ����E:��(��̂��5.UU(?F.�5� F;+�����>��(�)�>�3�17�� I������� -���

Page 238: MikroC book

238�������������� � ����� ���������������������������� ��!"#$%���& �����'��()�'*��

�������,-���#!?����������������*�12�5�=-:���-=���6���.����:6�1�IL+1-6� 3�(�.�3(F���-���DJ�7������

3�1������������ �����!"#$%&����5'()�.�3(������.@�2� �,�-'(7)�613( �*���.�3(F���-�=�F>-�=� -����.�-�� 2L1�'(E)�5�=-:��*+3(�����5(�(�KE:�5��(15.UU(?�=� -����.�-� �;+���5�=-:��������

���������������.1�*5�=-:���-=���6���.��*�)�L+1-.���.+��;��5�=-:���PePd�IL+1-6� 3�(�.�3(�PNkW#8�������-=2�E:�1(� �,�3(�* I-�(��'(1(�3�1������������ �����7-6/A�E:�1(�5(�(�K�'()���6(���4]�E)�6� F;+�E:�1(�3(�*@ �,�3(�=�F>-�=2=-���������3(�*@2���(� �,�3(F���-��PN�7��

������#=*6*D#M�#=*3

������1-G(�B>H��I�-��!��%��@A�,"=�1(��.�"�����"+�&%&���/� ��(

E��(�E:�1(�������������2�-��1�*�(�F.t�(���7��������F=� -���� F;+�E)�����4��/��.Fp��(�5�>�� �u�S�2(��.@��'(�4��� �u�S����7����1E�)�6����(�2'(���7���3�1������������ ����!"#$%&���� �����������7����.@�-��1�'(1(��.����F=� -������-6� 3�(�.�F���-� qe�� 7���E:�I�4-�7����!"#fva��! wx yzzv{x�E��(����7���3���A��1E������������� �����!"#$%&���

����(�-=�-6���)�6(1��������7����.��������������.@�2�����'(/6(�72G��"#9���.1�A�

���� � ����������

������ �������

����

�����

����

��

��

�����

��� �������� ��� ��� �� ��� ��� ��� ��� ��

���

���

���������

�����

���

���

���

���

���

���

���

���

���

���

������

� ���

��

��

��

���

��

������������

�������������

������������������� �

�������������������