microcontroller projects in c for the 8051

187

Upload: others

Post on 11-Sep-2021

6 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Microcontroller Projects in C for the 8051
Page 2: Microcontroller Projects in C for the 8051

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

��� �� ����

Page 3: Microcontroller Projects in C for the 8051

.This Page Intentionally Left Blank

Page 4: Microcontroller Projects in C for the 8051

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

��� �� ����

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

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

Page 5: Microcontroller Projects in C for the 8051

������

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

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

++. ��)(� ( �/��"�' � 0"��' �� 12,12$+132

� (�/��� � ! ���( �("&%�� � %�( -� !���� �%) -"0)��#��4 ��(

����� �"0)��#�( +111

� � 4%� �0�%#�� +111

�)) ��4#�� �����/�(5 � �%�� ! �#�� �"0)�&%�� �

�%6 0� ���� ("&�( �� %�6 �%����%) ! �� 7��&)"(��4

�# � & �6��4 � �� ���4 �� %�6 ��(�"� 06 �)�&�� ��&

��%�� %�( �#��#�� � � � ��%������)6 � ��&�(���%))6

� � �� �#�� "�� ! �#�� �"0)�&%�� �8 ���# "� �#�

������� �������� � ! �#� & �6��4#� # )(�� �*&���

�� %&& �(%�&� ���# �#� �� /��� �� ! �#� �6��4#�'

����4�� %�( -%����� �&� 29,, � "�(�� �#� ����� ! %

)�&��&� ���"�( 06 �#� �6��4#� ��&�����4 �4��&6 ��('

91 � ����#%� "�� � %(' � �( �' ��4)%�( �2- 9��5

���)�&%�� � ! � �#� & �6��4#� # )(��:� ������� �������� �

� ���� ("&� %�6 �%�� ! �#�� �"0)�&%�� � �# ")( 0� %((�����(

� �#� �"0)��#���

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

� &%�%) 4"� ��& �( ! � �#�� 0 ; �� %/%�)%0)� !� � �#� �����# ��0�%�6

�� � 1 <.1= 3=31>

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

� &%�%) 4"� ��& �( ! � �#�� 0 ; �� %/%�)%0)� !� � �#� ��0�%�6 ! �4����

�6���� 06 �%/�( ���4� � ���&�%���' �&&)��' �"? );

-�����( %�( 0 "�( �� ���%� ���%��

� ���0�� ! �#� ���( �)��/��� �)& 4� "�

Page 6: Microcontroller Projects in C for the 8051

������

������� /��

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

252 ���� ("&�� � 225+ ��&� & ��� ))�� �/ )"�� � 225> ��&� & ��� ))�� ��&#���&�"�� +253 ,1.2 �%��)6 >25. ��&#���&�"�� ! �#� ,1.2 �%��)6 325= -�� �@4"�%�� � 325< �����A "����� 2125, ������"�� ��� ) 22259 �����"� ��&� & ��� ))�� �@4"�%�� � 2+2521 -� B�&� ��/�) ����� 2>

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

+52 �%�% �6��� 2=+5252 0�� 2=+525+ ��4��( &#%�A"���4��( &#%� 2=+525> ��4��( �# ��A"���4��( �# �� 2<+5253 ��4��( ���A"���4��( ��� 2<+525. ��4��( ) �4A"���4��( ) �4 2,+525= C %� 2,+525< �0�� 2,+525, �!� 29+5259 �!�2= 29

+5+ ��� �6 � (�)� 29+5> ������"��� +1+53 ���"&�"�� ! % ��&� & ��� ))��$0%��( -� 4�%� +2+5. -� 4�%� ���&����� � �%�4"%4� ++

+5.52 �����$��� +++5.5+ ��D"��&��4 +3+5.5> ��$����$����$����� +3

Page 7: Microcontroller Projects in C for the 8051

+5.53 ��$���� +3+5.5. ��-���$����� +.

+5= �������� ��0 ����� ! ��&� & ��� ))�� ���)��� +.+5< �"��#�� ��%(��4 +<

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

-����� 2 E ��� ��%�6 "���� +9-����� + E ��� #%���4 ��&"�� >>-����� > E �%�( � ��� -%����� >3-����� 3 E 6&)�& ��� -%����� ><-����� . E ��� ��&� >,-����� = E ��*%(�&��%) ����)%6 3=-����� < E �� $(�4�� ��&��%) "�� .1-����� , E ���>22 ��&� .>-����� 9 E < ��4���� ����)%6 ���/�� .<-����� 21 E � "�$(�4�� ��� ����)%6 �����!%&� =+-����� 22 E ������"�� ���/�� �/��� "���� ���# 3$(�4�� <.

��� ����)%6

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

-����� 2+ E ����)� "FF�� �����!%&� ,=-����� 2> E ��%)) ���%;�� �����!%&� 7����4 �#� ����� ������"��8 91-����� 23 E �� $� �� ��%)) ���%;�� �����!%&� 93

7����4 �#� ����� ������"��8-����� 2. E �)�&�� ��& ����� 7����4 �#� ����� ������"��8 9.-����� 2= E �)�&�� ��& ����� 7����4 �#� ����� ������"��8 212

������ � $��������� �������� �%&

-����� 2< E ����4 % ��4��%) ������%�"�� ���� � 21,-����� 2, E ��4��%) �#��� ����� ���# ����4�%(�A�%#���#��� 229

�"��"�-����� 29 E ��4��%) �#��� ����� ���# ��4# �)%�� �"��"� 2+.-����� +1 E ��4��%) �#��� ����� ���# ��4# %�( � � �)%�� 2+=

�"��"��-����� +2 E ����4 ��%) 4"� ������%�"�� ���� � � ���# �A� 2>+

�/�����

������ ' (���� ���� ������������ �������� �!&

-����� ++ E �"��"� % ����)� ��*� ����%4� !� � �#� ��+>+ - �� 2.2-����� +> E ���"�A�"��"� �*%��)� ����4 �#� ��+>+ - �� 2..-����� +3 E � ����)� %)&")%� � -� 4�%� ����4 �#� ��+>+ - �� 2=2

�����(�* E ���� & (� 2=<

�������G 2<2

��� 2<<

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

Page 8: Microcontroller Projects in C for the 8051

�����

� ��&� & ��� ))�� �� % ���4)� &#�� ��&� �� &��� � �6���� �#�&# & ��%��� (%�%%�( �� 4�%� ��� �6' ����%) %�( �%�%))�) �A�' ������' �*����%) %�( ������%)������"���' %)) ����4�%��( ��� % ���4)� &#�� �#%� &%� 0� �"�&#%��( ! � %� )���)� %�H+5115 �� �� �����%��( �#%� � %/��%4�' % ��(()�$&)%�� # "��# )( �� �����&% #%�% �����"� ! >. ��&� & ��� ))��� �� ��5 �0 "� >3I ! ��&� & ��� ))��%��)�&%�� �� %�� �� J&� %"� �%�� �' �"&# %� )%��� ��������' !%* �%&#����'����))�4��� ��)��# ���' %�( � ! ��#5 �0 "� ��$�#��( ! ��&� & ��� ))��� %��! "�( �� & ��"��� �)�&�� ��&� 4 (�5 -� ("&�� )�;� � �)%6���' #�$@�D"������' /�(� 4%���' �%�#��4 �%&#����' & ;��� %�( � � @� ��� �#��&%��4 �65 �#� & ��"��&%�� �� �%�;��' %"� � ��/� �%�;��' %�( �#� ��)��%�6�#%�� �#� ���� ! �#� %��)�&%�� � %��%�5

��&� & ��� ))��� #%/� ��%(��� �%))6 0��� �� 4�%���( "���4 �#� %����0)6)%�4"%4� ! �#� �%�4�� ��&� & ��� ))��5 ��?����� ��&� & ��� ))��� !� �(�?����� �%�"!%&�"���� #%/� (�?����� %����0)6 )%�4"%4��5 �����0)6)%�4"%4� & ������ ! �# �� ���� ��& (��&����� �� ! �#� �����"&�� � ����5�#��� ���� ��&� %�� (�J&")� � �����0�� %�( �#� �� 4�%�� (�/�) ��( ! � �� ��&� & ��� ))�� &%�� � 0� "��( ! � �#�� �6��� ! ��&� & ��� ))���5 �#�� �� & �� � & ��)%��� %0 "� ��&� & ��� ))�� �� 4�%����4 �� �#%� �#�%����0)6 )%�4"%4� �� � ���#%� (�J&")� � � �; ���#' ����&�%))6 ("���4 �#�(�/�) ����� ! & ��)�* �� B�&��5 �#� � )"�� � � �#�� �� 0)�� �� � "�� #�4#$)�/�) )%�4"%4��5 �#�� �%;�� �#� �� 4�%����4 % �"&# ����)�� �%�; %�( �#��� 4�%�� %�� "�"%))6 � �� ��%(%0)�' � ��%0)�' %�( �%���� � �%���%��5 �#���%�� /%�� "� ! ��� ! ��� %�( & ���)��� %/%�)%0)� ! � � �� ��&� & �$�� ))���5 ��� & ���)��� %�� "�"%))6 �� �#� ! �� ! ������������ %�( �#� & (��� ("&�( �� "�"%))6 �) �5

�� �#�� (��%(/%��%4� ! ��� �� �#%� � �� ��� & ���)��� %�� � ����"&�"��( %�( �#�� �%;�� �#� �� 4�%� �%�����%�&� % (�J&")� �%�;5 �� �#��0 ; �� �#%)) 0� "���4 % !"))6 !�%�"��( �� !���� �%) & ���)�� � �� 4�%� "��%�4�� ��&� & ��� ))��5

Page 9: Microcontroller Projects in C for the 8051

�#�� 0 ; �� %0 "� �� 4�%����4 �#� ,1.2 !%��)6 ! ��&� & ��� ))��� "���4 �#� )%�4"%4�' %�( � #%/� &# ��� �#� ��,9+1.2 ��&� & ��� ))�� ! � %)) �#��*%��)��5 ��,9+1.2 0�) �4� � �#� ��("���6 ��%�(%�( ,1.2 !%��)6 !��&� & ��� ))���5 ��,9+1.2 �� % +1$��� (�/�&� �#�&# �� !"))6 & (� & ��%��0)����# ��� 0�44�� 0� �#�� ,1.25 �#� (�/�&� & ��%��� % ����%) � ��' 2. 0��� �%�%))�)�A�' �� �����A& "�����' ��* ������"�� � "�&��' 2+, 06��� ! (%�% ���' %�(+06��� ! ���� 4�%��%0)� C%�# �� 4�%� ��� �65 �#��� %�� �%�6 ��%� ��! � &# ���4 �#� ��,9+1.2' ��&)"(��4 ��� & ��%��0�)��6 ���# �#� ,1.2 !%��)6%�( �#� �%�� ! ��%���4 %�( ���� 4�%����4 �#� (�/�&�5 �#��� �� � ���( � "��% �K ��%��� � ��%�� �#� �� 4�%� ��� �65 �#� ��� �6 &%� 0� ��%��( %�( �#������ 4�%���( 06 "���4 % ) �$& �� �� 4�%����5 ��#�� ��%� �� ! � "���4 �#���,9+1.2 %�� ��� ) � & �� %�( ��%)) ��F�5 �)) ! �#� �*%��)�� 4�/�� #����� &%��"� � %)) ���0��� ! �#� ,1.2 !%��)65

#%���� 2 �� /�(�� %� ���� ("&�� � � �#� %�&#���&�"�� ! �#� ,1.2 !%��)6' ���#���&�%) ���#%��� � �#� ��,9+1.2 ��&� & ��� ))��5 #%���� + (��&��0�� �#�!�%�"��� ! �#� & ���)�� "��( �#� "4# "� �#� �� B�&�� �� �#�� 0 ;5 �((������ ! � �� � �")%� ��0 ����� %�� %)� 4�/�� �� �#�� &#%���� �#�&# & ��%����! ��%�� � � �#� ,1.2 !%��)65 #%���� > �� /�(�� �%�6 )�4#�$0%��(�� B�&��5 �#� &��&"�� (�%4�%�� %�( �#� !")) & (� ! %)) �#� �� B�&�� %��4�/�� ���# !")) & ������ %�( �*�)%�%�� ��5 �)) �#� �� B�&�� #%/� 0��� 0"�)� %�(�����( � % 0��%(0 %�(5 #%���� 3 �� 0%��( � � "�( �� B�&�� %�( �#��� %��� �;��4 �� B�&�� !� � ����)� 0"FF�� &��&"��� � �)�&�� ��& �4%� �� B�&��5#%���� . �� /�(�� ��/��%) � �;��4 ������%�"��$0%��( �� B�&�� "���4 (�4��%)������%�"�� ���� �� %�( %�%) 4"�$� $(�4��%) & �/������5 ���%))6' #%���� =(��&��0�� ��/��%) ��+>+$0%��( �� B�&�� �#�&# �*�)%�� # � ��! ��%�� � &%� 0���%��!����( 0������ % ��&� & ��� ))�� %�( �*����%) (�/�&��5

� 4%� �0�%#��� � ���

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

Page 10: Microcontroller Projects in C for the 8051

������ �

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

�%� �����&'�����

�#� ���� ��&� & ��"��� �� "��( � (��&��0� % �6���� �#%� ��&)"(�� %��&� �� &��� �' �� 4�%� ��� �6' (%�% ��� �6' %�( %� ���"�A "��"� 7�A�85� �� ��&� & ��"��� �6����� ��&)"(� %((��� �%) & �� ����� �"&# %� ������'& "�����' %�%) 4"�$� $(�4��%) & �/������ %�( � �5 �#"�' % ��&� & ��"����6���� &%� 0� %�6�#��4 !� � % )%�4� & ��"��� �6���� #%/��4 #%�( (��;�' C ��6(��;� %�( ��������' � ���4)� &#�� & ��"��� �6�����5

�� �#�� 0 ; �� %�� 4 ��4 � & ���(�� �)6 �#� �6�� ! ��&� & ��"���� �#%�& ����� ! % ���4)� ��)�& � &#��5 �"&# ��&� & ��"��� �6����� %�� %)� &%))�(��&� & ��� ))���5

�%( ������������ ���'����

�����' ��&� & ��� ))��� ���� (�/�) ��( �� �#� ��($29<1�5 �#��� ���� 0%��&%))6&%)&")%� �$0%��( �� &��� �� ���# ��%)) ��� �� 4�%� ��� ����' /��6 )�����(��� (%�% ��� ����' %�( % #%�(!") ! ���"�A "��"� � ���5

�� ��)�& � ��&#� ) 46 (�/�) ��(' � �� � ���!")' ,$0�� ��&� & ��� ))��� ������ ("&�(5 �� %((��� � � �#��� ���� /�( �����"&�� � ����' �#��� ��&� & ��� ))�����&)"(�( �$&#�� & "����A������' ������"�� !%&�)�����' %�( ���� /�( �A�#%�()��45 ��$&#�� ��� �6 &%�%&��6 �%� ���)) ��%)) %�( �%� � � %(�D"%�� ! ��%�6 %��)�&%�� ��5 ��� ! �#� � �� ��4��@&%�� (�/�) ������ %� �#�� ���� �%��#� %/%�)%0�)��6 ! �$&#�� ")��%/� )�� ��%�%0)� �-��� ��� �65 �#�� ����)�$@�( �#� �� ("&� (�/�) ����� ���� & ���(��%0)6 %�(' ! � �#� @��� ����' %)� %)) ��( �#� "�� ! ��&� & ��� ))��� �� ) �$/ )"�� %��)�&%�� ��5

�#� ,1.2 !%��)6 �%� ���� ("&�( �� �#� �%�)6 29,1� 06 ����)5 ���&� ������� ("&�� �' �#� ,1.2 #%� 0��� �� ! �#� � �� � �")%� ��&� & ��� ))���%�( #%� 0��� ��& �($� "�&�( 06 �%�6 �%�"!%&�"����5 �#� ,1.2 &"�����)6 #%��%�6 (�?����� /���� �� %�( � �� �6��� ��&)"(� �$&#�� %�%) 4"�$� $(�4��%)& �/������' % & ���(��%0)6 )%�4� ��F� ! �� 4�%� %�( (%�% ��� ����'

Page 11: Microcontroller Projects in C for the 8051

�")��$��(�# � (")%�� � � "��"��' %�( C%�# ��� ���� �#%� &%� 0� ��%��( %�(���� 4�%���( 06 �)�&���&%) ��4�%)�5

��&� & ��� ))��� #%/� � � � /�( ��� �#� 2=$0�� �%�;��5 2=$0�� ��&� $& ��� ))��� %�� #�4#$���! ��%�&� �� &��� �� �#%� @�( %��)�&%�� �� ����%)$���� %�( & ��"�� �������/� @�)(� 7�545 �� (�4��%) ��4�%) �� &�����4 ���%)$���� & ��� )85 � �� ! �#� 2=$0�� ��&� & ��� ))��� ��&)"(� )%�4� %� "��� ! �� 4�%� %�( (%�% ��� ����' �")��$&#%���) %�%) 4"�$� $(�4��%) & �/������' %)%�4� �"�0�� ! �A� � ���' ��/��%) ����%) � ���' #�4#$����( %���#����& %�( ) 4�& ���%�� ��' %�( % � ���!") �����"&�� � ��� ���# ��4�%) �� &�����4 &%�%0�)�����5

�%) ������������ ��������'�

�#� ����)��� ��&� & ��� ))�� %�&#���&�"�� & ������ ! % ��&� �� &��� �'��� �6' %�( ���"�A "��"�5 �#� ��&� �� &��� � & ������ ! % &����%) �� &�����4"��� 7-�8 %�( �#� & ��� ) "��� 7�85

�#� -� �� �#� 0�%�� ! % ��&� �� &��� � %�( �� �#��� %)) ! �#� %���#����& %�() 4�&%) ���%�� �� %�� ���! ���(5 �#� & ��� ) "��� & ��� )� �#� ������%) ���%�� �� ! �#� ��&� �� &��� � %�( ���(� & ��� ) ��4�%)� � �#�� �%��� !�#� ��&� �� &��� � � &%��6 "� �#� ��D"���( �����"&�� ��5

��� �6 �� %� ��� ��%�� �%�� ! % ��&� & ��"��� �6����5 �����(��4 "� � �#�%��)�&%�� � �� &%� &)%���!6 ��� ���� ��� �� 4� "��L �� 4�%� ��� �6 %�((%�% ��� �65 -� 4�%� ��� �6 �� ��� %)) �#� �� 4�%� & (�5 �#�� ��� �6 ��"�"%))6 % ��%($ �)6 ��� �6 7���85 ��#�� �6��� ! ��� ����' �545 �-���%�( -���� C%�# ��� ����' %�� "��( ! � ) �$/ )"�� %��)�&%�� �� %�( %)� ("���4 �� 4�%� (�/�) �����5 �%�% ��� �6 �� % ��%(A����� ��� �6 7���85�� & ��)�* %��)�&%�� �� �#��� �#��� �%6 0� ���( ! � )%�4� %� "��� ! ��� �6�� �� � ���0)� � �����!%&� �*����%) ��� �6 &#��� � � �� ��&� & ��� ))���5

���"�A�"��"� 7�A�8 � ��� %)) � �*����%) (�4��%) ��4�%)� � 0� & ���&��( � �#���&� & ��� ))��5 �A� � ��� %�� "�"%))6 �4%��F�( ��� 4� "�� ! , 0��� %�( �%&#4� "� �� 4�/�� % �%��5 � � �*%��)�' �#� ,1.2 ��&� & ��� ))�� & ��%��� ! "�,$0�� �A� � ��� �%��( -1' -2' -+' %�( ->5 �� � �� ��&� & ��� ))��� �#�(���&�� � ! �#� �A� � �� )���� %�� �� 4�%��%0)� � �#%� (�?����� 0��� ! % � ��&%� 0� �� 4�%���( %� ���"�� � "��"��5 � �� ��&� & ��� ))��� 7��&)"(��4 �#�,1.2 !%��)68 �� /�(� 0�$(���&�� �%) �A� � ���5 �%&# �A� � �� )��� ! �"&#��&� & ��� ))��� &%� 0� "��( %� ���"�� %�( "��"��5 � �� ��&� & ��� ))����� /�(� M ���$(�%��: "��"�� �#��� �#� "��"� ��%����� �� %�� )�!� C %���4 7�545� �� -1 ! �#� ,1.2 !%��)685 �*����%) �"))$"� ������ �� %�� � ��%))6 "��( ���#�"&# "��"� � �� )����5

( ������������ ������ �� � ��� �� ����

Page 12: Microcontroller Projects in C for the 8051

�%* ���� +���,

�#� ,1.2 !%��)6 �� % � �")%�' ��("���6 ��%�(%�( ,$0�� ���4)� &#�� ��&� $& ��"��� 7��&� & ��� ))��8 !%��)6' �%�"!%&�"��( 06 /%�� "� & ��%���� ���#�%�6 (�?����� &%�%0�)�����5 �#� 0%��& ��%�(%�( (�/�&�' �#�&# �� �#� @������0�� ! �#� !%��)6' �� �#� ,1.2' �#�&# �� % 31$��� ��&� & ��� ))��5 �#��0%��& (�/�&� �� � � %/%�)%0)� �� ��/��%) & �@4"�%�� ��5 �#� ,1.2 �� �#� ) �$� ��� ��� /���� � ! �#� !%��)65 �#� ,<.2 & ��%��� �-��� �� 4�%���� �6' "��( �%��)6 ("���4 (�/�) ����� � �;5 �#� ,9.2 & ��%��� C%�#�� 4�%��%0)� %�( ��%�%0)� ��� �6 7-����8 �#��� �#� �� 4�%� ��� �6&%� 0� ���� 4�%���( ���# "� ��%���4 �#� &#�� ���# ")��%/� )�� )�4#�5 �#� ,1.+�� %� ��#%�&�( ���0�� ! �#� !%��)6 �#�&# & ��%��� � �� ��� %�( %)� � �������A& "�����5 �#��� %�� �%�6 /���� �� ! �#� 31$��� !%��)6 �#�&# & ��%�� �$&#�� %�%) 4"�$� $(�4��%) & �/������' �")��$��(�# � (")%� ��' %�( � �5 �� �#�) ��� ��( ! �#� ,1.2 !%��)6 �� #%/� �#� +1$��� ��&� & ��� ))��� �#�&# %��& (� & ��%��0)� ���# �#� 31$��� (�/�&��5 �#� +1$��� (�/�&�� #%/� 0����%�"!%&�"��( ! � )��� & ��)�* %��)�&%�� �� �#��� �#� �A� ��D"�������� %��� � /��6 #�4# %�( �#��� )��� � ��� �� ��D"���( 7�545 �� � ��%0)� %��)�&%�� ��85�#� ��,921.2 %�( ��,9+1.2 7�%�"!%&�"��( 06 ����)8 %�� �"&# ��&� $& ��� ))���' �#�&# %�� !"))6 & (� & ��%��0)� ���# �#� ,1.2 !%��)6 %�( ?����("&�( � ��� %�( )��� !"�&�� �%)��65 �%0)� 252 4�/�� % )��� ! �#� &#%�%&�������&� ! � �� ���0��� ! �#� ,1.2 !%��)65

)��������-'�� #, ��

��� ��� #�� -�-'�� ���� �� �� ���� ����,

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

���.����� �/ 0� � 1* �� � �� (�

���.�(��� (/ 0� � �(� �� ( �� (�

���.��� */ 0� � �(� �� ( )( *�

���.��( �/ 0� � (�1 �� ) )( *�

������ */ !� �(� �� ( )( *�

�2���� */ �� !� �(� �� ( )( *�

���(�� �/ !� (�1 �� ) )( *�

�2��( �/ �� !� (�1 �� ) )( *�

�2��* �1/ �� !� (�1 �� ) )( *�

�2��� )(/ �� !� (�1 �� ) )( *�

Page 13: Microcontroller Projects in C for the 8051

�� �#�� 0 ; %)) �#� �� B�&�� %�� 0%��( "� � �#� ��,9+1.2 ��&� & ��� ))��5�#� & (� 4�/�� ��)) �"� � �#�� ���0��� ! �#� !%��)6' ��&)"(��4 �#� 31$���(�/�&��5 �#� ��%� �� ! � &# ���4 �#� ��,9+1.2 %�� ��� ) � & ��' ) � � ���& ��"���� �' ��%)) ��%&� 7+1 ���8' %�( � ���!") !�%�"���5

�� �#�� &#%���� �� �#%)) 0� ) ;��4 %� �#� !�%�"��� ! �#� ,1.2 !%��)6 0���C6���# � �� ���#%��� � �#� ��%))�� ��,9+1.25 � �� ��! ��%�� � � �#�����&� & ��� ))��� &%� 0� 0�%���( !� � �#� �%�"!%&�"����: (%�% �#����5

�%� ��������'� �� �� ���� +���,

�#� ,1.2 �� %� ,$0��' ) �$� ���' #�4#$���! ��%�&� ��&� & ��� ))��5 �#��� %��% )%�4� �"�0�� ! (�/�&�� �� �#� ,1.2 !%��)6 ���# ����)%� %�&#���&�"�� %�( �%&#���0�� ! �#� !%��)6 �� ( ���%�( & ��%��0)� ���# �%&# �#��5 �#� 0%��& ,1.2��&� & ��� ))�� #%� �#� ! )) ���4 !�%�"���L

� 3 06��� ! �� 4�%� ��� �6� +.=� , ��� (%�% ��� �6� >+ �� 4�%��%0)� �A� )����� �� 2=$0�� �����A& "������ ��* ������"�� � "�&��� -� 4�%��%0)� ����%) ���� � ��� �*����%) ��� �6 �����!%&�� ��%�(%�( 31$��� �%&;%4�

�#� �-��� /���� �� ! �#� !%��)6 7�545 ,<.28 %�� "��( ! � (�/�) ����� %�(�#� �� 4�%� ��� �6 ! �#��� (�/�&�� �� ��%��( ���# %� ")��%/� )�� )�4#� � "�&�5�#� ��� & �@4"�%�� � ! �#� ��%�(%�( ,1.2 ��&� & ��� ))�� �� �# �� ����45 2525

�#� ��,9+1.2 �� % ) �$��( ���0�� ! �#� ,1.2 !%��)6' %���( ! � )���& ��)�* %��)�&%�� ��5 �#�� (�/�&� & ��%��� % +06�� C%�# �� 4�%��%0)���� �6 7-����8 �#�&# &%� 0� ��%��( %�( ���� 4�%���( "���4 % �"��%0)��� 4�%����5 �#� ��,9+1.2 & ��%��� 2+, 06��� ! ��� %�( 2. �� 4�%�$�%0)� �A� )����5 �#� & (� (�/�) ��( ! � �#�� (�/�&� �"�� � % ��%�(%�( ,1.2���# "� %�6 � (�@&%�� �5 �� �# �� �� ��45 25+' �#� ��,9+1.2 �� # "��( �� %+1$��� �%&;%4�5

�%1 ��� ���3�'������

���&����� �� ! �#� /%�� "� ���� %�� 4�/�� 0�) �5

* ������������ ������ �� � ��� �� ����

Page 14: Microcontroller Projects in C for the 8051

���

�#�� �� �#� ����� ���"�5 �#�� ���"� �# ")( � ��%))6 0� %� ) 4�& 15 � ����� ��%&& ��)��#�( 06 # )(��4 �#� ��� ��� #�4# ! � %� )�%�� �� �%&#��� &6&)��5- ���$ � ����� �� � ��%))6 ���! ���( 06 & ���&���4 %� �*����%) &%�%&�� � %�(% ������ � � �#�� ��� 7��� ��4� 25> %�( 25385

����

�#�� �� % 0�$(���&�� �%) �A� ��� 70�� 1 ! � �� >8 ���# %� ������%) �"))$"� ������ �5�#�� ��� %)� %&�� %� �#� (%�% ��&��/� ���"� 7���8 �#�� �#� (�/�&� �� "��( %� %�%�6�&#� � "� ���� � ��&��/� ����%) (%�%5

���������-'�� #, ��

#��"� ����

��� ���3�'������ �� �� ���&��& ����

Page 15: Microcontroller Projects in C for the 8051

���

�#�� �� % 0�$(���&�� �%) �A� ��� 70�� 2 ! � �� >8 ���# %� ������%) �"))$"� ������ �5�#�� ��� %)� %&�� %� �#� (%�% ��%����� "��"� 7���8 � �#� ,1.2 �#�� �#�(�/�&� �� "��( %� %� %�6�&#� � "� ���� � ��%����� ����%) (%�%5

��� �� ����

�#��� ���� %�� �#��� %� �*����%) &�6��%) �# ")( 0� & ���&��( ! � �#� ���%�� � ! �#� ������%) �&�))%� �5 � ��%))6 �� >> �� &%�%&�� �� %�� & ���&��( ���#�#� &�6��%) %� �# �� �� ��4� 25> %�( 2535 � �%&#��� &6&)� �� 0�%���( 06(�/�(��4 �#� &�6��%) !��D"��&6 06 2+5 �#"�' ���# % 2+ ��F &�6��%)' �#� �%&#���&6&)� �� 2 ��5 � �� �%&#��� �����"&�� �� �*�&"�� �� �� �%&#��� &6&)�5

����

�#�� �� % 0�$(���&�� �%) �A� ��� 70�� + ! � �� >8 ���# %� ������%) �"))$"� ������ �5�#�� ��� �� %)� �#� �*����%) ������"�� 1 7���18 ���5

1 ������������ ������ �� � ��� �� ����

#��"� ��$�

��� ���3�'������ �� �� ���&��& ���.�(���

Page 16: Microcontroller Projects in C for the 8051

����

�#�� �� % 0�$(���&�� �%) �A� ��� 70�� > ! � �� >8 ���# %� ������%) �"))$"� ������ �5�#�� ��� �� %)� �#� �*����%) ������"�� 2 7���28 ���5

����

�#�� �� % 0�$(���&�� �%) �A� ��� 70�� 3 ! � �� >8 ���# %� ������%) �"))$"� ������ �5�#�� ��� �� %)� �#� & "���� 1 ���"� 7�18 ���5

2��������-'�� #, ��

#��"� ��%�

�����'� ���� ���3�'������

Page 17: Microcontroller Projects in C for the 8051

����

�#�� �� % 0�$(���&�� �%) �A� ��� 70�� . ! � �� >8 ���# %� ������%) �"))$"� ������ �5�#�� ��� �� %)� �#� & "���� 2 ���"� 7�28 ���5

���

�� "�( ���5

����

�#�� �� % 0�$(���&�� �%) �A� ���5 �#�� ��� �� � � %/%�)%0)� � �#� ��,9+1.25 ���� %)� �#� �*����%) ��� �6 ����� 7��8 ���5

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

#��"� ��&�

�����'� ���.�(��� ���3�'������

Page 18: Microcontroller Projects in C for the 8051

����

�#�� �� % 0�$(���&�� �%) �A� ��� ! � 0�� < ! � �� >5 �� �#� ��%�(%�( ,1.2' �#����� �� %)� �#� �*����%) (%�% ��� �6 ��%( 7��8 ���5

���

�#�� �� % 0�$(���&�� �%) �A� ��� ! � 0�� 1 ! � �� 25 �#�� ��� #%� � ������%) �"))$"� ������ �� � �#� +1$��� (�/�&��5 �� �� %)� "��( %� �#� � ����/� ���"� ! �#�%�%) 4"� & ��%�%� � 7���18 � �#� +1$��� (�/�&�5

��

�#�� �� % 0�$(���&�� �%) �A� ��� ! � 0�� 2 ! � �� 25 �#�� ��� #%� � ������%) �"))$"� ������ �� � �#� +1$��� (�/�&��5 �� �� %)� "��( %� �#� � ����/� ���"� ! �#�%�%) 4"� & ��%�%� � 7���28 � �#� +1$��� (�/�&�5

��� �� ���

�#��� %�� �#� ���%����4 0�$(���&�� �%) �A� ���� ! � �� 25 �#��� ���� #%/�������%) �"))$"� ������ ��5

���

�"��)6 / )�%4�5

���� �� ����

�#��� %�� �#� ��4#� �A� ���� ! � �� 1 ! �#� ��%�(%�( ,1.25 �#��� ���� #%/� � �"))$"� ������ ��5 -151 � -15< %�� %)� "��( � �� /�(� �#� ) � %((������ 7�1 � �<8 %�( �#� (%�% ("���4 !��&#�� !� � �*����%) �� 4�%� ��� �6 %�( ("���4%&&����� � �*����%) (%�% ��� �65

���� �� ����

�#��� %�� �#� ��4#� �A� ���� ! � �� + ! �#� ��%�(%�( ,1.25 �#��� ���� #%/��"))$"� ������ ��5 -+51 � -+5< %�� %)� "��( � �� /�(� �#� #�4# %((���� 7�, � �2.8 06�� ("���4 !��&#�� !� � �*����%) �� 4�%� ��� �6 %�( ("���4 %&&������ �*����%) (%�% ��� �65

������

�#�� �� �#� �*����%) %&&��� ��%0)� ��� � �#� ��%�(%�( ,1.25 �� �# ")( 0�& ���&��( � K ! � ������%) �� 4�%� �*�&"�� ��5 �#�� ��� %)� ��&��/�� �#��� 4�%����4 / )�%4� ("���4 �� 4�%����45

.��������-'�� #, ��

Page 19: Microcontroller Projects in C for the 8051

����

�#�� �� �#� �� 4�%� �� �� ��%0)� ��� � �#� ,1.2 (�/�&��5 �#�� ��� �� %&��/%��(�#�� �#� (�/�&� �� �*�&"���4 & (� !� � �*����%) ��� �65

��������

�#�� �� �#� %((���� )%�&# ��%0)� ��� � �#� ��%�(%�( ,1.2 (�/�&��5 �#�� ��� ��"��( � )%�&# �#� ) � 06�� ! �#� %((���� ("���4 %&&����� � �*����%) ��� �65

�%2 ����4��'���

�#� ,1.2 %�( ��,9+1.2 & ��%�� �� �����A& "����� ;� �� %� �����A& "����1 %�( �����A& "���� 2 7)%�4�� ���0��� ! �#� ,1.2 !%��)6 & ��%�� � �� ������A& "�����85 �#��� �����A& "����� &%� 0� ���%��( �� ��/��%) (�?����� � (��(����(��4 "� � �#� �� 4�%����4 ! �� ��4������ ��� %�( ����' %��# �� �� �%0)�� 25+ %�( 25>5 �#��� ��4������ �# ")( 0� �� 4�%���( 0�! ��"���4 %�6 ����� � & "���� !%&�)����� ! �#� ��&� & ��� ))��5

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

��� ��$ ��!5 ����4��'��� ������ ��� ��

'�� ��� '�� � ����� � ��� ����

�+� 2 ���� � ���0�6 0��% #� ��& ���& �,

���&6��

� � 1 ���� � �'� ������ ���% ���� � � �'��& �� 6��

� �� �7 ��& ��--& 6�� � �� �

�+� � ���� � ���0�6 0��% #� ��& ���&

�, ���&6��

� � * ���� � �'� ������ ���% ���� � � �'��& ��

6�� � �� �7 ��& ��--& 6�� � �� �

��� ) �8���� �����'-� � &� 0��% #� ��& ���&

�, ���&6��

��� ( �8���� �����'-� � �,-% ���� � -��3

�����'-� �� ����� &�% ���� � -��3

�����'-� �� �6 �

��� � �8���� �����'-� � &� 0��% #� ��& ���&

�, ���&6��

��� � �8���� �����'-� � �,-% ���� � -��3

�����'-� �� ����� &�% ���� � -��3

�����'-� �� �6 �

Page 20: Microcontroller Projects in C for the 8051

��� �� �#� �����A& "���� & ��� ) ��4����� %�( �#�� ��4����� �� 0�� %((����%0)�5

� � �*%��)�' 0�� 3 ! ��� �� �#� & "���� 1 �"� & ��� ) 0�� %�( ������4 �#�� 0����%��� & "���� 15 ��� ��4����� �� %� %((���� ,, 7#�*8 %�( 0��� �� �#�� ��4�����&%� 0� %&&����( ���#�� 06 �%;��4 ��!����&� � �#� %((���� � 06 "���4 & ���)�������/�( �%��� 7�545 ��185

���� �� �#� �����A& "���� � (� & ��� ) ��4�����5 �#�� ��4����� ���� �#� ���%���4 � (�� ! �#� �� �����A& "����� %� �# �� �� �%0)� 25>5 �#��� %���#��� ���%���4 � (��' ;� �� %� � (�� 1' 2' %�( +5 ���� �� � � 0��%((����%0)� %�( �# ")( 0� ) %(�( 06 ���&�!6��4 %)) �#� , 0���5 � � �*%��)�') %(��4 #�*%(�&��%) 06�� 12 ��� ���� ���� ����� 1 ��� � (� 2 �#�&# �� %2=$0�� ����� %�( �� �"���( � %�( ? 06 0�� ��1 ! ���5 �)� ' ����� 2 �� ������ � (� 1 �#�&# �� % 2>$0�� ����� %�( �� �"���( � %�( ? 06 0�� ��2 !���5

�%� �����'-� ������

�#� ��%�(%�( ,1.2 %�( ��,9+1.2 �� /�(� ��* ������"�� � "�&��L

����������-'�� #, ��

��� ��% ��!� ����4��'��� ��& ������ ��� ��

���() � ���() �

9��� �4� �� �� 9��� �4� �� ��

9���: ;�� � 8 � � ��& 9���� �7 ���� 4�!"5�� 8 �'� ��, 6��

�� �5�8 -�� � ����% ;�� 9���� �7 ���� 4�!"5�� 8 6� �'�

��, 6�� � 8� �%

�4�: ���� �� ��'��� �� ���% ;�� �4�� �7 �-��� � � ����

<���� ������ ���=>% ;�� �4�� �7 �� �-��� � � ��'���

<��-'� ���� �8 ��-'�>%

��7 ��: ����4��'��� ��& �� ��� �� &3�& �� ��� �%*%

��� ��& ��7 �� ��& ������ ���

�� �� � ������ ��*

� � �)?��� ����

� � �1?��� ����4��'���

� � �?��� �'��?���& ����4��'���

� � �6� �?��� ����

Page 21: Microcontroller Projects in C for the 8051

� �� �*����%) ������"��� 7���1 %�( ���28� �� ����� ������"��� 7����� 1 %�( ����� 28� ��� ����%) � �� ��&��/� ������"��� ��� ����%) � �� ��%����� ������"��

�%&# ������"�� �� %���4��( % @*�( ) &%�� � �� ��� �6 %�( %� ������"�� &%"����#� -� � B"�� � �#%� ) &%�� �' �#��� �� �*�&"��� �#� ������"�� ���/�&�� "����5 �%0)� 25. 4�/�� �#� ������"�� � "�&�� %�( �#� ��%�� ! �#��� ���/�&�� "����� �� ��� �65 � �� �#%� �#� ����%) � �� ��&��/� %�( ��%����� ������"���� ��� � �#� �%�� ) &%�� �5

�%&# ������"�� � "�&� &%� 0� ��(�/�("%))6 ��%0)�( � (��%0)�( 06 ������4 �&)�%���4 ��� ������"�� ��%0)� 0��5 �%0)� 25= 4�/�� �#� ������"�� ��%0)� 0���%������5

�%. �����'� ������������ ���3�'������

�#� �����"� ��&� & ��� ))�� & �@4"�%�� �� ! �#� ,1.2$ %�( ��,9+1.2$0%��( ��&� & ��� ))�� �6����� %�� �# �� �� ��4� 25> %�( 2535 �� &%� 0� ����

�( ������������ ������ �� � ��� �� ����

��� ��� �����'-� ���, ������� �� ����,

�����" � �"�� �����" � �"��� +������� �� ����! ,�-.

�8���� �����'-� � � ���)

���� � � ���@

�8���� �����'-� � ( ���)

���� � ) ���@

#��� -��� * ��()

��� ��/ �����'-� ���4&� �� ���

�� A A �# ��� �B� ��� �B�

;��:

��: 9��� �����'-� ���4&� ��% �� ��� �7 �� �����'-� 6�

� ���-�&% �� ��� �7 ��� �����'-� �'�� � ��&���&'�,

���& �� &� ��& �, ����� �� ������ �� ���7 ���� ��6%

�#: #��� -��� �����'-� ��� ���%

���: ���� � �����'-� ��� ���%

�B�: �8���� �����'-� � ��� ���%

���: ���� � �����'-� ��� ���%

�B�: �8���� �����'-� � ��� ���%

Page 22: Microcontroller Projects in C for the 8051

!� � �#��� @4"���' �)6 �#� ! )) ���4 �*����%) & �� ����� %�� ��D"���( � #%/�% � �;��4 ��&� & ��� ))��L

�2 �6��%) 7�545 2+��F82' + >> �� &%�%&�� ��> 21 ��' 21K �)�&�� )6��& &%�%&�� ��2 ,5+' 152+.� ������ �

�� �#%)) 0� "���4 �#� &��&"�� �� ��45 253 �� %)) ! �#� �� B�&�� (��&��0�( �� �#��0 ;' �*&��� �#� )%�� �� B�&� �#�&# �� 0%��( � % 31$��� (�/�&�5 �#� &�6��%)&# ��� ! � �#� �� B�&�� �� 2+ ��F' �#�&# 4�/�� % 0%��& �����"&�� � �����4 !2 ��5 �#� � ��� �"��)6 &"����� ! �#� ��,9+1.2 �� %� "�( 2.��' 0"� %� ��� �"��)6 �#�&# &%� (�)�/�� "� � % !�� #"�(��( ��))�%������ ����& ����(�( � �#%� �#� �����!%&� &��&"���6 %��%&#�( � �#� ��&� & ��� ))��&%� 0� � ����(5

�%�� ������ ���-���

��/�) ����� ! % ��,9+1.2 ��&� & ��� ))�� �� B�&� ��D"���� ��/��%) (�/�)$ ����� � )�5 �#� ! )) ���4 �� % )��� ! �#� � )� �#%� %�� �������%)L

� �"��%0)� %����0)�� � & ���)�� �#�&# &%� 4����%�� �%&#��� & (� ! � �#���,9+1.2 ��&� & ��� ))��5 �� �#�� 0 ; �� �#%)) 0� (�/�) ���4 �#��� B�&�� "���4 % & ���)��5

� #�� �� 4�%���� �"��%0)� � �� 4�%� ��,9+1.2 (�/�&��5 �#��� %���%�6 �� 4�%����� %/%�)%0)� � �#� �%�;�� ! � �#�� �"�� ��5 � � �*%��)�'-�>1+ 06 ��4"%�% )%0�' �/%)",� 06 �D"�� * ��&#� ) 4���' %�( �#���5 �#��� 4�%���� �# ")( 0� & ��%��0)� ���# �#� & (� 4����%��( 06 �#�%����0)�� � �#� & ���)�� � �#%� �#� & (� &%� 0� ( ��) %(�( � �#���&� & ��� ))��5 � ��&� �#%� �#��� �� � ")��%/� )�� ��%���4 �� &���5��,9+1.2 (�/�&�� & ��%�� ���� 4�%���%0)� C%�# ��� ���� �#�&# &%�0� ��%��( %�( ���� 4�%���( 06 �)�&���&%) ��4�%)�5

� � �����"� ��,9+1.2 ��&� & ��� ))�� #%�(�%��5 �%�6 �%�"!%&�"���� ?�� (�/�) ����� �6�����' & �������4 ! % 0%��& ��&� & ��� ))��' ���)�4#��' ����&#��' 0"FF��� ��&5 � �� (�/�) ����� �6����� ��&)"(� 0 �#)%�4"%4� & ���)��� %�( #%�(�%�� %�( �"&# �6����� &%� 0� /��6 "��!")("���4 �� B�&� (�/�) �����5

�)�# "4# �#� ��&� & ��� ))�� "��( �� �#� �� B�&�� �� �#� +1$��� ��,9+1.2' �#�& (� 4�/�� ��)) �"� � %)) ���0��� ! �#� ,1.2 !%��)6 �� /�(�( �#%� �#��� ���� "4# �� 4�%� %�( (%�% ��� ����5

�)��������-'�� #, ��

Page 23: Microcontroller Projects in C for the 8051

.This Page Intentionally Left Blank

Page 24: Microcontroller Projects in C for the 8051

������ (

� !9 ����59��� !�!5� !CC� # �5�

�#� �� 4�%����4 )%�4"%4� �� % 4����%)$�"�� �� #�4#$)�/�) �� 4�%����4)%�4"%4� �#%� ?��� �J&���� %�( & ��%&� & (� %�( �� /�(�� �)������ !���"&�"��( �� 4�%����45 �%�6 & ��� ) %�( � ��� ���4$0%��( %��)�&%�� ��&%� 0� � )/�( � �� �J&����)6 ���# �#%� ���# %�6 �#�� �� 4�%����4)%�4"%4�5 �%� ��4��%))6 %/%�)%0)� � �%��!�%�� & ��"����' ����$& ��"����' %�( ���� �%) & ��"���� 7-�85 �#� �� 4�%����4 )%�4"%4� ��� � %/%�)%0)� � � �� ��&� & ��� ))��� %�( ��&� �� &��� ��5

�#�� 0 ; �� � � �����(�( ! � ��%&#��4 �#� �� 4�%����4 )%�4"%4�5 �� ��%��"��( �#%� �#� ��%(�� �� !%��)�%� ���# �� 4�%����4 �� 5 �#� %�� ! �#��&#%���� �� � �# � �#� ���&�%) !�%�"��� ! �#� )%�4"%4� �#�� �� 4�%����4��&� & ��� ))���5 �� �#�� 0 ;' �#� ��("���6 ��%�(%�( .2 �����F��4 & ���)�� �� "��( �#� "4# "�5 �#�� & ���)�� #%� 0��� (�/�) ��( 06 ��)�)�;�� ��; ��0�5 .2 �� %/%�)%0)� � 0 �# ��$��� %�( ���( ��$0%��( ���%���4 �6����� %�( �#� & ���)�� ���)������ �#� �����&%� �%�� �%)��%�(%�(� ������"�� 7����8 ��%�(%�( ! � �#� )%�4"%4�5

�#��� %�� �%�6 �#�� #�4#$)�/�) )%�4"%4� & ���)��� %/%�)%0)� ! � ��&� $& ��� ))���' ��&)"(��4 -����' ���' %�( �#�� & ���)���5 � �� !�#��� & ���)��� %�� !���)6 %/%�)%0)� %� �#%���%�� �� ("&�� %�( � �� &%� 0� 0�%���( !� � �#� �������� ���# )���)� & ��5 �)� ' � �� & ��%���� �"��)6 !���)�����( &%�%0�)��6 & ���)���' �%��)6 ! � �/%)"%�� � �"�� ���5 �#��� & ���)���&%� 0� "��( ! � )�%����4 �#� !�%�"��� ! % ���&�@& �� ("&� %�( �� � �� &%�����%)) �� B�&�� &%� 0� (�/�) ��( ���# �"&# & ���)���5 ��&�� � +5. 4�/�� % )��� !� �� ����� �#��� ��%(��� &%� @�( � �� ��! ��%�� � � #�4#$)�/�) ��&� & �$�� ))�� & ���)���5

�#� .2 & ���)�� #%� 0��� (�/�) ��( ! � �#� ,1.2 !%��)6 ! ��&� & ��� ))���5�#�� �� �� ! �#� � �� & �� �)6 "��( ��("���6 ��%�(%�( & ���)��� ! � �#�,1.2 !%��)6' %�( &%� 4����%�� �%&#��� & (� ! � � �� ! �#� +1$��� %�( 31$���,1.2 (�/�&�� %�( ��� (���/%��/��' ��&)"(��4 �#� ! )) ���4 ��&� & ��� ))���L

����) %�( �#��� ,1.2' ,1.2' %�( ,<.2����) ,9.2' ,9.+' ,9..' ,9�,+.+' %�( ,9�.>����) ,921.2 %�( ,9+1.2

Page 25: Microcontroller Projects in C for the 8051

��� ,1>+2' ,1.+2' %�( ,1.32�%))%� ,1>+1' ,1.+1' %�( ,1.>1��4����&� ,*<.1' ,*<.2' %�( ,*<.+������� ,1.2< %�( ,1.><

.2 �� % �� !���� �%)' ��("���6 ��%�(%�( & ���)�� ���# �%�6 !�%�"���' ��&)"(��4% )%�4� �"�0�� ! 0"�)�$�� !"�&�� ��5 �� �#�� &#%���� �� �#%)) 0� ) ;��4 %� �#�!�%�"��� ! �#� .2 �� 4�%����4 )%�4"%4� %� %��)��( � �� 4�%����4 ���4)�&#�� ��&� & ��� ))���5 � �� ��! ��%�� � � �#� .2 & ���)�� �� %/%�)%0)� !� ���) �)�;�� ��; ��0� 7��� �#� ��� ��������� ���� �������� � ��������������� �!��85

(%� ���� �,-

�#� .2 & ���)�� �� /�(�� �#� ��%�(%�( (%�% �6��� %�( �� %((��� � ��/��%)�*���(�( (%�% �6��� %�� ?���( � �"�� �� �#� ,1.2 ��&� & ��� ))�� !%��)65�%0)� +52 )���� �#� %/%�)%0)� (%�% �6��� 7��� �#� .2 ��!����&� �%�"%) ! � � ����! ��%�� �85

� �� ! �#� (%�% �6��� %�� (��&��0�( 0�) � �� � �� (��%�)5

(%�%� ���

�#��� (%�% �6��� �%6 0� "��( � (�&)%�� 2$0�� /%��%0)��5

"������#

��� �,D0��E 4F &��� �,D0�� � � ��� ������ F4

�,D0��� �E 4F � �,D0�� �� � F4

(%�%( ���& ����4'� ���& ����

�#��� (%�% �6��� %�� %� �� ��%�(%�( )%�4"%4� %�( %�� "��( � (�&)%�� ��4��(%�( "���4��( &#%�%&��� /%��%0)��5 �%&# &#%�%&��� /%��%0)� �� 2 06�� ) �47, 0���85 ��4��( &#%�%&��� /%��%0)�� �%�4� !� � �2+, � �2+<N "���4��(&#%�%&��� /%��%0)�� �%�4� !� � 1 � +..5

"������#

'� ���& ���� ����7���(E 4F &��� ���� ��& ���( � '� ���& ���� F4

����� �8�*E 4F � ��� �8�&���� �* �� ������ ���� F4

���(� ����E 4F � ��� ���� �� ���( F4

�1 ������������ ������ �� � ��� �� ����

Page 26: Microcontroller Projects in C for the 8051

(%�%) ���& ����4'� ���& ����

�#��� (%�% �6��� %�� %� �� ��%�(%�( )%�4"%4� %�( %�� "��( � (�&)%�� ��4��(%�( "���4��( �# �� /%��%0)��5 �%&# �# �� /%��%0)� �� + 06��� ) �4 72= 0���85��4��( �# �� /%��%0)�� �%�4� !� � �>+ <=, � �>+ <=< %�( "���4��( �# ��/%��%0)�� �%�4� !� � 1 � =. .>.5

"������#

'� ���& ���� ��-E 4F &��� ��- � '� ���& ���� F4

'� ���& ���� 6��&E 4F &��� 6��& � '� ���& ���� F4

��-� �8��(��E 4F � ��� �8�&���� �(�� �� ������ ��- F4

6��&� ��-E 4F � ��� ������ ��- �� 6��& F4

(%�%* ���& ���4'� ���& ���

�� �� �#� ��%�(%�( )%�4"%4�' �#��� (%�% �6��� %�� "��( � (�&)%�� ��4��( %�(

�2����������� ������������ �� �

��� $�� �#� &��� �,-

���� �! '�� )���

��� � � �� �

���& ���� � ��(� �� ��(2

'� ���& ���� � � �� �(��

�'� �1 �)(21� �� �)(212

���& ���� �1 �)(2�1 �� �)(212

'� ���& ���� �1 � �� 1��)�

���& ��� �1 �)(21� �� �)(212

'� ���& ��� �1 � �� 1��)�

���& ��� )( �(�*2*�)1*� �� (�*2*�)1*2

'� ���& ��� )( � �� *(.*.12(.�

0��� )( ��%�2�*.*�?)� �� �)%*�(�()�G)�

��� � � �� �

�� � � �� (��

���1 �1 � �� 1��)�

Page 27: Microcontroller Projects in C for the 8051

"���4��( ����4�� /%��%0)��5 ����4�� /%��%0)�� %�� + 06��� ) �4 72= 0���85 ��4��(����4��� �%�4� !� � �>+ <=, � �>+ <=< %�( "���4��( ����4��� �%�4� !� � 1 � =. .>.5

"������#

'� ���& ��� ��7�(E 4F &��� �� ��& �( � '� ���& ����� F4

�����E 4F � ��� �� �� �� F4

�(�(F��E 4F �'��-, �� �, ( ��& � ��� �� �( F4

(%�%� ���& ���4'� ���& ���

�#��� (%�% �6��� %�� %� �� ��%�(%�( )%�4"%4� %�( %�� "��( � (�&)%�� ��4��(%�( "���4��( ) �4 ����4�� /%��%0)��5 �%&# ) �4 ����4�� /%��%0)� �� 3 06��� ) �47>+ 0���85

"������#

'� ���& ��� ��-E 4F &��� ��- � ��� ����� ������ F4

��-� (�����E 4F � ��� (����� �� ������ ��- F4

(%�%1 0���

�#�� (%�% �6�� �� "��( � (�&)%�� % C %���4 � ��� /%��%0)�5

"������#

0��� ��7�(E 4F &��� �� ��& �( � 0������ -���� ������ F4

���(�%*E 4F � ��� (�%* �� �� F4

�(� H��<��>E 4F � ��� �� H'��?���� �� �� �� �( F4

(%�%2 ���

�#�� (%�% �6�� �� �� /�(�( ! � �#� ,1.2 !%��)6 %�( �� "��( � (�&)%�� %���(�/�("%) 0�� ���#�� �#� ��� ! �#� ,1.2 !%��)65 � � �*%��)�' "���4 �#�� (%�%�6�� �� &%� %&&��� ��(�/�("%) 0��� ! %� �A� � ��5

"������#

��� 6�������I)E 4F ������ 6���� � � ���& �� ��� ) �� -��� � F4

6������E 4F ��� ��� ) �� -��� � F4

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

Page 28: Microcontroller Projects in C for the 8051

(%�%� ��

�#�� (%�% �6�� �� ����)%� � �0�� 0"� �� "��( � (�&)%�� ,$0�� /%��%0)��5

"������#

�� ��� �8.�E 4F ���� � �&&� �8.� � ���& �� �� F4

�� �(� �8��E 4F ���� ( �&&� �8�� � ���& �� �( F4

'� ���& ���� �,D&���E 4F &��� �,D&��� � '� ���& �������� F4

�,D&������E 4F ��& � ��� &��� ���� -��� � ��& � ��� �� �,D&��� F4

�(��,D&���GGE 4F ������� �,D&��� ��& �& �� -��� ( F4

(%�%. ���1

�#�� (%�% �6�� �� ����)%� � �!� 0"� �� "��( � (�&)%�� 2=$0�� /%��%0)��5 �#��"���4 �#�� (%�% �6��' �#� ) � 06�� �# ")( ���&�(� �#� #�4# 06��5

"������#

����� + ! �#� ,1.+ ��&� & ��� ))�� "��� %((������ 1* %�( 1*� ! � �#� ) �%�( #�4# 06���5 �� &%� (�&)%�� /%��%0)� �+ � %&&��� 0 �# ����� ) &%�� ��5

���1 �(��8��E 4F ���� (7 �(CJ�� ��& �(�J�� F4

�(� �8����E 4F ��& ���� ( 6��� �8�&���� ��' ���� F4

(%( ����, ��&

,1.2 %�&#���&�"�� �"�� ��� 0 �# �� 4�%� 7 � & (�8 %�( (%�% ��� �6 %��%�5-� 4�%� ��� �6 �� ��%($ �)6 %�( �� &%�� � 0� ������� � 5 �����(��4 "� � �#��6�� ! �� &��� � "��( (�?����� %� "��� ! ������%) �� 4�%� ��� �6 %��%/%�)%0)�5 � � �*%��)�' ,1.2 �� /�(�� 306��� ! ������%) �� 4�%� ��� �65����)%�)6' ,9+1.2 �� /�(�� �)6 +06��� ! ������%) �� 4�%� ��� �65 �#��� 4�%� ��� �6 &%� 0� ��&��%��( 06 & ���&���4 %((��� �%) �*����%) ��� �6� �#� 0%��& ��&� & ��� ))��5 �#��� �%6 0� "� � =306��� ! �� 4�%���� �65

�%�% ��� �6 ����(�� ���#�� �#� ,1.2 -� %�( &%� 0� ��%( !� � %�( ���������� 5 �� � +.= 06��� ! (%�% ��� �6 %�� %/%�)%0)� (����(��4 "� � �#� �6�� !��&� & ��� ))�� "��(5

�#� ��� �6 � (�) (��������� �#%� �6�� ! �� 4�%� ��� �6 �� � 0� "��( ! �% 4�/�� %��)�&%�� �5 �#��� %�� �#��� ��� �6 � (�)�' ;� �� %� �����'��-��' %�( �����' %�( �#� ��D"���( � (�) �� ���&�@�( "���4 �#�& ���)�� (���&��/��5 �#� ����� ��� �6 � (�) �� "��( �! %)) �#� /%��%0)��

�.����������� ������������ �� �

Page 29: Microcontroller Projects in C for the 8051

����(� �� �#� ������%) (%�% ��� �6 ! �#� ,1.25 �#�� ��� �6 � (�) 4����%����#� !%����� %�( �#� � �� �J&���� & (� %�( �# ")( 0� "��( �#���/�� � ���0)�5 ���#� ��-�� ��� �6 � (�)' %)) /%��%0)�� ����(� �� �� �%4� ! �*����%)(%�% ��� �65 � �%*��"� ! +.= 06��� ! /%��%0)�� &%� 0� "��(5 �#�� ��� �6� (�) �� � � %� �J&���� %� �#� ����� � (�)5 �� �#� ����� ��� �6 � (�)'%)) /%��%0)�� ����(� �� �*����%) (%�% ��� �65 � �%*��"� ! =306��� ! (%�%&%� 0� "��(5 �#� ����� � (�) 4����%��� � �� & (� �#%� �#� �#�� �� � (�)� %�( �#"� �� �� � � /��6 �J&����5

���)��4 �� �#� ����� ��� �6 � (�) %)�%6� 4����%��� �#� !%����� %�( �#���%))��� & (� � ���0)� ���&� %&&�����4 �#� ������%) ��� �6 �� %)�%6� !%���� �#%�%&&�����4 %�6 �*����%) ��� �65

(%) �����'-�

�#� .2 & ���)�� %)) �� "� � (�&)%�� ������"�� ���/�&� � "����� 7����8 �� "� & (� %�( �#�� �#� �� 4�%� %"� �%��&%))6 B"��� � �#�� & (� �#�� %�������"�� &&"��5 �#� & ���)�� %"� �%��&%))6 4����%��� �#� ������"�� /�&� ��%�( ����6 %�( �*�� & (� ! � ������"�� � "�����5

�� ��� �� (�&)%��( ����)%� � % !"�&�� � (�&)%�%�� � 0"� �#� ������"�� �"�0�� �����&�@�( %� �%�� ! �#� !"�&�� � (�&)%�%�� �5 � � �*%��)�' �#� ! )) ���4 �� %(�&)%�%�� � ! �#� ��� ! � ����� 2 ������"��� 7������"�� �"�0�� >8L

K �( �����278 ������"�� >O

������"�� ���/�&� & (� 4 �� �� #���P

����)%�)6' �#� ��� ! � ����� 1 7������"�� �"�0�� 28 �� (�&)%��( %�L

/ �( �����178 ������"�� 2O

������"�� ���/�&� & (� 4 �� �� #���P

� �� �#%� �� &%� ���&�!6 �#� ��4����� 0%�; � 0� "��( ! � �#� ��� ���# �#� �����!"�&�� � %����0"��L

/ �( �����178 ������"�� 2 "���4 +O

������"�� ���/�&� & (� 4 �� �� #���P

(� ������������ ������ �� � ��� �� ����

Page 30: Microcontroller Projects in C for the 8051

(%* #��'��'� �� � ������������?�� & � �������

�#� ���"&�"�� ! % �� 4�%� (�/�) ��( ! � % ��&� & ��� ))�� �� 0%��&%))6 �#��%�� %� �#� ���"&�"�� ! % ��%�(%�( �� 4�%�' ���# % !�� ��� � &#%�4��5 �#����"&�"�� ! % �6��&%) ��&� & ��� ))��$0%��( �� 4�%� �� �# �� �� ��45 +525 ���� %)�%6� %(/��%0)� � (��&��0� �#� �� B�&� %� �#� 0�4�����4 ! % �� 4�%� "���4& ����� )����5 �#� �� B�&� �%��' @)��%��' (%��' %�( �#� �%�4�� �� &��� � �6���# ")( %)� 0� ��&)"(�( �� �#�� �%�� ! �#� �� 4�%�5 �#� ��4����� (�@���� � @)��# ")( �#�� 0� ��&)"(�( ! � �#� �6�� ! �%�4�� �� &��� � "��(5 �#�� @)� ���"��)��( %� �%�� ! �#� & ���)�� %�( ��&)"(�� �#� (�@���� �� ! � /%�� "���4������ ! �#� ��&� & ��� ))��5 �� �#� �*%��)� �� ��45 +52' �#� ��4�����(�@���� � @)� ! � �#� ����) ,9+1.2 �6�� ��&� & ��� ))�� �� ��&)"(�(5 �#�4) 0%) (�@���� �� ! �#� /%��%0)�� "��( �# ")( �#�� 0� ������(' �� )��� ! � �%&#(�@���� �5 �#� !"�&�� �� "��( �� �#� �� 4�%� �# ")( �#�� 0� ��&)"(�( ���# �#�%��� ���%�� & ������ %((�( � �#� #�%(��4 %�( %)� � �%&# )��� ! �#�

(������������ ������������ �� �

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

������: 9�� -����� ���

+�: 9�� 3���

���: ��� -������ 6� &��-&

���� ��: 9�� ����� -��� �� �,-

��� � �� -������ ��&�% � ���� ,�'� -������ �� ���0,%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

K&3� %%%%%% 4F ���'& ,�'� &3� ������ �� F4

��� %%%%%% 4F ���'& ,�'� ��� &3������ �� F4

��� %%%%%%

���� %%%%%% 4F ���'& ,�'� ���� &�������� �� F4

���& �'���<> 4F ���'& ,�' �'������ �� F4

N

O

����<> 4F ���� ��& F4

N

4F ���'& ������ �� F4

O

#��"� $���

#��'��'� �� � ������������ � -������

Page 31: Microcontroller Projects in C for the 8051

!"�&�� ��5 �#� �%�� �� 4�%� ��%��� ���# �#� ;�6� �( �%��78' ! )) ��( 06 �#� �����4 0�%&;��� MO:5 �#� )���� ! �#� �%�� �� 4�%� �# ")( %)� & ��%��& ������ � &)%��!6 �#� ���%�� � ! �#� �� 4�%�5 �#� �� 4�%� �� ������%��(06 % &) ���4 0�%&;�� MP:5

�� �*%��)� �� 4�%� �� �# �� �� ��45 +5+5 �#�� �� 4�%� ��&��/�� %� ,$0�� (%�%!� � � �� 2 ! %� ,9+1.2 �6�� ��&� & ��� ))��5 �#� ��%�� ! % ����&#'& ���&��( � 0�� 1 ! � �� >' �� �#�� &#�&;�(5 �! �#� ����&# �� 2' �#� /%)"� !�#� (%�% �� ( "0)�( 06 &%))��4 !"�&�� � �!���$��5 �!' � �#� �#�� #%�(' �#� ��%�� ! �#� ����&# �� 1' �#� (%�% /%)"� �� ��&�������( 06 + 06 &%))��4 !"�&�� ���$��%' %�( �#�� �#� �� 4�%� �� ��5 �� �� ��� ��%�� � ��%)�F� �#%� �#��� �� � ���"����4 � ��� �� % ��&� & ��� ))�� �� 4�%�5 �#"�' �#��� ��&���%�6' %���()��� ) � �# ")( 0� ! ���( %� �#� ��( � �� � �#� �� 4�%� !� � 4 ��4��� "�(�@��( �%��� ! ��� & (� ��� �65

(%� ������� � ���-���� C���'�� <��C>

�#��� %�� �%�6 ���# (� �#%� % �� 4�%���� �%6 &# �� � (��&��0� �#�%)4 ���#� � 0� ���)������( 06 % �� 4�%�5 �) � &#%��� #%/� 0��� "��(�*�����/�)6 �� �#� �%�� �� �%�6 & ��"��� �� 4�%����4 �%�;�5 �)�# "4# C �&#%��� %�� "��!")' �#�6 ���( � &��%�� %� "����"&�"��( & (� %�( %)� % ) � ! ������ "�"%))6 �%���( (�%���4 �#��' ����&�%))6 �#�� (�/�) ���4 & ��)�* �� 4�%��5�� �#�� ��&�� � �� �#%)) 0� ) ;��4 %� % (�?����� �%6 ! (��&��0��4 �#� ���%�� � ! % �� 4�%�' �%��)6 06 "���4 % �� 4�%� (��&����� � )%�4"%4� 7-��85

� -�� �� %� ��4)��#$)�;� )%�4"%4� �#�&# &%� 0� "��( � (��&��0� �#� ���%�� � ! % �� 4�%�5 �)�# "4# �#��� %�� �%�6 /%��%��� ! -��' �� �#%)) 0� "���4����)� & ����"&�� ! -�� �� "� �� 4�%����4 �*��&����' %� (��&��0�( 0�) �5

(%�%� #�� �?�5�

�/��6 -�� �� 4�%� 7 � �"0$�� 4�%�8 �# ")( ��%�� ���# % ����� ��%������%�( ������%�� ���# %� ��� ��%������5 �#� ;�6� �(� �� % -�� & (� �# ")( 0�#�4#)�4#��( �� 0 )( � �%;� �#� & (� � �� &)�%�5 �� �� %)� 4 ( ��%&��&� � ��(��� �� 4�%� ��%������� 0������ �#� -�� ;�6� �(�5

"������#

�$)($

555555555555555555555555

*+�

(( ������������ ������ �� � ��� �� ����

Page 32: Microcontroller Projects in C for the 8051

()����������� ������������ �� �

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF������: � ��- � �

+�: ��#�%�

���: �� �'�' � �...

���� ��: �.�(���

��� -������ ���� �� �?��� &��� ���� -��� � �� �� ������������ ��& ��� ��� &����� ������ 3� �% �� ��� �� � 6����7 ������& �� ��� � �� -��� )7 � ��� ���=&% �� �� 6���� � �7 ������ 3� � � &�'�& �, ����� �'������ &�'�D��% ��7 �� �� ���� ���&7 �� ��� �� �� 6���� � �7 ������ 3� � � �������& �, ( �, ����� �� ���D�,(

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4K���'& L���.(���%�M

K&3� !5 �

K&3� !++ �

��� 6���� J �)I�E 4F 6���� � ������& �� ��� � �� -��� ) F4

4F +'������ �� &�'� � ��' F4

'� ���& ���� &�'�D��<'� ���& ���� 8>

N

��'�� <(F8>E

O

4F +'������ �� ������� � ��' �, ( F4

'� ���& ���� ���D�,(<'� ���& ���� 8>

N

��'�� <8G(>E

O

4F #���� �� ���5 -������ F4

����<>

N

'� ���& ���� 3� �7 ���&E

3� � J ��E 4F �� �?��� &��� ���� -��� � F4

��< 6���� J J !5>

���&J&�'�D��<3� �>E 4F &�'� �� &��� �� 6���� J � F4

���&J���D�,(<3� �>E 4F ����6� ������� �, ( F4

���<EE> 4F 6��� �� ����� F4

N

O

O 4F �& �� ���5 -������ F4

#��"� $�$�

�8��- �� � ������������ � -������

Page 33: Microcontroller Projects in C for the 8051

(%�%( #H'�����

� � � ��%) ��D"��&��4 �� % �� 4�%�' ����� �#� ����� %� �# �� ��4)��# ��*� %� �!6 " %�� (��&��0��4 �#� �� 4�%�5

"������#

�"�� � �#� /%)/�)�%� �#� 0"?���"�� � �#� ���

(%�%) �+?���5?�C#�?�5��+

��� ��' ����' ����' %�( ����� ��%������� � (��&��0� �#� C � ! & ��� )�� 6 "� �� 4�%��5

"������#

,- ����&# Q 2 $.*+

�"�� � 0"FF��*��*

�"�� ? 0"FF�� �"�� ? ���

*+�,-

(%�%* �!?�5��!

��� �� %�( ����� & ��� ) ��%������� � �# � ����%�� � �� 6 "� -�� & (�5

"������#

�"�� � ����/ . �����

��� &) &; � 2��� &) &; � 1

*+��/

� /%��%�� � ! �#� ��$����� & ����"&� �� � "�� �#�� ;�6� �(� )�;� ��$����K��' ��$����� ��&5 %� �# �� �� �#� ! )) ���4 �*%��)��5

�"�� ? �#� 0"FF��,- ����&# Q 2 $.*+

�/ 0+$,� - �� 2 Q +�"�� � �����%( � �� 2

*+��/

*+�,-

(* ������������ ������ �� � ��� �� ����

Page 34: Microcontroller Projects in C for the 8051

�

�/ -/(*1*(

��%( (%�% !� � � �� 2����)%6 (%�%��)%6 % ��& �(

*+��/

(%�%� �����?"5��C

�#�� �� %� �#�� "��!") & ��� ) & ����"&� �#�&# &%� 0� "��( �� -�� & (��5 ���*%��)� �� �# �� 0�) � �#��� �#� �� 4�%� �%��� "���) % ����&# /%)"� �� �D"%)� 25

(*�*)$

�"�� � 0"FF����%( ����&# /%)"�

0+$,� ����&# Q 2

(%1 ������ ;� #�� �� ������������ ���-��

�#� %� "�� ! ��&� & ��� ))�� � !��%�� %/%�)%0)� � �#� �������� �� #"4� %�(�#��� %�� �%�6 (�?����� �*%��)� �� 4�%��5 �������� ��0 ����� ! � �� � �")%�,1.2 !%��)6 ��&� & ��� ))�� & ���)��� %�( �#�� "��!") ����� %�� 4�/�� 0�) �5

��� ����� ���

*��""�" ��� 2 #%��3#%��

#���LAA���54��! 5��A����A�%��&�)A";R�-R.25#��

��� ��

#���LAA���54��! 5& �A����A�A-%�&%).25#��

*��""�" ���

#���LAA���A"����5�%!��&%5& �A�A�%A�%�����A��(�*5#��

* ���� ��� ��

#���LAA���54� & ����5& �A��)�& �K%))�6A%��"�A9.9+A��(�*5#��)

�4�$*��� ���

#���LAA���5��%&�� )�5(�A� )�A��%&�$�� 4�%�A��%&�A�� ("&��A�R1.111=5#��

(������������ ������������ �� �

Page 35: Microcontroller Projects in C for the 8051

� ����� ���

�,�(/3�5��

#��LAA���5�&&$"�5& �A.2� )�5#��

�� �

#���LAA���5�����&� �5& �A��%))&.25#��)

,�*��5�

#���LAA���5��B�6�����5& �A�(�.25#��

���� 6����7�� #%�� � ����� ��8

#���LAA���54� & ����5& �A����%�&#���%�4)�A� �"�A2>.>A

���

���LAA���5;��)� !��%��5& �A# ��5#��

1����� �)�,� �" � ����� ���

#���LAA���5�D"�� *$��&#5& �

�,�(/5�

#���LAA���5("�@�)(5& �A(;�5#��

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

�)��/�

#���LAA���5*.3%))5�)A��&��)�&A0%�& �5#��)

$,+4 �)�,�

#���LAA���5& (�5%�&#�/�5%��� �%5& �A

�)�,9,$

#���LAA���5�())%0�5& �A0%��;��5#��

�:�5��

#���LAA���5���(�����45& �A��%//�A,1.2A0*&.25#��)

�*�5��

#���LAA���5���(�����45& �A��%//�A,1.2A0�&.25#��)

0���� ���� �� #%�� ����7�� �" ��"7��

#���LAA���5&��5 #� $��%��5�("A#6�����*�A!%DA"�����A��&� & ��� ))��$!%DA,1.2A!%D5#��)

(1 ������������ ������ �� � ��� �� ����

Page 36: Microcontroller Projects in C for the 8051

(%2 +'���� �&���

�#� ! )) ���4 0 ;� %�( ��!����&� �%�"%)� %�� "��!") �� )�%����4 � �� 4�%��� 5

&'� � ���������� ���!��� 7+�( �(�8����4#%� S ��&#��-�����&�$�%))' ��&5�� � 1$2>$221><1$9

� � �'� ����# ���������� � !�����()��

�&#")�F-�� -�����&�$�%))' ��&5�� � 1$2>$<.>,2.$3

� ��� *!����(

�%� � ;���� � 2$,<,1.,$<,$9

� &'� �������� ��������

���0��� �&#�)(��� � 1$1<$,,+212$1

"+���� �

-)"� S � (��-)"� �%)) ��&5�� � 1$922.><$1.$,

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

����:� �"�(���) �)�;�� ��; ��0�

(2����������� ������������ �� �

Page 37: Microcontroller Projects in C for the 8051

.This Page Intentionally Left Blank

Page 38: Microcontroller Projects in C for the 8051

������ )

C�9�� � !P���#

�#�� &#%���� (��&��0�� ����)� )�4#� �� B�&�� "���4 �#� 0%��& ,9+1.2 ��&� $& ��� ))�� &��&"�� (��&��0�( �� �%�)��� &#%�����5 �/�� ��� �� B�&�� %�� 4�/��' !� �/��6 ����)� ��� (���)%6 �� B�&�� � & ��)�* �� B�&�� ��& �� �%���4 %)�#%$�"����& (���)%6�5 � � �%&# �� B�&�' �#� ! )) ���4 ��! ��%�� � �� 4�/�� %�%��� ���%��L

� ,!����L �#%� �#� �� B�&� ( ��' ��� ���"�� %�( "��"��5� ����!�� ������L !")) &��&"�� (�%4�%� ! �#� �� B�&� %�( �*�)%�%�� � ! # �

�#� &��&"�� � �;�5� ������� �(�������L !"�&�� �%) (��&����� � ! �#� � !��%�� �� ����)�

��4)��#$)�;� )%�4"%4� 7-��85� ������� ��(���L !")) �����( %�( � �;��4 �� 4�%� )�����4 ! � �%&# �� B�&�'

��&)"(��4 & ������5� �������( ��-!���L )�����4 ! & �� ����� ��D"���( � 0"�)( �%&# �� B�&�5

�)�0(�� � 1 +(� '����! ��"���

+'������

�#�� �� B�&� & "��� "� �� 0��%�6 %�( (���)%6� �#� ���")� � ��4#� ����& ���&��( � � �� 2 ! �#� ��&� & ��� ))�� %� �# �� �� ��45 >525

����'�� �������

�� �# �� �� ��45 >5+ �#� &��&"�� �� �*�����)6 ����)�' & �������4 ! �#� 0%��&,9+1.2$0%��( ��&� & ��� ))�� %�( ��4#� ���� & ���&��( � � �� 2 ! �#���&� & ��� ))��5 �%&# ��&� & ��� ))�� "��"� ��� &%� ���; % �%*��"� !,1 �� %�( � "�&� "� � +1��5 �#� �%�"!%&�"���� ���&�!6 �#%� �#� � �%) � "�&�&"����� ! % � �� �# ")( � � �*&��( ,1��5 �#��� %�� �%�6 (�?����� �6��� !��� )�4#�� � �#� �%�;��' �������4 ��(' 4����' %�0��' �#���' � 6�)) � & ) "��5��%�(%�( ��( ���� ��D"��� %0 "� . � 21�� � ���� /���0)� 0��4#� )�4#�5 �#���%�� %)� ) �$&"����� ��%)) ���� ���%���4 !� � %� ) � %� 2��5

Page 39: Microcontroller Projects in C for the 8051

�� ��45 >5+' �#� ��&� & ��� ))�� "��"�� ���%�� �� &"����� � "�&� � (� �#���%� ��� �� �"���( � �! �#� & ����� �(��4 "��"� �� %� ) 4�& ��� )�/�)5 �#���D"���( /%)"� ! �#� &"����� )������4 ������ �� &%� 0� &%)&")%��( %� ! )) ��L

� �.� � .!

�!

�#��� .� �� �#� �"��)6 / )�%4� 7�.K8' .! �� �#� ��� ! ��%�( / )�%4� (� �7%0 "� +K8' %�( �! �� �#� ��� ! ��%�( &"����� 72 � >1 �� (����(��4 � �#��6�� ! ��� "��(85 �� �#�� (���4� �! �� %��"�� %� ��� &"����� ! %0 "� =��'�#� ��D"���( ������ �� ��)) 0�L

� �.� +

=� 3<1 �

�)�# "4# ��4#� ��(�/�("%) ������ �� %�� �# �� �� �#�� &��&"��' �� �� � ���0)� � ���)%&� �#��� ������ �� ���# % ���4)� ��� 7("%)$��$)���8 ������ � &#%��5

������� � ���-����

�#� �� 4�%� �� ��D"���( � ��&������ % /%)"� %�( �#�� "��"� � � �� 2 ! �#���&� & ��� ))��5 �&%"�� �#� ��&� & ��� ))�� ���%��� %� % /��6 #�4# ����(' �� ��

)� ������������ ������ �� � ��� �� ����

#��"� %���

!'�-'� -����� �� ������ �

Page 40: Microcontroller Projects in C for the 8051

��&���%�6 � ������ % (�)%6 �� �#� �� 4�%� � �#%� �#� ��� "��"�� &%� 0� ����/��"%))65 �#� ! )) ���4 -�� (��&��0�� �#� !"�&�� �� ! �#� �� 4�%�L

�$)($

��� & "�� � 2�/ -/(*1*(

�"��"� & "�� � � �� 2��&������ & "����)%6

*+��/

*+�

)�C���� ������

#��"� %�$�

����'�� &������ �� ������ �

Page 41: Microcontroller Projects in C for the 8051

������� C� ����

�#� !")) �� 4�%� )�����4 �� �# �� �� ��45 >5>5 K%��%0)� �"* �� �����%)�F�( � 2%�( �� "��( %� �#� & "����5 �#� ��()��� ) � �� ��� "���4 �#� ��� ��%������ ���#� �%�%������5 K%��%0)� �� �� (�@��( �� ��&)"(� @)� M��,9+1.25#: %�( �#�� �� %�����/�( �%�� ! � � �� 2 ! �#� ��&� & ��� ))��5 � ��&� �#%� /%��%0)� ��� ��& ��)������( 7"���4 ���%� � M�:8 %�( �#�� ���� � �#� "��"� � ��5 �#�� ����&���%�6 ���&� �#� "��"� � ��� %�� & �@4"��( � � "�&� &"�����' �5�5 %� ��� ���"���( � �#�� �#� & ����� �(��4 � �� "��"� �� ) 4�& ���5 � (�)%6 !%��� *��%��)6 2 ��& �( �� 0�%���( 06 �#� !"�&�� � /���$�$(���5 �#��!"�&�� � �� ����)6 % ("��6 ��� ) � %�( 4�/�� %0 "� 2 ��& �( (�)%6 �#���#� ��&� & ��� ))�� �� ���%��( ���# % 2+��F &�6��%)5 ��?����� /%)"�� ! ) �

)( ������������ ������ �� � ��� �� ����

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� �

+�C�: � !P�%�

����: �'�' � �...

� !��##! : ���.(���

��� -����� ��'�� '- �� �����, ��& &� -�, �� � '� �� ���� C�� ������& �� -��� �%�� &��� � &� -�,& 6��� ���'� � ���& &�, ��6� ��� �'�-'�%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

4F +'������ �� &�, ���'� � ���& F4

���& 6���D�D ���&<>

N

'� ���& ��� 8E

���<8J�E8L))���E8GG>E

O

4F #���� �� ���� -������ F4

����<>

N

��� C��J�E 4F�������Q ��'�� �� �F4

���<EE> 4F#���� �� �& ��-F4

N

��JRC��E 4F����� ��& �'�-'�F4

C��GGE 4F������� �� ��'��F4

6���D�D ���&<>E 4F;��� ���'� � ���&F4

O

O

#��"� %�%�

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

Page 42: Microcontroller Projects in C for the 8051

& "�� ��)) 4�/� (�?����� (�)%6�5 �)� ' (�?����� (�)%6� ��)) 0� 0�%���( ���# �#�� & ���)���5 � �� %&&"�%�� %�( & ���)�� ��(����(��� (�)%6� &%� 0� 0�%���( "���4 �#� ����� "��)����� ! �#� ��&� & ��� ))��5

���-���� H'��&

�� %((��� � � �#� & �� ����� ��D"���( 06 �#� 0%��& ��&� & ��� ))�� &��&"��' �#�! )) ���4 & �� ����� ��)) 0� ��D"���( ! � �#�� �� B�&�L

�+ 3<1 �' 152+.� ������ � 7, ?8' � ��� �%&;%4�� ��� 7, ?8

�)�0(�� $ 1 +(� ��� ��� ����"��

+'������

�#�� �� B�&� �"��� � �#� ���� & ���&��( � � �� 2 ! �#� ��&� & ��� ))�� ����D"��&�' ���")���4 �� % &#%���4 ��� �?�&�5 �#� (%�% �� (���)%6�( ���# %0 "� 2��& �( (�)%6 0������ �%&# "��"� �%�����5 ��4"�� >53 �# �� �#� "��"� �%�����(���)%6�( 06 �#� ����5

����'�� �������

�#� �%�� &��&"�� 7��45 >5+8 %� �� -� B�&� 2 �� "��(5 �#� ���� &%� 0� � "���( ��% &��&")%� � �� � �� �#�� 4� �����& ! �� � ��#%�&� �#� &#%���4 �?�&�5 �)� '(�?����� & ) "��( ���� &%� 0� "��( � 4�/� % & ) "�!") "��"�5

))C���� ������

#��"� %�&�

!'�-'� -����� �� ������ (

Page 43: Microcontroller Projects in C for the 8051

������� � ���-����

�#� �� 4�%� �� ��D"���( � ) %( % 2 ��� �#� � � 7 � 0 �� �8 0�� ! % /%��%0)�%�( �#�� �#�!� �#� (%�% ��4#� 7 � )�!�8 06 �� (�4�� %�( (���)%6 � �#� ����5 �(�)%6 ��)) 0� ��D"���( 0������ �%&# "��"�5 �#� ! )) ���4 -�� (��&��0�� �#�!"�&�� �� ! �#� �� 4�%�5 �� �#�� -��' �#� � � 0�� ! % /%��%0)� �� ) %(�( %�((%�% �� �#�!��( � �#� ��4#�L

�$)($

��� & "�� � 2+,�/ -/(*1*(

�"��"� & "�� � � �� 2�#�!� & "�� ��4#� 06 2 (�4��,- & "�� Q 1 $.*+

��� & "�� 0%&; � 2+,*+�,-

��)%6*+��/

*+�

������� C� ����

�#� !")) �� 4�%� )�����4 �� �# �� �� ��45 >5.5 K%��%0)� �"* �� �����%)�F�( � 2+,7� � 0�� ��� � 28 %�( �� "��( %� �#� & "����5 �#� ��()��� ) � �� ��� "���4 �#� �����%������ ���# � �%�%������5 K%��%0)� �� �� (�@��( �� ��&)"(� @)�M��,9+1.25#: %�( �#�� �� % �����/�( �%�� ! � � �� 2 ! �#� ��&� & ��� ))��5� ��&� �#%� /%��%0)� ��� �� & ��)������( %�( �#�� ���� � �#� "��"� � ��5�#�� �� ��&���%�6 ���&� �#� "��"� � ��� %�� & �@4"��( � � "�&� &"�����' �5�5 %���� �� �"���( � �#�� �#� & ����� �(��4 � �� "��"� �� ) 4�& ���5 �#�& "�� /%)"� �� �#�!��( ��4#� 06 �� (�4�� "���4 �#� & ���)�� ���%� � M:5�#�� �#� & "�� ��%&#�� 1' �� �� ��) %(�( ���# 2+,' �5�5 �#� /%)"�� ! /%��%0)��"* ��)) 0� 2+,' =3' >+' 2=' ,' 3' +' 2' 2+,' � � � � (�)%6 ! %��� *��%��)62 ��& �( �� 0�%���( 06 �#� !"�&�� � /���$�$(���5

�)�0(�� % 1 )��*�� +(� ������

+'������

�#�� �� B�&� �"��� � �#� ���� & ���&��( � � �� 2 �%�( �)65 � �%�( ��"�0�� �� 4����%��( 0������ 1 %�( >+ <=< "���4 �#� 0"�)�$�� !"�&�� � ��%�( �#�� �#�� �� "��"� � �"�� � �#� & ����� �(��4 ����5 �#� (%�% ��(���)%6�( ���# %0 "� 2 ��& �( (�)%6 0������ �%&# "��"� �%�����5

)* ������������ ������ �� � ��� �� ����

Page 44: Microcontroller Projects in C for the 8051

����'�� �������

�#� �%�� &��&"�� 7��45 >5+8 %� �� -� B�&� 2 �� "��( 5 �#� ���� &%� 0� � "���( ��(�?����� �%������ %�( �� (�?����� & ) "�� (����(��4 "� � �#� %��)�&%�� �5

������� � ���-����

�#� �� 4�%� �� ��D"���( � 4����%�� % �%�( � �"�0�� %�( �#�� "��"� �#���"�0�� � � �� 2 �� �(�� � �"�� � �#� & ����� �(��4 ����5 � ��%)) (�)%6 ����D"���( 0������ �%&# "��"� � �#%� �#� ��� �%������ &%� 0� ����5 �#�! )) ���4 -�� (��&��0�� �#� !"�&�� �� ! �#� �� 4�%�L

)�C���� ������

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� (

+�C�: � !P(%�

����: �'�' � �...

� !��##! : ���.(���

��� -����� �'�� �� �� C�� ������& �� -��� � �� H'��7 � '���� �� � ��� ��� C������% �� &��� � &� -�,& 6��� ���'� � ���& &�, ��6� ��� �'�-'�%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

4F +'������ �� &�, ���'� � ���& F4

���& 6���D�D ���&<>

N

'� ���& ��� 8E

���<8J�E8L))���E8GG>E

O

4F #���� �� ���� -������ F4

����<>

N

'� ���& ���� C��J�(�E 4F�������Q �� �(�F4

���<EE> 4F#���� �� ��-F4

N

��JRC��E 4F����� ��& �'�-'�F4

C��JC�� MM �E 4F#���� �� �����F4

��<C�� JJ �>C��J�(�E 4F#� �� �(�F4

6���D�D ���&<>E 4F;��� � ���&F4

O

O

#��"� %���

������� � ���� �� ������ (

Page 45: Microcontroller Projects in C for the 8051

�$)($

�/ -/(*1*(

�����%�� % �%�( � �"�0���"��"� �"�0�� � � �� 2��)%6

*+��/

*+�

������� C� ����

�#� !")) �� 4�%� )�����4 �� �# �� �� ��45 >5=5 K%��%0)� �"* �� "��( � # )( �#�(%�%5 �#� ��()��� ) � �� ��� "���4 �#� ��� ��%������ ���# � �%�%������5

)1 ������������ ������ �� � ��� �� ����

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� )

+�C�: � !P)%�

����: �'�' � �...

� !��##! : ���.(���

��� -����� �'�� �� �� C�� ������& �� -��� � ���&��,% � ���&�� �'��� � �����& ��6� � ��& )(212 ��& ��� ��� � �'�-'� �� �'�� �� �� ���� -��&���C�� % �� &��� � &� -�,& 6��� ���'� � ���& &�, ��6� ��� �'�-'�%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L �&��%�M

K���'& L���.(���%�M

4F +'������ �� &�, ���'� � ���& F4

���& 6���D�D ���&<>

N

'� ���& ��� 8E

���<8J�E8L))���E8GG>E

O

4F #���� �� ���� -������ F4

����<>

N

��� C��E

���<EE> 4F#���� �� �& ��-F4

N

4F 9���� � ���&�� �'��� ��6� � ��& )(212 F4

C��J���&<>E

��JRC��E 4F����� ��& �'�-'�F4

6���D�D ���&<>E 4F;��� � ���&F4

O

O

#��"� %�/�

������� � ���� �� ������ )

Page 46: Microcontroller Projects in C for the 8051

K%��%0)� �� �� (�@��( �� ��&)"(� @)� M��,9+1.25#: %�( �#�� �� % �����/�( �%��! � � �� 2 ! �#� ��&� & ��� ))��5 �#� 0"�)�$�� !"�&�� � ��01 4����%��� %�%�( � ����4�� �"�0�� 0������ 2 %�( >+ <=< %�( �#�� !"�&�� � �� "��( � 4����%�� % �%�( � �"�0�� %�( �� �� �� �� /%��%0)� �"*5 �#� 4����%��(�"�0�� �� & ��)������( %�( "��"� � � �� 2 ! �#� ��&� & ��� ))�� %�(�#� �� &��� �� ����%��( ��(�@����)6 ���# %0 "� 2 ��& �( (�)%6 0������ �%&# "��"� �%�����5

�)�0(�� & 1 �!��� +(� ������

+'������

�#�� �� B�&� �"��� � �#� ���� & ���&��( � � �� 2 �� % &6&)�& �%���� �"&#�#%� @��� �)6 2 ��� �� �' �#�� + ���� %�� �' �#�� >' 3' .' � � � ' , %�� �7��45 >5<85 �#� �� &��� �� ����%��( ��(�@����)6 ���# 2 ��& �( (�)%6 0������ �%&# "��"� �%�����5

����'�� �������

�#� �%�� &��&"�� 7��45 >5+8 %� �� -� B�&� 2 �� "��(5 �#� ���� &%� 0� � "���( ��(�?����� �%������ %�( �� (�?����� & ) "�� (����(��4 "� � �#� %��)�&%�� �5

������� � ���-����

�#� �� 4�%� �� ��D"���( � �"�� � �#� @��� ��� 7�545 & ����� �(��4 � �"�0�� 2+,8 %�( �#�� %!��� % ��& �( (�)%6 �"�� � �#� ���� & ����� �(��4 �

)2C���� ������

#��"� %�2�

!'�-'� -����� �� ������ *

Page 47: Microcontroller Projects in C for the 8051

�"�0��� =3' >+' 2= %�( � � "���) %)) ��4#� ���� %�� � 7�"�0�� +..85 �#��� &��� �� �#�� ����%��( ! ��/�� %� �# �� �� ��45 >5< ���# %0 "� 2 ��& �( (�)%60������ �%&# "��"� �%�����5 �#� ! )) ���4 -�� (��&��0�� �#� !"�&�� �� ! �#��� 4�%�L

�$)($

��� & "�� � 2+,�/ -/(*1*(

�"��"� & "�� � � �� 2�#�!� & "�� � ��4#� 06 2 (�4��,- & "�� Q +.. $.*+

��)%6�"��"� � � �� 2��� & "�� � 2+,

*+�,-

��)%6*+��/

*+�

������� C� ����

�#� !")) �� 4�%� )�����4 �� �# �� �� ��45 >5,5 K%��%0)� �"* �� �����%)�F�( � 2+,7� � 0�� �8 %�( "��( � # )( �#� (%�%5 �#�� /%)"� �� & ��)������( %�( "��"�� � �� 2' %�( �#�� �#�!��( ��4#� 06 2 (�4�� "���4 �#� ���%� � M:5 �#�� %))�#� ���� %�� � 7���Q+..8' �#� )%�� /%)"� �� �#� &#%�� �� (���)%6�( %�(/%��%0)� �"* �� ��� 0%&; � 2+,5 �#� %0 /� �� &��� �� ����%��( ! ��/�� ���#%0 "� 2 ��& �( (�)%6 0������ �%&# "��"� �%�����5

�)�0(�� � 1 +(� ���

+'������

�#�� �� B�&� ���")%��� % (�&� 06 (���)%6��4 % �%�( � �"�0�� 0������ 2 %�( =' � ��* ���� & ���&��( � � �� 2 ! �#� ��&� & ��� ))��5 �� 1 ! � �� > 7->518 ��"��( %� �#� ���"� %�( % �"�#$0"�� � ����&# �� & ���&��( � �#�� ���5 �/��6 �����#� ����&# �� ������(' % ��� �"�0�� �� (���)%6�(5

����'�� �������

�#� &��&"�� (�%4�%� ! �#�� �� B�&� �� �# �� �� ��45 >595 �� 1 ! � �� > ��� ��%))6 #�)( %� ) 4�& ���� ���# �#� �"))$"� ������ � �>5 �#�� ����&# �2 ��������(' 0�� 1 ! � �� > � /�� � ) 4�& ��� %�( �� (���&��( 06 �#� � !��%��5 ��

)� ������������ ������ �� � ��� �� ����

Page 48: Microcontroller Projects in C for the 8051

�# �� �� ��45 >59' �#� ��/�� ���� #%/� 0��� � "���( �� % �%����� � ��")%���#� ( �� � % ��%) (�&�5 �#� �%����� (���)%6�( ! � (�?����� �"�0��� �� �# �� ����45 >5215 �� �� % ��%) (�&�' �#� @��� � � &%� #%/� "� � �� ���� �7& ����� �(��4 � �� ( �� � % (�&�8' �#� ��& �( � � "� � �#��� ���� �'%�( �#� �#��( � � &%� #%/� "� � �� ���� �5

).C���� ������

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� *

+�C�: � !P*%�

����: �'�' � �...

� !��##! : ���.(���

��� -����� �'�� �� �� C�� ������& �� -��� � �� � �,��� ����� '�� ���� 3� � ��, �C�� � ��7 ��� (7 )7 *7 �7 � � � 7 � �� ��% �� -��� � �-��&% �� &��� � &� -�,& 6������'� � ���& &�, ��6� ��� �'�-'�%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

4F +'������ �� &�, ���'� � ���& F4

���& 6���D�D ���&<>

N

'� ���& ��� 8E

���<8J�E8L))���E8GG>E

O

4F #���� �� ���� -������ F4

����<>

N

'� ���& ���� C��J�(�E 4F�������Q ��'��F4

���<EE> 4F#���� �� ��-F4

N

��JRC��E 4F����� ��& �'�-'�F4

C��JC�� S <C�� MM �>E 4F!����� �8� ��'F4

��<C�� JJ (��> 4F�� �& �� -����� � � � F4

N

6���D�D ���&<>E

��JRC��E

C��J�(�E

O

6���D�D ���&<>E 4F;��� � ���&F4

O

O

#��"� %���

������� � ���� �� ������ *

Page 49: Microcontroller Projects in C for the 8051

������� � ���-����

� �%�( � (�&� �"�0�� �� 0�%���( ("���4 �&%����4 ! �#� �"�#$0"�� � ����&#%� ! )) ��5 �#� �� 4�%� �&%�� �#� �"�#$0"�� � ����&# & ����" "�)65 �! �#�����&# �� � � ������( 7�5�5 %� ) 4�& ����8' % �"�0�� �� ��&�������( 0������ 2%�( =5 �#���/�� �#� �"�#$0"�� � �� ������(' �#� &"����� /%)"� ! �#� �"�0�� ����%( %�( �#�� /%)"� �� "��( %� �#� ��� (�&� �"�0��5 ���&� �#� ����&# �� ������(06 �#� "��� �� �%�( �' �#� �"�0��� 4����%��( %�� %)� �%�( � �"�0��� !� � 2� =5 �#� ��� �%�( � �"�0�� �� (���)%6�( � �#� ��/�� ���� %��� ���%��)65

*� ������������ ������ �� � ��� �� ����

#��"� %�3�

����'�� &������ �� ������ �

#��"� %����

C�� -����� &� -�,& ��� &������ &�� �'���

Page 50: Microcontroller Projects in C for the 8051

�!��� %0 "� + ��& �(� (�)%6' %)) ���� %�� �"���( ? %�( �#� %0 /� �� &��� ������%��( ! ��/��5 �#� ! )) ���4 -�� (��&��0�� �#� !"�&�� �� ! �#� �� 4�%�L

�$)($

�����%)�F� & "�� � 1�/ -/(*1*(

,- -"�#$0"�� � �� ������( ������%( �#� ��� (�&� �"�0�� !� � & "���"�� � �#� %��� ���%�� (�&� ������)%6 %0 "� + ��& �(��"�� ? %)) ����

*��*

��&������ & "��,- & "�� Q < $.*+

"�� Q 2*+�,-

*+�,-

*+��/

*+�

�%0)� >52 �# �� �#� �%�( � �"�0��� 4����%��( %�( �#� & ����� �(��4 �����#%� ��)) 0� �"���( � � 4�/� �#� (�&� (���)%6 ! ��45 >5215

�� %� �*%��)�' �! �#� �"�0�� > �� � 0� (���)%6�( �#�� �)6 ���� �>' �3' %�(�. ��)) 0� �"���( �5 ����)%�)6' ! � �"�0�� =' %)) ���� �*&��� ��� 3 ��)) 0��"���( �5

������� C� ����

�#� !")) �� 4�%� )�����4 �� �# �� �� ��45 >5225 K%��%0)� �2 �� (�@��( %� 1 %�(

*�C���� ������

��� %�� ��� 5'��� ��& ���� -��&��� C�� -�����

4"��� +(� ��

� �*

( �)7 ��

) �)7 �*7 ��

* ��7 �(7 �17 �2

� ��7 �(7 �*7 �17 �2

1 ��7 �(7 �)7 ��7 �17 �2

Page 51: Microcontroller Projects in C for the 8051

*( ������������ ������ �� � ��� �� ����

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� �

+�C�: � !P�%�

����: �'�' � �..�

� !��##! : ���.(���

��� � � &�� ��'���� -�����% #�� C�� �� ������& �� -��� � �� �� ��������������& ������& � ��6� �� �� �8�% � -' �?�'���� 6���� � ������& �� ��� � �� -��� )��& 6�� ��� 6���� � -� &7 � �6 �'��� � ������& ��6� � ��& 1 ��& ������ -��&��� C�� �� �'��& �� �� ��'�� � �� &��% ���� ( ���& &�,7 � C�� �� �'��& ��� ��& �� ' � ��� ����6 � &�� �����%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

K&3� !5 �

K&3� �CCD!++ �8++

��� �'���� J �)I�E 4F��� �)%� � �� -' �?�'����F4

��� ��J��I�E 4F&3� &�� -����� F4

��� �(J��I�E

��� �)J��I(E

��� �*J��I)E

��� ��J��I*E

��� �1J��I�E

��� �2J��I1E

4F +'������ �� &�, ���'� � ���& F4

���& 6���D�D ���&<>

N

'� ���& ��� 8E

���<8J�E8L))���E8GG>E

O

4F #���� �� ���� -������ F4

����<>

N

��� ����J�E 4F�������Q �� �F4

���<EE> 4F#���� �� ��-F4

N

��<�'���� JJ �> 4F@'���� -� &F4

N

6����<����>

N

�� �: 4F����J�F4

�*J!5E

���=E

Page 52: Microcontroller Projects in C for the 8051

*)C���� ������

�� (: 4F����J(F4

�)J!5E

��J!5E

���=E

�� ):

�)J!5E 4F����J)F4

�*J!5E

��J!5E

���=E

�� *:

��J!5E 4F����J*F4

�(J!5E

�1J!5E

�2J!5E

���=E

�� �: 4F����J�F4

��J!5E

�(J!5E

�*J!5E

�1J!5E

�2J!5E

���=E

�� 1: 4F����J1F4

��J!5E

�(J!5E

�)J!5E

��J!5E

�1J!5E

�2J!5E

���=E

O

6���D�D ���&<>E 4F;��� ( �F4

6���D�D ���&<>E

��J�CCD!++E 4FC�� !++F4

O

N

����GGE

��<���� J J 2>����J�E 4F#� �� � �� 2F4

O

O

O

#��"� %����

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

Page 53: Microcontroller Projects in C for the 8051

/%��%0)� 3��$�,, �� (�@��( %� #�*%(�&��%) *�� 7�5�5 %)) 0��� ���85 �#���/%��%0)�� ��)) 0� "��( � �"�� %� ��� � � � �"�� %)) ���� ?5 K%��%0)� �!����� %���4��( � 0�� 1 ! � �� > "���4 �#� & ���)�� (��� ��%������5 ����)%�)6' �#���/�� ���� %�� %���4��( � 0��� 1 � < ! � �� 2 "���4 �#� (��� ��%������5

K%��%0)� *��" �� (�&)%��( %� %� ����4�� %�( # )(� �#� (�&� /%)"��5 ����(� �#���()��� ��� ) �' /%��%0)� �!��� �� �����(5 �! �!��� �� 1' �5�5 �! �#� "��� ��������#� �"�#$0"�� �' �#�� % (/���' ��%������ �� "��( � �"�� � �#� %��� ���%������ %� (�@��( �� �%0)� >525 �� %� �*%��)�' �! �#� /%)"� ! *��" �� +' �����> %�( �. %�� �"���( � %�( �#� �#��� %�� �"���( ?5 �#� ����) �����"&�� �����"�� �#%� �� B"�� "� ! �#� (/���' ��%������ %!��� �*�&"���4 % &%�� 0) &;5 �(�&� /%)"� �� (���)%6�( ! � + ��& �(� %�( %!��� �#�� ���� %)) �#� ���� %�� �"���( ?5 �! ����(� �#� ��()��� ��� ) � �#� �!��� �� � � ������( 7�5�5 �!��� �� 28' �#��/%��%0)� *��" �� ��&�������( & ����" "�)65 �#�� *��" �� <' �� �� ��� 0%&; � 25

� ��� ��3���� �������

� ��&� �#%� �� �#�� �� 4�%� �� #%/� "��( � (/���' ��%������ %�( �*�&"��( �#�& ���&� &%�� 0) &; (����(��4 � �#� /%)"� ! /%��%0)� *��"5 �� &%� �%;� �#��� 4�%� �"&# � �� �J&���� %�( �%�6 � ! )) � �! �� &��%�� % ����)� �%0)� 7%�%��%6 �� �#� �� 4�%�8 %�( �� �#�� �%0)� �� �� �#� (�&� �"�0��� %4%���� �#�#�*%(�&��%) /%)"�� ! ��� �%������5 �%0)� >5+ �# �� �#� ��)%�� ��#�� 0�������#� (�&� �"�0���' �#� ��� �%������ %�( �#� & ����� �(��4 0��%�6 %�(#�*%(�&��%) �D"�/%)����5

�� %� �*%��)�' � (���)%6 �"�0�� > �%�����' %)) �� #%/� � ( �� ���(#�*%(�&��%) �"�0�� 2 � � �� 25 ����)%�)6' ���(��4 << ��)) (���)%6 �#� (�&��%����� ! � �"�0�� = � �#� ����5

�#� �� 4�%� )�����4 4�/�� �� ��45 >52+ "��� �%0)� >5+ � (���)%6 (�&� �%������5�#� #%�(�%�� ���"� �� %4%�� �#� �%�� %�( 0�� 1 ! � �� > �� "��( %� �#� �"�#$

** ������������ ������ �� � ��� �� ����

��� %�$ ��� �'��� ��& ���� -��&��� ��� -�����

4"��� +(� �� '����! 5-

� �* �������� ��

( �)7 �� �������� �*

) �)7 �*7 �� �������� ��

* ��7 �(7 �17 �2 �������� 1)

� ��7 �(7 �*7 �17 �2 �������� 1@

1 ��7 �(7 �)7 ��7 �17 �2 �������� 22

Page 54: Microcontroller Projects in C for the 8051

*�C���� ������

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� �

+�C�: � !P�?�%�

����: �'�' � �...

� !��##! : ���.(���

��� � � &�� ��'���� -�����% #�� C�� �� ������& �� -��� � �� �� ��������������& ��'��& � ��6� �� �� �8�% � -' �?�'���� 6���� � ������& �� ��� � �� -��� )��& 6�� ��� 6���� � &-� &7 � �6 �'��� � ������& ��6� � ��& 1 ��& ������ -��&��� C�� �� �'��& �� �� ��'�� � &��% ���� ( ���& &�,7 � C�� ���'��& ��� ��& �� ' � ��� ����6 � &�� �����%

��� ��& � ��� �3���� ���� �� -����' &�� ��&%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

K&3� �CCD!++ �8++

��� �'���� J �)I�E 4F@�� �)%� � �� -' �?�'����F4

4F +'������ �� &�, ���'� � ���& F4

���& 6���D�D ���&<>

N

'� ���& ��� 8E

���<8J�E8L))���E8GG>E

O

4F #���� �� ���� -������ F4

����<>

N

��� ����J�E 4F�������Q �� �F4

��� ����D� �$T1UJN�8��7�8�*7�8��7�81)7�81@7�822OE

���<EE> 4F#���� �� ��-F4

N

��<�'���� JJ �> 4F@'���� -� &TF4

N

��JR����D� �$T����?�UE

6���D�D ���&<>E 4F;��� ( � F4

6���D�D ���&<>E

��J�CCD!++E 4F�'�� ��� C�� F4

O

N

����GGE 4F��� ����F4

��<���� JJ 2>����J�E 4F#� �� � �� 2F4

O

O

O

#��"� %��$�

��� �3���� ��& ��� ������ �

Page 55: Microcontroller Projects in C for the 8051

0"�� � ���"�5 �� ����4�� %��%6 *��"$3��34 �� &��%��( � �� �� �#�#�*%(�&��%) 0�� �%������ %� (��&��0�( �� �#� �%0)�5 ��(�* 1 ! �#�� %��%6& ����� �(� � (�&� �"�0�� 2 7�%����� 4����%��( 06 #�*%(�&��%) �"�0�� ,8%�( ��(�* 2 & ����� �(� � (�&� �"�0�� + 7�%����� 4����%��( 06 #�*%(�&��%)�"�0�� 238 %�( � �5 �&%"�� �#� %��%6� �� %�� ��(�*�( !� � 1' �� #%/� � �"0��%&� 2 !� � �#� %��%6 ��(�* �� �(�� � 4�� �#� & ���&� /%)"�5 �� �# �� ���#� �� 4�%� )�����4 �� ��45 >52+' /%��%0)� �!��� �� �����( ����(� �#� ��()��� ) �5�! �#� �"�#$0"�� � �� ������(' �#� #�*%(�&��%) 0�� �%����� & ����� �(��4 � /%��%0)� *��"5� �� 0�%���( "���4 �#� ��%������ *��"$3��346*��"5�7 %�(�#�� /%)"� �� & ��)������( %�( ���� � � �� 2 ! �#� ��&� & ��� ))��5 �)) �#�(���)%6� %�� �"���( ? %!��� %0 "� + ��& �(� (�)%65 �! �#� �"�#$0"�� � �� � �������(' /%��%0)� *��" �� ��&�������( & ����" "�)6 %�( ��� 0%&; � 2 �#�� ����%&#�� <5

���-���� H'��&

�� %((��� � � �#� & �� ����� ��D"���( 06 �#� 0%��& ��&� & ��� ))�� &��&"��' �#�! )) ���4 & �� ����� ��)) 0� ��D"���( ! � �#�� �� B�&�L

�+ 3<1 �' 152+.� ������ �� 7< ?8�> 211' 152+.� ������ �� ���� 7< ?8

�)�0(�� / 1 5-�*���� �� �!

+'������

�#�� �� B�&� �# �� # � % ��&� & ��� ))�� &%� 0� �����!%&�( � % ���>22 �6��#�*%(�&��%) (���)%65 �#� �� 4�%� & "��� "� !� � 1 � 9 %�( �#�� ��#�*%(�&��%) ! ��%� !� � � � � %�( �#�� 0%&; � 15 �#�� �� &��� ������%��( ! ��/�� ���# % 2 ��& �( (�)%6 �������( 0������ �%&# & "��5

����'�� �������

�#� &��&"�� (�%4�%� ! �#�� �� B�&� �� �# �� �� ��45 >52>5 ���>22 �� % � �")%�23$��� ��� ��%)) #�*%(�&��%) (���)%6' � ����( !� � �.K5 ���"�� �' ' ' � ! �#� (���)%6 %�� �#� (%�% ���"�� %�( �#��� %�� & ���&��( � �#� ) ��� �%�� !� �� 2 7-251 � -25>85 ���� ���"� 7��� .8 & ��� )� �#� (���)%65 �#������ �� ���' ��� (%�% �� ������� � �#� (���)%65 �#�� ���� �� #�4#'�#� (���)%6 (%�% �� !� F��5 �#� ���� ���"� ! �#� (���)%6 �� & ���&��( � 0��< ! � �� 2 7-25<85 � ��� (%�% �� (���)%6�( 06 ���(��4 �#� (%�% � �#� �' ' ' �

*1 ������������ ������ �� � ��� �� ����

Page 56: Microcontroller Projects in C for the 8051

���"�� %�( �#�� �#� ���� ���"� �� ��� � ) 4�& ��� %�( �#�� 0%&; � ����5-��� 2 %�( 23 ! �#� (���)%6 %�� & ���&��( � �.K %�( ���� < %�( , %��& ���&��( � �#� 4� "�(5

������� � ���-����

�#� �� 4�%� �� /��6 ����)�5 �#� & "�� �� �����%))6 ��� � 1 %�( �#� (���)%6 )%�&#�� ��� � 2 � %/ �( %�6 "�������� �%) ����� � �#� (���)%65 �#� & "�� �� �#�� ����� �#� (���)%6 %�( �#� (���)%6 )%�&# �� &) &;�(5 �#� ��*� (%�% /%)"� �� 0�%���(06 ��&��������4 �#� & "��5 �#�� �#� & "�� ��%&#�� 2=' �� �� ����� 0%&; � 15 �#�! )) ���4 -�� (��&��0�� �#� !"�&�� �� ! �#� �� 4�%�5 �"�&�� � �!�$���8��(���)%6� (%�% � �#� ���>22L

*2C���� ������

#��"� %��%�

����'�� &������ �� ������ 1

Page 57: Microcontroller Projects in C for the 8051

�� �������

�$)($

��� & "�� � 1��� (���)%6 )%�&# � 2�/ -/(*1*(

%)) !"�&�� � "�R��)>22 � (���)%6 �#� & "����&������ �#� & "��,- & "�� Q 2= $.*+

"�� Q 1*+�,-

��)%6 % ��& �(*+��/

*+�

,!���� �!�$���8��

,����L "��/�����L � ��

�$)($

��� � � 0�� ! & "�����( & "�� � � �� 2��� ���� � ������ ���� � ����

*+�

������� C� ����

�#� !")) �� 4�%� )�����4 �� �# �� �� ��45 >5235 K%��%0)� ����' �� %���4��( � 0��< ! � �� 2 "���4 �#� (��� �����"&�� � ! �#� & ���)��5 K%��%0)� �2& �������%)�F�( � 1 %�( !"�&�� � �!�$���8�� �� &%))�( � (���)%6 �#� /%)"� ! �2&5�2& �� �#�� ��&�������( 06 25 �#�� �2& �� 2=' �� �� ����� 0%&; � 15 �#�) � �� ����%��( ! ��/�� %!��� % 2 ��& �( (�)%6 0������ �%&# & "��5 �#�(���)%6�( (%�% ��L

1 2 + > 3 . = < , 9 21 � � � � 1 2 � � �

�"�&�� � �!�$���8�� ��&��/�� �#� (%�% � 0� (���)%6�( %� ��� %�4"���� 7�5�5 �85�#� ����' �� �����%))6 ��� � 2 06 ) 4�&%) ����4 �#� (%�% ���# #�*%(�&��%) /%)"�1*,15 �#� ����' �� �#�� ��� � 1 � ��%0)� �#� (%�% � 0� ������� � �#� (���)%6%�( �#�� 0%&; � 2 � !���F� �#� (���)%65

*� ������������ ������ �� � ��� �� ����

Page 58: Microcontroller Projects in C for the 8051

*.C���� ������

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� 1

+�C�: � !P1%�

����: �'�' � �...

� !��##! : ���.(���

��� � � ��'��� -�����% � ��C)�� �,- �8�&���� �-���'���� &� -�, � ������&�� -��� � �� �� ������������% �� -������ ��'�� ���� � �� . ��& ��� ���� � �� +<�8�&����>% �� &��� � &� -�,& 6��� ���'� � ���& &�, ��6� ��� �'�-'�%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

��� ���� J ��I2E 4F@�� ��%2 � �� ����F4

4F +'������ �� &�, ���'� � ���& F4

���& 6���D�D ���&<>

N

'� ���& ��� 8E

���<8J�E8L))���E8GG>E

O

4F +'������ �� &� -�, &��� �� � ��C)�� &� -�, F4

���& �'�D��)��<��� 8>

N

��J8 S �8��E 4F#�& &��� 6��� ����J�F4

����J�E 4FC���� �� &���F4

����J�E 4F#� ���� ��F4

O

4F #���� �� ���� -������ F4

����<>

N

��� �5�J�E 4F�������Q ��'��F4

����J�E 4F#� ���� ��F4

���<EE> 4F#���� �� ��-F4

N

�'�D��)��<�5�>E 4F!'�-'� �� ��C)��F4

�5�GGE 4F������� ��'��F4

��<�5� JJ �1>�5�J�E 4F@��= �� � �� �1F4

6���D�D ���&<>E 4F;��� � ���&F4

O

O

#��"� %��&�

������� � ���� �� ������ 1

Page 59: Microcontroller Projects in C for the 8051

�� �� ����������4 � � �� �#%�' �� �%�6 �� 4�%����4 %��)�&%�� �� % /%��%0)� ����&�������( %�( �#�� �����( � ��� �#��#�� �� ��%&#�( % & ���%�� /%)"�5 ���*%��)� �� 4�/�� �� ��45 >523 �#��� /%��%0)� �� �� "��(L

����N�!7�� QQ 2=8��Q1N

� �� �#%� �#� %0 /� & (� & ")( %)� 0� ������� �� % � �� & ��%&� ! �� %�L

�!7���� QQ 2=8��Q1N

���-���� H'��&

�� %((��� � � �#� & �� ����� "��( ! � �#� 0%��& ��&� & ��� ))�� &��&"��' %���>22 �6�� #�*%(�&��%) (���)%6 ��)) 0� ��D"���( ! � �#�� �� B�&�5

�)�0(�� 2 1 �6�7����� ����� ��"��

+'������

�#�� �� B�&� �# �� # � % ��&� & ��� ))�� &%� 0� �����!%&�( � �� ���>22 �6��#�*%(�&��%) (���)%6�5 �#�� �� B�&� & "��� "� & ����" "�)6 !� � 1 � 99 ��(�&��%) ���# %0 "� % ��& �( (�)%6 0������ �%&# & "��5

����'�� �������

�#� &��&"�� (�%4�%� ! �#�� �� B�&� �� �# �� �� ��45 >52.5 �� ���>22 �6��#�*%(�&��%) (���)%6� %�� "��(5 ����)%6 ��� 7� �� ��4��@&%�� (�4��8 ��)) 0��� 4�%���( � �# � �#� ���� %�( ��� 7)�%�� ��4��@&%�� (�4��8 ��)) �# � �#�"����5 �%�% ���"�� 7�' ' ' �8 ! 0 �# (���)%6� %�� & ���&��( �� �%�%))�) � �#� ) ��� �%�� ! � �� 2 7-251 � -25>85 ���� ���"�� 7��� .8 ! �#� (���)%6�%�� & ��� ))�( ���%�%��)65 ���� ���"� ! (���)%6 ��� �� & ���&��( � -25<%�( �#� �%�� ���"� ! (���)%6 ��� �� & ���&��( � -25= ! �#� ��&� & �$�� ))��5

��� (%�% �� (���)%6�( 06 ���(��4 �#� (%�% � � �� 2 %�( �#�� &) &;��4 ���-25<5 ����)%�)6' ��� (%�% �� (���)%6�( 06 ���(��4 (%�% � � �� 2 0"� �#�� ����&) &;��4 ��� -25=5

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

Page 60: Microcontroller Projects in C for the 8051

������� � ���-����

�#� & "�� �� �����%))6 ��� � 15 �#� & "�� �� �#�� ���� � �#� (���)%6 "���4 %!"�&�� � &%))�( "�+R��)>225 �#�� !"�&�� � ���%�%��� �#� /%��%0)� ��� �� (�&��%) �%��� 7��� %�( ���8 %�( ���(� �%&# �%�� � �#� %��� ���%��(���)%65 �#� ��*� (%�% /%)"� �� 0�%���( 06 ��&��������4 �#� & "��5 �#���#� & "�� ��%&#�� 211' �� �� ����� 0%&; � 15 �#� ! )) ���4 -�� (��&��0�� �#�!"�&�� �� ! �#� �� 4�%�5

��C���� ������

#��"� %����

����'�� &������ �� ������ 2

Page 61: Microcontroller Projects in C for the 8051

�� �������

�$)($

��� & "�� � 1��� )%�&#�� � 2�/ -/(*1*(

%)) !"�&�� � "�+R��)>22 ���# & "�� � (���)%6 �#� (%�%��&������ �#� & "��,- & "�� Q 211 $.*+

"�� Q 1*+�,-

��)%6 % ��& �(*+��/

*+�

,!���� �!�%$���8��

,����L "��/�����L � ��

�$)($

�*��%&� �#� @��� (�4�� 7���8 ! & "���*��%&� �#� ��& �( (�4�� 7���8 ! & "����� � � �� 0��� ! ������( ��� � � �� 2��� ��� ���� � ������ ��� ���� � ������� � � �� 0��� ! ������( ��� � � �� 2��� ��� ���� � ������ ��� ���� � ����

*+�

������� C� ����

�#� !")) �� 4�%� )�����4 �� �# �� �� ��45 >52=5 ���� ���"� ! (���)%6 ��� ���%��( ����'$�( %�( �� %���4��( � � �� ��� -25< "���4 �#� (��� �����"&�� �5����)%�)6' ���� ���"� ! (���)%6 ��� �� �%��( ����'$�( %�( �� %���4��( � � �� ��� -25=5 �#� & "�� 7�2&8 �� �����%))6 ��� � 1 %�( 0 �# )%�&#�� %�� ��� � 2� %/ �( %�6 %&&�(���%) ����� � �#� (���)%6�5 �� ��()��� ) � �� �#�� ! ���("���4 �#� ��� ��%������ ���# � %�4"�����5 �"�&�� � �!�%$���8�� �� &%))�( ����(��#� ) � � (���)%6 �#� /%)"� ! �2&5 �2& �� �#�� ��&�������( 06 2 %�( �#��

�( ������������ ������ �� � ��� �� ����

Page 62: Microcontroller Projects in C for the 8051

�� ��%&#�� 211' �� �� ����� 0%&; � 15 �#� ) � �� ����%��( %!��� % 2 ��& �( (�)%60������ �%&# "��"� /%)"�5 �#� (���)%6�( (%�% ��L

1 2 + > 3 . = < , 9 21 � � � 9, 99 1 2 + � � �

�"�&�� � �!�%$���8�� ��&��/�� �#� (%�% � 0� (���)%6�( 7�8 %� ��� %�4"����5 �#��(%�% �� �#�� (�/�(�( 06 21 %�( %���4��( � ����4�� /%��%0)� �( %�( �� �#� (%�%! � �#� ��� (���)%65 �#� ��� (%�% �� &%)&")%��( 06 �"0��%&���4 ��9�( !� ����"� /%��%0)� � %�( �#�� %���4���4 �#�� � %� ����4�� /%��%0)� �%��( �(5 �#�� � + 0��� ! �( (%�% %�� ��� � 2 06 ) 4�&%) ����4 �#� �( (%�% ���##�*%(�&��%) & ���%�� 1*15 �#�� !���F�� 0 �# (���)%6� %�( %/ �(� %�6"��%���( &#%�4�� �� �#� (���)%6�( (%�%5 �#� /%)"� ! �( �� �#�� ���� � � �� 2 ! �#� ��&� & ��� ))�� 06 &) &;��4 �#� ����'$�(5 ����)%�)6' �#� � � +0��� ! �#� �( (%�% %�� ��� � 2 � %/ �( %�6 %&&�(���%) ����� � �#� �� �4(���)%6 %�( �#�� �( �� ���� � � �� 2 ! �#� ��&� & ��� ))�� 06 &) &;��4 �#�����'$�( 0��5

���-���� H'��&

�� %((��� � � �#� & �� ����� "��( ! � �#� 0%��& ��&� & ��� ))�� &��&"��' �� ���>22 �6�� #�*%(�&��%) (���)%6� ��)) 0� ��D"���( ! � �#�� �� B�&�5

�)�0(�� � 1 ��+%�� ���

+'������

�#�� �� B�&� �� % (�&� �%(� "� !� � % ���>22 �6�� #�*%(�&��%) (���)%65 �#��% �"�#$0"�� � ����&#' & ���&��( � 0�� 1 ! � �� >' �� (�������(' % �%�( ��"�0�� 0������ 2 %�( = �� (���)%6�( � �#� (���)%65 �!��� %0 "� + ��& �(� �#�(���)%6 �� &)�%��( %�( �#� "��� &%� �#� � % (�&� %4%��5 �#� �� 4�%� �"�� �� %���()��� ) �5

����'�� �������

�#� &��&"�� (�%4�%� ! �#�� �� B�&� �� �# �� �� ��45 >52<5 � ���>22 (���)%6 ��& ���&��( %� �� -� B�&� =5 �((��� �%))6' % �"�#$0"�� � ����&# 7�28 �� & ���&��(� 0�� 1 ! � �� >5 �#�� ��� �� � ��%))6 #�)( %� ) 4�& 2 ���# �#� �"))$"� ������ ��+ %�( 4 �� � ) 4�& 1 �#�� �#� ����&# �� ������(5

������� � ���-����

�#� (���)%6 )%�&# �� �����%))6 ��� � ) 4�& 2 � %/ �( %�6 %&&�(���%) (%�%(���)%65 �#� ��%�� ! �"�#$0"�� � �2 �� �#�� &#�&;�( & ����" "�)6 %�( �#��

�)C���� ������

Page 63: Microcontroller Projects in C for the 8051

�* ������������ ������ �� � ��� �� ����

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� 2

+�C�: � !P2%�

����: �'�' � �...

� !��##! : ���.(���

��� � � &'� &� -�, ��'��� -�����% �6� ��C)�� �,- �8�&���� �-���'����&� -�, �� ������& �� -��� � �� �� ������������%

�� -������ ��'�� ���� � �� .. ��& ��� ���= �� �% �� &��� � &� -�,& 6��� ���'� � ���& &�, ��6� ��� �'�-'�%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

��� ����D� & J ��I2E 4F@�� ��%2 � �� � & ����F4

��� ����D & J ��I1E 4F@�� ��%1 � �� & ����F4

4F +'������ �� &�, ���'� � ���& F4

���& 6���D�D ���&<>

N

'� ���& ��� 8E

���<8J�E8L))���E8GG>E

O

4F +'������ �� &� -�, &��� �� �6� ��C)�� &� -�, F4

���& �'�(D��)��<��� 8>

N

��� &7� &E

� &J84��E 4F+��& � &F4

&J8?��F� &E 4F+��& &F4

��J� & S �8��E 4F#�& � & &���F4

����D� &J�E 4FC���� � & &���F4

����D� &J�E 4F#� � & ���� ��F4

��J & S �8��E 4F#�& & &���F4

����D &J�E 4FC���� & &���F4

����D &J�E 4F#� & ���� ��F4

O

4F #���� �� ���� -������ F4

����<>

N

��� �5�J�E 4F�������Q ��'��F4

����D� &J�E 4F#� � & ���� ��F4

����D &J�E 4F#� & ���� ��F4

���<EE> 4F#���� �� ��-F4

Page 64: Microcontroller Projects in C for the 8051

�#� 0"�� � �� � � ������(' % & "�� �� ��&�������( 0������ 2 %�( =5 �#�� �#��"�#$0"�� � �� ������(' �#� &"����� /%)"� ! �#� & "�� �� ���� � �#� (���)%6 06&%))��4 �#� !"�&�� � �!�$���8��5 �#� %0 /� �� &��� & ����"�� %!��� %0 "� +��& �(� (�)%65

��C���� ������

N

�'�(D��)��<�5�>E 4F!'�-'� �� ��C)��F4

�5�GGE 4F������� ��'��F4

��<�5� JJ ���>�5�J�E 4F@��= �� � �� ���F4

6���D�D ���&<>E 4F;��� � ���&F4

O

O

#��"� %��/�

������� � ���� �� ������ 2

#��"� %��2�

����'�� &������ �� ������ �

Page 65: Microcontroller Projects in C for the 8051

�#� ! )) ���4 -�� (��&��0�� �#� !"�&�� �� ! �#� �� 4�%�L

�� �������

�$)($

��� )%�&# � 2�/ -/(*1*(

,- 0"�� � �� ������( $.*+

%)) !"�&�� � "�R��)>22 ���# /%)"� ! & "����)%6 + ��& �(�)�%� �#� (���)%6

*��*

��&������ & "��,- & "�� Q < $.*+

"�� Q 2*+�,-

*+�,-

*+��/

*+�

,!���� �!�$���8��

,����; "��/�����; � ��

�$)($

��� � � 0�� ! & "�����( & "�� � � �� 2��� ���� � ������ ���� � ����

*+�

������� C� ����

�#� !")) �� 4�%� )�����4 �� �# �� �� ��45 >52, 7��� ��5 ., %�( .985 ����)%6 )%�&#7/%��%0)� ����'8 �� %���4��( � 0�� < ! � �� 2 "���4 �#� �����"&�� � (���5 ����)%�)6'�#� �"�#$0"�� � �� %���4��( � 0�� 1 ! � �� > %�( �� �%��( �!���5 K%��%0)�*��" �� ��� �#� �%�( � (�&� /%)"��5

�#� (���)%6 )%�&# �� ��� � 2 � %/ �( %�6 "��%���( ����� � �#� (���)%6 %�( �#���()��� ) � ��%��� ���# �#� ��� ��%������5 �#�� �#� 0"�� � �� ������(7�!���� 18' �#� &"����� /%)"� ! *��" �� ���� � !"�&�� � �!�$���8�� �#�&#(���)%6� �#� /%)"�5 �!��� + ��& �(� (�)%6 �#� (���)%6 �� &)�%��( %�( �#� �� 4�%�) � & ����"�� !� � �#� 0�4�����45

�1 ������������ ������ �� � ��� �� ����

Page 66: Microcontroller Projects in C for the 8051

�! �#� 0"�� � �� � � ������( 7�!��� Q 28' �#� /%)"� ! *��" �� ��&�������("���) �� �� < %�( �#�� ��� 0%&; � 25

���-���� H'��&

�� %((��� � � �#� & �� ����� "��( ! � �#� 0%��& ��&� & ��� ))�� &��&"��' �#�! )) ���4 & �� ����� ��)) 0� ��D"���(L

����)%6 ���>22 �6�� #�*%(�&��%) (���)%6�+ 211' 152+. � ������ �

�)�0(�� 3 1 2 8���� �� �! �����

+'������

�#�� �� B�&� �# �� # � % < ��4���� (���)%6 &%� 0� �����!%&�( � % ��&� $& ��� ))��5 �� �#�� �� B�&�' % < ��4���� (���)%6 �� & ���&��( � � �� 2 ! �#���&� & ��� ))�� %�( % �� 4�%� �� ������� � & "�� "� !� � 1 � 9 %�( (���)%6�#� (%�% � �#� < ��4���� (���)%65 �#� �� 4�%� �"�� �� %� ��()��� ) � %�( % 2��& �( (�)%6 �� "��( 0������ �%&# "��"�5

����'�� �������

��/�� ��4���� (���)%6� %�� "��( �� �%�6 ��("����%) %�( & ����&�%) %��)�&%$�� ��5 %��&%))6 �#� (���)%6 & ������ ! ��/�� ��4����� ! ����' & ���&��(���#�� %� & �� � %� (� � & �� � &%�# (�5 �� % & �� �$%� (� (���)%6 �#�%� (�� ! %)) �#� ��� ��4����� %�� & ���&��( � 4��#��5 ����)%�)6' %)) �#�&%�# (�� %�� & ���&��( � 4��#�� �� % & �� �$&%�# (� (���)%65 ��4����� �� % <��4���� (���)%6 %�� �(����@�( 06 4�/��4 �#�� )������ !� � % � 4 %� �# �� ����45 >5295

�2C���� ������

#��"� %��3�

#���� �� � 2 ���� &� -�,

Page 67: Microcontroller Projects in C for the 8051

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

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� �

+�C�: � !P�%�

����: �'�' � �...

� !��##! : ���.(���

��� � � &�� ��'���� -�����% � ��C)�� �,- �8�&���� �-���'���� &� -�, � ������& �� -��� � �� �� ������������%

;�� � -' �?�'����7 ������& �� ��� � �� -��� )7 � &-� &7 � ���&�� �'�����6� � ��& 1 � &� -�,& �� �� �8�&���� &� -�,% ���� ���'� ( ���& ��&� -�,& � ���& ��& �� ' � ��� ����6 �� &�� �����%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4K���'& L���.(���%�M

��� ���� J ��I2E 4F@�� ��%2 � �� ����F4

��� �'���� J �)I�E 4F@�� �)%� � -' �?�'����F4

4F +'������ �� &�, ���'� � ���& F4

���& 6���D�D ���&<>

N

'� ���& ��� 8E

���<8J�E8L))���E8GG>E

O

4F +'������ �� &� -�, &��� �� � ��C)�� &� -�, F4

���& �'�D��)��<'� ���& ���� 8>

N

��J8 S �8��E 4F#�& &���F4

����J�E 4FC���� �� &���F4

����J�E 4F#� ���� ��F4

O

4F #���� �� ���� -������ F4

����<>

N

'� ���& ���� ����E

����J�E 4F#� ���� ��F4

���<EE> 4F#���� �� ��-F4

N

��<�'���� JJ �> 4F@'���� -� &F4

N

�'�D��)��<����>E 4F�� -�, ����F4

6���D�D ���&<>E 4F;��� ( ���& %%F4

6���D�D ���&<>E

Page 68: Microcontroller Projects in C for the 8051

��D"���( &#%�%&���� %�� 4����%��( 06 �"����4 � �#� %��� ���%�� �����4�����5 �%0)� >5> �# �� �#� ��4����� �#%� �# ")( 0� �"���( � � 4����%�� �#� (�&��%) �"�0��� 1 � 95 � 2 �� �#� �%0)� & ����� �(� � �#���4���� 0���4 �5

�#� &��&"�� (�%4�%� ! -� B�&� 9 �� �# �� �� ��45 >5+15 � & �� �$%� (� �6��(���)%6 �� "��( �� �#�� �� B�&�5 �#� %� (� ���� 7> %�( ,8 %�� & ���&��( � �.K5

�.C���� ������

�'�D��)��<�>E 4F��� &� -�,F4

O

N

����GGE 4F��� ����F4

��<���� JJ 2>����J�E 4F#� �� � �� 2F4

O

O

O

#��"� %����

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

#��"� %�$��

����'�� &������ �� ������ .

Page 69: Microcontroller Projects in C for the 8051

��4����� % � 4 %�� & ���&��( � � �� 2 ! �#� ��&� & ��� ))�� /�% 3<1�&"����� )������4 ������ ��5 ��4���� % �� & ���&��( � 0�� 1 ! � �� 2' ��4���� 0� 0�� 2 ! � �� 2' ��4���� & � 0�� + ! � �� 2 %�( � �5

������� � ���-����

� 0�� �%� �%0)� #%� 0��� &��%��( �#�&# �# �� �#� ��4����� � 0� �"���( �%�( �#� & ����� �(��4 #�*%(�&��%) �"�0��� �#%� �# ")( 0� ���� � �#� (���)%6�� �(�� � (���)%6 �#� ��D"���( �"�0���' %� �# �� �� �%0)� >53 7�� �#�� �%0)� *�� � � "��( 0"� ��&)"(�( �� �#� �%0)� � �#%� �#� #�*%(�&��%) �"�0��� &%� 0�(���/�( �%��)6 %� �� 3$0�� ��00)��85

�#� ! )) ���4 -�� (��&��0�� �#� !"�&�� �� ! �#� �� 4�%�L

�$)($

�����%)�F� & "�� %�( 0�� �%����� %��%6�/ -/(*1*(

��� 0�� �%����� & ����� �(��4 � & "���"��"� 0�� �%����� � � �� 2��)%6 2 ��& �(��&������ & "��,- & "�� Q 21 $.*+

"�� Q 1*+�,-

*+��/

*+�

1� ������������ ������ �� � ��� �� ����

��� %�%

4"��� � � * � � �

� � � � � � � �

� � � � � � � �

( � � � � � � �

) � � � � � � �

* � � � � � � �

� � � � � � � �

1 � � � � � � �

2 � � � � � � �

� � � � � � � �

. � � � � � � �

Page 70: Microcontroller Projects in C for the 8051

������� C� ����

�#� !")) �� 4�%� )�����4 �� �# �� �� ��45 >5+25 K%��%0)� �"* �� �����%)�F�( � 15�#� < ��4���� 0�� �%����� �� ) %(�( ��� %��%6 �"*$3��345 �#� ��()��� ) ��� ��%���( ���# �#� ��� ��%������5 �%�% �� ���� � �#� (���)%6 06 ��(�*��4 �#��"*$3��34 ���# �#� �"�0�� � 0� (���)%6�(5 �#� (%�% �� & ��)������(0�! �� �� �� "��"� ���&� �#� "��"� � ��� %�� � "�&��4 &"����� %�( % ��4���� ���"���( � �#�� �#� & ����� �(��4 "��"� 0�� �� %� ) 4�& 15 �!��� % 2 ��& �((�)%6' �#� /%��%0)� �"* �� ��&�������( 06 ��' ��%(6 ! � �#� ��*� (���)%65�#�� /%��%0)� �"* ��%&#�� 21 �� �� ����� 0%&; � 15

�#� ! )) ���4 (%�% �� (���)%6�( 06 �#� < ��4���� (���)%6L

1 2 + > 3 . = < , 9 1 2 + � � �

���-���� H'��&

�� %((��� � � �#� & �� ����� "��( ! � �#� 0%��& ��&� & ��� ))�� &��&"��' �#�! )) ���4 & �� ����� ��)) 0� ��D"���(L

�+ 3<1 �' 152+.� ������ �� 7, ?8����)%6 < ��4���� & �� �$%� (� (���)%6

1�C���� ������

��� %�& #���� ��& ���� -��&��� ��� -�����

4"��� - � � * � � � 5-

� � � � � � � � � )+

� � � � � � � � � �1

( � � � � � � � � �@

) � � � � � � � � *+

* � � � � � � � � 11

� � � � � � � � � 1�

1 � � � � � � � � 2�

2 � � � � � � � � �2

� � � � � � � � � 2+

. � � � � � � � � 12

Page 71: Microcontroller Projects in C for the 8051

�)�0(�� �� 1 #�"�7*���� +(� �� �! �������

+'������

�#�� �� B�&� �# �� # � % 3$(�4�� (���)%6 &%� 0� �����!%&�( � % ��&� & ��� ))��5�#� (���)%6 �� �#%)) 0� "���4 �� �#�� �� B�&� �� �#� ���.�>3 ������ 15> 3$(�4��

1( ������������ ������ �� � ��� �� ����

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� .

+�C�: � !P.%�

����: �'�' � �...

� !��##! : ���.(���

��� � � 2 ���� &� -�, ������� -�����% �� &� -�, � ������& �� -��� � �� �������������� ��& ��'�� '- ���� � �� . 6��� � ���& &�, ��6� ��� ��'��%FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

4F +'������ �� &�, ���'� � ���& F4

���& 6���D�D ���&<>

N

'� ���& ��� 8E

���<8J�E8L))���E8GG>E

O

4F #���� �� ���� -������ F4

����<>

N

��� C��J�E 4F�������Q �� �F4

��� C��D� �$U��VJ

N�8)+7�8�17�8�@7�8*+7�8117�81�7�82�7�8�27 �82+7�812

OE

���<EE> 4F#���� �� ��-F4

N

��JRC��D� �$UC��VE 4FC�� ��F4

6���D�D ���&<>E 4F;��� � �F4

C��GGE 4F��� ��'��F4

��<C�� JJ ��>C��J�E 4F#� �� �F4

O

O

#��"� %�$��

������� � ���� �� ������ .

Page 72: Microcontroller Projects in C for the 8051

(���)%6 ���# �$0 %�( (��/��5 �#�� (���)%6 &%� 0� "��( �� �%�6 ��&� & �$�� ))��$0%��( %��)�&%�� ��' ��&)"(��4 (�4��%) &) &;�' �#��� ����� &��&"���'�����"���� ��%( "��' & "�����' / )������� %�( � �5 �� �#�� �� B�&� �� �#%))(���4� % 3$(�4�� "�$& "���� �#�&# & "��� !� � 1 � 99995 �� �#%)) 0� "���4 �#��(���)%6 �� � �� ! "� �#�� �� B�&�� %� % /��"%) ��%( "� (�/�&�5

�#��B)* #�� �� -�,

�#� ���.�>3 �� % 15> 3$(�4�� (���)%6 ���# �$0 %�( ����%) (%�% ���"� 7��45>5++85 ����%) (%�% ��%��!�� !� � % ��&� & ��� ))�� � �#� (���)%6 �� %&& ��)��#�(���# �#��� ��4�%)�L ����%) (%�%' (%�% ��%0)�' %�( &) &;5 �#� (%�% ! ��%� & ������ ! % )�%(��4 M2:' ! )) ��( 06 >. (%�% 0���' �%&# 0�� & ����� �(��4 � �#���4����� � 0� �"���( � �� �#� (���)%65 �)) ! �#� ! "� (�4��� %�� �� 4�%���(%� �#� �%�� ���� 06 ���(��4 >. 0��� ! ����%) (%�% � �#� (���)%65 �#� &) &; ���"��� �")��( %!��� �%&# (%�% �� ����5 �#� ��%0)� ���"� �# ")( 0� %� ) 4�& 1 � ��%0)��� 4�%����4 ! �#� (�/�&�5

�#��� %�� �%��)6 �� /���� �� ! �#� ��� ������ ! (���)%6�5 ���.*** (�/�&��&%� (��/� �� �*����%) ���� %�( ���=*** ������ (�/�&�� ��& �� �%�� �#�

1)C���� ������

#��"� %�$$�

�#���)* *?&���� &� -�,

Page 73: Microcontroller Projects in C for the 8051

& ) � &#%�%&��� %� �%�� ! �#� (���)%65 �� �#� ���.*** ������' ���.1>3 �������( )�4#�' ���.+>3 ����� 4���� )�4#�' %�( ���.<>3 ����� #�4# �J&���&6 ��()�4#�5 �� �#�� �� B�&� �� �#%)) 0� "���4 �#� � �")%� ���.1>3 �6�� (���)%65

�#���6$@/� 0��� ! (%�% �# ")( 0� ���� � �#� (���)%6 ! )) ���4 % M2: ��%�� 0��5�%0)� >5. �# �� �#� 0�� �%������ ! � �%&# ��4���� ! �#� (���)%65

�� %� �*%��)�' �"�� �� �#%� �� �%�� � �"�� � ��4���� ! (�4�� 2' ��4���� ! (�4�� +' ��4����� %�( � ! (�4�� >' %�( ��4����� �' ' %�( ! (�4�� 3'%�( �� %�� � � & ���&���4 %�6 �*����%) ���� � �#� (���)%6' %�( �#� (�&��%)� ���� �# ")( 0� ?5 �#� 0�� �%����� �# �� �� ��45 >5+> �# ")( �#�� 0� ���� � �#� (���)%6 7�%&# 0�� �# ")( 0� &) &;�( 06 ���(��4 % &) &; �")��85

1* ������������ ������ �� � ��� �� ����

��� %�� @�� -����� ��� ��� ���� �� �� &� -�,

'�� ����� 8���� '�� ����� 8����

� � � �� ) @

( � @ �. ) �

) � � (� ) �

* � � (� ) �

� � � (( ) +

1 � + () ) 9

2 � 9 (* ) �-

� � �- (� * �

. ( � (1 * @

�� ( @ (2 * �

�� ( � (� * �

�( ( � (. * �

�) ( � )� * +

�* ( + )� * 9

�� ( 9 )( * �-

�1 ( �- )) A C���

�2 ) � )* A C��(

Page 74: Microcontroller Projects in C for the 8051

�#� �%����� �%6 ! & ��� ))��4 �#� ��� (���)%6 �� � &��%�� % �%0)� ! 0���%������ ! � �%&# (�&��%) (�4�� 1 � 95 �! �� %��"�� �#%� ��4���� � �� �#� � ����4��@&%�� 0�� �� �#�� �%0)�' ! � % 4�/�� (�4�� �� &%� ��%( �#� ��D"���( 0�� �%�����!� � �#� �%0)� %�( �#�� ���( 0��� � �#� (���)%6 06 �#�!���4 �#� 0��� )�!�' �� 0��%� % ���� ! � �%&# (�4��5 �#� � �%) �"�0�� ! (%�% 0��� ���� ��)) 0� ,� 3� >+0��� ! � 3 (�4���' + 0��� ! � �#� �� ����' �%;��4 % � �%) ! >35 �� %((��� �' ��#%/� � ���( % ��%�� 0��' �%;��4 %� /��%)) � �%) ! >. 0���5

�%0)� >5= �# �� �#� ��)%�� ��#�� 0������ �#� (�&��%) �"�0��� 1 � 9' �#�& ����� �(��4 ���.1>3 0�� �%������' %�( �#� & ����� �(��4 /%)"�� �� #�*$%(�&��%)5

1�C���� ������

#��"� %�$%�

@�� -����� ��� �� 8��-

��� %�/ 5'��� ��& ���� -��&��� �#���)* ��� -�����

4"��� 9 ' � � ( # : � 5- ��*

� � � � � � � � � +�

� � � � � � � � � 1�

( � � � � � � � � ��

) � � � � � � � � +(

* � � � � � � � � 11

� � � � � � � � � @1

1 � � � � � � � � @�

2 � � � � � � � � ��

� � � � � � � � � +�

. � � � � � � � � +1

Page 75: Microcontroller Projects in C for the 8051

�� %� �*%��)�' �! �� �%�� � (���)%6 �#� (�&��%) �"�0�� +>=<' �� #%/� � ���(�#� ! )) ���4 0�� �%�����L

2 ��%�� 0��22122121 ��*%(�&��%) �� ! � (�&��%) (�4�� +22221121 ��*%(�&��%) �+ ! � (�&��%) (�4�� >21222221 ��*%(�&��%) � ! � (�&��%) (�4�� =22211111 ��*%(�&��%) �1 ! � (�&��%) (�4�� <1 �"�� ? ��� 21 �"�� ? ��� +

�� ��)) �#���! �� 0� ��&���%�6 � & �/��� % 4�/�� �"�0�� ��� ! "� (�&��%) (�4���%�( �#�� "�� �#� %0 /� ��&#��D"� � (���)%6 ��5

� ��D"���( (�4�� &%� 0� � �%))6 0)%�;�( 06 ���(��4 %)) F�� � ! � �#%� (�4��5 �#��& ")( 0� "��!") �#�� �� �� ��D"���( � 0)%�; �#� )�%(��4 (�4��� �����%( !(���)%6��4 F�� � �! �#� �"�0�� � 0� (���)%6�( �� )��� �#%� ! "� (�4���5

����'�� �������

�#� &��&"�� (�%4�%� ! -� B�&� 21 �� �# �� �� ��45 >5+35 �#� &��&"�� �� /��6����)�5 �� = ! � �� 2 �� & ���&��( � �#� &) &; ���"� ! �#� (���)%65����)%�)6' 0�� < ! � �� 2 �� & ���&��( � �#� (%�% ���"� ! �#� (���)%65����)%6 ��� < �� �#� 0��4#����� & ��� ) ���"� %�( �� �# ")( 0� & ���&��( � �#� �"��)6 / )�%4� /�% % �"��%0)� ������ �5 � 1512 �� &%�%&�� � �� ��& �$���(�( 06 �#� �%�"!%&�"��� %� �� �� �� %�6 �&�))%�� ��5 K�� %�( K����# ")( � ��%))6 0� & ���&��( � � .K' %)�# "4# K��� &%� %)� 0�& ���&��( � % ��%))�� / )�%4� ! � ) ��� � ��� & ��"���� �5 �#� ��%0)����"� 7��� >8 �� & ���&��( � �#� 4� "�(5 �� �")���)� (���)%6 ���%�� �� �� ����&���%�6 � & ��� ) �#� ��%0)� ���"� ! �%&# (�/�&� ��(�/�("%))6 � �#%� (%�%%�( &) &; &%� 0� � "��( � �#� ��D"���( (���)%65

������� � ���-����

�#� �� 4�%� �� % ����)� 3$(�4�� (�&��%) & "����5 � & "���� �� �����%)�F�( � 1%�( �#� (���)%6 �� &)�%��( %� �#� 0�4�����4 ! �#� �� 4�%�5 �#� & "���� �� �#��(���)%6�( %�( ��&�������( �� %� ��()��� ) �5 �#� ! )) ���4 -�� (��&��0�� �#�!"�&�� �� ! �#� �� 4�%�L

11 ������������ ������ �� � ��� �� ����

Page 76: Microcontroller Projects in C for the 8051

�� �������

�$)($

�����%)�F� & "���� � 1%)) !"�&�� � &)�%�R(���)%6�/ -/(*1*(

%)) !"�&�� � (���)%6R%)) ���# & "������)%6��&������ & "��

*+��/

*+�

,!���� �����$�(����

,����; � ��/�����; � ��

�$)($

��� (���)%6 (%�% � 2 7��%�� 0��8%)) !"�&�� � ���(R&) &; � ���( % &) &; �")��

12C���� ������

#��"� %�$&�

����'�� &������ �� ������ ��

Page 77: Microcontroller Projects in C for the 8051

��� (���)%6 (%�% � 1���( >. &) &; �")���

*+�

,!���� (�$����)

,����; � ��/�����; � ��

�$)($

��� (���)%6 &) &; ���"� � 2��� (���)%6 &) &; ���"� � 1

*+�

,!���� �(����$���

,����; "��/�����; � ��

�$)($

�/��� (%�% ��� 3 (�&��%) (�4���%)) !"�&�� � (���)%6R(�4�� � (���)%6 ��4�� 2%)) !"�&�� � (���)%6R(�4�� � (���)%6 ��4�� +%)) !"�&�� � (���)%6R(�4�� � (���)%6 ��4�� >%)) !"�&�� � (���)%6R(�4�� � (���)%6 ��4�� 3

*+�

,!���� �(����$����

,����; ��4�� /%)"�/�����; � ��

�$)($

��� 0�� �%� ! �#� (�4�� � 0� (���)%6�(��� � � 0�� ! �#� 0�� �%�����,- � � 0�� Q 1 $.*+

���( 1 � �#� (���)%6 (%�% ���"�*��*

���( 2 � �#� (���)%6 (%�% ���"�*+�,-

���( % &) &; �")�� � �#� (���)%6�#�!� 0�� �%� )�!� 06 2 0��

*+�

1� ������������ ������ �� � ��� �� ����

Page 78: Microcontroller Projects in C for the 8051

������� C� ����

�#� !")) �� 4�%� )�����4 �� �# �� �� ��45 >5+.5 K%��%0)� �"* �� �����%)�F�( � 1%� �#� 0�4�����4 ! �#� �%�� �� 4�%�5 �"�&�� � �����$�(���� �� �#�� &%))�( � &)�%� %)) (�4��� ! �#� (���)%65 �#� ��()��� ) � ��%��� ���# �#� ��� ��%������5����(� �#�� ) �' !"�&�� � �(����$��� �� &%))�( � (���)%6 �#� /%)"� ! /%��%0)��"* %� ! "� (�4���5 (�4��� � �#� ���.1>35 �#� /%)"� ! /%��%0)� �"* �� �#����&�������( %�( �#� ) � �� ����%��( ! ��/��5

�"�&�� � �(����$��� ��&��/�� �#� �"�0�� � 0� (���)%6�( %� ��� %�4"���� 7 ���#�� &%��85 �#�� �"�0�� &%� �%�4� !� � 1 � 99995 ����� ! %)) �#�� �"�0�� ��& �/����( ��� ! "� (�&��%) (�4��� %�( �#��� (�4��� %�� �� ��( �� ����4��/%��%0)�� :�(�' (���' �'��' %�( ��!��'' �#��� @��� �� (�4�� 2 %�( ��!��' ��(�4�� 35 �"�&�� � �(����$���� �� �#�� &%))�( � (���)%6 �#� (�4�� /%)"��5 �#��!"�&�� � �� ��� �#� 0�� �%� ! �#� (���)%6 �� %��%6 �"*$3��345 �#� 0�� �%�& ����� �(��4 � �#� �"�0�� � 0� (���)%6�( �� 0�%���( 06 �#� ��%��������"*$3��346�75 �#� � � 0�� ! �#�� 0�� �%� �� �#�� �*%����(5 �! �#� � �0�� �� % 2 �#�� % 2 �� ���� � �#� (%�% ���"� ! �#� (���)%6' �#������ % 1 �� ���� � �#� (%�% ���"� ! �#� (���)%65 �#� (���)%6 �� �#�� &) &;�( 06 &%))��4 �#� !"�&�� �(�$����)' �#�&# ���(� % ���4)� &) &; �")�� � �#� (���)%65 �#� 0�� �%� (%�% ���#�� �#�!��( )�!� "���4 �#� �#�!� ���%� � M�: � �#%� �#� ��& �( 0�� &%� 0� �����(%�( ���� � �#� (���)%65 �#�� �� ����%��( ! � %)) , 0��� ! �#� 0�� �%�5

@��=��� C�&��� W��

�#� �� 4�%� )�����4 4�/�� �� ��45 >5+. (���)%6� �#� (%�% %� % 3$(�4�� �"�0�����# )�%(��4 F�� �5 � � �*%��)�' �"�0�� +< �� (���)%6�( %� 11+<5 �#��� %���%�6 %��)�&%�� �� �#��� �� �%6 �%�� � 0)%�; �#� )�%(��4 F�� �5 �� �� � ���0)�� 0)%�; �#� )�%(��4 F�� � 06 ������4 %)) ��4����� ! �#� )�%(��4 F�� (�4��� � �#� ? ��%��5 �#�� �� ( �� �� �#� �� 4�%� )�����4 �# �� �� ��45 >5+=5 ����' % ���0�� �%� 1 �� ���� ("&�( ��� %��%6 �"*$3��34 %�( �#� %��%6 (������ � ����&��%��( � 225 �#� ��� 0�� �%� �� ��(�*�( ���# �"�0�� 215 �"�&�� ��(����$��� �� &#%�4�( � �#%� 0)%�;� %�� (���)%6�( �����%( ! )�%(��4 F�� ��#�� �#� �"�0�� ! (�4��� �� )��� �#%� 35 � � �*%��)�' �! �#� �"�0�� � 0�(���)%6�( �� )��� �#%� 2111' �#� @��� (�4�� �� (���)%6�( 06 "���4 �#� 0�� �%�(�@��( 06 �"*$3��346��7' �#�&# �� 1' �5�5 %)) �#� ��4����� ! �#� (�4�� %����� � 15 ����)%�)6' �! �#� �"�0�� � 0� (���)%6�( �� )��� �#%� 211' �#� ��& �(7%�( @���8 (�4�� �� (���)%6�( ���# �#� ��4����� �"���( ?5

9��� �� -�, �������

�#��� �%6 0� � �� %��)�&%�� �� �#��� �� �%6 ���( � �# � )�%(��4 F�� � %�(%)� �#� (�&��%) � ����5 �#� �� 4�%� )�����4 4�/�� �� ��45 >5+< ��%0)�� 0 �# �#�)�%(��4 F�� � %�( �#� (�&��%) � ���� � 0� ��� �%))6 (���)%6�(5 �"�&�� �

1.C���� ������

Page 79: Microcontroller Projects in C for the 8051

2� ������������ ������ �� � ��� �� ����

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� ��

+�C�: � !P��%�

����: �'�' � �...

� !��##! : ���.(���

��� � � �#���)*?�� & *?&���� &� -�, ������� -�����% �� &� -�, ��'�� '- ���� � ��.... 6��� ���'� � ���& &�, ��6� ��� ��'��%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

��� ��#�C�$D�C!�/J��I1E

��� ��#�C�$D���� J��I2E

4F +'������ �� &�, ���'� � ���& F4

���& 6���D�D ���&<>

N

'� ���& ��� 8E

���<8J�E8L))���E8GG>E

O

4F +'������ �� �& � ���= -' �� �� &� -�, F4

���& �&D���=<>

N

��#�C�$D�C!�/J�E

��#�C�$D�C!�/J�E

O

4F +'������ �� &� -�, � ��� &���� F4

���& &� -�,D&����<��� 8>

N

'� ���& ���� C��D� �$U��VJ

N

�8+�7�81�7�8��7�8+(7�8117�8@17�8@�7 �8��7�8+�7�8+1

OE

'� ���& ���� �7��-D���7�E

�JC��D� �$U8VE

���<�J�E�LJ�E�GG>

N

��-D���J� X �8��E 4F9� ��- ���F4

��<��-D��� YJ �>

��#�C�$D����J�E

��#�C�$D����J�E

Page 80: Microcontroller Projects in C for the 8051

2�C���� ������

�&D���=<>E

�J� LL �E 4F#���� �� �, � &����F4

O

O

4F +'������ �� &� -�, � * &���� F4

���& &� -�,D�<��� �>

N

��� �73� �7 ���&7����&7��'���E

3� �J�4����E

�J�?����F3� �E

���&J�4���E

�J�?���F ���&E

����&J�4��E

��'���J�?����&F��E

��#�C�$D����J�E

�&D���=<>E

&� -�,D&����<3� �>E 4F &� -�, &���� �F4

&� -�,D&����< ���&>E 4F&� -�, &���� (F4

&� -�,D&����<����&>E 4F&� -�, &���� )F4

&� -�,D&����<��'���>E 4F&� -�, &���� *F4

��#�C�$D����J�E

�&D���=<>E 4F)� �= �H'��&F4

�&D���=<>E

�&D���=<>E

O

4F +'������ �� ��� �� &� -�, F4

���& ���D&� -�,<>

N

��� �E

��#�C�$D����J�E

��#�C�$D�C!�/J�E

��#�C�$D����J�E

�&D���=<>E

��#�C�$D����J�E

���<�J�E�LJ)�E�GG> �&D���=<>E

O

4F #���� �� ���� -������ F4

����<>

N

��� C��J�E 4F�������Q �� �F4

Page 81: Microcontroller Projects in C for the 8051

�(����$��� (���)%6� %� ����4�� �"�0�� 0������ 1 %�( 99995 �#�� !"�&�� � ��&%))�( ���# �#� ! )) ���4 %�4"�����L

(���)%6R%))7�')F'(�2'(�+'(�>'(�38

�#���L

� �� �#� �"�0�� � 0� (���)%6�()F �� �#� )�%(��4 F�� 0)%�;��4 C%45 �! )FQ1' (%�% �� (���)%6�( ���#

)�%(��4 F�� �5 �! )FQ2' (%�% �� (���)%6�( ���# )�%(��4 F�� �0)%�;�(5

(�2 � (�3 �#��� %�� �#� (�&��%) � ��� ��%0)� 0��� ! � (�4��� 2 � 3�����&��/�)65 � � �*%��)�' �! (�2Q1 �#�� �#� (�&��%) � ��� !(�4�� 2 �� � � (���)%6�(5 �! � �#� �#�� #%�(' (�2Q2 �#�� �#�(�&��%) � ��� ! (�4�� 2 �� (���)%6�(5

� � �*%��)�' �#� !"�&�� � &%))L

�(����$���0�%;��������1

��)) (���)%6 �#� ! )) ���4 (%�%L

12+53

�5�5 )�%(��4 F�� � %�� ��%0)�( %�( % (�&��%) � ��� �� �������( %!��� (�4�� >5

���-���� H'��&

�� %((��� � � �#� & �� ����� "��( ! � �#� 0%��& ��&� & ��� ))�� &��&"��' �#�! )) ���4 & �� ����� ��)) 0� ��D"���( ! � �#�� �� B�&�L

2( ������������ ������ �� � ��� �� ����

���D&� -�,<>E 4F��� &� -�,F4

���<EE> 4F#���� �� ��-F4

N

&� -�,D�<C��>E

6���D�D ���&<>E 4F;��� � ���&F4

C��GGE 4F������� ��'��F4

O

O

#��"� %�$��

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

Page 82: Microcontroller Projects in C for the 8051

2)C���� ������

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� ��

+�C�: � !P��?�%�

����: �'�' � �...

� !��##! : ���.(���

��� � � 2 ���� &� -�, ������� -�����% �� &� -�, ��'�� '- ���� � �� . 6��� ���'�� ���& &�, ��6� ��� ��'��%

��� -������ ���= �� '�' & �&��� &���� %

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

��� ��#�C�$D�C!�/J��I1E

��� ��#�C�$D���� J��I2E

4F +'������ �� &�, ���'� � ���& F4

���& 6���D�D ���&<>

N

'� ���& ��� 8E

���<8J�E8L))���E8GG>E

O

4F +'������ �� �& � ���= -' �� �� &� -�, F4

���& �&D���=<>

N

��#�C�$D�C!�/J�E

��#�C�$D�C!�/J�E

O

4F +'������ �� &� -�, � ��� &���� F4

���& &� -�,D&����<��� 8>

N

'� ���& ���� C��D� �$U��VJ

N

�8+�7�81�7�8��7�8+(7�8117�8@17�8@�7�8��7�8+�7�8+17�

OE

'� ���& ���� �7��-D���7�E

�JC��D� �$U8VE

���<�J�E�LJ�E�GG>

N

��-D���J� X �8��E 4F9� ��- ���F4

��<��-D��� YJ �>

��#�C�$D����J�E

Page 83: Microcontroller Projects in C for the 8051

2* ������������ ������ �� � ��� �� ����

��#�C�$D����J�E

�&D���=<>E

�J� LL �E 4F#���� �� �, � &����F4

O

O

4F +'������ �� &� -�, � * &���� F4

���& &� -�,D�<��� �>

N

��� �73� �7 ���&7����&7��'���E

3� �J�4����E

�J�?����F3� �E

���&J�4���E

�J�?���F ���&E

����&J�4��E

��'���J�?����&F��E

��#�C�$D����J�E

�&D���=<>E

��<� L ����> 4F@��= �&��� Q��F4

&� -�,D&����<��>E

&� -�,D&����<3� �>E

��<� L ���>

&� -�,D&����<��>E

&� -�,D&����< ���&>E

��<� L ��>

&� -�,D&����<��>E

&� -�,D&����<����&>E

&� -�,D&����<��'���>E

��#�C�$D����J�E

�&D���=<>E 4F)� �= �H'��&F4

�&D���=<>E

�&D���=<>E

O

4F +'������ �� ��� �� &� -�, F4

���& ���D&� -�,<>

N

Page 84: Microcontroller Projects in C for the 8051

�+ ,5+' 152+.� ������ �3 1512 �� &%�%&�� �����)%6 ���.1>3

�)�0(�� �� 1 �����" � ����� (��� ��"��� 6��� &7*����+(� �� �!

+'������

�#�� �� B�&� �# �� # � �#� �*����%) ������"�� ���"� ! �#� ��&� & ��� ))�� &%�0� �� 4�%���( "���4 �#� )%�4"%4�5 �#� �� B�&� �� % ����)� ������"��$0%��(�/��� & "���� �#�&# &%� & "�� �*����%) �/���� !� � 1 � 99995 � ���.1>3�6�� 3$(�4�� (���)%6 �� & ���&��( � � �� 2 ! �#� ��&� & ��� ))��5 �� 1 ! � �� >�� & ���&��( � % �"�#$0"�� � ����&# �2 �#�&# �� "��( � &)�%� �#�(���)%6 �#���/�� ��D"���(5 �*����%) ������"�� ���"� ���1 7��� =8 ! �#�

2�C���� ������

��� �E

��#�C�$D����J�E

��#�C�$D�C!�/J�E

��#�C�$D����J�E

�&D���=<>E

��#�C�$D����J�E

���<�J�E�LJ)�E�GG> �&D���=<>E

O

4F #���� �� ���� -������ F4

����<>

N

��� C��J�E 4F�������Q �� �F4

���D&� -�,<>E 4F��� &� -�,F4

���<EE> 4F#���� �� ��-F4

N

&� -�,D�<C��>E

6���D�D ���&<>E 4F;��� � ���&F4

C��GGE 4F������� ��'��F4

O

O

#��"� %�$/

������� � ���� �� ������ �� 6��� �&��� Q�� ���=&

Page 85: Microcontroller Projects in C for the 8051

21 ������������ ������ �� � ��� �� ����

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� ��

+�C�: � !P��?(%�

����: �'�' � �...

� !��##! : ���.(���

��� � � *?&���� �#���)* &� -�, ������� -�����% �� &� -�, ��'�� '- ���� � �� ....6��� ���'� � ���& &�, ��6� ��� ��'��%

��� -������ ��6 �� �&��� Q�� 6��� &���� -���� ��6� &���� ( ��& )%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

��� ��#�C�$D�C!�/J��I1E

��� ��#�C�$D���� J��I2E

4F +'������ �� &�, ���'� � ���& F4

���& 6���D�D ���&<>

N

'� ���& ��� 8E

���<8J�E8L))���E8GG>E

O

4F +'������ �� �& � ���= -' �� �� &� -�, F4

���& �&D���=<>

N

��#�C�$D�C!�/J�E

��#�C�$D�C!�/J�E

O

4F +'������ �� &� -�, � ��� &���� F4

���& &� -�,D&����<��� 87���� &->

N

'� ���& ���� C��D� �$T��UJ

N

�8+�7�81�7�8��7�8+(7�8117�8@17�8@�7�8��7�8+�7�8+17�

OE

'� ���& ���� �7��-D���7�E

�JC��D� �$T8U S &-E 4F#� &���� -����F4

���<�J�E�LJ�E�GG>

N

��-D���J� X �8��E 4F9� ��- ���F4

��<��-D��� YJ �>

��#�C�$D����J�E

Page 86: Microcontroller Projects in C for the 8051

22C���� ������

��#�C�$D����J�E

�&D���=<>E

�J� LL �E

O

O

4F +'������ �� &� -�, � * &���� F4

���& &� -�,D�<��� �7���� Q7���� &-�7���� &-(7���� &-)7���� &-*>

N

��� �73� �7 ���&7����&7��'���E

3� �J�4����E

�J�?����F3� �E

���&J�4���E

�J�?���F ���&E

����&J�4��E

��'���J�?����&F��E

��#�C�$D����J�E

�&D���=<>E

4F @��= �&��� Q�� F4

��<� L ���� XX Q JJ �>

&� -�,D&����<��7�>E

&� -�,D&����<3� �7&-�>E

��<� L ��� XX Q JJ �>

&� -�,D&����<��7�>E

&� -�,D&����< ���&7&-(>E

��<� L �� XX Q JJ �>

&� -�,D&����<��7�>E

&� -�,D&����<����&7&-)>E

��<Q JJ �>

&� -�,D&����<��'���7�>E

&� -�,D&����<��'���7&-*>E

��#�C�$D����J�E

�&D���=<>E

�&D���=<>E

�&D���=<>E

O

4F ��� �'������ ��� �� &� -�, F4

Page 87: Microcontroller Projects in C for the 8051

��&� & ��� ))�� �� "��( %� %� �(4�$���44���( �/��� ���"�5 �� �*����%) �/��� &&"�� �#�� ���1 �� &) &;�( !� � 2 � 15

����'�� �������

��4"�� >5+, �# �� % 0) &; (�%4�%� ! �#� #%�(�%��5 �#� �"�#$0"�� � ����&# ���#� ����� ���"�5 �*����%) �/���� %�� !%))��4 �(4� ���44���(5 � ���.1>3 (���)%6�# �� �#� �/��� & "�� %� %�6 ����5

�#� & ��)��� &��&"�� (�%4�%� ! �#�� �� B�&� �� �# �� �� ��45 >5+95 ���.1>3 ��& ���&��( � � �� 2 ! �#� ��&� & ��� ))��5 �#� &) &; ���"� �� & ���&��( � 0��= ! � �� 2 %�( �#� (%�% ���"� �� & ���&��( � 0�� < ! � �� 25 �� 1 ! � �� > ��& ���&��( � �#� �/��� ����� ����&# �25 �#�� ���"� �� � ��%))6 #�)( %� ) 4�& 2���# �#� �"))$"� ������ � �>5 �#�� �#� ����&# �� ������( �#� ��� 4 �� � ) 4�& 1�#�&# &%� 0� (���&��( 06 �#� � !��%��5 �*����%) ������"�� ���"� ���1 �� "��( %��#� �/��� & "���� ���"�5 �#�� ��� �� � ��%))6 #�)( %� ) 4�& 2 ���# �#� �"))$"������� � �35 �� �*����%) �/��� &&"�� �#�� �#�� ��� �� &) &;�( � 15 �#��

2� ������������ ������ �� � ��� �� ����

���& ���D&� -�,<>

N

��� �E

��#�C�$D����J�E

��#�C�$D�C!�/J�E

��#�C�$D����J�E

�&D���=<>E

��#�C�$D����J�E

���<�J�E�LJ)�E�GG> �&D���=<>E

O

4F #���� �� ���� -������ F4

����<>

N

��� C��J�E 4F�������Q �� �F4

���D&� -�,<>E 4F��� &� -�,F4

���<EE> 4F#���� �� ��-F4

N

&� -�,D�<C��7�7�7�7�7�>E

6���D�D ���&<>E 4F;��� � ���&F4

C��GGE 4F������� ��'��F4

O

O

#��"� %�$2�

������� � ���� �� � ��� ���� &� -�, -������

Page 88: Microcontroller Projects in C for the 8051

4����%��� %� ������"�� �� �#� � !��%�� �#�&# ��&������� �#� & "�� %�( (���)%6��#� � �%) �"�0�� ! �/���� &&"���(5

������� � ���-����

�#� �� 4�%� @��� �����%)�F�� �#� ������"�� ��4������ ! �#� ��&� & ��� ))�� � �#%� �*����%) ������"��� � ��� ���1 &%� 0� (���&��(5 �� ��()��� ) � �� �#��

2.C���� ������

#��"� %�$��

@��= &������ �� �� ��� ��'���

#��"� %�$3�

����'�� &������ �� ������ ��

Page 89: Microcontroller Projects in C for the 8051

! ���( ���# % ��� ��%������5 ����(� �#�� ) � �#� ����� ���"� 70�� 1 ! � �� >8 ��&#�&;�( %�( �#�� �#� ����� ����&# �� ������(' �#� & "���� �� &)�%��( � F�� 5 �#�������"�� ���/�&� � "���� ����)6 ��&������� �#� &"����� �/��� & "�� %�((���)%6� �#� ���")�5

�#� ! )) ���4 -�� (��&��0�� �#� !"�&�� �� ! �#� �� 4�%�L

�� �������

�$)($

)�%� (���)%6�����%)�F� �*����%) ������"�� ���1�/ -/(*1*(

,- ����� ����&# �� ������( $.*+

)�%� �/��� & "����)�%� (���)%6

*+�,-

*+��/

*+�

�����!�� (��<��� ��!���

�$)($

��&������ �/��� & "��������)%6 �/��� & "����

*+�

�#� (���)%6 �%�� ! �#� �� 4�%� �� �#� �%�� %� �� -� B�&� 21 %�( �� � �(��&��0�( #��� %4%��5

������� C� ����

�#� !")) �� 4�%� )�����4 �� �# �� �� ��45 >5>15 K%��%0)� *�=��34$����>�� �#� &) &; ���"� ! �#� (���)%6 %�( �� %���4��( � 0�� = ! � �� 25*�=��34$*3&3 �� �#� (%�% ���"� ! �#� (���)%6 %�( �� %���4��( � 0�� < !� �� 25 �� 1 ! � �� > �� %���4��( � /%��%0)� �"="&$��?2&"�5 K%��%0)�"."2& �� "��( %� �#� �/��� & "����5 �#� �� 4�%� @��� ! %)) &)�%�� �#� (���)%65�#� ������"�� ��4������ ! �#� ��&� & ��� ))�� %�� �#�� �� 4�%���(5 ��%�������&�� � ���� �*����%) ������"�� ���"� ���1 � �#%� ������"��� &%� 0� ��& 4��F�( � �#� !%))��4 �(4� 72 � 18 ! �#�� ���5 ��%������ "@�� � ��%0)�� �*����%)������"�� ���15 ��%������ "3� � ��%0)�� ������"��� � �#%� �#�6 &%� 0�%&&����( 06 �#� ��&� & ��� ))��5 ����(� �#� ��()��� ) � �#� ����� ���"� ��&#�&;�(5 �! �#� "��� ������� ����� 7�5�5 �"="&$��?2&"�� �8' �#� & "����/%)"� "."2& �� ����� � F�� %�( �#� (���)%6 �� &)�%��(5

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

Page 90: Microcontroller Projects in C for the 8051

��C���� ������

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� ��

+�C�: � !P��%�

����: �'�' � �...

� !��##! : ���.(���

��� � � *?&���� �#���)* &� -�, ������� -�����% �� &� -�, ��'�� '- ���� � �� ....6��� ���'� � ���& &�, ��6� ��� ��'��%

��� -������ ��6 �� �&��� Q�� 6��� &���� -���� ��6� &���� ( ��& )%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

��� ��#�C�$D�C!�/J��I1E

��� ��#�C�$D���� J��I2E

��� �#��D�!"5�� J�)I�E

��� �Z�5�J�E 4F�������Q �� �F4

4F +'������ �� �& � ���= -' �� �� &� -�, F4

���& �&D���=<>

N

��#�C�$D�C!�/J�E

��#�C�$D�C!�/J�E

O

4F +'������ �� &� -�, � &���� F4

���& &� -�,D&����<��� 87���� &->

N

'� ���& ���� C��D� �$T��UJ

N

�8+�7�81�7�8��7�8+(7�8117�8@17�8@�7�8��7�8+�7�8+17�

OE

'� ���& ���� �7��-D���7�E

�JC��D� �$U8V S &-E 4F&���� -����F4

���<�J�E�LJ�E�GG>

N

��-D���J� X �8��E 4F9� ��- ���F4

��<��-D��� YJ �>

��#�C�$D����J�E

��#�C�$D����J�E

�&D���=<>E

�J� LL �E 4F#���� �, �F4

O

O

Page 91: Microcontroller Projects in C for the 8051

�( ������������ ������ �� � ��� �� ����

4F +'������ �� &� -�, � * &���� F4

���& &� -�,D�<��� �7���� Q7���� &-�7���� &-(7���� &-)7���� &-*>

N

��� �73� �7 ���&7����&7��'���E

3� �J�4����E

�J�?����F3� �E

���&J�4���E

�J�?���F ���&E

����&J�4��E

��'���J�?����&F��E

��#�C�$D����J�E

�&D���=<>E

��<� L ���� XX Q JJ �> 4F@��= �&��� Q��F4

&� -�,D&����<��7�>E

&� -�,D&����<3� �7&-�>E

��<� L ��� XX Q JJ �>

&� -�,D&����<��7�>E

&� -�,D&����< ���&7&-(>E

��<� L �� XX Q JJ �>

&� -�,D&����<��7�>E

&� -�,D&����<����&7&-)>E

��<Q JJ �>

&� -�,D&����<��'���7�>E

&� -�,D&����<��'���7&-*>E

��#�C�$D����J�E

�&D���=<>E

�&D���=<>E

�&D���=<>E

O

4F +'������ �� ��� �� &� -�, F4

���& ���D&� -�,<>

N

��� �E

��#�C�$D����J�E

��#�C�$D�C!�/J�E

��#�C�$D����J�E

Page 92: Microcontroller Projects in C for the 8051

�#� ������"�� ���/�&� � "���� �� (�&)%��( 06 �#� !"�&�� � ��01 �����!�� �'�#��� 1 �� �#� ������"�� �"�0��5 ,9+1.2 ������"�� �"�0��� %�� (�@��( %��# �� �� �%0)� >5<5

�#���/�� ���"� ���1 4 �� !� � ) 4�& 2 � 1 %� �*����%) ������"�� �� 4����%��(%�( �#� �� 4�%� B"��� � ������"�� ���/�&� � "���� (�&)%��( 06 !"�&�� ���01 �����!�� �5 �#�� � "���� ��&������� �#� �/��� & "���� %�( (���)%6� �#����")� � �#� ���.1>35 �#� (���)%6�( /%)"� �� �#"� �D"%) � �#� � �%) �"�0�� ! �/���� � ��� ���15

���-���� H'��&

�� %((��� � � �#� ��%�(%�( & �� ����� "��( 06 �#� ��&� & ��� ))��' �#�! )) ���4 & �� ����� ��)) 0� ��D"���(L

�)C���� ������

�&D���=<>E

��#�C�$D����J�E

���<�J�E�LJ)�E�GG> �&D���=<>E

O

4F �8���� �����'-� �5�� ���� ��'��� F4

���<> �����'-� �

N

�Z�5�GGE

&� -�,D�<�Z�5�7�7�7�7�7�>E

O

4F #���� �� ���� -������ F4

����<>

N

���D&� -�,<>E 4F��� &� -�,F4

���J�E 4F�����'-� �� �����?&�F4

�B�J�E 4F���� �����'-� �5��F4

��J�E 4F���� �����'-� F4

���<EE> 4F#���� �� �& ��-F4

N

��< �#��D�!"5�� JJ �>

N

�Z�5�J�E

���D&� -�,<>E

O

O

O

#��"� %�%��

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

Page 93: Microcontroller Projects in C for the 8051

����)%6 ���.1>3 3$(�4�� (���)%6�+ ,5+' 152+.� ������ ��>' �3 211' 952+.� ������ ��3 1512 �� &%�%&�� ��2 �"�#$0"�� � ����&#

�* ������������ ������ �� � ��� �� ����

��� %�2 �����'-� �'���

�����" � 4�� � ��� ����

� �8���� �����'-� �

� ���� � �����'-�

( �8���� �����'-� �

) ���� � �����'-�

* #��� -��� �����'-�

Page 94: Microcontroller Projects in C for the 8051

������ *

#!"5� � !P���#

�� �#�� &#%���� �� �#%)) 0� ) ;��4 %� # � �� &%� �����!%&� "� ��&� & ��� ))��� � "�( 4����%���4 (�/�&��5 � "�( �� B�&�� %�� 0%��( � %"(�0)� (�/�&�� %�(�#��� (�/�&�� #%/� �%�6 %��)�&%�� �� �� �)�&�� ��&�' �%�4��4 !� � �%����4(�/�&��' 0"�4)%� %)%���' ����&# �� &�����4 %��)�&%�� ��' �)�&�� ��& �4%�� %�(� �5

�)�&�� ��& � "�( 4����%�� � ��D"���� %� �)�&�� ��& %"(�0)� (�/�&�5 �#��� %����/��%) �"&# (�/�&�� %/%�)%0)�L

� ����� (�!��(L �#��� (�/�&�� ���%�� 06 %� �*����%) � � "�&�5 �� ������%) �&�))%� � %��)��� %� � ��4�%) � % ���F �"0���%�� %�( �#�� &%"���%)����%���4 (�! ��%�� � ! �#� (��&' �� ("&��4 � "�( "��"�5 �#��� (�/�&����D"��� %0 "� , � +1�� &"����� %�( 4����%�� % � "�( "��"� ! ,1 � 211 ( �' %� % (���%�&� ! %��� *��%��)6 >1 &�5 �#� !��D"��&6 ���� ��� !�#��� (�/�&�� �� �� % �%�� � 0%�(' 4����%))6 �� �#� ��4� � > � .�F5 -��F � "�(��� "�"%))6 ���� % ���4)� � �� 0"� � �� � (�)� &%� ���� �� � � ��� ��� %�( &%� %)� �� /�(� �")��( � �� "��"��5 -��F � "�(��� ���%�� /�� % ��(� � / )�%4� �%�4� %�( %� % ���")� ! �#��' �#�6 %�� ��(�)6 "��( ����%)) � ��%0)� �)�&�� ��& �D"������5

� A!����(L �#��� %�� ��&#%��&%) (�/�&�� �#�&# �� ("&� � "�( /�% % �%4��$��F�( %�� ����%��()6 ����;��4 % (�%�#�%4�5 �#��� (�/�&�� ���%�� ���# % �/ )�%4� %�( �#� &"����� ��D"������� �� ��%))' 4����%))6 �� �#� ��4� � !21��5 "FF��� 4����%�� % M0"FF��4: � ��� 7���4)� � ��8 �� �#� !��D"��&6�%�4� >11 � .11�F5 "FF��� %�� ��%)) (�/�&�� %�( �#�6 &%� 0� ���#�� �%��)� "���( � - � "���(5

� =�!��(L �#��� %"(�0)� (�/�&�� 4����%))6 ���%�� ���# % � / )�%4� �� �#��%�4� > � +3K5 �#� &"����� ��D"������� �� %� "�( 2.��5 �#� � "�( "��"� ! � "�(��� �� ���4)� � �� %� >�F � )���' ���# ,1 � ,. ( � %� %(���%�&� ! >1 &�5

� &��(!���(L �#��� (�/�&�� 4����%))6 ���%�� ���# % ��%)) � / )�%4�7%� "�( >K8 %�( ��D"��� �*����%) (��/� &��&"���65 � "�( "��"� �� ,. ( � � � �� %� % (���%�&� ! >1 &�5 �#� ��� �%�� !��D"��&6 ! ��%��("&��� ��>�F � )���5 �#��� (�/�&�� %�� "�"%))6 "��( %� ���� ���%;��� �� - � "���( %��)�&%�� ��5

Page 95: Microcontroller Projects in C for the 8051

� ���� ����L �#��� (�/�&�� ���%�� 06 % & �) %���%&���4 %�( ����))��4 %�%4����F�( (�%�#�%4�5 �#� ����&��)� ! ���%�� � �� �#� �%�� %� %) "(���%;�� %�( �� !%&� �#��� %�� ���6 ���%;���5 �� �*����%) (��/� &��&"���� ��D"���( � 4����%�� � "�(5 �) �6�� %"(�0)� (�/�&�� %�� 4����%))6 "��(�#�� �")��� �� � "�( � ����&# �� ��D"���(5

�� �#�� &#%���� �� �#%)) 0� �����!%&��4 "� ��&� & ��� ))�� � ����)� 0"FF���%�( %)� � � �� & ��)�* %"(�0)� (�/�&��5

�)�0(�� �$ 1 8�� '";;� �������

+'������

�#�� �� B�&� �# �� # � �� &%� �����!%&� "� ��&� & ��� ))�� � % 0"FF��5 �#��% �"�#$0"�� � ����&# �� ������( 7�545 ���")%���4 % 0"�4)%�68' �#� 0"FF�� ��)) �"�� � %�( ? >1 ����� %�( �#�� �� �5

����'�� �������

�#� &��&"�� (�%4�%� ! �#�� �� B�&� �� �# �� �� ��45 3525 �� < ! � �� 2 ��& ���&��( (���&�)6 � % ��%)) 0"FF��5 �#�� �6�� ! & ���&�� � �� � ���0)� �! �#�&"����� ��D"������� ! �#� 0"FF�� �� � � � �� �#%� %0 "� +1��5 �#� � �� "��"� �� �� &"����� � "�&� � (� � �#%� �#� 0"FF�� ��)) �"�� � �#�� �#� � �� "��"� �� %� ) 4�& ��� 71K85 �� 1 ! � �� > �� & ���&��( � % �"�#$0"�� �����&# �#�&# �� � ��%))6 #�)( %� ) 4�& ���� 06 % �"))$"� ������ �5

������� � ���-����

�#� 0"FF�� �� �����%))6 �"���( ���5 �#� �"�#$0"�� � ����&# �� �#�� &#�&;�( %�(�#�� �#� ����&# �� ������(' �#� 0"FF�� �� �"���( � %�( ? >1 �����' ���# %2 ��& �( (�)%6 0������ �%&# "��"�5 �#� ! )) ���4 -�� (��&��0�� �#�!"�&�� �� ! �#� �� 4�%�L

�$)($

�"�� ��� 0"FF���/ -/(*1*(

,- �"�#$0"�� � ����&# ������( $.*+

�/ >1 ������"�� �� 0"FF��(�)%6�"�� ��� 0"FF��

*+��/

*+�,-

*+��/

*+�

�1 ������������ ������ �� � ��� �� ����

Page 96: Microcontroller Projects in C for the 8051

������� C� ����

�#� �� 4�%� )�����4 �� 4�/�� �� ��45 35+5 K%��%0)� A?BB"� �� (�@��( %� 0�� < !� �� 25 ����)%�)6' /%��%0)� �?=C$A?&&�2 �� (�@��( %� 0�� 1 ! � �� >5 �#���#� �� 4�%� ��%���' A?BB"� �� ��� � ���' �#��� ��� �� (�@��( %� ) 4�&����5 �#� ��%�� ! �#� �?=C$A?&&�2 ����&# �� �#�� &#�&;�( & ����" "�)6�� % ) �5 �#�� �#� ����&# �� ������( 7�?=C$A?&&�2� �8' % ��� ) � �� ���� ����%� >1 �����5 ����(� �#�� ) � �#� 0"FF�� �� �"���( �� %�( ��� ���# % 2��& �( (�)%6 0������ �%&# "��"�5

" ��� ����� �'���� @'QQ�

�#� 0"FF�� "��( �� ��45 352 �� %��"��( � (�%� � � � �� �#%� +1�� %�( �#"��� &%� & ���&� �#� 0"FF�� (���&�)6 � �#� ��&� & ��� ))��5 � � 0"FF��� �#%�

�2#�'�& ������

#��"� &���

����'�� &������ �� ������ �(

Page 97: Microcontroller Projects in C for the 8051

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

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� �(

+�C�: � !P�(%�

����: �'�' � �...

� !��##! : ���.(���

��� � � ��- �'QQ� -�����% �� �'QQ� �'�& �� ��& ��� ��� )� ���& 6�� � -' �?�'���� 6���� � -� &%

�� �'QQ� � ������& �� ��� 2 �� -��� � &����, ��& �� �'QQ� � !5 6�� �� �'�-'� ���� -��� � �� ���� C!;7 �%% 6�� �� �'�-'� -��� � �'����� �'����% �� -' �?�'���� 6���� � ������& �� ��� � �� -��� )%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

��� @"WW� J��I2E

��� �"#�D@"��!5 J�)I�E

K&3� !5 �

K&3� !++ �

4F +'������ �� &�, ���'� � ���& F4

���& 6���D�D ���&<>

N

'� ���& ��� 8E

���<8J�E8L))���E8GG>E

O

4F #���� �� ���� -������ F4

����<>

N

��� �E

@"WW� J!++E 4F�'�� �'QQ� ���F4

���<EE> 4F�& ��-F4

N

6��<�"#�D@"��!5 JJ �> 4F6��� ��� -' �?�'����F4

N

O

���<�J�E�LJ)�E�GG> 4F&� )� ��� F4

N

@"WW� J!5E 4F�'�� �� �'QQ�F4

6���D�D ���&<>E 4F&�, � ���&F4

@"WW� J!++E 4F�'�� ��� �'QQ�F4

6���D�D ���&<>E 4F&�, � ���&F4

O

O

O

#��"� &�$�

������� � ���� �� ������ �(

Page 98: Microcontroller Projects in C for the 8051

���%�� ���# #�4#�� &"������ �� ��)) 0� ��&���%�6 � "�� % &��&"�� ����)%� � ��4535>5 �� �#�� &��&"�� % ������ �$&#%���) ��%����� � �� "��( %� % ����&#5 �#�0"FF�� �� & ���&��( � �#� (�%�� 7�8 ���"� %�( �#� 4%�� 7�8 ���"� �� (��/��(���&�)6 !� � �#� ��&� & ��� ))��5 �#� &"����� (�%�� 06 �#� 4%�� ���"� ����%&��&%))6 F�� 5 � K�==��� �6�� ������ &%� 0� "��( � ����&# &"������"� � %0 "� +�5

�.#�'�& ������

#��"� &�%�

��&�3& ����'�� &������ ��� ����� �'���� �'QQ�

Page 99: Microcontroller Projects in C for the 8051

���-���� H'��&

�� %((��� � � �#� & �� ����� "��( ! � �#� 0%��& ��&� & ��� ))�� &��&"��' �#�! )) ���4 & �� ����� ��)) 0� ��D"���(L

2 ��%)) 0"FF�� 7�545 �� $1.-�8�+ 211' 15.� ������ ��2 K�==��� ������ 7 ��� �%)8�2 �"�#$0"�� � ����&#

�)�0(�� �% 1 8�� 8 �<� ������� ,= ��� �� ���������" �.

+'������

�#�� �� B�&� �# �� # � �� &%� �����!%&� "� ��&� & ��� ))�� � % ��%)) ���%;���6�� %"(�0)� (�/�&�5 �� �#�� �� B�&� % & ����" "� ���4)� � �� "��"� �� �� ("&�( � �#� ���%;�� �#�� % �"�#$0"�� � ����&# �� %&��/%��(5 ����� ������"�� ! �#���&� & ��� ))�� �� "��( � 4����%�� �#� ���� (�)%6 ��D"���( ! � �#� � ��5 �� �#���� B�&� �#� !��D"��&6 ! �#� 4����%��( � �� �� 2 ;�F 7�5�5 % ���� ( ! 2��85

����'�� �������

�#� &��&"�� (�%4�%� ! �#�� �� B�&� �� �%�� %� �#� �� �� -� B�&� 2+ 7�5�5 ��45 35>8�*&��� �#%� �#� 0"FF�� �� ���)%&�( ���# % ��%)) ���%;��5 �� < ! � �� 2 ��& ���&��( (���&�)6 � % ��%)) ���%;�� /�% % ������ ��%����� �5 �#� � �� "��"� �� �� / )�%4� � (� � �#%� �#� ���%;�� ��)) �"�� � �#�� �#� � �� "��"��� %� ) 4�& ���� 7� .K85 �� 1 ! � �� > �� & ���&��( � % �"�#$0"�� � ����&#�#�&# �� � ��%))6 #�)( %� ) 4�& ���� 06 �#� �"))$"� ������ � �+5

������� � ���-����

�#� ���%;�� �� �����%))6 �"���( ���5 �#� �"�#$0"�� � ����&# �� �#�� &#�&;�(%�( �#�� �#� ����&# �� ������(' ����� 2 ! �#� ��&� & ��� ))�� �� �����%)�F�( � 4����%�� ������"��� %� ��4")%� �����/%)�5 �#�� % ����� ������"�� �� 4����%��( �#���%�� ! �#� ����� �� ��/����(5 �5�5 �! �#� ����� �� �' �� �� �"���( ? %�( �! �� �� ?'�� �� �"���( �5 �#� !��D"��&6 ! �#�� �%/�! �� �� ��� � 0� �� �#� %"(�0)� �%�4�%�( �#"� �� 4����%��� %� %"(�0)� � "�( � �#� ���%;��5

�#� ! )) ���4 -�� (��&��0�� �#� !"�&�� �� ! �#� �� 4�%�L

.� ������������ ������ �� � ��� �� ����

Page 100: Microcontroller Projects in C for the 8051

�� �������

�$)($

�"�� ��� ���%;��,- �"�#$0"�� � ����&# �� ������( $.*+

�����%)�F� ����� 2 � 4����%�� ������"��� �/��6 +.1 ���%�� ! � ����� ������"��

*+�,-

*+�

&���� � ������������

�$)($

��%0)� ����� 2 ������"������ ����� 2 � � (� ,$0�� %"� $��) %(� %( ����� /%)"� = 7�5�5 & "�� ! +.1 ��8 ��� ����� ��4�������%0)� ��&� & ��� ))�� ������"����"�� � ����� 2

*+�

&���� � �����!�� (��<��� ��!���

�$)($

,- .11 �� #%� �)%���( $.*+

��)����� ���%;�� "��"�*+�,-

*+�

������� C� ����

�#� !")) �� 4�%� )�����4 �� �# �� �� ��45 3535 �#�� �#� �� 4�%� ��%��� %/%��%0)� &%))�( ��!� �� ��� � 1 %�( �#� ���%;�� �� �"���( ?5 �#� ��%�"� ! �#��"�#$0"�� � ����&# �� �#�� &#�&;�(5 �! �#� ����&# �� ������(' !"�&�� � ���$������� &%))�( � �����%)�F� ����� 2 ! �#� ��&� & ��� ))��5

���$����� � "���� ��%0)�� ����� 2 ! �#� ��&� & ��� ))��' ���� ����� 2 ��� ,$0��%"� $��) %( � (� 7� (� +8 %�( ) %(� �#� ����� & "���� ���# = � �#%� % ����� /��C � ��)) &&"� %!��� +.1 & "��� 7�5�5 �#�� �#� ����� � ))� /�� !� � +.= � 185 �#� ����� �� �#�� %"� �%��&%))6 ��) %(�( ���# �#� �%�� /%)"�5 ���# %��&� & ��� ))�� ���%���4 %� 2+��F' �#� ����� &) &; &6&)� ���� �� 2 �� ���&��#� &) &; �� (�/�(�( 06 2+ ������%))65 �#"�' % ����� ������"�� ��)) 0� 4����%��(%!��� �/��6 +.1 ��5 �#�� % ����� ������"�� �� 4����%��(' & ��� ) �� (���&��( � �#� ������"�� ���/�&� � "���� 7���8 &%))�( ������0 1 %� �# �� �� ��45 3535 � ���#%� ����� 2 ������"�� �"�0�� �� >5 �#� ��� ��&������� �#� 4) 0%) /%��%0)���!�5 K%��%0)� ��!� ��%&#�� + %!��� �� ������"���' �5�5 %!��� .11 �� #%�

.�#�'�& ������

Page 101: Microcontroller Projects in C for the 8051

.( ������������ ������ �� � ��� �� ����

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� �)

+�C�: � !P�)%�

����: �'�' � �...

� !��##! : ���.(���

��� � � ��- -�=�?�� & ������������ -�����% � ������'� -�=� � ������&�� ��� 2 �� -��� �% �� -�=� �����, �-��� 6�� �� ��������� ���� � �--�&6��� �� ��H'��, �� �� �'&�� ����% � -' �?�'���� 6���� � ������& �� ��� � ��-��� ) ��& �� -�=� �'�� !5 6�� ��� 6���� � -� &%

�� -�=� � ������& �� ��� 2 �� -��� � ��� � �!#+�� ���� � ��� ��& �� -�=� � !56�� �� �'�-'� �� �� -��� � �� ���� ��9�%

���� � � ' & �� ����� � H'�� 6�� 6��� � -���& �� �� <�%% ��H'��, � =�Q>%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

��� #���/� J��I2E

��� �"#�D@"��!5 J�)I�E

��� ��'��E

4F ���� � �������Q����� ��'��� F4

���& ����D����<>

N

���J�E 4F���� ���� � ���F4

��!�J�8(�E 4F���� � �� ��& (F4

���J�81E 4F(�� � ��'��F4

��J�E 4F���� �����'-� F4

� �J�E 4F�'�� �� ���� �F4

O

4F ���� � �����'-� ���� ��'��� F4

�����<> �����'-� )

N

��'��GGE 4F���% ��'��F4

��<��'�� JJ (> 4F��'��J(F4

N

��'��J�E 4F � ��'��F4

#���/� JR#���/� E

O

O

4F #���� �� ���� -������ F4

����<>

Page 102: Microcontroller Projects in C for the 8051

�)%���(5 �#� ��%�� ! �#� ���%;�� �� �#�� &#%�4�( %!��� .11 ��5 �� �# �� ����45 35.' �#� ���� ( ! �#� 4����%��( �%/�! �� �� �#"� 2 �� 7.11 �� �� ����%�( .11 �� ��� ����' �5�5 % !��D"��&6 ! 2 ;�F85

G " &%� &#%�4� �#� !��D"��&6 ! �#� � �� �%��)6 06 ) %(��4 % (�?����� /%)"���� �#� ����� ��4�����5

���-���� H'��&

�� %((��� � � �#� & �� ����� "��( ! � �#� 0%��& ��&� & ��� ))�� &��&"��' �#�! )) ���4 & �� ����� ��)) 0� ��D"���(L

2 ��%)) ���%;�� 7�545 �<1�12.�8�+ 211' 15.� ������ ��2 K�==��� �������2 �"�#$0"�� � ����&#

.)#�'�& ������

N

��'��J�E 4F�������Q ��'��F4

#���/� J�E 4F#-�=� !++F4

6��<�"#�D@"��!5 JJ �>

N

O

����D����<>E 4F�������Q ����F4

4F ��& ��-% ;��� �� ��� ���� �����'-� F4

���<EE>

N

O

O

#��"� &�&�

������� � ���� �� ������ �)

#��"� &���

!'�-'� 6������ -��&'�& �, ������ �)

Page 103: Microcontroller Projects in C for the 8051

�)�0(�� �& 1 �6�7��� 8�� 8 �<� ������� ,= ����� ���� �����" �.

+'������

�#�� �� B�&� �# �� # � �� &%� �����!%&� "� ��&� & ��� ))�� � % ��%)) ���%;���6�� %"(�0)� (�/�&� %�( 4����%�� �� (�?����� � ���5 �#�� � ��� �� %��)��( � �#� &��&"��' % & ����" "� ���4)� � �� ! !��D"��&6 2 ;�F �� "��"� � �#����%;��5 �#�� % �"�#$0"�� � ����&# �� ������(' �#� � �� !��D"��&6 ��&#%�4�( � .11�F5 ����� 2 ������"�� ! �#� ��&� & ��� ))�� �� "��( � 4����%�� �#� ���� (�)%6 ��D"���( ! � �#� � ���5

����'�� �������

�#� &��&"�� (�%4�%� ! �#�� �� B�&� �� �#� �%�� %� �#� �� �� -� B�&� 2+ 7�5�5 ��4535>8 �*&��� �#%� �#� 0"FF�� �� ���)%&�( ���# % ��%)) ���%;��5 �� < ! � �� 2 ��& ���&��( (���&�)6 � % ��%)) ���%;�� /�% % ������ ��%����� �5 �#� � �� "��"� �� �� / )�%4� � (� � �#%� �#� 0"FF�� ��)) �"�� � �#�� �#� � �� "��"��� %� ) 4�& ���� 7� .K85 �� 1 ! � �� > �� & ���&��( � % �"�#$0"�� � ����&#'�#�&# �� � ��%))6 #�)( %� ) 4�& ���� 06 �#� �"))$"� ������ � �+5

������� � ���-����

�#� ���%;�� �� �����%))6 �"���( ���5 ����� 2 ! �#� ��&� & ��� ))�� �� �#�������%)�F�( � 4����%�� % & ����" "� � �� ���# % !��D"��&6 ! 2 ;�F' %� ��-� B�&� 2>5 �#� �"�#$0"�� � ����&# �� �#�� &#�&;�( %�( �#�� �#� ����&# ��������(' �#� ����� ��4����� /%)"� �� ( "0)�(' �5�5 �#� ������"�� �����/%) ����&��%��( !� � .11 �� � 2 ��5 � �%/�! �� ���# % 2�� � %�( 2�� ? ����#%� % !��D"��&6 ! .11�F5

�#� ! )) ���4 -�� (��&��0�� �#� !"�&�� �� ! �#� �� 4�%�L

�� �������

�$)($

�"�� ��� ���%;�������%)�F� ����� 2 � 4����%�� ������"��� %� .11��7���R�%��Q+8�/ -/(*1*(

,- �"�#$0"�� � ����&# �� ������( $.*+

��) %( ����� ��4����� ! � 2 �� ������"���7���R�%��� 38

*+�,-

*+��/

*+�

.* ������������ ������ �� � ��� �� ����

Page 104: Microcontroller Projects in C for the 8051

&���� � �������(����

�$)($

��%0)� ����� 2 ������"������ ����� 2 � � (� ,$0�� %"� $��) %(� %( ����� /%)"� = 7�5�5 & "�� ! +.1 ��8 ��� ����� ��4�������%0)� ��&� & ��� ))�� ������"����"�� � ����� 2

*+�

&���� � �����!�� (��<��� ��!���

�$)($

,- 7���R�%��V+.18 �� #%� �)%���( $.*+

��)����� ���%;�� "��"�*+�,-

*+�

������� C� ����

�#� !")) �� 4�%� )�����4 �� �# �� �� ��45 35=5 �#�� �#� �� 4�%� ��%��� %/%��%0)� &%))�( ��!� �� ��� � 1 %�( �#� ���%;�� �� �"���( ?5 ����� 2 �� �#�������%)�F�( ���# �#� ��$����D% � �#%� ������"��� %�� 4����%��( �/��6 .11 ��' �5�5%� "��"� !��D"��&6 ! 2 ;�F5 �#� ��%�� ! �#� �"�#$0"�� � ����&# �� �#��&#�&;�(5 �! �#� ����&# �� ������(' �#� ������"�� �%��' ��$����' �� &#%�4�( � 3 � �#%� ������"��� ��)) 0� 4����%��( %� �/��6 3� +.1 ��� 2�� �5�5 �#� !��D"��&6 !�#� 4����%��( �%/�! �� �� &#%�4�( � .11�F 72�� � ���� %�( 2�� ? ����85

������01 �� �#� ����� 2 ������"�� ���/�&� � "���� ���# ������"�� �"�0�� >5 �� �#��� "����' /%��%0)� ��!� �� ��&�������( %�( & ��%��( ���# �#� ��$����5 �#���#� �� %�� �D"%)' �#� ���%;�� "��"� �� & ��)������(' �5�5 �! �#� ���%;�� �� ��� �� �"���( ?' %�( �! ? �� �� �"���( �5

�#� !��D"��&6 ! �#� 4����%��( � ��� &%� �%��)6 0� &#%�4�( 06 ) %(��4 %(�?����� /%)"� ��� �#� ����� ��4����� � 06 &#%�4��4 �#� /%)"� ! /%��%0)���$����5

�)�0(�� �� 1 (������� 8��� ,= ��� �� ���� �����" �.

+'������

�#�� �� B�&� �# �� # � �� &%� �����!%&� "� ��&� & ��� ))�� � % ��%))���%;�� �6�� %"(�0)� (�/�&� %�( 4����%�� % ����� � "�(5 �#�� � ��� ��

.�#�'�& ������

Page 105: Microcontroller Projects in C for the 8051

.1 ������������ ������ �� � ��� �� ����

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� �*

+�C�: � !P�*%�

����: �'�' � �...

� !��##! : ���.(���

��� � � ��- -�=�?�� & -�����% � ������'� -�=� � ������& �� ��� 2 �� -��� �%�� -�=� �����, �-��� 6�� � ���,��� ���� � �--�& 6��� �� ��H'��, �� ���'&�� ����% � -' �?�'���� 6���� � ������& �� ��� � �� -��� )%

;�� -�6� � �--�& �� �� ����'��7 � � =�Q �'&�� ���� � �� �� �� -�=�% ;�� ��-' �?�'���� 6���� � -� &7 �� ���� ��H'��, � �����& �� ����Q <-���&�(� >%

�� -�=� � ������& �� ��� 2 �� -��� � ��� � �!#+�� ���� � ��� ��& �� -�=� � !56�� �� �'�-'� �� �� -��� � �� ���� ��9�%

���� � � ' & �� ������ �� -���& �� �� H'�� 6�� ���� �����&%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

��� #���/� J��I2E

��� �"#�D@"��!5 J�)I�E

��� ��'��7���D���E

4F ���� � �������Q����� ��'��� F4

���& ����D����<>

N

���J�E 4F���� ���� � ���%F4

��!�J�8(�E 4F���� � �� ��& (F4

���J�81E 4FC��& ��� (�� � ��'��F4

��J�E 4F���� �����'-� F4

� �J�E 4F�'�� �� ���� �F4

O

4F ���� � �����'-� ���� ��'��� F4

�����<> �����'-� )

N

��'��GGE 4F���% ��'��F4

��<��'�� JJ ���D���>

N

��'��J�E 4F � ��'��F4

#���/� JR#���/� E

O

O

4F #���� �� ���� -������ F4

����<>

Page 106: Microcontroller Projects in C for the 8051

%��)��( � �#� &��&"��' % & ����" "� ����� �6�� � "�( �� "��"� !� � �#����%;��5 �# ����� 1 %�( ����� 2 ! �#� ��&� & ��� ))�� %�� "��( � 4����%���#� ��D"���( � ���5

����'�� �������

�#� &��&"�� (�%4�%� ! �#�� �� B�&� �� �#� �%�� %� �#� �� �� -� B�&� 2+ 7�5�5��45 35>8 0"� �#��� �� � �"�#$0"�� � ����&# %�( �#� 0"FF�� �� ���)%&�( ���# %��%)) ���%;��5 �� < ! � �� 2 �� & ���&��( (���&�)6 � % ��%)) ���%;�� /�% %������ ��%����� �5 �#� � �� "��"� �� �� / )�%4� � (� � �#%� �#� ���%;����)) �"�� � �#�� �#� � �� "��"� �� %� ) 4�& ���� 7W.K85

������� � ���-����

�� �#�� �� B�&� �#� !��D"��&6 ! �#� 4����%��( � �� �� /%���( & ����" "�)6 !� �.11�F � 21 ;�F' �#"� �� ("&��4 % ����� � "�(5 �# ����� 1 %�( ����� 2 �"�%� �#� �%�� ���� %�( 4����%�� ������"���5 ����� 2 4����%��� �#� "��"� � ��%�( ����� 1 &#%�4�� �#� !��D"��&6 ! �#� 4����%��( � �� & ����" "�)65 �#�� ��# � �#� ������ ���%��L

����� 2 �� �� ,$0�� %"� $��) %( � (� %�( �#� ����� ��4����� �� ) %(�( ���# .1 ��7& "�� ! +1=85 �#"� % ����� 2 ������"�� �� 4����%��( �/��6 .1��5 ����(� �#������ 2 ������"�� ���/�&� � "����' % & "���� �� ��&�������( %�( ��� /%)"�& ��%��( � % 4) 0%) /%��%0)� &%))�( ��$����5 �#�� �#� �� %�� �D"%) �#����%;�� "��"� �� &#%�4�(5 �#� !��D"��&6 ! �#� 4����%��( "��"� �%/�! �� ���#�� %� ! )) �� 7� ��&� �#%� �#� ���� ( �� ���&� �#� ����� & "�� /%)"� ���&� #%)! ! �#� ���� ( �� ? %�( �#� �#�� #%)! �� �8L

.2#�'�& ������

N

��'��J�E 4F�������Q ��'��F4

#���/� J�E 4F#-�=� !++F4

���D���J(E 4F#� ��� ��� � F4

����D����<>E 4F�������Q ����F4

���<EE> 4F��& ��-F4

N

��<�"#�D@"��!5 JJ �>���D���J*E 4F#� �� �� F4

O

O

#��"� &�/�

������� � ���� �� ������ �*

Page 107: Microcontroller Projects in C for the 8051

���R�%�� Q 2 ���� ( Q 211 �� !��D"��&6 Q 21 ;�F���R�%�� Q + ���� ( Q +11 �� !��D"��&6 Q .;�F� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

���R�%�� Q 3 ���� ( Q 311 �� !��D"��&6 Q +5. ;�F���R�%�� Q . ���� ( Q .11 �� !��D"��&6 Q +;�F

�� 4����%)' �� &%� �%6 �#%� �#� !��D"��&6 ! �#� 4����%��( � �� �� 4�/�� 06L

!��D Q 21A���R�%��

�#��� !��D �� �� ;�F5

�� �#�� �� B�&�' /%��%0)� ��$���� �� /%���( !� � 211 ( �� � 2' �5�5 �#� !��D"��&6 ! �#� 4����%��( � �� /%���� 0������ 211�F %�( 21 ;�F5

����� 1 ! �#� ��&� & ��� ))�� �� "��( � &#%�4� �#� !��D"��&6 ! �#� � �� 06&#%�4��4 �#� /%)"� ! /%��%0)� ��$����5 ����� 1 �� �� ,$0�� %"� $��) %( � (�%�( �#� ����� ��4����� �� ) %(�( ���# .= � �#%� �� 4����%��� ������"��� %� �/��6+11 ��5 ����(� �#� ����� 1 ������"�� ���/�&� � "���� % & "���� �� "��( %�(/%��%0)� ��$���� �� (�&�������( 06 2 �#�� �#� & "���� & "��� 06 +115 �#"�'/%��%0)� ��$���� ��)) 0� (�&�������( �/��6 +11� +11 ��� 31'111 �� � 31��5

�� �"��%�6' �#� !��D"��&6 ! �#� 4����%��( � �� ��)) /%�6 �/��6 +1�� !� �211�F � 21 ;�F5 �#� ���")� �� �#%� % ����� �6�� "��"� ��)) 0� 4����%��( � �#����%;��5

�#� ! )) ���4 -�� (��&��0�� �#� !"�&�� �� ! �#� �� 4�%�L

�� �������

�$)($

�"�� ��� ���%;�������%)�F� ����� 2 ! � %"� $��) %( .1 �� ������"��������%)�F� ����� 1 ! � %"� $��) %( +11 �� ������"������ ��$���� ! � 211�F�/ -/(*1*(

�%�� ! � ����� ������"���*+��/

&���� ������������ ��!���

�$)($

��%0)� ����� 2 ������"������ ����� 2 � � (� ,$0�� %"� $��) %(� %( ����� 2 ���# +1= 7�5�5 & "�� ! .1 ��8

.� ������������ ������ �� � ��� �� ����

Page 108: Microcontroller Projects in C for the 8051

��%0)� ����� 1 ������"������ ����� 1 � � (� ,$0�� %"� $��) %(� %( ����� 1 ���# .= 7�5�5 & "�� ! +11 ��8��%0)� ����� 1 ������"����"�� ����� 2 ��"�� ����� 1 �

*+�

&���� � �����!�� (��<��� ��!���

�$)($

,- ��$���� �� #%� �)%���( $.*+

��)����� ���%;�� "��"�*+�,-

*+�

&���� � �����!�� (��<��� ��!���

�$)($

,- 31�� #%� �)%���( $.*+

��&������ ��$����,- ��$���� D � $.*+

��� ��$���� ! � 211�F*+�,-

*+�,-

*+�

������� C� ����

�#� !")) �� 4�%� )�����4 �� �# �� �� ��45 35<5 K%��%0)� =�"3>"� �� %���4��( � 0�� < ! � �� 25 �#�� �#� �� 4�%� ��%���' /%��%0)�� ��!� %�( ������$�<��E�/%�� ��� � 15 �#� ���%;�� �� �#�� �"���( ?5 ������ 1 %�( 2 %�� �����%)�F�( 06&%))��4 !"�&�� � ���$�����(5 �#� �� 4�%� �#�� ������ %� ��()��� ) � %�( �%���"���) �#� ����� ������"��� &&"�5

����(� �#� ����� 2 ������"�� ���/�&� � "����' /%��%0)� & "�� �� ��&�������( %�(& ��%��( � /%��%0)� ��$����5 �#�� �#� �� %�� �D"%)' & "�� �� ����� � 1 %�(�#� ���%;�� "��"� �� & ��)������(5

����(� �#� ����� 1 ������"�� ���/�&� � "����' /%��%0)� ������$�<��E�/ ����&�������( %�( �#�� �� ��%&#�� +11 7�5�5 +11� +11 ��� 31��8' �� �� ����� � 1 %�( ��$���� �� (�&�������( � �#%� % #�4#�� !��D"��&6 � �� & ")( 0�4����%��( 06 ����� 25 �#�� ��$���� ��%&#�� 1 �� �� ����� 0%&; � 211 � �#%��#� �� &��� &%� ����%�5

..#�'�& ������

Page 109: Microcontroller Projects in C for the 8051

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

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� ��

+�C�: � !P��%�

����: �'�' � �...

� !��##! : ���.(���

��� � � ��- -�=�?�� & ��� -�����% � ������'� -�=� � ������& �� ��� 2 ��-��� �% �� -�=� �����, �-��� 6�� �� ��������� ���� � �--�& 6��� ����H'��, �� �� �'&�� ����%

;�� -�6� � �--�& �� �� ����'��7 � ����Q �'&�� ���� � 3� � �� �� �� -�=� ' ������� �% ���� � ��� �'� ��& ����� �� ��H'��, �� �� ��� ���� ����Q �� �� =�Q7��, *�� % �� ���� � ���� �� �'&�� ��� �,- �'�-'� � -��&'�&%

�� -�=� � ������& �� ��� 2 �� -��� � ��� � �!#+�� ���� � ��� ��& �� �'QQ� � !56�� �� �'�-'� �� �� -��� � �� ���� ��9�%

���� � ��& � �� ' & �� ����� ������ ��H'��, ��& ������ -���� �'�-'�%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

��� #���/� J��I2E

��� ��'��7�����D���0�67���D���E

4F ���� �������Q����� ��'��� F4

���& ����D���� <>

N

���J�E 4F���� ���� � �����'-�F4

��!�J�8(�E 4F���� � �� ��& (F4

���J(�1E 4F���� � �� � ��'��F4

���J�E 4F���� ���� � ���%F4

��!�J��!� S (E 4F���� � �� ��& (F4

���J�1E 4F���� � (�� � ��'��F4

��J�E 4F���� �����'-� F4

� �J�E 4F�'�� �� ���� �F4

� �J�E 4F�'�� �� ���� �F4

O

4F ���� � �����'-� ���� ��'��� F4

�����<> �����'-� )

N

��'��GGE 4F���% ��'��F4

��<��'�� JJ ���D���>

N

��'��J�E 4F � ��'��F4

#���/� JR#���/� E

O

O

Page 110: Microcontroller Projects in C for the 8051

�)�0(�� �/ 1 (������� ����� ,= ��� �� ���� �����" �.

+'������

�#�� �� % ����)� �)�&�� ��& �4%� �� B�&�5 � ��%)) ���%;�� �� & ���&��( � 0�� 1 ! � �� > /�% % ������ ��%����� �5 ��4#� �"�#$0"�� � ����&#�� %�� & ���&��(� � �� 2 � %&� %� �#� ;�60 %�( ! � �#� �)�&�� ��& �4%�5 ����� 2 ! �#���&� & ��� ))�� �� "��( � 4����%�� ���� (�)%6� ! � �#� ��D"���( !��D"��&���5��)6 �� &�%/� 7��4#� � ���8 �� �� /�(�(5

����'�� �������

�#� &��&"�� (�%4�%� ! �#�� �� B�&� �� �# �� �� ��45 35,5 �#� ���%;�� ��& ���&��( � 0�� 1 ! � �� >5 �#� ;�60 %�( ����&#�� %�� & ���&��( � � �� 25

���#�'�& ������

4F ���� � �����'-� ���� ��'��� F4

�����<> �����'-� �

N

�����D���0�6GGE

��<�����D���0�6 JJ (��> 4F�� *� � F4

N

�����D���0�6J�E

���D���AE

��'��J�E 4F��� ��'��F4

��<���D��� JJ �>���D���J���E

O

O

4F #���� �� ���� -������ F4

����<>

N

��'��J�E 4F�������Q ��'��F4

�����D���0�6J�E

#���/� J�E 4F#-�=� !++F4

���D���J���E 4F#� ��� ��� �Q F4

����D���� <>E 4F�������Q ���� F4

���<EE> 4F��& ��-F4

N

O

O

#��"� &�2�

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

Page 111: Microcontroller Projects in C for the 8051

�� 1 �� %���4��( � � �� ' 0�� 2 �� %���4��( � � �� �' 0�� + �� %���4��( � � �� �%�( � �5 �#� ����&#�� %�� � ��%))6 #�)( %� ) 4�& ���� ���# �"))$"� ������ ��7�+ � �985 -������4 % ����&# ���(� % ) 4�& ��� � �#� ��&� & ��� ))�� � ��5

������� � ���-����

�� �#�� �� B�&� ����� 2 �� "��( � 4����%�� �#� � ��� ! � �#� �)�&�� ��& �4%�5 �#������ �� �� %"� $��) %( � (� %�( ) %(�( � 4����%�� %� ������"�� �/��6 .1 ��7�5�5 ) %(�( ���# +1= ! � % 2+��F &�6��%)85 �� ��()��� ��� ) � �� ! ���( %�(�#� ;�60 %�( �� �&%���(5 �#�� % ;�6 �� ������(' �#� ����� �� ��) %(�( ���# �#�& ���&� /%)"� � �#%� �#� ��D"���( � �� &%� 0� 4����%��(5

�#� ! )) ���4 &�%/� �%� "��( ! � �#�� �� B�&� 7�#� !��D"��&��� %�� �� �F8L

� ���L � � � � � ���DL +=+ +93 >>1 >39 >9+ 331 393 .+3

��( ������������ ������ �� � ��� �� ����

#��"� &���

����'�� &������ �� ������ �1

Page 112: Microcontroller Projects in C for the 8051

�#� ���� (� ! �#� � ��� �� �� %�� �#�� 4�/�� 06 7���� (� 2A!��D"��&68L

� ���L � � � � � -��� (L >,2= >312 >1>1 +,=. +..2 ++<+ +1+3 291,

�#� & "���� �� ) %(�( � �#%� �� 4����%��� %� ������"�� �/��6 .1 ��5 �#� �"�0�� ! & "��� 728 ��D"���( ! � �%&# � �� �� �#���! �� 4�/�� 06 (�/�(��4 �#� ���� ( 06.1 ��' %� �# �� 0�) �L

� ���L � � � � � �L <= =, =1 .< .2 3. 31 >,

�#� ! )) ���4 -�� (��&��0�� �#� !"�&�� �� ! �#� �� 4�%�L

�� �������

�$)($

�"�� ? ���%;�������%)�F� ����� 2�����%)�F� ��!��/ -/(*1*(

,- % ;�6 �� ������( $.*+

� %( /%)"� ! �#� ;�6 ��� /%��%0)� ���*+�,-

*+��/

*+�

&���� � �����!�� (��<��� ��!���

�$)($

��&������ ��!�,- ��!� D ��� $.*+

��!� D �

��)����� ���%;�� "��"�*+�,-

*+�

������� C� ����

�#� !")) �� 4�%� )�����4 �� �# �� �� ��45 3595 �#�� �#� �� 4�%� �� ��%���(' �#����%;�� �� �"���( ? %�( ����� 2 �� �����%)�F�( � ,$0�� %"� $��) %( � (� 06&%))��4 !"�&�� � ���$�����5 �� ��()��� ��� ) � �� �#�� ! ���( %�( �#�;�60 %�( �� �&%���(5 � ��%))6 � �� 2 & ��%��� �#� /%)"� 1*�� 7+..8 �#��� ;�6� %�� ������(5 �#�� % ;�6 �� ������( �#� ��� & ����� �(��4 � �#%� ;�64 �� � ) 4�& ���5 K%��%0)� )��$���((� ��%(� � �� 2 %�( & ��)������ �#�

��)#�'�& ������

Page 113: Microcontroller Projects in C for the 8051

��* ������������ ������ �� � ��� �� ����

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� �1

+�C�: � !P�1%�

����: �'�' � �...

� !��##! : ���.(���

��� � � ��- ������� ����� -�����% � �� -�=� � ������& �� ��� � �� -��� ) ���� �!#+�� ���� � ���% �� -�=� �����, �-��� 6�� �� ��������� ���� � �--�&6��� �� ��H'��, �� �� �'&�� ����%

����� -' �?�'���� 6���� �� ������& �� -��� � �� ��� � �� =,����& ��� ��������� �����% ���� � � ' & �� ����� ��� &�, ��� �� �H'��& ��H'��� %

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

��� #���/� J�)I�E

��� ��'��7���E

4F ���� � �������Q����� ��'��� F4

���& ����D����<>

N

���J�E 4F���� ���� � ���%F4

��!�J�8(�E 4F���� � �� ��& (F4

���J(�1E 4F���� � �� � ��'��F4

� �J�E 4F '� ���� �F4

��J�E 4F���� �����'-� F4

O

4F ���� � �����'-� ���� ��'��� F4

�����<> �����'-� )

N

��'��GGE 4F������� ��'��F4

��<��'�� JJ ���>

N

��'��J�E 4F � ��'��F4

#���/� JR#���/� E

O

O

4F #���� �� ���� -������ F4

����<>

N

'� ���& ���� =,D-� &E

��'��J�E 4F�������Q ��'��F4

#���/� J�E

����D����<>E 4F�������Q ���� F4

���<EE> 4F��& ��-F4

Page 114: Microcontroller Projects in C for the 8051

���#�'�& ������

N

��<�� YJ �8++> 4F�� � =, -� &F4

N

� �J�E 4F�'�� �� ����F4

=,D-� &JR��E 4F���-��� =,F4

4F ���= 6���� =, -� & F4

6����<=,D-� &>

N

�� �: 4F�� =, � � -� &%%%F4

���J21E

���=E

�� (:

���J1�E

���=E

�� *:

���J1�E

���=E

�� �:

���J�2E

���=E

�� �1:

���J��E

���=E

�� )(:

���J*�E

���=E

�� 1*:

���J*�E

���=E

�� �(�:

���J)�E

���=E

O

O

N

4F 5� =, -� & F4

#���/� J�E

��'��J�E 4F � ��'��F4

� �J�E 4F#��- ����F4

O

O

O

#��"� &�3�

������� � ���� �� ������ �1

Page 115: Microcontroller Projects in C for the 8051

/%)"� ��%( � �#%� �#� �"�0��� 0�%���( & ����� �( � �#� ;�6 �"�0��� %�� ���� ! +5 �#"�' %� %� �*%��)�' �#�� ;�6 �� ������(' )��$���((� & ��%���2' �#�� � �� ������(' )��$���((� �� +' �#�� ;�6 � �� ������(' )��$���((� �� 3%�( � �5 � (/���' ��%������ �� "��( � ) %( /%��%0)� ��� ���# �#� & ���&������ /%)"� � �#%� �#� ��D"���( � �� &%� 0� 4����%��( � �#� ���%;��5

���-���� H'��&

�� %((��� � � �#� ��%�(%�( & �� ����� "��( ! � �#� ��&� & ��� ))��' �#�! )) ���4 & �� ����� ��)) 0� ��D"���( ! � �#�� �� B�&�L

�2 � �, �-�� ����&#���+ � �9 211' 152+.� ������ �� 2 ��%)) ���%;���2 �$&#%���) ������ ��%����� � 7�545 K�==���8

��1 ������������ ������ �� � ��� �� ����

Page 116: Microcontroller Projects in C for the 8051

������ �

����� ��" � � !P���#

������%�"�� ��%�"������ %�( & ��� ) �� �� ! �#� � �� & �� � %��)�&%$�� �� ! ��&� & ��� ))��$0%��( (%�% %&D"����� � �6�����5 � "� �6��� ! ���� ��%�� & �� �)6 "��( � ��%�"�� ������%�"�� �� & ����&�%) %�( ��("����%)%��)�&%�� ��5 �#��� %�� �'������!���(' ��(�(��<� ��������!�� �<���( 7����8'�'����(���(' %�( �������� ����!�� 7�8 ��������!�� (�(��(5 �%&# ���� � #%� ���"��D"� %(/%��%4�� %�( (��%(/%��%4�� %�( 06 "�(����%�(��4 # � �#��� ���� ��� �;' %�( �#%� �6��� ! ��4�%) & �(��� ���4 %�� ��D"���( ! � �%&#' �� &%� �%;�� �� %&&"�%�� %�( ��)�%0)� ������%�"�� ��%�"������' � ��� ���4' %�( & ��� )5

�#� �6��&%) &#%�%&�������&� ! /%�� "� ������%�"�� ���� �� %��L

� &'������!���(L �#��� %�� ���*�����/�' %�( �#� � �� & �� � ������%�"������ �� ���# % ��(� �%�4� ! ������%�"�� �%�4�5 �#��� & "�)�� � �; ��#� ����&��)� �#%� �#�� �� (������)%� ���%)� %�� & �0���(' % / )�%4�%���%�� %&� �� �#� B"�&�� � 0������ �#� ���%)�5 6 ��%�"���4 �#�� / )�%4�'�� &%� 4�� % ������%�"�� ��%(��45 ��?����� & �0��%�� �� ! ���%)� &��%��(�?����� �#��� & "�)� / )�%4�� %�( �#��� �� % ��(� �%�4� ! �#��� & "�)��%/%�)%0)� ! � (�?����� %��)�&%�� ��5 �#��� & "�)�� 4����%�� /��6 ) �/ )�%4��' �6��&%))6 .1 �K��5 �#��� ) �$)�/�) ��4�%)� ��D"��� ���&�%) ��4�%)& �(��� ���4 � ��� /� %�6 � ���0)� � ���5 �#��� & "�)�� #%/� � �$)���%���)%�� ��#��� � �#� ��%�"��( ������%�"�� %�( %� % ���")� �� �� ��&���%�6���#�� � )���%��F� �#� &#%�%&�������&� � � "�� ) ;$"� �%0)�� � 0�%�� �#�%&�"%) ������%�"�� !� � �#� ��%�"��( / )�%4�5

� �&*(L %� ��� �� % ������ � ���# ��� ������%�&� &#%�4��4 ���# ������%�"��5�#� � �� � �")%� �6�� ! ��� �� �%(� ! �)%���"� %�( #%� % ������%�&� !211 � %� 1�5 �&%"�� ���� %�� �������/� (�/�&��' % &"����� �"�� �%���#� "4# �#� ��� � �� ("&� % / )�%4� �#%� &%� 0� ��%�"��(5 �#� &#%�4� ��������%�&� �� /��6 ��%)) 7%0 "� 153 �A�8 %�( ���&�%) &��&"���6 �� 4����%))6���(�( � ��%�"�� �#� ��%)) &#%�4�� �� ������%�"��5 ��� ! �#� (�%�0%&;� ! ���� �� �#��� � �$)���%� &#%�4� �� ������%�&� ���# ������%�"��5

� &'����(���(L �#������ �� %�� ���%) *�(� ����& �("&� � (�/�&�� �# ��������%�&� &#%�4�� ���# ������%�"��5 ��� ! �#� %(/%��%4�� ! �#������ ���� �#��� !%�� ���� ���� %�( #�4# �������/��65 � � �*%��)�' % �6��&%) �#������ �

Page 117: Microcontroller Projects in C for the 8051

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

� �� ��������!�� (�(��(L ����4�%��( &��&"�� ������%�"�� ���� �� %�� "�"%))6 >$ � ,$��� %&��/� (�/�&�� �#%� ��D"��� % � ��� �"��)6 � ���%�� %�( 4�/� "� %/ )�%4� �#�&# �� (���&�)6 �� � ��� �%) � �#� ������%�"��5 �#��� %��0%��&%))6 �� �6��� ! � ������%�"�� ���� �L %�%) 4"� ���� �� %�� "�"%))6>$��� (�/�&�� %�( 4�/� "� %� %�%) 4"� / )�%4� ! �6��&%))6 21�KA� �#�&#�� (���&�)6 �� � ��� �%) � �#� ������%�"��N (�4��%) ������%�"�� ���� ���� /�(� ,$ � 9$0�� ����%) (�4��%) "��"� (%�% �#�&# �� (���&�)6 �� � ��� �%)� �#� ������%�"��5

�� �#�� &#%���� �� �#%)) 0� ) ;��4 %� # � �� &%� �����!%&� /%�� "� ������%�"������ �� � "� ��&� & ��� ))�� �� �(�� � ��%�"�� %�( (���)%6 �#� %�0����������%�"��5

�)�0(�� �2 1 = ��� � ������ �� ���"� 8� ��

+'������

�#�� �� B�&� �# �� # � �� &%� �����!%&� % ��2=+1 �6�� (�4��%) ������%�"������ � � "� ��&� & ��� ))��5 �#� %�0���� ������%�"�� �� ��%�"��( & �$���" "�)6 %�( �#�� (���)%6�( �� (�4���� &����4�%(� � �#��� ���>22 �6��%)�#%�"����& (���)%6�5 - ����/� ������%�"�� �� (���)%6�( !� � 1� � 2+.�5��4%��/� ������%�"�� �� (���)%6�( ���# % )�%(��4 )����� M�: �� �#� �%�4� ( �� � �..�5

����'�� �������

�#� 0) &; (�%4�%� ! �#�� �� B�&� �� �# �� �� ��45 .525 ��2=+1 �� % (�4��%) �������%�"�� ���� � �#�&# ��%�"��� �#� %�0���� ������%�"�� %�( �� /�(�� �#� "��"� %� 9 0��� ! (�4��%) ����%) (%�%5 �#� ��&� & ��� ))�� �*��%&�� �#�������%�"�� (%�% !� � �#� ��2=+1 %�( �#�� (���)%6� �#� ������%�"�� ��#��� ���>22 �6�� %)�#%�"����& (���)%6�5

�! �� (��&��0��4 �#� &��&"�� (�%4�%� �� (��%�)' �� �� "��!") � ) ; %� �#� ���%�� � ! �#� ��2=+1 ������%�"�� ���� � �5

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

Page 118: Microcontroller Projects in C for the 8051

�#�1(� ������ �������� ��

��2=+1 �� % (�4��%) �#��� ����� %�( �#��� ��%� � �#%� �� /�(�� 9 0��� !����%) (%�% � ��(�&%�� �#� ������%�"�� ! �#� (�/�&�5 �#� ��� & �@4"�%�� � !�#� ��2=+1 �� �# �� �� ��45 .5+5 K�� �� �#� � ��� �"��)6 �#�&# �� � ��%))6& ���&��( � % �.K �"��)65 �X �� �#� (%�% ���"�A "��"� ���5 � �� �#� &) &;���"�5 ��� �� �#� ����� ���"�5 �#� (�/�&� &%� %)� %&� %� % �#��� ��%�5 ������� (��/�� #�4# �! �#� ��2=+1:� ������%�"�� �� 4��%��� �#%� � �D"%) � % "���(�@��( ������%�"�� ��5 ����)%�)6' ���� �� (��/�� #�4# �! �#� ��2=+1:�������%�"�� �� )��� �#%� � �D"%) � % "��� (�@��( ������%�"�� ��5 ��� ��(��/�� #�4# �#�� �#� ������%�"�� �*&��(� �� %�( ��%6� #�4# "���) �#�������%�"�� !%))� 0�) � ��5 ���� (�@��( ������%�"��� �� %�( �� %���� ��( �� � �$/ )%��)� ��� �6 ! �#� (�/�&� � �#%� �#�6 %�� � � ) �� �/��%!��� ��� /%) ! �#� � ���5

�%�% �� "��"� !� � �#� (�/�&� %� 9 0���' ���# �#� �� ���� "� @���5 �#�������%�"�� �� �� /�(�( �� +:� & ��)����� ! ��%� !� � �..� � �2+.�' ������� ! 15.�5 �%0)� .52 �# �� �#� ��)%�� ��#�� 0������ �#� ������%�"�� %�((%�% "��"� 06 �#� (�/�&�5

��.��-���'� ������

#��"� ����

@��= &������ �� ������ �2

#��"� ��$�

��� ���3�'������ �� �#�1(�

Page 119: Microcontroller Projects in C for the 8051

!-������ �� �#�1(�

�%�% ���"� %�( "��"� �� �#� "4# �#� �X ���5 �#�� ��� ���"� �� #�4#' ����%)(%�% &%� 0� ������� � ��%( 06 �")���4 �#� &) &; ���"�5 �%�% �� ������� � ��%(!� � �#� (�/�&� �� �� �%���5 �����' % �� � & ) �� ���� %�( �#�� �#� ��D"���( (%�%�� ��%( � �������5 �#� �� � & ) �� ,$0�� (%�% %�( �#� �� � & ) (�@���� �� %��4�/�� �� �%0)� .5+5 � � �*%��)�' � ����� �#� �#��� ��%� /%)"� ��' �#�#�*%(�&��%) �� � & ) (%�% 12 �� @��� ���� � �#� (�/�&�5 �!��� ���"��4 �#��

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

��� ��� ��-���'�4&��� ������ ��- �� �#�1(�

�� � ,��. ������ �"� "� ������ �"� "� $> ��� ��� ������ �"� "�,�����!. ,�-. ,*����.

��(� � �������� �+� A (��

�(� � �������� �)( A ��

�%� � �������� ��� A �

� � �������� ��� A �

��%� � �������� �++ ��� ���

�(� � �������� ��� �)( *1(

��� � �������� �.( �1� *�(

��� ��$ �#�1(� ������� &3������

�)�����+ �)�����+ �9�9 ,�-.

;��� �� ��

;��� �C �(

;��� ���3�'������ ��

#��- ����� ��� ((

�& �� ��

�& �C �(

�& ��-���'� ��

�& ���3�'������ ��

#���� ����� ��� ��

Page 120: Microcontroller Projects in C for the 8051

& ��%�(' �#� ��*� ���� &) &; &6&)�� &) &; �� �#� 9$0�� ������%�"�� )���� �#�&#��)) ��� �#� �#���# )( ! � ���%�� � ! �#� ����� "��"�5

� � �*%��)�' �#� ! )) ���4 (%�% 7�� #�*%(�&��%)8 �# ")( 0� ���� � �#� (�/�&�� ��� �� ! � % �� )���� ! �.1� %�( �� )���� ! �+1� %�( �#�� �"0��D"���)6� ��%�� �#� & �/���� �L

12 ���( �� �� � & )=3 ���( �� )���� ! .1 7=3 #�*� 211 (�&��%)81+ ���( �� �� � & )+, ���( �� )���� ! +1 7+, #�*� 31 (�&��%)8�� ���( & �/���� � ��%�� �� � & )

� & �@4"�%�� �A��%�"� ��4����� �� "��( � �� 4�%� /%�� "� ���%���4 � (�� !�#� (�/�&�5 �#�� ��4����� �� ������� ���# �� � & ) 1 7#�*8 %�( �#� ��%�"� �� ��%(���# �� � & ) � 7#�*85 � �� ! �#� ��� ��%�� & �@4"�%�� �A��%�"� ��4�����0��� %�� %� ! )) ��L

�� 1L �#�� �� �#� 2 �# � � (�5 �! �#�� 0�� �� ���' �#� ��2=+1 ��)) ���! �� �� ������%�"�� & �/���� � �#�� �#� ��%�� & �/��� �� � & ) �� ����5�! �#�� 0�� �� 1' �#� (�/�&� ��)) ���! �� & ����" "� ������%�"��& �/���� ��5

�� 2L �#�� 0�� �# ")( 0� ��� � 2 ! � ���%�� � ���# % ��&� & ��� ))�� ���&� �� &��� �5

�� .L �#�� �� �#� ��� C%4 %�( �� ��� � 2 �#�� �#� ������%�"�� �� )��� �#%� � �D"%) � �#� /%)"� ��5

�� =L �#�� �� �#� ��� 0�� %�( �� ��� � 2 �#�� �#� ������%�"�� �� 4��%����#%� � �D"%) � �#� /%)"� ! ��5

�� <L �#�� �� �#� ���� 0�� %�( �� ��� � 2 �#�� % & �/���� � �� & ��)���5

�#� & ��)��� &��&"�� (�%4�%� ! �#�� �� B�&� �� �# �� �� ��45 .5>5 �� + ! � �� >�� & ���&��( � �#� ��� ���"� ! ��2=+1' 0�� 2 �� & ���&��( � �#� &) &; ���"�%�( 0�� 1 ! � �� > �� & ���&��( � �#� �X ��� ! �#� ��2=+15 �#��� ��>22�6�� %)�#%�"����& (���)%6� %�� & ���&��( � � �� 2 ! �#� ��&� & ��� ))��5��4�� 2 �� & ��� ))�( !� � 0�� < ! � �� 2' (�4�� + !� � 0�� = ! � �� 2' %�( (�4�� >!� � 0�� . ! � �� 25

������� � ���-����

�#� �� 4�%� ��%(� �#� ������%�"�� !� � �#� ��2=+1 �#��� ����� � %�((���)%6� �#� ������%�"�� � �#��� ���>22 �6�� (���)%6� & ����" "�)6 ���# 2��& �( (�)%6 0������ �%&# (���)%6�( "��"�5 �#� ! )) ���4 -�� (��&��0�� �#� ���%�� � ! �#� �� 4�%�L

�����-���'� ������

Page 121: Microcontroller Projects in C for the 8051

�� �������

�$)($

��� (�4�� )%�&#�� � 2 �@4"�� ��2=+1��%�� ������%�"�� & �/���� ��/ -/(*1*(

��%( ������%�"������)%6 ������%�"���%�� % ��& �(

*+��/

*+�

,!���� ��:�!�� *=�F%�

�$)($

��� & �@4"�%�� �A��%�"� ��4����� � + 7�5�5 & ����" "� ���%�� �8*+�

��( ������������ ������ �� � ��� �� ����

#��"� ��%�

����'�� &������ �� ������ �2

Page 122: Microcontroller Projects in C for the 8051

,!���� (���� ��������!�� ��<��(��

�$)($

���( �� � & ) �� 7#�*8 � ��%�� ������%�"�� & �/���� �*+�

,!���� ��� ��������!��

�$)($

%)) !"�&�� � ��%(R!� �R(�2=+1 � 4�� �#� ������%�"��*+�

,!���� ���$����$(�F%�

�$)($

��� ��� 0�� � 2��%( 9$0�� ����%) ������%�"�� (%�% !� � ��2=+1��� ��� 0�� � 1

*+�

,!���� �(���� ��������!��

�$)($

,- ������%�"�� �� ��4%��/� $.*+

��� +:� & ��)����� ! �#� ������%�"�� ��%(��4��/�(� ������%�"�� 06 + � 4�� ��%) ������%�"����� (�4�� 2 � (���)%6 )����� M�:����)%6 ������%�"�� (�4���

*��*

��/�(� ������%�"�� 06 + � 4�� ��%) ������%�"������)%6 ������%�"�� (�4���

*+�,-

*+�

������� C� ����

�#� !")) �� 4�%� )�����4 �� 4�/�� �� ��45 .535 �#� (���)%6 (�4�� )%�&#�� %�( �#���2=+1 & ��� ) )���� %�� %���4��( � 0�� /%��%0)�� %� �#� 0�4�����4 ! �#��� 4�%�5 �)� �#� "��( �� � & )� %�� (�@��( %�( %���4��( � 4) 0%) /%��%0)��5� � �*%��)�' ���$���� �� %���4��( � #�*%(�&��%) �"�0�� ��' (����$��< ��%���4��( � #�*%(�&��%) �"�0�� �� %�( � �5

�#�� �#� �� 4�%� ��%���' �#� (�4�� )%�&#�� �����$����'' ����%$����'' %�(����8$����' %�� %)) ��� � 2 � %/ �( %�6 ��� �� "� ������ � �#� (���)%6�5 �!"�&�� � ��:�!��$(�F%� �� �#�� &%))�( � ��� �#� & �@4"�%�� � ��4�����A��%�"�

��)��-���'� ������

Page 123: Microcontroller Projects in C for the 8051

��* ������������ ������ �� � ��� �� ����

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� �2

+�C�: � !P�2%�

����: �'�' � �...

� !��##! : ���.(���

��� � � ��-���'� ���������� -�����% � �#�1(� �,- &����� �������� � ' & ����& �� ������ ��-���'�% �� ��-���'� � ��� &� -�,& �� ��� �C)�� �,-�-���'���� &� -�, % �� ��-���'� ���� � ����� �� ��(���% �� ���� ��-���'�� &� -�,& 6��� �&��� Q�� % 5����� ��-���'� �� &� -�,& �, �� ����� ����� [�\ �� ����� �� �� &� -�,% �� &� -�, ���'���, � �4� ���7 �%% ��� � �� &����-���� �� �� &� -�,& &���%

�� &� -�, � '-&��& ��, ���&%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

��� &�����D���� J ��I2E 4F&���� � ����F4

��� &����(D���� J ��I1E 4F&���� ( ����F4

��� &����)D���� J ��I�E 4F&���� ) ����F4

��� & �1(�D&H J �)I�E 4F�#�1(� &��� -��F4

��� & �1(�D�= J �)I�E 4F�#�1(� ���= -��F4

��� & �1(�D� � J �)I(E 4F�#�1(� � � -��F4

K&3� ��&D��- �8�� 4F��& ��- ������&F4

K&3� ����D���� �8�� 4F ���� ����� ��� ������&F4

K&3� 6���D���3� �8�� 4F6��� ���3� ������&F4

4F +'������ �� &�, ���'� � ���& F4

���& 6���D�D ���&<>

N

'� ���& ��� 8E

���<8J�E8L))���E8GG>E

O

4F +'������ �� &� -�, &��� �� ��� ��C)�� &� -�, % 5����� ��-���'� � &� -�,&6��� � �&��� [�\ ��������% �� -�, ���� � ��� �� ��(�% F4

���& &� -�,D��-���'�<'� ���& ��� 8>

N

'� ���& ��� E

��� 3� �7 ���&7����&E

��<8 M (��> 4F�� ������F4

N

8JR8E 4F���-��� ��-F4

8GGE 4F�&& � ��� ( ���-F4

8J8 X �8++E 4F8����� �6� � ��� F4

8J84(E 4F�� �� ��-F4

Page 124: Microcontroller Projects in C for the 8051

�����-���'� ������

3� �J�*E 4F&� -�, �&��� [�\F4

���&J84��E

����&J8?��F ���&E

O

N

8J84(E 4F��- � -� ����F4

3� �J84���E 4F8����� &���� &���F4

J8?���F3� �E

���&J 4��E

����&J ? ���&F��E

O

��J3� � S �8��E 4F#�& &����� &���F4

&�����D����J�E 4FC���� �� &����� &���F4

&�����D����J�E 4F#� &����� ���� ��F4

��J ���& S �8��E 4F#�& &����( &���F4

&����(D����J�E 4FC���� �� &����( &���F4

&����(D����J�E 4F#� &����( ���� ��F4

��J����& S �8��E 4F#�& &����) &���F4

&����)D����J�E 4FC���� &����) &���F4

&����)D����J�E 4F#� &����) ���� ��F4

O

4F ��� �'������ �& � &��� ��� �� �#�1(� �������� �� F4

���& 6���D& �1(�D���<'� ���& ���� �>

N

& �1(�D&HJ�E 4F �& ���F4

& �1(�D�=J�E 4F � ���= �F4

& �1(�D�=J�E 4F � ���= �F4

& �1(�D&HJ�E 4F � &��� �F4

O

4F ��� �'������ ��& � &��� ��� ���� �#�1(� F4

'� ���& ���� ��&D& �1(�D���<>

N

'� ���& ���� �E

& �1(�D�=J�E 4F � ���= �F4

�J& �1(�D&HE 4F��& � ���F4

& �1(�D�=J�E 4F � ���= �F4

��'�� <�>E 4F��'�� ���F4

O

4F ��� �'������ 6��� &���4���3�'������ �� �#�1(� F4

Page 125: Microcontroller Projects in C for the 8051

��1 ������������ ������ �� � ��� �� ����

���& 6���D��D& �1(�<'� ���& ���� & �1(�D�'������7

'� ���& ���� & �1(�D&���7

'� ���& ���� ���D��'��>

N

'� ���& ���� �7��� D���E

& �1(�D� �J�E 4F � � � �� �F4

���<�J�E�L�E�GG> 4F �& �'������%%%F4

N

��� D���J& �1(�D�'������ MM �E

��� D���J��� D��� X �8��E

6���D& �1(�D���<��� D���>E

O

���<�J�E�L���D��'��E�GG> 4F �& &���%%%F4

N

��� D���J& �1(�D&��� MM �E

��� D���J��� D��� X �8��E

6���D& �1(�D���<��� D���>E

O

& �1(�D� �J�E

O 4F � � � �� �F4

4F ��� �'������ ��& &���4���3�'������ ���� �� �#�1(� F4

'� ���& ��� ��&D����D& �1(�<'� ���& ���� & �1(�D�'������7

'� ���& ���� ���D��'��>

N

'� ���& ���� �7��� D���E

'� ���& ��� & �1(�D&���E

& �1(�D&���J�E 4F�������Q &���F4

& �1(�D� �J�E 4F � � � �� �F4

���<�J�E�L�E�GG>

N 4F �& �'������%%%F4

��� D���J& �1(�D�'������ MM �E

��� D���J��� D��� X �8��E

6���D& �1(�D���<��� D���>E

O 4F��& &���F4

���<�J�E�L���D��'��E�GG>

N

& �1(�D&���J& �1(�D&��� S ��&D& �1(�D���<> LL �E

O

& �1(�D� �J�E

��'�� <& �1(�D&���>E

O

4F ��� �'������ ���3�'� �� �#�1(� ��� ������'�' �-������ F4

���& ���3�'�D& �1(�<>

Page 126: Microcontroller Projects in C for the 8051

! � & ����" "� ���%�� �5 ������%�"�� & �/���� � �� �#�� ��%���( 06 &%))��4 �#�!"�&�� � (����$����$��<��(��5 �#�� !"�&�� � ���(� �� � & ) �� 7#�*8 � �#� ��2=+15 �� ��()��� ) � �� �#�� ! ���( "���4 �#� ��� ��%���������# � �%�%������5 ����(� �#�� ) �' !"�&�� � ���$��������!�� ��%(�

��2��-���'� ������

N

6���D��D& �1(�<6���D���3�7(7�>E

6���D�D ���&<>E

O

4F ��� �'������ ���� �� ����� ��� F4

���& ����D��-D����<>

N

6���D��D& �1(�< ����D����7�7�>E

O

4F ��� �'������ ��& �� ��-���'� F4

'� ���& ��� ��&D��-���'�<>

N

'� ���& ��� �E

�J��&D����D& �1(�<��&D��-7.>E 4F��& ��-F4

��'�� <�>E 4F��'�� ��-F4

O

4F #���� �� ���� -������ F4

����<>

N

'� ���& ��� ����E

&�����D����J�E 4F#� &����� ����F4

&����(D����J�E 4F � &����( ����F4

&����)D����J�E 4F � &����) ����F4

���3�'�D& �1(�<>E 4F���3�'� �#�1(�F4

����D��-D����<>E 4F ���� ����� ���F4

���<EE> 4F�& ��-F4

N

����J��&D��-���'�<>E 4F��& ��-���'�F4

&� -�,D��-���'�<����>E 4F!'�-'� �� ��C)��F4

6���D�D ���&<>E 4F6��� � ���&F4

O

O

#��"� ��&�

������� � ���� �� ������ �2

Page 127: Microcontroller Projects in C for the 8051

�#� 9$0�� ������%�"�� /%)"� %�( ���"��� �� /%��%0)� &" �5 �"�&�� ��(����$��������!�� (���)%6� �#� ������%�"�� � �#� �#��� ���>22 (���)%6�5�#�� ) � �� ����%��( ���# %0 "� % 2 ��& �( (�)%6 0������ �%&# "��"�5

�"�&�� � ���$��������!�� ���"��� �#� ������%�"�� � �#� &%))��4 �� 4�%� %�%� "���4��( ����4��5 �#�� !"�&�� � &%))� !"�&�� � ���$����$(�F%� ���# �#�%�4"���� �� 7�� #�*8 � 4�� �#� ������%�"��5 �"�&�� � ���$����$(�F%� �� %4����%) � "���� �#�&# ��%(� (%�% !� � �#� ��2=+15 �#�� !"�&�� � ���(� %�� � & ) (%�% � �#� ��2=+1 %�( �#�� ��%(� (%�% 06��� !� � �#� ��2=+1& ����� �(��4 � �#� ���� �� � & )5 �#� �=& ���"� ! �#� (�/�&� �� @��� ��� � 25� ��� ) � �� �#�� ! ���( � ����%�� ��4#� ����� � ���( ����%) �� � & ) (%�% � �#� ��2=+15 �� �� ���� "� @���5 � &%) /%��%0)� �'�($��� �� ��� �#� 0�� � 0����� "� %� �%&# ����%�� �5 �� �#�� ��� ) � ��%(� (%�% !� � �#� ��2=+1 %�(�� ��� �#�� (%�% �� /%��%0)� (�F%�$���5 �� �#� ��( ! �#� ��%( &6&)� �#� �=&���"� �� ��� 0%&; � 1 %�( �#� (%�% �� (�F%�$��� �� ���"���( � �#� &%))��5

�"�&�� � /����$��$(�F%� �� % 4����%) !"�&�� � %�( �� ���(� % �� � & )'! )) ��( 06 (%�% 0���' � �#� ��2=+15 �#� �=& ���"� ! �#� ��2=+1 �� @������ � 25 � ��� ) � �� �#�� ! ���( � ����%�� ��4#� ����� %�( �#� �� � & ) 0���%�� ���� "� ����%))6 � �#� *G ���"� ! �#� ��2=+15 K%��%0)� �'�($��� �� ��� �#�0�� � 0� ���� "� %� �%&# ����%�� �5 �!��� �#��' %� �#�� ��� ) � ���(� "� �#���D"���( �"�0�� ! (%�% 0��� � �#� ��2=+15 �� �#� ��( ! �#� ����� &6&)�' �#��=& ���"� �� ���"���( � 15

�"�&�� � �(����$��������!�� ��&��/�� �#� ������%�"�� (%�% %� ��� %�4"����%�( (���)%6� �#� ������%�"�� � �#� �#��� ���>22 �6�� %)�#%�"����& (���)%6�5�! �#� ������%�"�� �� ��4%��/�' �#� @��� (���)%6 (�4�� �� ��� � (���)%6 )����� M�:5�#� ������%�"�� /%)"� � 0� (���)%6�( �� (�/�(�( 06 + ���&� �#� ������%�"�� �����"���( 06 �#� ��2=+1 �� 15.� �����/%)�5 � � �*%��)�' % ��%(��4 ! (�&��%)211 & ����� �(� � .1�5 �%&# (�4�� �� (���)%6�( %!��� & �/�����4 �#� (%�% � (�&��%) ! ��%�5

���-���� H'��&

�� %((��� � � �#� 0%��& & �� ����� ��D"���( 06 �#� ��&� & ��� ))��' �#�! )) ���4 & �� ����� ��)) 0� ��D"���( ! � �#�� �� B�&�L

��2=+1 �#��� ����� ����>22 %)�#%�"����& (���)%6� 7> ?8

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

Page 128: Microcontroller Projects in C for the 8051

�)�0(�� �� 1 ������ �������� 6��� �������*�#������� �"� "�

+'������

�#�� �� B�&� �� ����)%� � -� B�&� 2<' 0"� �� %((��� � �#� "��"�� &%� (���)%6 �#�������%�"�� �� 0 �# ����4�%(� 7�8 %�( �%#���#��� 7��85 �� �-�� ����&# ��& ���&��( � 0�� > ! � �� > %�( �#� "��"� ! �#�� ����&# �� � ��%))6 #�)( %�) 4�& #�4# ���# % �"))$"� ������ �5 �� �#�� ��%�� �#� "��"� (���)%6 �� �� �5 �#���#� ����&# �� ������(' �#� (���)%6 &#%�4�� � �# � �#� ������%�"�� �� ��5 �#����� ! �#� �� B�&� �� �#� �%�� %� -� B�&� 2<' �5�5 �#� ������%�"�� �� ��%�"��(���# % ��2=+1 �6�� �#��� ����� � %�( �#� "��"� �� (���)%6�( � �#������>22 �6�� %)�#%�"����& (���)%6�5

����'�� �������

�#� 0) &; (�%4�%� ! �#�� �� B�&� �� �# �� �� ��45 .5.5 �#� &��&"�� (�%4�%� ������)%� � �#� &��&"�� ! -� B�&� 2< ���# �#� %((��� � ! %� �-�� ����&# � 0�� > ! � �� >5 �#� ������%�"�� �� �����( 06 �#� ��2=+1 �#��� ����� � %�( �#� "��"� �� (���)%6�( ���#�� �� � � �� �� 0%��( "� � �#� ��%�� ! �#� �-������&#5 �#� !")) &��&"�� (�%4�%� �� �# �� �� ��45 .5=5

������� � ���-����

�#� �� 4�%� �� �#� �%�� %� �#� �� �� -� B�&� 2< �*&��� �#%� �#� ��%�� ! �#��-�� ����&# �� � ��� ��( %�( �#�� �#� ����&# �� ������(' �#� ������%�"�� ��& �/����( !� � � � �� %�( �#�� (���)%6�( %&& �(��4)65 ��4%��/� ������%$�"��� %�� (���)%6�( 06 ��������4 �#� )�%(��4 )����� M�:5

��.��-���'� ������

#��"� ����

@��= &������ �� ������ ��

Page 129: Microcontroller Projects in C for the 8051

������� C� ����

�#� !")) �� 4�%� )�����4 ! �#�� �� B�&� �� �# �� �� ��45 .5<5 ��)6 �#� �%����#�&# %�� (�?����� !� � -� B�&� 2< %�� (��&��0�( #���5 K%��%0)� ��� ��%���4��( � 0�� > ! � �� >5 �#� /%)"� ! ��� �� &#�&;�( �� !"�&�� ��(����$��������!��5 �� ��� �� F�� 7�5�5 �� �%#���#��� � (�8' �#� ������%�"���� & �/����( � �� 06 �")���)6��4 06 25, %�( %((��4 >+5 �#� @�%) ������%�"���� �#�� (���)%6�( %� �� -� B�&� 2<5

���-���� H'��&

�� %((��� � � �#� ��%�(%�( & �� ����� ��D"���( 06 �#� ��&� & ��� ))��' �#�! )) ���4 & �� ����� ��)) 0� ��D"���( ! � �#�� �� B�&�L

�(� ������������ ������ �� � ��� �� ����

#��"� ��/�

����'�� &������ �� ������ ��

Page 130: Microcontroller Projects in C for the 8051

�(���-���'� ������

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� ��

+�C�: � !P��%�

����: �'�' � �...

� !��##! : ���.(���

��� � � ��-���'� ���������� -�����% � �#�1(� �,- &����� �������� � ' & ����& �� ������ ��-���'�% �� ��-���'� � ��� &� -�,& �� ��� �C)�� �,-�-���'���� &� -�, % �� ��-���'� ���� � ����� �� ��(���% �� ���� ��-���'�� &� -�,& 6��� �&��� Q�� % 5����� ��-���'� �� &� -�,& �, �� ����� ����� [�\ �� ����� �� �� &� -�,% �� &� -�, ���'���, � �4����7 �%% ��� � �� &����-���� �� �� &� -�,& &���%

�� &� -�, � '-&��& ��, ���&%

@�� ) �� -��� ) � ������& �� � 6����% ��� 6���� � �����, �& �� ���� � 6��� � -'?'-� � ���% ;�� �� 6���� � �7 �� ��-���'� � &� -�,& �� &�� �������&% ;���� 6���� � �7 �� ��-���'� � &� -�,& �� &�� +�������%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

��� &�����D���� J ��I2E 4F&���� � ����F4

��� &����(D���� J ��I1E 4F&���� ( ����F4

��� &����)D���� J ��I�E 4F&���� ) ����F4

��� ��& J �)I)E 4F�������&4�������� ��F4

��� & �1(�D&H J �)I�E 4F�#�1(� &��� -��F4

��� & �1(�D�= J �)I�E 4F�#�1(� ���= -��F4

��� & �1(�D� � J �)I(E 4F�#�1(� � � -��F4

K&3� ��&D��- �8�� 4F��& ��- ������&F4

K&3� ����D���� �8�� 4F ���� ����� ��� ������&F4

K&3� 6���D���3� �8�� 4F6��� ���3� ������&F4

4F +'������ �� &�, ���'� � ���& F4

���& 6���D�D ���&<>

N

'� ���& ��� 8E

���<8J�E8L))���E8GG>E

O

4F +'������ �� &� -�, &��� �� ��� ��C)�� &� -�, % 5����� ��-���'� � &� -�,&6��� � �&��� [�\ ��������% �� -�, ���� � ��� �� ��(�% F4

���& &� -�,D��-���'�<'� ���& ��� 8>

N

'� ���& ��� E

��� 3� �7 ���&7����&E

Page 131: Microcontroller Projects in C for the 8051

�(( ������������ ������ �� � ��� �� ����

��<8 M (��> 4F�� ������F4

N

8JR8E 4F���-��� ��-F4

8GGE 4F�&& � ��� ( ���-F4

8J8 X �8++E 4F8����� �6� � ��� F4

8J84(E 4F�� �� ��-F4

��<��& JJ �>8J�%�F8G)(E 4F�� ��������F4

3� �J�*E 4F&� -�, �&��� [�\F4

���&J84��E

����&J8?��F ���&E

O

N

8J84(E 4F��- � -� ����F4

��<��& JJ �>8J�%�F8G)(E 4F�� ��������F4

3� �J84���E 4F8����� &���� &���F4

J8?���F3� �E

���&J 4��E

����&J ? ���&F��E

O

��J3� � S �8��E 4F#�& &����� &���F4

&�����D����J�E 4FC���� �� &����� &���F4

&�����D����J�E 4F#� &����� ���� ��F4

��J ���& S �8��E 4F#�& &����( &���F4

&����(D����J�E 4FC���� �� &����( &���F4

&����(D����J�E 4F#� &����( ���� ��F4

��J����& S �8��E 4F#�& &����) &���F4

&����)D����J�E 4FC���� &����) &���F4

&����)D����J�E 4F#� &����) ���� ��F4

O

4F ��� �'������ �& � &��� ��� �� �#�1(� �������� �� F4

���& 6���D& �1(�D���<'� ���& ���� �>

N

& �1(�D&HJ�E 4F �& ���F4

& �1(�D�=J�E 4F � ���= �F4

& �1(�D�=J�E 4F � ���= �F4

& �1(�D&HJ�E 4F � &��� �F4

O

4F ��� �'������ ��& � &��� ��� ���� �#�1(� F4

'� ���& ���� ��&D& �1(�D���<>

N

Page 132: Microcontroller Projects in C for the 8051

�()��-���'� ������

'� ���& ���� �E

& �1(�D�=J�E 4F � ���= �F4

�J& �1(�D&HE 4F��& � ���F4

& �1(�D�=J�E 4F � ���= �F4

��'�� <�>E 4F��'�� ���F4

O

4F ��� �'������ 6��� &���4���3�'������ �� �#�1(� F4

���& 6���D��D& �1(�<'� ���& ���� & �1(�D�'������7

'� ���& ���� & �1(�D&���7 '� ���& ���� ���D��'��>

N

'� ���& ���� �7��� D���E

& �1(�D� �J�E 4F � � � �� �F4

���<�J�E�L�E�GG> 4F �& �'������%%%F4

N

��� D���J& �1(�D�'������ MM �E

��� D���J��� D��� X �8��E

6���D& �1(�D���<��� D���>E

O

���<�J�E�L���D��'��E�GG> 4F �& &���%%%F4

N

��� D���J& �1(�D&��� MM �E

��� D���J��� D��� X �8��E

6���D& �1(�D���<��� D���>E

O

& �1(�D� �J�E

O 4F � � � �� �F4

4F ��� �'������ ��& &���4���3�'������ ���� �� �#�1(� F4

'� ���& ��� ��&D����D& �1(�<'� ���& ���� & �1(�D�'������7

'� ���& ���� ���D��'��>

N

'� ���& ���� �7��� D���E

'� ���& ��� & �1(�D&���E

& �1(�D&���J�E 4F�������Q &���F4

& �1(�D� �J�E 4F � � � �� �F4

���<�J�E�L�E�GG>

N 4F �& �'������%%%F4

��� D���J& �1(�D�'������ MM �E

��� D���J��� D��� X �8��E

6���D& �1(�D���<��� D���>E

O 4F��& &���F4

���<�J�E�L���D��'��E�GG>

Page 133: Microcontroller Projects in C for the 8051

�(* ������������ ������ �� � ��� �� ����

N

& �1(�D&���J& �1(�D&��� S ��&D& �1(�D���<> LL �E

O

& �1(�D� �J�E

��'�� <& �1(�D&���>E

O

4F ��� �'������ ���3�'� �� �#�1(� ��� ������'�' �-������ F4

���& ���3�'�D& �1(�<>

N

6���D��D& �1(�<6���D���3�7(7�>E

6���D�D ���&<>E

O

4F ��� �'������ ���� �� ����� ��� F4

���& ����D��-D����<>

N

6���D��D& �1(�< ����D����7�7�>E

O

4F ��� �'������ ��& �� ��-���'� F4

'� ���& ��� ��&D��-���'�<>

N

'� ���& ��� �E

�J��&D����D& �1(�<��&D��-7.>E 4F��& ��-F4

��'�� <�>E 4F��'�� ��-F4

O

4F #���� �� ���� -������ F4

����<>

N

'� ���& ��� ����E

&�����D����J�E 4F#� &����� ����F4

&����(D����J�E 4F � &����( ����F4

&����)D����J�E 4F � &����) ����F4

���3�'�D& �1(�<>E 4F���3�'� �#�1(�F4

����D��-D����<>E 4F ���� ����� ���F4

���<EE> 4F#���� �� �& ��-F4

N

����J��&D��-���'�<>E 4F��& ��-���'�F4

&� -�,D��-���'�<����>E 4F!'�-'� �� ��C)��F4

6���D�D ���&<>E 4F6��� � ���&F4

O

O

#��"� ��2�

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

Page 134: Microcontroller Projects in C for the 8051

��2=+1 �#��� ����� ����>22 %)�#%�"����& (���)%6� 7> ?8�2 �-�� ����&#�+ 211' 152+.� ������ �

�)�0(�� �3 1 ������ �������� 6��� 5��� 9����"� "�

+'������

�#�� �� B�&� �� ����)%� � -� B�&� 2< 0"� % 0"FF�� �� & ���&��( � �#� ����� "��"� ! �#� ��2=+1 �#��� ����� �' /�% % ������ ��%����� �5 �#�� �#�������%�"�� �*&��(� % ������ /%)"� �#� 0"FF�� �"��� � %�( ��%6� � %� ) �4 %��#� ������%�"�� �� %0 /� �#�� /%)"�5 �� �#�� �� B�&� �#� %)%�� � "�(� �#�� �#�������%�"�� �� �D"%) � � 4��%��� �#%� +.�5

����'�� �������

�#� &��&"�� (�%4�%� ! �#�� �� B�&� �� �# �� �� ��45 .5,5 �#� ��2=+1 �#��$� ����� � %�( �#� ���>22 (���)%6� %�� & ���&��( %� �� -� B�&�� 2< %�( 2,5 ���%)) 0"FF�� �� & ���&��( � �#� ����� "��"� ! �#� ��2=+1 /�% % ������� ��� ��%����� �5 � ��%))6 �#� ����� "��"� �� %� ) 4�& ) � )�/�) %�( �#�� "��"� 4 �� � ) 4�& #�4# �#�� �#� ������%�"�� �*&��(� �#� /%)"� �� �� ��( ���#� � �$/ )%��)� ��� �6 ! �#� ��2=+15

������� � ���-����

�#� �� 4�%� �� 0%��&%))6 �#� �%�� %� �#� �� �� -� B�&� 2< �*&��� �#%� �#�������%�"�� #�4# )���� 7��8 �� ��� � .1 � �#%� �#� ����� "��"� 4 �� #�4#�#�� �#� ������%�"�� �� �D"%) � � �*&��(� +.� %�( �#�� �"��� � �#� 0"FF��� 4�/� % �%����4 � "�(5

������� C� ����

�#� !")) �� 4�%� )�����4 �� �# �� �� ��45 .595 �� %((��� � � �#� �� 4�%� )�����4 ! -� B�&� 2<' % !"�&�� � &%))�( (��$�'��' �� %((�( � ) %( �#� ������%�"�� #�4#)����5 �#�� !"�&�� � ���(� �� � & ) �"�0�� 12 � �#� ��2=+1 %�( �#�� ���(��#� (%�% /%)"� .1 � ��� �� � +.�5

H'��& ���-����

�� %((��� � � �#� & �� ����� "��( ! � -� B�&� 2<' % ������ ��%����� � 7�545K�==���8 %�( % ��%)) 0"FF�� ��)) 0� ��D"���( ! � �#�� �� B�&�5

�(���-���'� ������

Page 135: Microcontroller Projects in C for the 8051

�)�0(�� $� 1 ������ �������� ?��� 5��� ��* +�69��� �"� "�

+'������

�#�� �� B�&� �� ����)%� � -� B�&� 29 �*&��� �#%� �#� ��2=+1 �� �� 4�%���( � �#%� % 0"FF�� & ���&��( � �#� ��� "��"� ! ��2=+1 �"��� � �#�� �#�������%�"�� �� �D"%) � � 4��%��� �#%� �� %�( �� �#�� �"��� ? �)6 �#�� �#�������%�"�� (� �� 0�) � � �D"%) � ��5 �� �#�� �� B�&�' �� �� ��� � +.� %�(�� �� ��� � >1�5

�(1 ������������ ������ �� � ��� �� ����

#��"� ����

����'�� &������ �� ������ �.

Page 136: Microcontroller Projects in C for the 8051

�(2��-���'� ������

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� �.

+�C�: � !P�.%�

����: �'�' � �..�

� !��##! : ���.(���

��� � � ��-���'� ���������� -�����% � �#�1(� �,- &����� �������� � ' & ����& �� ������ ��-���'�% �� ��-���'� � ��� &� -�,& �� ��� �C)�� �,-�-���'���� &� -�, % �� ��-���'� ���� � ����� �� ��(���% �� ���� ��-���'�� &� -�,& 6��� �&��� Q�� % 5����� ��-���'� �� &� -�,& �, �� ����� ����� [�\ �� ����� �� �� &� -�,% �� &� -�, ���'���, � �4����7 �%% ��� � �� &����-���� �� �� &� -�,& &���%

�� &� -�, � '-&��& ��, ���&%

� �'QQ� ���� � ������& �� �� ���9� �'�-'� �� �#�1(�% �#�1(� �� � ��&& � ������ ���� <�'QQ�> � �����& 6�� �� ��-���'� � ���� (���%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

��� &�����D���� J ��I2E 4F&���� � ����F4

��� &����(D���� J ��I1E 4F&���� ( ����F4

��� &����)D���� J ��I�E 4F&���� ) ����F4

��� & �1(�D&H J �)I�E 4F�#�1(� &��� -��F4

��� & �1(�D�= J �)I�E 4F�#�1(� ���= -��F4

��� & �1(�D� � J �)I(E 4F�#�1(� � � -��F4

K&3� ��&D��- �8�� 4F��& ��- ������&F4

K&3� ����D���� �8�� 4F ���� ����� ��� ������&F4

K&3� 6���D���3� �8�� 4F6��� ���3� ������&F4

K&3� 6���D����� �8�� 4F6��� ���9�F4

4F +'������ �� &�, ���'� � ���& F4

���& 6���D�D ���&<>

N

'� ���& ��� 8E

���<8J�E8L))���E8GG>E

O

4F +'������ �� &� -�, &��� �� ��� ��C)�� &� -�, % 5����� ��-���'� � &� -�,&6��� � �&��� [�\ ��������% �� -�, ���� � ��� �� ��(�% F4

���& &� -�,D��-���'�<'� ���& ��� 8>

N

'� ���& ��� E

��� 3� �7 ���&7����&E

Page 137: Microcontroller Projects in C for the 8051

�(� ������������ ������ �� � ��� �� ����

��<8 M (��> 4F�� ������F4

N

8JR8E 4F���-��� ��-F4

8GGE 4F�&& � ��� ( ���-F4

8J8 X �8++E 4F8����� �6� � ��� F4

8J84(E 4F�� �� ��-F4

3� �J�*E 4F&� -�, �&��� [�\F4

���&J84��E

����&J8?��F ���&E

O

N

8J84(E 4F��- � -� ����F4

3� �J84���E 4F8����� &���� &���F4

J8?���F3� �E

���&J 4��E

����&J ? ���&F��E

O

��J3� � S �8��E 4F#�& &����� &���F4

&�����D����J�E 4FC���� �� &����� &���F4

&�����D����J�E 4F#� &����� ���� ��F4

��J ���& S �8��E 4F#�& &����( &���F4

&����(D����J�E 4FC���� �� &����( &���F4

&����(D����J�E 4F#� &����( ���� ��F4

��J����& S �8��E 4F#�& &����) &���F4

&����)D����J�E 4FC���� &����) &���F4

&����)D����J�E 4F#� &����) ���� ��F4

O

4F ��� �'������ �& � &��� ��� �� �#�1(� �������� �� F4

���& 6���D& �1(�D���<'� ���& ���� �>

N

& �1(�D&HJ�E 4F �& ���F4

& �1(�D�=J�E 4F � ���= �F4

& �1(�D�=J�E 4F � ���= �F4

& �1(�D&HJ�E 4F � &��� �F4

O

4F ��� �'������ ��& � &��� ��� ���� �#�1(� F4

'� ���& ���� ��&D& �1(�D���<>

N

'� ���& ���� �E

Page 138: Microcontroller Projects in C for the 8051

�(.��-���'� ������

& �1(�D�=J�E 4F � ���= �F4

�J& �1(�D&HE 4F��& � ���F4

& �1(�D�=J�E 4F � ���= �F4

��'�� <�>E 4F��'�� ���F4

O

4F ��� �'������ 6��� &���4���3�'������ �� �#�1(� F4

���& 6���D��D& �1(�<'� ���& ���� & �1(�D�'������7

'� ���& ���� & �1(�D&���7 '� ���& ���� ���D��'��>

N

'� ���& ���� �7��� D���E

& �1(�D� �J�E 4F � � � �� �F4

���<�J�E�L�E�GG> 4F �& �'������%%%F4

N

��� D���J& �1(�D�'������ MM �E

��� D���J��� D��� X �8��E

6���D& �1(�D���<��� D���>E

O

���<�J�E�L���D��'��E�GG> 4F �& &���%%%F4

N

��� D���J& �1(�D&��� MM �E

��� D���J��� D��� X �8��E

6���D& �1(�D���<��� D���>E

O

& �1(�D� �J�E

O 4F � � � �� �F4

4F ��� �'������ ��& &���4���3�'������ ���� �� �#�1(� F4

'� ���& ��� ��&D����D& �1(�<'� ���& ���� & �1(�D�'������7

'� ���& ���� ���D��'��>

N

'� ���& ���� �7��� D���E

'� ���& ��� & �1(�D&���E

& �1(�D&���J�E 4F�������Q &���F4

& �1(�D� �J�E 4F � � � �� �F4

���<�J�E�L�E�GG>

N 4F �& �'������%%%F4

��� D���J& �1(�D�'������ MM �E

��� D���J��� D��� X �8��E

6���D& �1(�D���<��� D���>E

O 4F��& &���F4

���<�J�E�L���D��'��E�GG>

N

Page 139: Microcontroller Projects in C for the 8051

�)� ������������ ������ �� � ��� �� ����

& �1(�D&���J& �1(�D&��� S ��&D& �1(�D���<> LL �E

O

& �1(�D� �J�E

��'�� <& �1(�D&���>E

O

4F ��� �'������ ���3�'� �� �#�1(� ��� ������'�' �-������ F4

���& ���3�'�D& �1(�<>

N

6���D��D& �1(�<6���D���3�7(7�>E

6���D�D ���&<>E

O

4F ��� �'������ ���� �� ����� ��� F4

���& ����D��-D����<>

N

6���D��D& �1(�< ����D����7�7�>E

O

4F ��� �'������ ��& �� ��-���'� F4

'� ���& ��� ��&D��-���'�<>

N

'� ���& ��� �E

�J��&D����D& �1(�<��&D��-7.>E 4F��& ��-F4

��'�� <�>E 4F��'�� ��-F4

O

4F ��� �'������ 6��� �� �� ���9� ��� �� F4

���& �D�����<��� �>

N

6���D��D& �1(�<6���D�����7�7.>E

6���D�D ���&<>E

O

4F #���� �� ���� -������ F4

����<>

N

'� ���& ��� ����E

&�����D����J�E 4F#� &����� ����F4

&����(D����J�E 4F � &����( ����F4

&����)D����J�E 4F � &����) ����F4

���3�'�D& �1(�<>E 4F���3�'� �#�1(�F4

Page 140: Microcontroller Projects in C for the 8051

����'�� �������

�#� &��&"�� (�%4�%� ! �#�� �� B�&� �� �%�� %� �� ��45 .5, �*&��� �#%� �#������� ��%����� � �� & ���&��( � ��� . 7���8 ! �#� ��2=+1 �����%( !��� < 7��� 0) &; (�%4�%�' ��45 .52185 � ��%)) 0"FF�� �� & ���&��( � �#� ��� "��"� ! �#� ��2=+1 /�% % ������ � ��� ��%����� �5 � ��%))6 �#� ��� "��"� �� %� ) 4�& ) � )�/�) %�( �#�� "��"� 4 �� � ) 4�& #�4# �#�� �#�������%�"�� �*&��(� �#� /%)"� �� 7�� ��( �� �#� � �$/ )%��)� ��� �6 ! �#���2=+18 %�( �#�� 4 �� 0%&; � ) 4�& ) � �#�� �#� ������%�"�� �� �D"%) � �)��� �#%� ��5

������� � ���-����

�#� �� 4�%� �� 0%��&%))6 �#� �%�� �#� %� �#� �� �� -� B�&� 29 �*&��� �#%� �#�������%�"�� #�4# )���� 7��8 �� ��� � =1 � �#%� ����� "��"� 4 �� #�4# �#��

�)���-���'� ������

�D�����<��>E 4F � ���9� ��� (��F4

����D��-D����<>E 4F ���� ����� ���F4

���<EE> 4F�& ��-F4

N

����J��&D��-���'�<>E 4F��& ��-���'�F4

&� -�,D��-���'�<����>E 4F!'�-'� �� ��C)��F4

6���D�D ���&<>E 4F6��� � ���&F4

O

O

#��"� ��3�

������� � ���� �� ������ �.

#��"� �����

@��= &������ �� ������ (�

Page 141: Microcontroller Projects in C for the 8051

�#� ������%�"�� �� �D"%) � � �*&��(� >1� %�( �� �� ��� � .1 � �#%� �#���� "��"� 4 �� 0%&; � 1 �#�� �#� ������%�"�� (� �� � +.� � 0�) �'�5�5 �#� 0"FF�� ��)) �"�� � �#�� �#� ������%�"�� ��%&#�� >1� %�( �� ��)) 4 ? �)6 �#�� �#� ������%�"�� (� �� � +.� � 0�) �5

������� C� ����

�#� !")) �� 4�%� )�����4 �� �# �� �� ��45 .5225 �#�� )�����4 �� �#� �%�� %� �#�)�����4 �� -� B�&� 29 ���# �#� %((��� � ! % !"�&�� � &%))�( (��$���/ �#�&# �����#� ) � )���� 7��8 ! �#� ��2=+15

H'��& ���-����

�#�� �� B�&� "��� �#� �%�� & �� ����� %� �� -� B�&� 295

�)�0(�� $� 1 = ��� 9����" �� ���"� 8� �� �� 6���9�� �������

+'������

�#�� �� B�&� �# �� # � �� &%� & ���&� %� %�%) 4"�$� $(�4��%) 7�A�8 & �/������ � "� ��&� & ��� ))��5 �� �#�� �� B�&�' %� %�%) 4"� ������%�"�� ���� � �7��>.�Y8 �� "��( %�( ��� "��"� �� & ���&��( � %� ,$0�� �A� & �/�����7��1,1385 �#� ������%�"�� �� �#�� (���)%6�( �/��6 ��& �( � % ���.1>3�6�� 3$(�4�� (���)%65 �#� 0) &; (�%4�%� ! �#�� �� B�&� �� �# �� �� ��45 .52+5

�#� �A� & �/����� �# �� �� �#�� �� B�&� &%� 0� & ���&��( � %�6 ;��( !%�%) 4"� / )�%4�5 � � �*%��)�' % (�4��%) / )������ &%� 0� & ����"&��( �%��)6 06& ���&���4 �#� �A� & �/����� ���"� � %� �*����%) / )�%4� �#�&# �� � 0���%�"��(5

����'�� �������

�! �� ) ;��4 %� �#� &��&"�� (�%4�%� ! �#�� �� B�&�' �� ��)) 0� "��!") �! �� ) ;%� �#� �%6� %� �A� & �/����� &%� 0� & ���&��( � % ��&� & ��� ))��5 �#��� %���%�6 �6��� ! �A� & �/������ %/%�)%0)� � �#� �%�;��5 � �� & �/�������� /�(� ����%) "��"� (%�% �"&# �#%� �#� "��"� (%�% �� 0�%���( !� � �#�& �/����� �%&# ���� % &) &; �")�� �� ���� � �#� & �/�����5 �#��� & �/������ %��/��6 �) � %�( %�� 4����%))6 "��( �#��� �#� ����( ! & �/���� � �� � ���� ��%�� %�( �#��� ��%&� �%/��4 �� ��D"���(5 ����%) �A� & �/�����������!%&� � % ��&� & ��� ))�� 06 "���4 �)6 % !�� ����5

��%�(%�( �A� & �/������ %�� 4����%))6 "��( �� ��(�"�$ %�( #�4#$����(%��)�&%�� ��5 �� �*%��)� ! �"&# %� �A� & �/����� �� �#� ��1,13'

�)( ������������ ������ �� � ��� �� ����

Page 142: Microcontroller Projects in C for the 8051

�))��-���'� ������

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� (�

+�C�: � !P(�%�

����: �'�' � �...

� !��##! : ���.(���

��� � � ��-���'� ���������� -�����% � �#�1(� �,- &����� �������� � ' & ����& �� ������ ��-���'�% �� ��-���'� � ��� &� -�,& �� ��� �C)�� �,-�-���'���� &� -�, % �� ��-���'� ���� � ����� �� G�(���% �� ���� ��-���'�� &� -�,& 6��� �&��� Q�� % 5����� ��-���'� �� &� -�,& �, �� ����� ����� [�\ �� ����� �� �� &� -�,% �� &� -�, ���'���, � �4����% �%% ��� � �� &����-���� �� �� &� -�,& &���%

�� &� -�, � '-&��& ��, ���&%

� �'QQ� ���� � ������& �� �� ��!� �'�-'� �� �#�1(�% �#�1(� �� � ��&& � ������ ���� <�'QQ�> � �����& 6�� �� ��-���'� � ���� )��� ��& �� ���� ��- 6�� �� ��-���'� &��- ��6 (���7 �%% ���9� � ��&& 6��� )��� ��& �C!;� ��&& 6��� (���

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

��� &�����D���� J ��I2E 4F&���� � ����F4

��� &����(D���� J ��I1E 4F&���� ( ����F4

��� &����)D���� J ��I�E 4F&���� ) ����F4

��� & �1(�D&H J �)I�E 4F�#�1(� &��� -��F4

��� & �1(�D�= J �)I�E 4F�#�1(� ���= -��F4

��� & �1(�D� � J �)I(E 4F�#�1(� � � -��F4

K&3� ��&D��- �8�� 4F��& ��- ������&F4

K&3� ����D���� �8�� 4F ���� ����� ��� ������&F4

K&3� 6���D���3� �8�� 4F6��� ���3� ������&F4

K&3� 6���D����� �8�� 4F6��� ���9�F4

K&3� 6���D��6 �8�( 4F6��� �C!;F4

4F +'������ �� &�, ���'� � ���& F4

���& 6���D�D ���&<>

N

'� ���& ��� 8E

���<8J�E8L))���E8GG>E

O

4F +'������ �� &� -�, &��� �� ��� ��C)�� &� -�, % 5����� ��-���'� � &� -�,&6��� � �&��� [�\ ��������% �� -�, ���� � ��� �� ��(�% F4

���& &� -�,D��-���'�<'� ���& ��� 8>

N

'� ���& ��� E

Page 143: Microcontroller Projects in C for the 8051

�)* ������������ ������ �� � ��� �� ����

��� 3� �7 ���&7����&E

��<8 M (��> 4F�� ������F4

N

8JR8E 4F���-��� ��-F4

8GGE 4F�&& � ��� ( ���-F4

8J8 X �8++E 4F8����� �6� � ��� F4

8J84(E 4F�� �� ��-F4

3� �J�*E 4F&� -�, �&��� [�\F4

���&J84��E

����&J8?��F ���&E

O

N

8J84(E 4F��- � -� ����F4

3� �J84���E 4F8����� &���� &���F4

J8?���F3� �E

���&J 4��E

����&J ? ���&F��E

O

��J3� � S �8��E 4F#�& &����� &���F4

&�����D����J�E 4FC���� �� &����� &���F4

&�����D����J�E 4F#� &����� ���� ��F4

��J ���& S �8��E 4F#�& &����( &���F4

&����(D����J�E 4FC���� �� &����( &���F4

&����(D����J�E 4F#� &����( ���� ��F4

��J����& S �8��E 4F#�& &����) &���F4

&����)D����J�E 4FC���� &����) &���F4

&����)D����J�E 4F#� &����) ���� ��F4

O

4F ��� �'������ �& � &��� ��� �� �#�1(� �������� �� F4

���& 6���D& �1(�D���<'� ���& ���� �>

N

& �1(�D&HJ�E 4F �& ���F4

& �1(�D�=J�E 4F � ���= �F4

& �1(�D�=J�E 4F � ���= �F4

& �1(�D&HJ�E 4F � &��� �F4

O

4F ��� �'������ ��& � &��� ��� ���� �#�1(� F4

'� ���& ���� ��&D& �1(�D���<>

N

'� ���& ���� �E

Page 144: Microcontroller Projects in C for the 8051

�)���-���'� ������

& �1(�D�=J�E 4F � ���= �F4

�J& �1(�D&HE 4F��& � ���F4

& �1(�D�=J�E 4F � ���= �F4

��'�� <�>E 4F��'�� ���F4

O

4F ��� �'������ 6��� &���4���3�'������ �� �#�1(� F4

���& 6���D��D& �1(�<'� ���& ���� & �1(�D�'������7

'� ���& ���� & �1(�D&���7 '� ���& ���� ���D��'��>

N

'� ���& ���� �7��� D���E

& �1(�D� �J�E 4F � � � �� �F4

���<�J�E�L�E�GG> 4F �& �'������%%%F4

N

��� D���J& �1(�D�'������ MM �E

��� D���J��� D��� X �8��E

6���D& �1(�D���<��� D���>E

O

���<�J�E�L���D��'��E�GG> 4F �& &���%%%F4

N

��� D���J& �1(�D&��� MM �E

��� D���J��� D��� X �8��E

6���D& �1(�D���<��� D���>E

O

& �1(�D� �J�E

O 4F � � � �� �F4

4F ��� �'������ ��& &���4���3�'������ ���� �� �#�1(� F4

'� ���& ��� ��&D����D& �1(�<'� ���& ���� & �1(�D�'������7

'� ���& ���� ���D��'��>

N

'� ���& ���� �7��� D���E

'� ���& ��� & �1(�D&���E

& �1(�D&���J�E 4F�������Q &���F4

& �1(�D� �J�E 4F � � � �� �F4

���<�J�E�L�E�GG>

N 4F �& �'������%%%F4

��� D���J& �1(�D�'������ MM �E

��� D���J��� D��� X �8��E

6���D& �1(�D���<��� D���>E

O 4F��& &���F4

���<�J�E�L���D��'��E�GG>

N

Page 145: Microcontroller Projects in C for the 8051

�)1 ������������ ������ �� � ��� �� ����

& �1(�D&���J& �1(�D&��� S ��&D& �1(�D���<> LL �E

O

& �1(�D� �J�E

��'�� <& �1(�D&���>E

O

4F ��� �'������ ���3�'� �� �#�1(� ��� ������'�' �-������ F4

���& ���3�'�D& �1(�<>

N

6���D��D& �1(�<6���D���3�7(7�>E

6���D�D ���&<>E

O

4F ��� �'������ ���� �� ����� ��� F4

���& ����D��-D����<>

N

6���D��D& �1(�< ����D����7�7�>E

O

4F ��� �'������ ��& �� ��-���'� F4

'� ���& ��� ��&D��-���'�<>

N

'� ���& ��� �E

�J��&D����D& �1(�<��&D��-7.>E 4F��& ��-F4

��'�� <�>E 4F��'�� ��-F4

O

4F ��� �'������ 6��� �� �� ���9� ��� �� F4

���& �D�����<��� �>

N

6���D��D& �1(�<6���D�����7�7.>E

6���D�D ���&<>E

O

4F ��� �'������ 6��� �� �� �C!; ��� �� F4

���& �D��6<��� �>

N

6���D��D& �1(�<6���D��67�7.>E

6���D�D ���&<>E

O

4F #���� �� ���� -������ F4

����<>

N

Page 146: Microcontroller Projects in C for the 8051

�%�"!%&�"��( 06 �#� �%�� �%) ����& �("&� � �� �%�� �5 �#� & �/���� ����� ! �#�� �A� & �/����� �� 211 ��5 �� �# �� �� ��45 .52>' �#��� & �/�����������!%&� � �#� ��&� & ��� ))�� "���4 �#� ! )) ���4 ���� 7 �)6 �#� ���� "��( �� %��%�(%�( %��)�&%�� � %�� �# ��8L

� 1$� < , (%�% "��"� ������ ��%( ���"��� ����� ���"����� ������"�� "��"�

�)2��-���'� ������

'� ���& ��� ����E

&�����D����J�E 4F � &����� ����F4

&����(D����J�E 4F � &����( ����F4

&����)D����J�E 4F � &����) ����F4

���3�'�D& �1(�<>E 4F���3�'� �#�1(�F4

�D�����<1�>E 4F � ���9� ��� )��F4

�D��6<��>E 4F � �C!; ��� (��F4

����D��-D����<>E 4F ���� ����� ���F4

���<EE> 4F�& ��-F4

N

����J��&D��-���'�<>E 4F��& ��-���'�F4

&� -�,D��-���'�<����>E 4F!'�-'� �� ��C)��F4

6���D�D ���&<>E 4F6��� � ���&F4

O

O

#��"� �����

������� � ���� �� ������ (�

#��"� ���$�

@��= &������ �� ������ (�

Page 147: Microcontroller Projects in C for the 8051

� �A� �� ) &; & ��� ) ���"��K��W - ����/� %�%) 4"� ���"�

� 1 � � < %�� �#� (�4��%) "��"� )���� %�( �#� & �/����( (%�% %���%�� ��#��� ��4#� )����5 �� ,$0�� & �/����� #%� +.= � ���0)� & �0��%�� �� 71 � +..8 ! "��"� 0�� �%������5 ���# % !"))$�&%)� / )�%4� ! �.K' �#� %&&"�%&6 ! �#�& �/����� �� .A+.=� 295.>�K5 � � �*%��)�' % (�4��%) "��"� �%����� !M11121111: 7�5�5 (�&��%) 2=8 & ����� �(� � >2+53, �K5 ����)%�)6' % (�4��%) "��"� �%����� ! M21211111: 7�5�5 (�&��%) 2=18 & ����� �(� � >2+35,�K �>52+3K %�( � �5

�� �� �#� ��%( (%�% & ��� ) ��� %�( �#�� �� �� ) � 7) 4�& 18' "��"� (%�%%���%�� � �#� ��4#� "��"� ����5 �#�� �� �� #�4# 7) 4�& 28' �#� "��"� �� � �%/%�)%0)�5

�� ���"� �� � ��%))6 %� ) 4�& #�4# %�( �#�� ���"� �# ")( 0� ��� � ) � %�( �#��#�4# %4%�� ! � % & �/���� � � ��%��5

���� �� �#� ������"�� "��"� ! �#� �A� & �/�����5 � #�4# � ) � �")�� ��4����%��( � �#�� ��� �#�� % & �/���� � �� & ��)���5 �#�� "��"� �� "�"%))6"��( � 4����%�� %� ������"�� �� �#� ��&� & ��� ))�� � �#%� �#� & �/����( (%�%&%� 0� ��%(5

��1,13 & ��%��� %� ������%) �&�))%� � %�( �� �� ��D"���( � & ���&� %��*����%) ������ � %�( % &%�%&�� � � ���� � � %�( � �� � ��%�� �#� �&�))%� �5

K��W �� �#� ��� �#��� �#� %�%) 4 ���"� / )�%4� �# ")( 0� %��)��(5

�)� ������������ ������ �� � ��� �� ����

#��"� ���%�

������* +'������� -�� ���3�'������

Page 148: Microcontroller Projects in C for the 8051

� �%;� % ���4)� & �/���� � �#� ���%�� � ! �#� �A� & �/����� &%� 0��"��%��F�( "���4 �#� ! )) ���4 �����L

� ��� �� %�( �� #�4#� ��%�� & �/���� � 06 ������4 �� ) �� ��� �� 0%&; � #�4#� ����&� ��( ! & �/���� � �#�� ���� 4 �� ) � 7"�"%))6 06 ������"��8� ��� �� ) � %�( ��%( (%�% !� � � 1 � � <� ��� �� #�4#

�#� %0 /� �� &��� �� ! & "��� ����%��( �#�� � �� �#%� �� & �/���� � ����D"���(5

��4"�� .523 �# �� �#� !")) &��&"�� (�%4�%� ! -� B�&� +25 �%�% %�( &) &; ���"�� ! �#� ���.1>3 %�� & ���&��( � 0��� 2 %�( 1 ! � �� > �����&��/�)65 �#� ��4#�

�).��-���'� ������

#��"� ���&�

����'�� &������ �� ������ (�

Page 149: Microcontroller Projects in C for the 8051

(%�% "��"�� ! �#� ��1,13 %�� & ���&��( � � �� 25 �� ���"� �� & ���&��(� 0�� + ! � �� >5 �� �� & ���&��( � 0�� 3 ! � �� >5 �#� ������"�� "��"�'����' ! �#� �A� & �/����� �� & ���&��( � 0�� > ! � �� > �#�&# �� �#� �*����%)������"�� 2 7���28 ��� ! �#� ��&� & ��� ))��5 ��%) 4"� ���"� / )�%4� ��%��)��( � ��� = ! �#� �A� & �/����� %�( �#�� ���"� &%� 0� & ���&��( � %�6 ;��( ! %�%) 4"� / )�%4� �#�&# �� � 0� ��%�"��(5

�� �#�� �� B�&�' %�%) 4"� (%�% & ��� !� � %� ��>.�Y �6�� � %�%) 4"�������%�"�� ���� �5 ��>.�Y �� % ����)� ������%�"�� ���� � �5 -�� 2 ! �#�(�/�&� �� & ���&��( � % � ��� �"��)6 7�545 �.K8' ��� > �� & ���&��( � �#�4� "�(5 -�� + �� �#� "��"� %�( �#�� "��"� �� /�(�� % / )�%4� �#�&# �� (���&�)6�� � ��� �%) � �#� ��%�"��( ������%�"��5 �#� (�/�&� &%� ��%�"�� ������%$�"��� !� � +� "� � 211� 7� �� �6��� &%� ��%�"�� % ��(�� �%�4�8 %�( �#� "��"� / )�%4� � ������%�"�� ��)%�� ��#�� �� 21�KA�5 � � �*%��)�' %� +1��#� "��"� �� +11�K5 ����)%�)6' %� >.�' �#� "��"� / )�%4� �� >.1�K' %�( � �5 ������%) �&�))%� � ! �#� �A� & �/����� �� %&��/%��( 06 & ���&���4 %��*����%) ������ � %�( % &%�%&�� � � ���� � � %�( � ��5 � ��&� �#%� 0���1 %�( 2 ! � �� 2 %�� & ���&��( � �.K "���4 �"))$"� ������ ��5 �#�� ����&���%�6 �� � �� %��)�&%�� �� ���&� �#� "��"� (��/��� %� �#��� ���� %�� ���(�%�� 7�5�5 �#��� %�� � ������%) �"))$"� ������ ��85

������� � ���-����

�#� (���)%6 �%�� ! �#� �� 4�%� �� %� (��&��0�( �� �#� ���'� ���H���( ��&�� � !�#� 0 ;5 �� �#%)) �#���! �� ) ; %� �#� �%6 �#� �A� & �/����� �� & ��� ))�( 06�#� � !��%��5 �#� ! )) ���4 -�� (��&��0�� �#� ���%�� � ! �#� �� B�&�L

�� �������

�$)($

)�%� (���)%6�����%)�F� ��&� & ��� ))�� ������"��� %�( �A� & �/�������%�� & �/���� ��/ -/(*1*(

*+��/

*+�

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

�$)($

��� �A� �� %�( �� ���� � 2��� ���2 � %&&��� ������"��� � #�4#$� $) � �(4���%0)� ���2 ������"������ ��&� & ��� ))�� � %&&��� ������"���

*+�

�*� ������������ ������ �� � ��� �� ����

Page 150: Microcontroller Projects in C for the 8051

=���� ��<��(�� �!����

�$)($

��� �� ��� � 1��� �� ��� � 2

*+�

"������ �����!�� �2&� (��<��� ��!���

�$)($

��� �� � 1��%( ������%�"�� �/��� � �K��� �� � 2����)%6 ������%�"���%�� % ��& �(��%�� & �/���� �

*+�

�#� �� 4�%� &)�%�� �#� (���)%6 %�( �#�� �����%)�F�� �#� ��&� & ��� ))�� � �#%��*����%) ������"��� � ��� ���2 &%� 0� ��& 4��F�(5 �#� �A� �� �#�� �����%)�F�(%�( �#� & �/���� � ��%���(5 �� �#� ��( ! % & �/���� �' %� ������"�� ��4����%��( 06 �#� �A� & �/����� %�( �*�&"�� � B"��� � �#� ���2 ���/�&�� "����5 ����' �#� & �/����� (%�% �� ��%( %�( (���)%6�( � �#� ���.1>3(���)%65 �� �#� �%�� ���� % ��� & �/���� � �� ����%���(5

������� C� ����

�#� & ��)��� �� 4�%� )�����4 �� �# �� �� ��45 .52.5 ����)%6 &) &; %�( (���)%6(%�% /%��%0)�� %�� %���4��( � ���� 1 %�( 2' �����&��/�)6' ! � �� > ! �#���&� & ��� ))��5 ����)%�)6' �A� �� %�( �A� �� /%��%0)�� %�� %���4��( � ���� + %�( 3 ! � �� > ! �#� ��&� & ��� ))��5 �#�� �#� �� 4�%� ��%��� �� @���&)�%�� �#� (���)%65 �"�&�� � ��������� �� �#�� &%))�( � ��� �#� �A� �* %�(I����"�� 73*�$�* %�( 3*�$I�8 � 25 �*����%) ������"�� ��� �2&� ! �#���&� & ��� ))�� �� %)� ��� 7�&�� �8 �� �#�� � "���� � %&&��� ������"��� � #�4#$� $) � ��%����� � %�( �#� ��&� & ��� ))�� �� & �@4"��( � %&&��� ������"���7"3� �85 �"�&�� � (����$��<��(�� �� �#�� &%))�( � ��%�� %� �A� & �/���� �5�#�� !"�&�� � ����)6 ���� �#�I� ���"� ! �#� �A� � 1 %�( �#�� 0%&; � 25 �#��� 4�%� �#�� ������ %� ��()��� ) � %�( �%��� ! � �*����%) ������"��� � ����2&� ���5

�2&� #%� �#� ������"�� �"�0�� ! +5 �#�� % & �/���� � �� & ��)���' & ��� )�%���� � �#� ������"�� ���/�&� � "���� ���5 �� �#�� � "����' �* ���"� ! �#� �A�& �/����� �� ��� � 1 � ��%0)� �#� "��"� 0"?��� %�( �#�� �#� (�4��%) (%�% ����%( ��� � �� 2 ! �#� ��&� & ��� ))��5 �#� /%)"� ��%( �� �#�� & �/����( � ��"�

�*���-���'� ������

Page 151: Microcontroller Projects in C for the 8051

�*( ������������ ������ �� � ��� �� ����

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� (�

+�C�: � !P(�%�

����: �'�' � �...

� !��##! : ���.(���

��� � � &����� ��-���'�7 ' ��� �� �����'?��?&����� �������%

�� ������* �,- �4� ������� � ������& �� -��� � �� �� ������������% � �7 ��#���)* �,- *?&���� &� -�, � ������& �� -��� )% �� ������������ ������ ���� ��&� -�, ��& �� �4� �������%

�� C�)��W �,- �����' ��-���'� � �� �� � ' & �� �� '� �� ��-���'�%�� ����� �'�-'� �� �� C�)��W � �& �� �� �����' ��-'� �� �� �4� �������%��-���'� ���� ��� '- �� �����7 �� �- �� �%���7 �� &� -�,& �� �� *?&����&� -�,%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L���.(���%�M

��� ��#�C�$D�C!�/J�)I�E 4F&� -�, ���=F4

��� ��#�C�$D���� J�)I�E 4F&� -�, &���F4

��� ���D � J �)I(E 4F�?� � ��-'�F4

��� ���D; J �)I*E 4F�?� ; ��-'�F4

'� ���& ��� ����� ��" �E 4F�?� &���F4

4F ��� �'������ -����& � � ���& &�, F4

���& 6���D�D ���&<>

N

'� ���& ��� 8E

���<8J�E8L))���E8GG>E

O

4F ��� �'������ �& � ���= -' �� �� &� -�, F4

���& �&D���=<>

N

��#�C�$D�C!�/J�E

��#�C�$D�C!�/J�E

O

4F ��� �'������ &� -�, � &���� F4

���& &� -�,D&����<��� 87���� &->

N

'� ���& ���� C��D� �$T��UJ

N

�8+�7�81�7�8��7�8+(7�8117�8@17

�8@�7�8��7�8+�7�8+17�

OE

Page 152: Microcontroller Projects in C for the 8051

�*)��-���'� ������

'� ���& ���� �7��-D���7�E

�JC��D� �$U8V S &-E

���<�J�E�LJ�E�GG>

N

��-D���J� X �8��E 4F9� ��- ���F4

��<��-D��� YJ �>

��#�C�$D����J�E

��#�C�$D����J�E

�&D���=<>E

�J� LL �E 4F#���� �� �, � &����F4

O

O

4F ��� �'������ &� -�, � �� * &���� F4

���& &� -�,D�<��� �>

N

��� �73� �7 ���&7����&7��'���E

3� �J�4����E

�J�?����F3� �E

���&J�4���E

�J�?���F ���&E

����&J�4��E

��'���J�?����&F��E

��#�C�$D����J�E

�&D���=<>E

��<� L ����> 4F@��= �&��� Q�� F4

&� -�,D&����<��7�>E

&� -�,D&����<3� �7�>E

��<� L ���>

&� -�,D&����<��7�>E

&� -�,D&����< ���&7�>E

��<� L ��>

&� -�,D&����<��7�>E

&� -�,D&����<����&7�>E

&� -�,D&����<��'���7�>E

��#�C�$D����J�E

Page 153: Microcontroller Projects in C for the 8051

�** ������������ ������ �� � ��� �� ����

�&D���=<>E

�&D���=<>E

�&D���=<>E

O

4F ��� �'������ ��� �� &� -�, F4

���& ���D&� -�,<>

N

��� �E

��#�C�$D����J�E

��#�C�$D�C!�/J�E

��#�C�$D����J�E

�&D���=<>E

��#�C�$D����J�E

���<�J�E�LJ)�E�GG> �&D���=<>E

O

4F ��� �'������ �������Q �� �4� ������� F4

���& �������Q<>

N

���D �J�E 4F � �?� � �� �F4

���D; J�E 4F � �?� ; �� �F4

���J�E 4F � ����� &� �����'-�F4

�B�J�E 4F��� 8���� �5��F4

��J�E 4F��� �����'-� F4

O

4F ��� �'������ ���� �� �?� ����� ��� F4

���& ����D����� ���<>

N

���D; J�E 4F � �?� ; �� �F4

���D; J�E 4F � �?� ; �� �F4

O

4F ��� � �� 8���� �����'-� �5�� ���� ��'��� F4

����<> �����'-� (

N

���D �J�E 4F � � �� �F4

����� ��" �J��E 4F��& �?� &���F4

����� ��" �J����� ��" �F�.%1�E 4F������ �� ��' ��-F4

���D �J�E 4F � �?� � �� �F4

&� -�,D�<����� ��" �>E 4F&� -�, �� &���F4

6���D�D ���&<>E 4F&�, � ���F4

����D����� ���<>E 4F&� -�, �8� ����� ���F4

O

Page 154: Microcontroller Projects in C for the 8051

������%�"�� %�( (���)%6�( 06 &%))��4 �#� !"�&�� � �(����$���5 �!��� %0 "� %��& �( (�)%6' % ��� & �/���� � �� ��%���( %�( �#� %0 /� �� &��� ����%��5

H'��& ���-����

�� %((��� � � �#� ��%�(%�( & �� ����� ��D"���( 06 �#� 0%��& ��&� & ��� ))��&��&"��' �#� ! )) ���4 & �� ����� %�� ��D"���( ! � �#�� �� B�&�L

��1,13 �A� & �/����� ����.1>3 ����)%6 ���>.�Y ������%�"�� ���� � ��+ 21�>' �3 211�. ,5+ ������ �3 2.1 �� &%�%&�� �. 152�� &%�%&�� �

�)) ������ �� %�� 152+.�5

�*���-���'� ������

4F #���� �� ���� -������ F4

����<>

N

���D&� -�,<>E 4F��� &� -�,F4

�������Q<>E 4F�������Q �?�F4

����D����� ���<>E 4F ���� ����� ���F4

���<EE> 4F�& ��-F4

N

O

O

#��"� �����

������� � ���� �� ������ (�

Page 155: Microcontroller Projects in C for the 8051

.This Page Intentionally Left Blank

Page 156: Microcontroller Projects in C for the 8051

������ 1

#()( #� ��C �!��"5�����!5 � !P���#

��+>+ �� % ����%) & ��"��&%�� �� ��%�(%�( �#�&# ��%0)�� (%�% � 0���%��!����( �� ����%) ! �� 0������ �� (�/�&��5 �%�% �� ��%�������( %�(��&��/�( �� ����%) M0�� ����%�: !� � �� � ��� � %� �#��5 ��%�(%�( ��+>+ ���"��%0)� ! � (%�% ��%��!�� � %0 "� .1�' %)�# "4# ���&�%) ) �$) �� &%0)�� &%� 0�"��( ! � �*���(�( (���%�&� ���%�� �5 � "� �%�%������ ���&�!6 %� ��+>+ )��;0������ �� (�/�&��5 �#��� %�� ��! ����' ��� /��'' ������' %�( �#� (��� ���('%�( %�� (��&��0�( 0�) �L

� A�! ����L �#� 0%"( �%�� 70��� ��� ��& �(8 (��������� # � �"&# ��! ��%$�� � �� ��%��!����( /�� % 4�/�� ���� �����/%)5 � 0%"( �%�� &%� "�"%))6 0���)�&��( 0������ 221 %�( <= ,11 0%"(' �545 % 0%"( �%�� ! 9=11 & ����� �(�� 9=11 0��� ��� ��& �(5

� *��� /��'L �#� (%�% ��(�# &%� 0� ���#�� , 0��� � < 0��� (����(��4 "� � �#��%�"�� ! �#� (%�% 0���4 ��%��!����(5

� ������L �#� �%���6 0�� �� "��( � &#�&; �#� & ���&����� ! �#� ��%�������( ���&��/�( (%�%5 -%���6 &%� ���#�� 0� �/��' ((' � � �%���6 0�� &%� 0����&�@�( %� %))5

� =��� ���L �#� �� � 0�� �� "��( %� �#� ������%� � 0�� %�( �� �� � ���0)� � ���&�!6���#�� �� � �� �� � 0���5

����%) (%�% �� ��%�������( %�( ��&��/�( �� !�%��� �#��� % !�%�� & ������ !L

� 2 ��%�� 0��� < � , (%�% 0���� ��� �%) �%���6 0��� 2 �� � 0��

�� �%�6 %��)�&%�� �� 21 0��� %�� "��( � ���&�!6 %� ��+>+ !�%��' & �������4 !2 ��%�� 0��' , (%�% 0���' � �%���6 0��' %�( 2 �� � 0��5 � � �*%��)�' &#%�%&��� M�:#%� �#� ���� 0�� �%����� M12111112: %�( �� ��%�������( %� �# �� �� ��45 =52���# 2 ��%�� 0��' , (%�% 0���' � �%���6' %�( 2 �� � 0��5 �#� (%�% �� ��%�������()�%�� ��4��@&%�� 0�� @���5

�#�� 21 0��� %�� "��( � ���&�!6 �#� !�%�� )��4�#' �#� ���� �%;�� � ��%����� ���&��/� �%&# 0�� &%� 0� ! "�( !� � �#� 0%"( �%�� "��(5 �%0)� =52 4�/�� �#� ����

Page 157: Microcontroller Projects in C for the 8051

�%;�� ! � �%&# 0�� � 0� ��%�������( � ��&��/�( ! � � �� & �� �)6 "��( 0%"(�%���5

#()( ��������

�� �# �� �� ��45 =5+' �� �6��� ! & ���&� �� %�� "��( ! � ��+>+ & ��"$��&%�� ��5 �#��� %�� �#� +.$�%6 �$�6�� & ���&� � 7;� �� %� � +.8 %�( �#�9$��� �$�6�� & ���&� � 7%)� ;� �� %� � 985 �%0)� =5+ )���� �#� � ��& �� �)6 "��( ��4�%) �%��� ! � 0 �# � 9 %�( � +. �6�� & ���&� ��5 �#�"��( ��4�%)� %��L

�*� ������������ ������ �� � ��� �� ����

#��"� /���

���� ������� �������� [�\ <��� -����� ��������>

��� /�� @�� ��� ��� &������ ��'& ���

'�"* ��� '�� ���

)�� )%))�

1�� �%11�

�(�� �)) �

(*�� *�1 �

*��� (�� �

.1�� ��* �

�. (�� �( �

#��"� /�$�

#()( ��������

Page 158: Microcontroller Projects in C for the 8051

��L ��4�%) 4� "�(5 �#�� ��� �� "��( �� %)) ��+>+ &%0)��5��L ��&��/�( (%�%5 �%�% �� ��&��/�( %� �#�� ���5 �#�� ��� �� "��( �� %)) �� $

�%6 & ��"��&%�� ��5��L ��%����� (%�%5 �%�% �� ���� "� !� � �#�� ���5 �#�� ��� �� "��( �� %))

�� $�%6 & ��"��&%�� ��5���L ��D"��� � ���(5 �#�� ��4�%) �� %������( �#�� �#� (�/�&� ��D"���� (%�% �

0� ����5��L &)�%� � ���(5 �#�� ��4�%) �� %������( �#�� �#� (�/�&� �� ��%(6 � %&&���

(%�%5���L (%�% ������%) ��%(65 �#�� ��4�%) �� %������( � ��(�&%�� �#%� �#� (�/�&� ��

��%(65���L (%�% ��� ��%(65 �#�� ��4�%) ��(�&%���' 06 �#� (�/�&� %� �#� �#�� ��('

�#%� �� �� ��%(65�L &%����� (���&�5 �#�� ��4�%) ��(�&%��� �#%� % &%����� ��4�%) #%� 0���

(���&��( 06 % � (�� & ���&��( � �#� )���5

�� � �� ��+>+ %��)�&%�� �� �� �� �"J&���� � "�� �)6 �#� ���� ��' ��' %�(��5 �)� ' �� � �� %��)�&%�� �� 7�545 �#�� �� ����)%� (�/�&�� %�� & ���&��(� 4��#��8 �� �� ��&���%�6 � ����� ���� �� %�( �� � �#%� �#� ��%����� ��� ! �� (�/�&� �� & ���&��( � �#� ��&��/� ��� ! �#� �#�� (�/�&� %�( /�&� /���%5

#()( #���� C�

��+>+ �� 0�$� )%� %�( % / )�%4� ! �> � �2+K ��(�&%��� %� �� ��%�� 7 ��-��8' �#�)� % / )�%4� ! �> � �2+K ��(�&%��� %� ��� ��%�� 7 � ���85�� ��%&��&�' �#� �� %�( ��� ��%��� &%� 0� %&#��/�( ���# ) ��� / )�%4��5

�*. #()( #��� ����'�������� ������

��� /�$ ������, ' & #()( ����

� ��� ���� 8���� 3 �� $� ��

������ &��� �� � �

��� &��� � ( )

���� ��� &��� �� ) (

���� ������ ��&, �� * (�

#���� ���'�& #9 � 2

���� � ��&, �# 1 1

H' � �� �& �# 2 *

��� �� �& ��# � �

��� ��&������ � . ((

Page 159: Microcontroller Projects in C for the 8051

��%�(%�( ��� ) 4�& (�/�&��' ��&)"(��4 �#� ,9+1.2 ��&� & ��� ))��' ���%�����# ��� ) 4�& )�/�)� 0������ �#� / )�%4�� ! 1 %�( �.K5 K )�%4� )�/�)& �/����� �� %�� "��( � & �/��� 0������ �#� ��� %�( ��+>+ / )�%4�)�/�)�5 ��� �"&# � �")%� � �� �#� ���+>+' �%�"!%&�"��( 06 �����' %�( ���%���� ���# �.K �"��)65 �#� ���+>+ �� % 2=$��� ��� &#�� ��& �� �%���4�� ��&��/��� %�( �� ��%��������� 7��� ��45 =5>8 %�( �#� (�/�&� ��D"���� ! "��*����%) &%�%&�� �� ! � �� ��� ���%�� �5

�#� ,9+1.2 ��&� & ��� ))�� &%� "��"� ��� )�/�) ��+>+ ��4�%)� !� � ������ 7 � ��� ->528 ��� %�( �� &%� ��&��/� ��� )�/�) ��+>+ ��4�%)� !� � ������ 7 � ��� ->518 ���5 �#� ��&� & ��� ))�� &%� 0� & ���&��( � �*����%)��+>+ & ��%��0)� �D"������ /�% % ���+>+ �6�� / )�%4� & �/����� �5

��������� �� #()( ����

�! �� �#� ����%) � �� &%� 0� "��( �� �� ��&���%�6 � ��� /%�� "� ��4������L

���L �#�� �� �#� ����%) � �� & ��� ) ��4�����5 �� �# ")( 0� ��� � #�*%(�$&��%) 1*.1 ! � ,$0�� (%�% � (�5

����L �#�� ��4����� & ��� )� �#� ������ ! � 0%"( �%�� 4����%�� � %�( ���# ")( 0� ��� � #�*%(�&��%) 1*+1 � ��%0)� ����� 2 � ���%�� ��,$0�� %"� $��) %( � (�5

��2L �#�� ��4����� �# ")( 0� ) %(�( ���# % & ���%�� � �#%� �#� ��D"���(0%"( �%�� &%� 0� 4����%��(5 �%0)� =5> �# �� �#� /%)"�� � 0� ) %(�(��� ��2 %�( �#� & ����� �(��4 0%"( �%��� ! � �� (�?����� &) &;�%���5

��2L �#�� ��4����� ��%���A�� �� �#� ����� %�( �� �# ")( 0� ��� � 2 � ��%������� 25

��L �#�� ��4����� �# ")( 0� ��� � 2 � ��(�&%�� ��%(6 � ��%�����5

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

#��"� /�%�

��� ���3�'������ �� ��B()(

Page 160: Microcontroller Projects in C for the 8051

� � �*%��)�' �#� ! )) ���4 !"�&�� � �# �� # � �� &%� �����%)�F� �#� ����%) � ��! � +311 0%"( ���%�� �L

���& ���D����<>

N

#�!5J�8��E

��!�J�8(�E

���J�8+)E

� �J�E

��J�E

O

�)�0(�� $$ 1 �"� "� � 8�� �-� � �� ���� ��)8$%$ ����

+'������

�#�� �� B�&� �# �� # � �� &%� �����!%&� "� ��&� & ��� ))�� � %� �*����%)��+>+ & ��%��0)� (�/�&� 7�545 %� ��+>+ /��"%) (���)%6 "���' � ��2 ���+ � �� ! % -8 %�( ���( % ��*� ����%4� � �#�� (�/�&�5 �#� ��*� ����%4�M���� �� �� ��+>+ ���� �������: �� ���� "� & ����" "�)6 !� � �#���&� & ��� ))��5 �#� !�%�� ! ��%� "��( �� �#�� �� B�&� �� +311 0%"(' , (%�%0���' � �%���6' %�( 2 �� � 0��5

��� #()( #��� ����'�������� ������

��� /�% ��� ��' ��� &������ ��'& ���

'�"* ��� ���< 8��� �5� ��" (����

.1�� �(%�����Q � �8+. 2]

*��� �(%�����Q � �8+. 2]

(*�� �(%�����Q � �8+) �%�1]

�(�� �(%�����Q � �8�1 �%�1]

.1�� ��%��.��Q � �8+� �

*��� ��%��.��Q � �8+� �

(*�� ��%��.��Q � �8+* �

�(�� ��%��.��Q � �8�� �

5�� ���� ��� �� #�!� ��'& � � �� � 6�� 6 �H'�� .1�� ��'& �� �(��Q ���=

���% #�!� � � �� � �� � � ���%

Page 161: Microcontroller Projects in C for the 8051

����'�� �������

�#� 0) &; (�%4�%� ! -� B�&� ++ �� �# �� �� ��45 =535 �#� ��� ��� ! �#���&� & ��� ))�� �� & ���&��( � �#� ���+>+ �%*�� / )�%4� & �/����� � %�(�#� "��"� ! �#�� � &%� 0� & ���&��( � �#� ���"� ! % ��2 7 � ��+8 � �� ! % -' � � �#� ���"� ! %� ��+>+ /��"%) (���)%6 "���5 ����)%�)6' �#� "��"� ! �#� �*����%) ��+>+ (�/�&� �� & ���&��( � �#� ��� ���"� ! �#� ��&� $& ��� ))�� /�% �#� ���+>+ �5 � ������%) ��")%�� � � !��%�� &%� 0� %&��/%��( � �#� - � ��&��/� %�( (���)%6 %�6 (%�% %���/��4 %� ��� ����%) � ��5

�#� & ��)��� &��&"�� (�%4�%� ! �#�� �� B�&� �� �# �� �� ��45 =5.5 -�� ->52 !�#� ��&� & ��� ))�� 7���8 �� & ���&��( � ��� 21 ! �#� ���+>+ & �/����� �5-�� < ! �#�� � �� & ���&��( � �#� �*����%) ��+>+ & ��%��0)� ����%) (�/�&��#�&# �� � ��&��/� %�( (���)%6 "� ��*� ����%4�5 ����)%�)6' �#� "��"� ! �#���+>+ (�/�&� �� & ���&��( � ��� , ���"� ! �#� ���+>+ � %�( ��� 9 "��"� ! �#�� � �� & ���&��( � ��� + 7���8 ����%) ���"� ! �#� ��&� & ��� ))��5 ���&� ���%�� � ! ���+>+ ��D"���� ! "� �*����%) &%�%&�� �� � 0�& ���&��( %� �# �� �� �#� @4"��5

������� � ���-����

�#� �� 4�%� �����%)�F�� �#� ��+>+ � �� ! �#� ��&� & ��� ))�� %�( �#�� ���(� %���� ����%4� � �#� � ��5

�#� ! )) ���4 -�� (��&��0�� �#� !"�&�� �� ! �#� �� 4�%�L

�$)($

�����%)�F� ��+>+ � ���/ -/(*1*(

����)%6 ��*� M���� �� �� ��+>+ ���� �������:*+��/

*+�

��( ������������ ������ �� � ��� �� ����

#��"� /�&�

@��= &������ �� ������ ((

Page 162: Microcontroller Projects in C for the 8051

������� C� ����

�#� �� 4�%� )�����4 �� 4�/�� �� ��45 =5=5 � ��&� �#%� �#� ��%�(%�( ���"�A "��"�)�0�%�6 M��(� 5#: �� ��&)"(�( %� �#� � � ! �#� �� 4�%�5 �#� �%�� �� 4�%� &%))�!"�&�� � (�����$��� �#�&# �����%)�F�� �#� ��+>+ � �� � +311 0%"( %�( ��%0)����%������� ��5 ��%�(%�( !"�&�� � ����� �� "��( � ���( �#� ����%) (%�% � �#���+>+ � ��5 � &%���%4� ���"�� %�( )��� !��( �%�� 7MZ�:8 %�� ���� %!��� �%&# "��"�5

�� �� ��� ��%�� � � ��&� �#%� �#�� ����)� �� 4�%� &&"���� %0 "� 2193 06��� ���#� ��� �6 ! �#� ��&� & ��� ))��5 �#�� �� 0�&%"�� �#� ����� !"�&�� � �� %& ��)�* )�0�%�6 !"�&�� � %�( �� ���)������( �� % )%�4� �"�0�� ! �����"&�� ��5� ����)� !"�&�� � &%� 0� (�/�) ��( � ��")%�� � �� ! �#� !"�&�� �%)����� !����� � �#%� �#� "��"� ���%�� �� &%� 0� ���! ���( ���# )��� ��� �6 %�(��&��0�( 0�) �5

��) #()( #��� ����'�������� ������

#��"� /���

����'�� &������ �� ������ ((

Page 163: Microcontroller Projects in C for the 8051

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

�#� ,9+1.2 ��&� & ��� ))�� �� �D"����( ���# +06��� ! ��� �65 �� �%��# �� �� �#� ���/� "� �*%��)� �#%� "���4 �#� 0"�)�$�� ����� !"�&�� � &%"��� %)%�4� �%�� ! �#�� ��� �6 � 0� "��(' )�%/��4 )���)� ��%&� ! � �#�� ���%�� ��5��4"�� =5< �# �� % �� 4�%� )�����4 �#%� ���! ��� ����%) "��"� !"�&�� �����# "� "���4 �#� ����� !"�&�� � %�( �#� & ��)��� �� 4�%� &&"���� %0 "�311 06��� ! ��� �65 �� �#�� �� 4�%�' �#� ����%) ��%����� ��4����� ! �#�

��* ������������ ������ �� � ��� �� ����

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� ((

+�C�: � !P((%�

����: �'�' � �...

� !��##! : ���.(���

��� -����� �& �� �8� � ��: [���# �# �5 #()( ��#� ��##�9�\ �� �� #()( ���-��� �� �� ������������% �� � �� � �� �'� ������'�' , 6��� � ������� ��'����& �� �& �� �� �& �� ��� ��%

�� -������ ���'-� ���'� ��.* �,� �� ����,

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L �&��%�M

K���'& L���.(���%�M

4F +'������ �� �������Q �� #()( ��� -��� F4

���& ���D����<>

N

#�!5J�8��E 4F �'- ��� �?��� &��� F4

��!�J�8(�E 4F �'- ���� � ��� �'��?���& F4

���J�8+)E 4F �'- ��� (*�� ��'& F4

� �J�E 4F �'�� �� ���� � F4

��J�E 4F ��&���� ��&, �� ���� ��� F4

O

4F #���� �� ���� -������ F4

����<>

N

���D����<>E 4F�������Q ��� -���F4

���<EE> 4F#���� �� ��-F4

N

-�����<[���# �# �5 #()( ��#� ��##�9�^�\>E

O

O

#��"� /�/�

������� � ���� �� ������ ((

Page 164: Microcontroller Projects in C for the 8051

��&� & ��� ))�� 7� ��8 �� "��( � ���( "� (%�% (���&�)65 �"�&�� � (�$(�������%������ % �"))$������%��( �����4 � �#� ��+>+ � �� ! �#� ��&� & ��� ))��5�#� �� 4�%� �%��� "���) �#� ��%����� ��4����� �� ����6 7��� 28 0�! �� ���(��4 "� �#� ��*� &#%�%&���5 �� �#�� �*%��)�' �#� �����4 M������� ����: �� "��"� & ����" "�)65 � ��&� �#%� &%))��4 �#�� !"�&�� � ���# /%��%0)� ���� &%"���% &%���%4� ���"�� %�( )��� !��( � 0� "��"� %� �#� ��( ! �#� ���� ����%4�5

���-���� H'��&

�#� ! )) ���4 & �� ����� ��)) 0� ��D"���( �� %((��� � � �#� ��%�(%�(��&� & ��� ))�� & �� �����L

���+>+ �3 ++ �� &%�%&�� � 73 ?89 �%6 � +. �%6 ��+>+ & ���&� �

�)�0(�� $% 1 �� "���"� "� (-�� = ��� �� )8$%$ ����

+'������

�#�� �� B�&� �# �� # � �� &%� ���"� %�( "��"� ����%) (%�% "���4 �#� 0"�)�$�� !"�&�� ��5 �� �#�� �*%��)�' �#� "��� �� �� ����( � ����� % &#%�%&��� �#� "4#�#� ��+>+ ������%)5 �#� �� 4�%� �#�� @�(� �#� ��*� &#%�%&��� 7�5�5 ��&��������#� &#%�%&��� 06 ��8 %�( "��"�� �� � �#� "���:� ������%)5

����'�� �������

�#� &��&"�� (�%4�%� ! �#�� �� B�&� �� �#� �%�� %� �� -� B�&� ++ 7�5�5 ��45 =5.85

������� � ���-����

�#� ��+>+ ����%) � �� �� �����%)�F�( � ���%�� %� +311 0%"(5 �#� "��� �� �#���� ����( � ����� % &#%�%&���5 �#�� &#%�%&��� �� ��&�������( 06 �� %�( ���� � �#� ����%) "��"� � ��5

�#� ! )) ���4 -�� (��&��0�� �#� !"�&�� �� ! �#� �� 4�%�L

�$)($

�����%)�F� ����%) � ���/ -/(*1*(

����)%6 M����� % &#%�%&���:��%( % &#%�%&�����&������ �#� &#%�%&�������)%6 �#� ��*� &#%�%&���

*+��/

*+�

��� #()( #��� ����'�������� ������

Page 165: Microcontroller Projects in C for the 8051

��1 ������������ ������ �� � ��� �� ����

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� ((

+�C�: � !P((?�%�

����: �'�' � �...

� !��##! : ���.(���

��� -����� �& �� �8� � ��: [�5!��� ��#�\ �� �� #()( ��� -��� �� ��������������% �� � �� � �� �'� ������'�' , 6��� � ������� ��'�� ��& ���& �� �� �& �� ��� ��%

��� -������ &� ��� ' �� �'��?�� �'������ -�����% �� -������ ���'-� ���'� *���,� �� ����,%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L �&��%�M

K���'& L���.(���%�M

4F +'������ �� �������Q �� #()( ��� -��� F4

���& ���D����<>

N

#�!5J�8��E 4F �'- ��� �?��� &��� F4

��!�J�8(�E 4F �'- ���� � ��� �'��?���& F4

���J�8+)E 4F �'- ��� (*�� ��'& F4

� �J�E 4F �'�� �� ���� � F4

��J�E 4F ��&���� ��&, �� ���� ��� F4

O

4F ��� �'������ &� -�, � �'?�������& ����� �� �� #()( -��� F4

���& �&D ���<'� ���& ���� F >

N

6��<F YJ �8�>

N

#@"+JF E 4F �& �'� �� ��������F4

;��<Y ��> 4F6��� '��� ��F4

N

O

��J�E

GGE 4F�� �� �8� ��������F4

O

O

4F #���� �� ���� -������ F4

����<>

N

'� ���& ���� ���T UJN�8��7�8��7�8�OE 4F������� ��'��7 �� �&F4

���D����<>E 4F�������Q ��� -���F4

���<EE> 4F#���� �� ��-F4

Page 166: Microcontroller Projects in C for the 8051

������� C� ����

�#� �� 4�%� )�����4 �� �# �� �� ��45 =5,5 �"�&�� � (�����$��� �����%)�F�� �#�����%) � �� ! � ���%�� � %� +311 0%"( ���# % 2+��F &�6��%)5 "�)�$�� !"�&�� ������ �� "��( � �� ��� �#� "��� � ����� % &#%�%&���5 � &#%�%&��� �� �#�� ��%(!� � �#� "���:� ������%) "���4 �#� ��%�(%�( 0"�)�$�� !"�&�� � ����'�� %�( �#��&#%�%&��� �� �� ��( �� % /%��%0)� &%))�( �5 ���%))6' �#�� &#%�%&��� �� ��&�������(06 �� %�( �� "��"� � �#� ��+>+ � �� "���4 !"�&�� � �����5 �#� %0 /��� &��� �� ����%��( ��(�@����)65 �#�� �� 4�%� &&"���� 22=3 06��� ! ��� �65

��-'�4!'�-'� ;����'� " ��� �� @'��?�� +'������

�#� %0 /� �� 4�%� "��� �#� ��%�(%�( 0"�)�$�� !"�&�� �� ����� %�( ����'��5�� % ���")� �#� �� 4�%� �� 0�45 �� �*%��)� �� 4�%� �� 4�/�� �� ��45 =59 �#�&#( �� � � "�� �#��� 0"�)�$�� !"�&�� �� %�( �#"� &&"���� �"&# )��� ��%&� ����� �65

�"�&�� � (�����$��� �� �#� �%�� %� 0�! �� 0"� � �� �#%� �#� ����%) � �� ������"���%�� ��%0)�( 7��� 2 %�( ��� 285 �"�&�� � (�$(����� ���(� % �"))$������%��(�����4 � �#� ����%) "��"� � ��5 ����)%�)6' !"�&�� � (�$�$�'�� ���(� % ���4)�&#%�%&��� � �#� ����%) � ��5 ����%) (%�% �� ��%( �� /�% �#� ����%) � �� ������"�����/�&� � "���� 7(�����85 �#���/�� % &#%�%&��� �� ��%�������( � ��&��/�(' �#�������"�� ���/�&� � "���� �� %&��/%��( %"� �%��&%))65 �#� ������"�� �"�0�� !�#� ����%) � �� �� 35 ����' �#� ��&��/� ������"�� ��4����� 7��8 �� &#�&;�( %�( %&#%�%&��� �� %��"��( � 0� ��&��/�( !� � �#� ����%) � �� �! �� �� � �$F�� 5 �#���&��/�( &#%�%&��� �� & ���( !� � � �� � % /%��%0)� &%))�( �����<�$�'�������5

�#� �%�� �� 4�%� &%))� !"�&�� � (�$(����� � (���)%6 �#� ����%4� M����� %&#%�%&���:5 �! % &#%�%&��� �� ��&��/�(' �#�� &#%�%&��� �� �&# �( � �#� "���:�������%) %�( �#� ��*� &#%�%&��� �� (���)%6�( 06 ��&��������4 %�( "��"����4�#� /%��%0)� �����<�$�'�������5 �"�&�� � (�$�$�'�� �� �#�� "��( � ���( %&%���%4� ���"�� %�( )��� !��( %!��� �%&# "��"�5

��2 #()( #��� ����'�������� ������

N

�&D ���<[�5!��� ��#�\>E

�&D ���<���>E

O

O

#��"� /�2�

!'�-'� -������ 6���� &� ��� ' �� � !��" �'������

Page 167: Microcontroller Projects in C for the 8051

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

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� ()

+�C�: � !P()%�

����: �'�' � �...

� !��##! : ���.(���

��� -����� � �� 8��- �� ' ��� ���� �� ��-'� ��& �� �'�-'� ��� &��� ��'��� % ��������� � ����& ���� �� ��� -���% �� �8� �������� � ��� ���'��& ��&�'�-'� �� �� ' �\ #()( ������%

��� -������ ���'-� ��1* �,� �� ����,%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L �&��%�M

K���'& L���.(���%�M

4F +'������ �� �������Q �� #()( ��� -��� F4

���& ���D����<>

N

#�!5J�8��E 4F �'- ��� �?��� &��� F4

��!�J�8(�E 4F �'- ���� � ��� �'��?���& F4

���J�8+)E 4F �'- ��� (*�� ��'& F4

� �J�E 4F �'�� �� ���� � F4

��J�E 4F ��&���� ��&, �� ���� ��� F4

O

4F #���� �� ���� -������ F4

����<>

N

���� �E

���D����<>E 4F�������Q ��� -���F4

���<EE> 4F#���� �� ��-F4

N

-�����<[^����� � ��������\>E

�J������<>E 4F��& � ��������F4

�GGE 4F�8� ��������F4

-�����<[�� �8� �������� � : ]�:7�>E

O

O

#��"� /���

������� � ���� �� ������ ()

Page 168: Microcontroller Projects in C for the 8051

��. #()( #��� ����'�������� ������

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� ()

+�C�: � !P()?�%�

����: �'�' � �...

� !��##! : ���.(���

��� -����� ��& � �������� ���� �� ' �\ ������7 3�& �� �8� �������� ��&&� -�, �� �� ' �\ ������% � �'��?�� �'������ �� ��� ' & �� ��� -������%

��� -������ ���'-� ((� �,� �� ����,%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L �&��%�M

K���'& L���.(���%�M

'� ���& ���� ����&D��������E

��� ����&D0��E

4F +'������ �� �������Q �� #()( ��� -��� F4

���& ���D����<>

N

#�!5J�8��E 4F �'- ��� �?��� &��� F4

��!�J�8(�E 4F �'- ���� � ��� �'��?���& F4

���J�8+)E 4F �'- ��� (*�� ��'& F4

� �J�E 4F �'�� �� ���� � F4

��J�E 4F ��&���� ��&, �� ���� ��� F4

��J�E 4F��� �����'-� F4

�#J�E 4F��� ��� -��� �����'-� F4

O

4F ��� �'������ &� -�, � �'?�������& ����� �� �� #()( -��� F4

���& �&D ���<'� ���& ���� F >

N

6��<F YJ �8�>

N

#@"+JF E 4F �& �'� �� ��������F4

6��<Y ��> 4F6��� '��� ��F4

N

O

��J�E

GGE 4F�� �� �8� ��������F4

O

O

4F ��� �'������ �& � ��� �������� �� �� ��� -��� F4

���& �&D�D����<'� ���& ���� �>

Page 169: Microcontroller Projects in C for the 8051

�1� ������������ ������ �� � ��� �� ����

N

#@"+J�E 4F �& �'� �� ��������F4

6��<Y ��> 4F6��� '��� ���� ����&F4

N

O

��J�E

O

4F #��� -��� �����'-� ���� ��'���% ������� �'�- �� ��� ��'��� 6�� � �������� � ���� ����& �� ����& F4

���<> �����'-� *

N

��< �> 4F�� � �������� ����&F4

N

����&D��������J#@"+E

�J�E

����&D0��J�E 4 � ����& 0��F4

O

O

4F #���� �� ���� -������ F4

����<>

N

����&D0��J�E

���D����<>E 4F�������Q ��� -���F4

���<EE> 4F#���� �� ��-F4

N

�&D ���<[���� � ��������:\>E

6��<����&D0�� JJ �>

N

O

����&D0��J�E

�&D�D����<����&D��������>E 4F���F4

�&D ���<[�� �8� �������� � :\>E

����&D��������GGE 4F�8� ����F4

�&D�D����<����&D��������>E

�&D�D����<�8��>E 4F �& ������� ��'��F4

�&D�D����<�8��>E 4F �& �� �&F4

O

O

#��"� /�3�

������� ��� ' ��� �� �'��?�� � �'������

Page 170: Microcontroller Projects in C for the 8051

�)�0(�� $& 1 9 8�� ���"���� ������� = ��� ��)8$%$ ����

+'������

�#�� �� % ����)� &%)&")%� � �� B�&� 0%��( "� � �#� ,9.2 �6�� ��&� & ��� ))��5�#� ��&� & ��� ))�� �� & ���&��( � %� ��+>+ ����%) ������%)5 �#� "��� &%����! �� ����)� %((��� �' �"0��%&�� �' �")���)�&%�� �' %�( (�/��� � ! �"�0���"���4 �#� ��&� & ��� ))��5

����'�� �������

�#�� �� B�&� �� 0%��( "� � �#� ,9.2 ��&� & ��� ))��5 �#�� �� % 31$��� (�/�&��#�&# �� � !��%�� & ��%��0)� ���# �#� ,9+1.2 ��&� & ��� ))��5 �#� ,9.2& ��%��� % 306�� C%�# �� 4�%� ��� �6' 2+, 06��� ! ���' >+ �� 4�%�$�%0)� ���"�A "��"� )����' %�( ��* ������"�� � "�&��5

�#� &��&"�� (�%4�%� ! �#�� �� B�&� �� �# �� �� ��45 =5215 � 2+ ��F &�6��%) %�(�� &%�%&�� �� %�� & ���&��( � ���� 2, %�( 29 ! �#� ��&� & ��� ))��5 ��������"� �� & ���&��( � % &%�%&�� � %�( % ������ �5 ��%����� "��"� 7���8 %�(��&��/� ���"� 7���8 ! �#� (�/�&� %�� & ���&��( � % ���+>+ �6�� ��+>+& �/����� �5 �� �� �#� �*����%) �� 4�%� ��%0)� ��� %�( �#�� ��� �# ")( 0�& ���&��( � �.K ! � ������%) �� 4�%� �*�&"�� ��5

������� � ���-����

�#� �� 4�%� ���%��� %� % ����)� &%)&")%� �5 �#�� � ��� �� %��)��( � �#���&� & ��� ))��' % ���" �� (���)%6�( � �#� "���:� ������%) %�( �#� "��� ���� ����( � ����� �� �"�0��� %�( �#� ���%�� � � 0� ���! ���(5 � �6��&%)(�%) 4"� �� 4�/�� 0�) � 7� �� �#%� �#� &#%�%&���� �6��( 06 �#� "��� %��"�(��)���( ! � &)%���68L

� #���C� ��� !�!5� !CC� ?@�#�� ��C�"C��!

JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ

���� ( ����� �'��� ��& �� �-������

�� � -�����&% Z��& �-������ ��:

� ���

� #"@� ���

�"C���C$

4 ��Z���

���� +�� � 5'���: .

���� #���& 5'���: >

���� !-������: �

'� � �

� #���C� � � �

�1� #()( #��� ����'�������� ������

Page 171: Microcontroller Projects in C for the 8051

#��"� /����

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

Page 172: Microcontroller Projects in C for the 8051

�#� ! )) ���4 -�� (��&��0�� �#� ���%�� � ! �#� �� 4�%�L

�$)($

�����%)�F� ����%) � ������)%6 #�%(��4��� % �"�0�� 2��� �"�0�� +<.,�* ����%�� � �� � � /%)�(

��� ����%�� � � 0� ���! ���(<*+�

,- ����%�� � � M�:��� �#� �"�0���

*��* ,- ����%�� � � M�:�� ���� �#� �"�0���

*��* ,- ����%�� � � MV:�����-�G �#� �"�0���

*��* ,- ����%�� � � MA:��K��� �#� �"�0���

*+�,-

����)%6 �#� ���")�*+�

������� C� ����

�#� �� 4�%� )�����4 �� 4�/�� �� ��45 =5225 �#� ����%) � �� �� �����%)�F�( 06 �#�!"�&�� � (�����$���5 �#� �� 4�%� �#�� ������ % #�%(��4 %�( % ���" "���4�#� 0"�)�$�� !"�&�� � �����5 �#� "��� �� �� ����( � ����� �#� �"�0��� %�( �#� ���%�� � � 0� ���! ���(5 �#� @��� �"�0�� �� �� ��( �� /%��%0)� !�� "���4�#� 0"�)�$�� !"�&�� � (���5 �#� ��& �( �"�0�� �� �� ��( �� /%��%0)� !�%5 �#� ���%�� � � 0� ���! ���( �� �� ��( �� /%��%0)� ����5 � (/���' ��%������ �� �#��"��( � ��)�&� �#� ��D"���( ���%�� �5 �#� ���")� ! �#� &%)&")%�� � �� �� ��( ��/%��%0)� ��(!�� %�( �#�� �� �#�� (���)%6�( "���4 % ����� !"�&�� �5 �#� �� 4�%�����%�� ! ��/�� "�)��� �� ���( 06 �#� "���5

���-���� H'��&

�#� ! )) ���4 & �� ����� ��)) 0� ��D"���( ! � �#�� �� B�&�L

,9.2 ��&� & ��� ))�����+>+ �2+��F &�6��%)2 >> �� &%�%&�� �� 7+ ?8+ 21 �� &%�%&�� �> ++ �� &%�%&�� �� 73 ?8�2 ,5+ ������ � 7152+. �89 �%6 � +. �%6 ��+>+ & ���&� �

�1) #()( #��� ����'�������� ������

Page 173: Microcontroller Projects in C for the 8051

�1* ������������ ������ �� � ��� �� ����

4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF� !P���: � !P��� (*

+�C�: � !P(*%�

����: �'�' � �...

� !��##! : ���.(���

��� � � ��- ���'���� -����� �� & '-�� �� �.��� �,- *�?-�� ������������% ��-����� ��� �� ' � �� -����� ����� �&&�����7 '���������7 �'��-�������7 ��&&��� ���%

��� -������ ���'-� �' � ��� (2(� �,� �� ����,%

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4

K���'& L �&��%�M

K���'& L���.(���%�M

4F +'������ �� �������Q �� #()( ��� -��� F4

���& ���D����<>

N

#�!5J�8��E 4F �'- ��� �?��� &��� F4

��!�J�8(�E 4F �'- ���� � ��� �'��?���& F4

���J�8+)E 4F �'- ��� (*�� ��'& F4

� �J�E 4F �'�� �� ���� � F4

��J�E 4F ��&���� ��&, �� ���� ��� F4

O

4F #���� �� ���� -������ F4

����<>

N

��� �'��7�'�(7� '�E

���� �7�-�E

���D����<>E 4F�������Q ��� -���F4

���<EE> 4F#���� �� ��-F4

N

-�����<[^�^�� #���C� ��� !�!5� !CC� @�#�� ��C�"C��! ^�\>E

-�����<[JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ\>E

-�����<[���� ( ����� �'��� ��& �� �-������^�\>E

-�����<[�� � -�����&% Z��& �-������ ��:^�\>E

-�����<[� ���^�\>E

-�����<[� #"@� ���^�\>E

-�����<[F �"C���C$^�\>E

-�����<4 ��Z���^�^�\>E

-�����<[���� +�� � 5'���:\>E

����<[]&\7X�'��>E

�J�����<>E

-�����<[���� #���& 5'���:\>E

Page 174: Microcontroller Projects in C for the 8051

�1� #()( #��� ����'�������� ������

����<[]&7X�'�(\>E

�J������<>E

�-�J[ \E

6��<�-� Y� [�\ XX �-� Y� [�\ XX �-� Y� [F\ XX �-� Y� [4\>

N

-�����<[���� !-������:\>E

�-�J������<>E

-�����<[^�\>E

O

6���� <�-�>

N

�� [�\:

� '�J�'��G�'�(E

���=E

�� [�\:

� '�J�'��?�'�(E

���=E

�� [F\:

� '�J�'��F�'�(E

���=E

�� [4\:

� '�J�'��4�'�(E

���=E

O

-�����<[ '� J ]&^�\7� '�>E

O

O

#��"� /����

������� � ���� �� ������ (*

Page 175: Microcontroller Projects in C for the 8051

.This Page Intentionally Left Blank

Page 176: Microcontroller Projects in C for the 8051

�--�&�8

�#��� �!��

���� & (�� ! �#� @��� 2+, &#%�%&���� %�� ��%�(%�( %�( �#� �%�� & (� �� "��(0������ (�?����� �D"������ �%�"!%&�"����5 ���� & (�� ! &#%�%&����0������ 2+, %�( +.. %�� %)� ;� �� %� �#� �*���(�( ���� &#%�%&���� %�(�#��� &#%�%&���� %�( �#��� & (�� �%6 (�?�� 0������ (�?����� & ��"����%�"!%&�"����5 �) � �� % )��� ! �#� � �� & �� �)6 "��( ���� &#%�%&����%�( �#��� & (�� 0 �# �� #�*%(�&��%) %�( �� 0��%�65

��� 11 11111111

��� 1) 11111112��� 1+ 11111121��� 1> 11111221

��� 13 11111211��X 1. 11111212� 1= 11111221 �� 1< 11111222

� 1, 11112111�� 19 11112112�� 1� 11112121

K� 1 11112122�� 1 11112211� 1� 11112212

�� 1� 11112221�� 1� 11112222��� 21 11121111��� 22 11121112

�+ 2+ 11121121���� 2> 11121221�3 23 11121211

�� 2. 11121212�G� 2= 11121221�� 2< 11121222

�� 2, 11122111

�� 29 11122112

�� 2� 11122121�� 2 11122122�� 2 11122211

�� 2� 11122212�� 2� 11122221�� 2� 11122222�- +1 11211111

[ +2 11211112\ ++ 11211121] +> 11211122

H +3 11211211I +. 11211212S += 11211221

: +< 112112227 +, 112121118 +9 11212112V +� 11212121

W + 11212122' + 11212211$ +� 11212212

5 +� 11212221A +� 112122221 >1 11221111

2 >2 11221112

#%�%&��� ��* ��%�6 #%�%&��� ��* ��%�6

Page 177: Microcontroller Projects in C for the 8051

������������ ������ �� � ��� �� �����1�

#%�%&��� ��* ��%�6 #%�%&��� ��* ��%�6

+ >+ 11221121

> >> 112211223 >3 11221211. >. 11221212

= >= 11221221< >< 11221222, >, 112221119 >9 11222112

L >� 11222121N > 11222122^ > 11222211

Q >� 11222212_ >� 11222221` >� 11222222

a 31 12111111� 32 12111112 3+ 12111121 3> 12111122

� 33 12111211� 3. 12111212� 3= 12111221

� 3< 12111222� 3, 12112111� 39 12112112

� 3� 12112121 3 12112122� 3 12112211

� 3� 12112212� 3� 12112221� 3� 12112222- .1 12121111

X .2 12121112� .+ 12121121� .> 12121122

� .3 12121211� .. 12121212K .= 12121221

� .< 12121222� ., 12122111G .9 12122112

Y .� 12122121T . 12122122Z . 12122211U .� 12122212

b .� 12122221R .� 12122222M =1 12211111

% =2 12211112

0 =+ 12211121& => 12211122( =3 12211211

� =. 12211212! == 122112214 =< 12211222# =, 12212111

� =9 12212112B =� 12212121; = 12212122

) = 12212211� =� 12212212� =� 12212221

=� 12212222� <1 12221111D <2 12221112� <+ 12221121

� <> 12221122� <3 12221211" <. 12221212

/ <= 12221221� << 12221222* <, 12222111

6 <9 12222112F <� 12222121O < 12222122

c < 12222211P <� 12222212d <� 12222221

<� 12222222

,1 21111111,2 21111112

: ,+ 21111121

� ,> 21111122\ ,3 21111211� � � ,. 21111212

� ,= 21111221� ,< 21111222� ,, 21112111

� ,9 21112112�e ,� 21112121^ , 21112122f , 21112211

,� 21112212,� 21112221,� 21112222

Page 178: Microcontroller Projects in C for the 8051

9� ��,�1.

#%�%&��� ��* ��%�6 #%�%&��� ��* ��%�6

91 21121111

g 92 21121112

h 9+ 21121121

gg 9> 21121122 93 21121211� 9. 21121212

E 9= 21121221i 9< 21121222d 9, 211221=1�� 99 21122112�e 9� 21122121_ 9 21122122

j 9 211222119� 211222129� 21122221

Gk 9� 21122222

�1 21211111l �2 21211112m �+ 21211121

n �> 21211122o �3 21211211p �. 21211212

c �= 21211221q �< 21211222

k �, 21212111� �9 21212112% �� 21212121r � 21212122� � 21212211

E �� 21212212� �� 21212221i �� 21212222

s 1 21221111� 2 21221112+ + 21221121> > 21221122 3 21221211� . 21221212� = 21221221

� < 21221222� , 212221112 9 21222112

s � 21222121t 2122212223 212222112+ � 21222212

>3 � 21222221u � 21222222�g 1 22111111

�h 2 22111112�v + 22111121�w > 22111122

�k 3 22111211�s . 22111212x = 22111221

y < 22111222�g , 22112111�h 9 22112112

�v � 22112121�k 22112122�g 22112211�h � 22112212

�v � 22112221�k � 22112222� �� 22121111

�w �) 22121112�g �+ 22121121�h �> 22121122

�v �3 22121211�w �. 22121212�k �= 22121221� �< 22121222

z � 22122111�g �9 22122112�h �� 22122121

�v � 22122122�k � 22122211Gh �� 22122212

� �� 22122221{ �� 22122222%g �1 22211111

%h �) 22211112%v �+ 22211121%w �> 22211122%k �3 22211211

%s �. 22211212| �= 22211221&y �< 22211222

�g �, 22212111�h �9 22212112�v �� 22212121

�k � 22212122

Page 179: Microcontroller Projects in C for the 8051

������������ ������ �� � ��� �� �����2�

#%�%&��� ��* ��%�6 #%�%&��� ��* ��%�6

}g � 22212211}h �� 22212212}v �� 22212221

}k �� 22212222� �1 22221111�w �) 22221112

g �+ 22221121 h �> 22221122 v �3 22221211

w �. 22221212

k �= 22221221� �< 22221222z �, 22222111

"g �9 22222112"h �� 22222121"v � 22222122

"k � 222222116h �� 22222212� �� 22222221

6k �� 22222222

Page 180: Microcontroller Projects in C for the 8051

9� ��,

)�� ��%) 4"�$� $(�4��%) & �/�����5 � (�/�&� �#%� & �/���� %�%) 4"� ��4�%)�� % (�4��%) ! �� ! � "�� 06 % & ��"���5

) ������� � @*�( ����$06$���� �� &�("�� ! � @�(��4 % � )"�� � � % �� 0)��5)+�, �����&%� �%�� �%) ��%�(%�(� ������"��5

)����������� �#� %��%�4����� ! !"�&�� �%) 0) &;� �� % & ��"��� �6����5

)��,, �����&%� ��%�(%�( (� ! � ��! ��%�� � �����&#%�4�5 � ��(�)6 "��(& (� �� �#�&# %)�#%�"����& &#%�%&���� %�( &���%�� �#�� ���&�%) &#%�%&���� %������������( 06 "��D"� <$0�� 0��%�6 �"�0���5 � � �*%��)�' �#� ���� & (� !�#� )����� M�: �� =.5

)���� �� � � !��%�� �#%� ��%��)%��� �6�0 )�&%))6 ����������( �����"&�� ����� �#��� 0��%�6 �D"�/%)����5

)���� � ����� � � "�&� )%�4"%4� �#%� �� �%(� "� ! �#� �6�0 )�&�%&#��� )%�4"%4� ��%�������5 �����0)6 )%�4"%4� �� /��6 �J&���� ���&� �#����� % ��$� $ �� & ����� �(��&� ���# �#� �����"&�� � ! ��%�� %�( (%�% ! ��%�� ! �#� & ��"���5

�)�,� �4������ �))$�"�� �� �6�0 )�& �����"&�� � (�5 � #�4#$)�/�)�� 4�%����4 )%�4"%4� & �� �)6 "��( �� ���� �%) & ��"����5 ��� ��"�"%))6 %� ����������( )%�4"%4�5

��" �#� "��� ! (%�% ��%������� � ����(5 %"( �� !��� �D"%��( � �#��"�0�� ! ����%) 0��� ��%��!����( ��� ��& �(5

��" ��� ��%�"������ ! (%�% C � �� % ����%) & ��"��&%�� � �6����5 %"(�%�� �� �6��&%))6 �D"%) � 0��� ��� ��& �(5 � �� �6��&%) 0%"( �%��� %�� 9=11'3,11' +311 %�( � �5

��� ��%�6 (�( ��&��%)5 � & (� �� �#�&# �%&# (�&��%) (�4�� �� 0��%�6& (�( ��� 3$0�� � �(�5 6 �����������4 0��%�6 �"�0��� �� �#�� ! ��' �� ����%(�)6 � ���0)� � (���)%6 %�( ����� �"�0���5

��5"�������� ���� �� �����!%&� � �� �#%� &%� 0� "��( � ��%��!�� (%�% �� ���#��(���&�� �5

����� �#� ���������%�� � ! �"�0��� �� % 0%�� �� �6����5

��� � ���4)� 0��%�6 (�4��5

���� � 4� "� ! , 0��%�6 (�4���5

Page 181: Microcontroller Projects in C for the 8051

���� � ��%)) ��&�%�4)� ! ��)�& � � �#�&# %� ����4�%��( &��&"�� �� !%0��&%��(5

� ��= � &��&"�� 4����%���4 ��4")%� �����4 ��4�%)� ! � % (�4��%) ) 4�& �6����5 ����&� & ��"��� �6����� &) &;� %�� "�"%))6 4����%��( 06 "���4 &�6��%) (�/�&��5 ��6��&%) &) &; !��D"��&6 �� 2+��F5

��/� ��)�����%�6 ���%) �*�(� ����& �("&� �5 � !%��)6 ! ����4�%��(&��&"��� �#%� ?��� �*�����)6 #�4# �%&;��4 (�����6 %�( ) � � ���5

����� �� � �� 4�%� (���4��( � ��%��)%�� #�4#$)�/�) )%�4"%4�� ��� �%&#���& (�5

������� � ��4����� � % ��� �6 ) &%�� � "��( � ��& �( �"�0��� ! �/���� %��#�6 &&"�5

�($ %�# (� �%6 �"0�5 � (���)%6 �&����5

��� � ���� �#� ���� ��D"���( � %&&��� % ��� �6 ) &%�� � � � &%��6 "� %� ���%�� � �� % & ��"��� �6����5

�)� ��4��%)$� $%�%) 4"� & �/�����5 � (�/�&� �#%� & �/���� (�4��%) ��4�%)���� %�%) 4"� ! ��5

����� ������ %�� 21 �"�0����4 �6����5

��>� ������ ������ �D"������ "��( � (�/�) � ��&� �� &��� �$ %�( ��&� $& ��"���$0%��( � !��%�� %�( #%�(�%�� �� B�&��5

��� ����? ���# ( ! �������4 � (���)%6��4 &#%�%&���� �� �#�&# �%&#&#%�%&��� �� ! ���( 06 % ��&�%�4")%� %��%6 ! ( �� � 4�/� �#� ��D"���( �#%��5

*)(/� �)�&���&%))6 �)���%0)� ��%( ��)6 ��� �65 �� �#�� �6�� ! ��� �6�%�� � %)) ! �#� (%�% &%� 0� ��%��( %�( ��������� 06 %��)6��4 �)�&���&%) ��4�%)�5

*"�� ��������" ��&"�� %&�� � �����%��( 06 �#� &#%�4� ! % ��4�%)5 �� �(4�& ")( 0� �#� &#%�4� ! % ��4�%) !� � 1 � 2 � !� � 2 � 15

*�� ��� � !��%�� � #%�(�%�� �6���� �#%� ("�)�&%��� �#� %&�� �� ! %��&� �� &��� � � % ��&� & ��"��� �6����5

*�(/� ��%�%0)� -� 4�%��%0)� ��%( ��)6 ��� �65 �#�� �6�� ! ��� �6&%� 0� ��%��( 06 �*� �"�� � ")��%/� )�� )�4#� %�( �#�� ���� 4�%���( "���4 %�� 4�%����5

*?����� � ���! �� % ���&�@�( ���%�� �%) ��D"��&� �� % �� 4�%�5

-� � � 4�&%) & ))�&�� � ! (%�%5

- �7 ���� ��%�#�&%) ���������%�� � ! �#� ���%�� � ! % �� 4�%�5

@�� � ) 4�& &��&"�� #%/��4 �� � � �� ���"�� %�( % ���4)� "��"�5 � ��*%��)�' ���� 4%��5

. � "�� �? � �� $�%6 & ��"��&%�� � �6���� �#%� ������� & ��"��&%�� ��� �� (���&�� � %� % ����5

.�"7�� �#� �#6��&%) �%��� � �)�&�� ��& &��&"���6 ! % & ��"��� �6����5

.�?"���� %�� 2= �"�0����4 �6����5 �� #�*%(�&��%) � �%�� �' �"�0���

������������ ������ �� � ��� �� �����2(

Page 182: Microcontroller Projects in C for the 8051

%�� ����������( 06 �#� (�4��� 1E9 %�( �#� &#%�%&���� �E�5 � � �*%��)�' (�&��%)�"�0�� 2=. �� ����������( %� �.5

.���5 �>� ����� -� 4�%����4 )%�4"%4� �� �#�&# �%&# �����"&�� � ���%������ & ����� �(� � ��/��%) �%&#��� & (� �����"&�� ��5 � �� #�4#$)�/�))%�4"%4�� %�� ���' �������' ' -���� %�( � �5

,���� "�>��� �� �*����%) (�/�&� & ���&��( � �#� ���"� � �� ! % & ��"���5� � �*%��)�' % ;�60 %�( �� %� ���"� (�/�&�5

,���� ���� -%�� ! % & ��"��� �#%� %)) �� �*����%) ��4�%)� � 0� �%���( ��� ��5��&� & ��"��� ���"� � ��� %�� "�"%))6 , 0��� ��(�5

,3/ �# �� ! � ���"� �"��"�5

,����3/����� �#� #%�(�%�� ���#�� �#� & ��"��� �#%� & ���&�� �#� & ��"���� �*����%) �����#��%)� %�( (�/�&��5

,���������� ��� � �#� �� &��� ! !��&#��4 %� �����"&�� � !� � ��� �6 %�(�*�&"���4 ��5

,���������� ��� �#� & ��)��� ��� ! �����"&�� �� ! % ��&� �� &��� � � %��&� & ��"���5

,������� � �����& ���&� % & ��"��� � �*����%) (�/�&�� %�( &��&"���5

,�������� �� �*����%) � ������%) �/��� �#%� �"����(� �#� � ��%) �� 4�%�C � ���#�� % & ��"��� %�( &%"��� ����6 ��� % ���&�%) ������"�� �� 4�%� 7%)� &%))�( �#� ������"�� ���/�&� � "����85 � � �*%��)�' %� �*����%) ������"�� & ")(0� 4����%��( �#�� % 0"�� � �� ������(5 �� ������%) ������"�� & ")( 0� 4����%��(�#�� % ����� ��%&#�� % &���%�� /%)"�5

,�������� >����� �����/�( ��� �6 ) &%�� �� �#��� % �� 4�%� B"��� �#�� %�������"�� �� (���&��(5

,�( ������"�� ���/�&� � "����5 � �� 4�%� �#%� �� ������( �#�� %� �*����%) � %� ������%) ������"�� &&"���5 ������"�� ���/�&� � "����� %�� "�"%))6 #�4#$��� ���6 � "�����5

9 �")���)��� ! � 21+35 � � �*%��)�' 206�� �� 21+3 06���5

������ � ����&��0�( ��� ! &#%�%&���� %�( �6�0 )� �#�&# �� "��( � & �/�6% �� 4�%� � % & ��"���5

��� ��D"�( �6��%) ����)%65 � ) �$� ����( (���)%6 �#%� ���%��� � �#�����&��)� ! ��C�&���4 ��&�(��� )�4#�5 �� �� ( �� � � ����)! ���� )�4#�5 �#���%�� �%�6 /%������� ! ���5 � � �*%��)�' �"����&' %)�#%�"����&' �4�%�#�&%)5

�*� ��4#� �������4 �� (�5 � ����& �("&� � (�/�&� �#%� ����� % )�4#� �#�� %&"����� �� �%���( �� �#� ! ��%�( (���&�� �5 �#��� %�� �%�6 & ) "�� ! ����5� � �*%��)�' ��(' 6�)) �' 4����' %�( �#���5

��>� ��������" ��&"�� %&�� � �����%��( 06 �#� ������&� ! % ��4�%)5

����� �>� � K )�%4� )�/�)� �����������4 �#� �� ) 4�&%) ��%��� 71 %�( 28 ! %(�4��%) ��4�%)5 � 4�& ���� �� %)� &%))�( ��%�� 2 %�( ) 4�& ��� �� &%))�( ��%�� 15

9� ��,�2)

Page 183: Microcontroller Projects in C for the 8051

��� ��%�� ��4��@&%�� ��4��5 �#� ��4#�$� �� (�4��5 � � �*%��)�' �#� ��� !�"�0�� 2+> �� >5

������ ��"� � ���� )�/�) �� �#�&# �� 4�%�� %�� �������5 �%&#��� & (� ��"�"%))6 ������� �� #�*%(�&��%)5

������������� �����%)$�"�� �� & ��"��� "���4 % ��&� �� &��� � %� �#�-�5 � ��&� & ��"��� & ������ ! % ��&� �� &��� �' ��� �6' %�( ���"�A "��"�5

�������������� � ���4)� )%�4�$�&%)� ����4�%��( &��&"�� �#�&# ���! ��� �#�!"�&�� �� ! % -�5

�������� � �� 4�%����4 �# ��#%�( "���4 )������' �"�0���' %�( �6�0 )�%( ���( 06 �%&# �%�"!%&�"��� � ��������� �#� �����"&�� � ��� ! % ��&� $�� &��� �5

��� � �� ��4��@&%�� ��4��5 �#� )�!�$� �� (�4�� ! % �"�0��5 � � �*%��)�'�#� ��� ! �"�0�� 2+> �� 25

+� � � 4� "� ! 3 0��%�6 0���5

+�/� ��4%��/� &#%���) ���%) �*�(� ����& �("&� �5 � (�/�&� 0%��( � %��$&#%���) @�)($�?�&� ��%����� � &�))5

+��5>� �� � ������ � ����& �("&� � ��� �6 �6�� �#%� # )(� (%�% �/�� �!� ��� #%� 0��� (��& ���&��(5

/�� ���������%�� � ! �"�0��� �� 0%�� ,5

/�5��"� ����%�� � (�5 �#%� �%�� ! %� �����"&�� � �#�&# ���&�@�� �#�!"�&�� � � 0� ���! ���(5

/����� "�>��� �� �*����%) (�/�&� & ���&��( � �#� "��"� � �� ! % & ��"���5� � �*%��)�' % ������� �� %� "��"� (�/�&�5

/����� ���� -%�� ! % & ��"��� �#%� %)) �� �)�&���&%) ��4�%)� � �%�� "���(� ��5��&� & ��"��� "��"� � ��� %�� "�"%))6 , 0��� ��(�5

����� � 0��%�6 (�4�� %((�( � �#� ��( ! %� %��%6 ! 0��� � �%;� �#� �"� !%)) ��� ���#�� (( � �/��5 -%���6 �� % ���# ( ! &#�&;��4 �#� %&&"�%&6 !��%�������( � ��&��/�( 0��%�6 (%�%5

��� -� 4�%� ���&����� � �%�4"%4�5 ���������%�� � ! �#� & ��� ) %�( (%�%C � �� % �� 4�%� "���4 ����)� ��4)��#$)�;� ������&��5

�*(/� �)%�# -� 4�%��%0)� %�( ��%�%0)� ��� �65 �#�� �6�� ! ��� �6&%� 0� ��%��( %�( ���� 4�%���( "���4 �)�&���&%) ��4�%)� �)6' �5�5 �#��� �� � ���( � "�� %� ")��%/� )�� )�4#� � "�&� � ��%�� �#� ��� �65

���� �� �)�&���&%) ) 4�& &��&"�� �#%� �� % ��4�%) ���"� � "��"� %&&��� � ��� !% & ��"���5

��������" ,3/ �#� & ��� ) ! (%�% C � �� %�( "� ! % & ��"��� "�(��� !��%�� & ��� )5

�(/� -� 4�%��%0)� ��%( ��)6 ��� �65 � �6�� ! ����& �("&� �

������������ ������ �� � ��� �� �����2*

Page 184: Microcontroller Projects in C for the 8051

��� �6 �#�&# &%� 0� �� 4�%���( 06 �#� "��� "���4 % ���&�%) ���&� !�D"������ &%))�( % -��� �� 4�%���� 7 � -��� 0) ���85

�� 5�� �������� � ������ � & ���&��( � �#� "��"� ! %� ��� & ))�&� � 7 � ��� (�%��8 ��%����� � ! % 4%�� �� �(�� � ) %( �#� "��"�5

()� �%�( � �&&��� ��� �6' %)� &%))�( ��%(A����� ��� �65 �%�% ����� �� �%�( � 0� / )%��)� %�( �� �� ������� �)6 %� ) �4 %� �#� &#��� #%/� � ����"��)��( � �#��5 �#�� �#� � ��� �� &"� ?' %)) ��! ��%�� � (��%���%��5

(������� � �� �%4� �)����� �� % & ��"���5 � ��4����� �� "�"%))6 , 0��� ��(� ��� �� ��&� �� &��� �� %�( ��&� & ��"����5

(/� ��%( ��)6 ��� �65 � �6�� ! ����& �("&� � ��� �6 �#%� �� ��%( �)65

(���� �� ������%�� �%))6 ��& 4��F�( ���&�@&%�� � ! � ����%) (%�% ��%��!��0������ �� (�/�&��5

���� ��! ��%�� � ��%��!�� � % ���4)� ���� �#��� �%&# 0�� �� ��%��!����(��D"����%))6 ���# % ���� (�)%6 �� 0������5

����7�� -� 4�%�5

���� �� �#� @��� 0�� ���� �� % ����%) & ��"��&%�� �5 �#��� �� �)6 �� ��%��0�� �� % !�%�� ! ����%) & ��"��&%�� �5

���� �� �#� )%�� 0�� ���� �� % ����%) & ��"��&%�� �5 �#��� &%� 0� �� � �� �� � 0��� ��� !�%�� ! % ����%) & ��"��&%�� �5

����? �#� �")�� 4 /�����4 �#� ���"&�"�� ! % �� 4�%����4 )%�4"%4�5

$���"���� � (�/�&� �#%� & �/���� % ��%�"�%0)� D"%����6 ��� %� �)�&�� ��&��4�%)5 � � �*%��)�' % ������%�"�� ��%��("&�� 4�/�� "� %� �)�&���&%) ��4�%)�#�&# �%6 0� �� � ��� �%) � �#� ������%�"��5

$$� ��%����� � ��%����� � � 4�&5 � ;��( ! 0�� )%� (�4��%) &��&"��5

0)($ ���/���%) ��6�&#� � "� ��&��/�� ��%��������5 �#�� �� % ����& �("&$� � &#�� �#%� & �/���� �%�%))�) (%�% ��� ����%) ! �� %�( ����%) (%�% ��� �%�%))�)! ��5 � ���� �� "��( �� ��+>+ �6�� ����%) & ��"��&%�� �5

0�)($ �6�&#� � "� /���� � ! ����5

01 �)��%/� )�� )�4#�5 ���( � ��%�� �-��� ��� ����5

1�0 K��"%) ����)%6 ����5

<��" � 4� "� ! 2= 0��%�6 (�4���5

9� ��,�2�

Page 185: Microcontroller Projects in C for the 8051

.This Page Intentionally Left Blank

Page 186: Microcontroller Projects in C for the 8051

��&8

��1,13' 2>+'2><'2>,��%) 4"� � (�4��%) & �/�����' 2>+��&#���&�"�� ! ��,9+1.2' 3����' 23<'2=<

���' 2= %"( �%��' 23< ��' 2= ��%�6 & "����' +9 "FF��' ,.',= 6��' 3

%)&")%� � �� 4�%�' 2=2 �� 4�%����4 )%�4"%4�' 2>'2..2' 2.' 2= "����' 21' .1 ���)��' 2>' 2.-�' +' 2+��' 239�' +

�%�% �6��' 2=�%�% ��� �6' +�%�% ��(�#' 23<��4��%) �#��� �����' 229� $��(( ' +3��2=+1' 219���' 239���' 239

�)�&�� ��& �����' 9.��(' ++�)�&�� ��& �4%�' 212��"�' 2<�-���' 2'>' 3�*����%) ������"��' 21'2+�/��� & "����' <.

�) %�' 2,

��*%(�&��%) (���)%6' 3=��4# &"����� 0"FF��' ,<

��1' 21��2' 21�!$�#��$�)��' +3������"��' 22' +1������"�� �"�0��' 2+' +1������"�� ���/�&� � "����' +1������"�� � "�&�' 2+���1' =' <,' <9' ,1' ,>���2' <���' +1��1' 21��2' 21

���' +9' .<��� (�&�' >,��>.�Y' 2>+' 231���' .1' .2

���+>+' 2.1' 2.+��� �6 � (�)' 29�����"� & �@4"�%�� �' 2+������' ,9' 91' 9+' 9>' 93' 212' 2>2���' .1' .2

-%���6' 23<-����' 2.-��' ++' +9-����' +' >' 3-��F � "�(��' ,.-�� & �@4"�%�� �' 3-� 4�%� ��� �6' +-���' 21

Page 187: Microcontroller Projects in C for the 8051

���' 2' >' 3����%�$"���)' +.���' 2��+>+' 23<' 23,' 239' 2.1' 2.2' 2..��+>+ & ���&� �' 23,��+>+ ��4�%) )�/�)' 239���' .���' 21<���' 239���' 2.1

�0��' 2<' 2,����%) � �� ������"��' 2+��D"��&��4' +3��/�� ��4���� (���)%6' .<�!�' 2<' 29�!�2=' 2<' 29��4��( &#%�' 2=��4��( ���' 2<��4��( ) �4' 2<��4��( �# ��' 2<� "�(��' ,.��%��' ++��%��$��(' ++�� � 0��' 23<

���' 21������%�"�� ���� �' 21<

��1' 21��2' 21�#������ �' 21<�#��� & "�)�' 21<�����' 219' 222' 2+.' 2>2���>22' .>�����' 21����� ������"��' 2+' 91����' 219����' 21��%��("&��' ,.��1' 21��2' 21���.1>3' =>' =3' =9' <.' ,>���' 2.1' 2.+

����4��( &#%�' 2=����4��( ���' 2,����4��( ) �4' 2<'2,����4��( �# ��' 2<'2,

K�==���' ,9

��' ,

����' =

�2� ��&8