新闻  |   论坛  |   博客  |   在线研讨会
51单片机系列之二:数码管
十年砍柴 | 2010-07-04 16:02:26    阅读:1638   发布文章

51单片机系列之二:数码管

一、设计任务

1、如图1,在AT89C51P0端口的8个引脚接上一个数码管,利用单片机让数码管显示一个静态的数“6”。

2、如图2,在AT89C51P0端口的8个引脚接上一个数码管,利用单片机让数码管连续显示0~~9数字,时间间隔0.2秒。

3、如图3,做数码管的动态显示,P0端口的8个引脚接数码管数据引脚,P2.0~~P2.45个数码管的位选引脚。让数码管依次循环显示“8 9 C 5 1, 时间间隔0.2秒。

二、电路原理图

         1:数码管显示一个静态的数“6

      2——1:单片机让数码管连续显示0~~9数字的“3

      2——2:单片机让数码管连续显示0~~9数字的“7

       3——1:数码管动态显示“8

      3——2:数码管动态显示“C

三、设计程序

 //数码管显示一个静态的数“6(设计1

MAIN:CLR  P0.0

     SETB P0.1

     CLR  P0.2

     CLR  P0.3

     CLR  P0.4

     CLR  P0.5

     CLR  P0.6

     SETB P0.7

     AJMP MAIN

END   

 

//单片机让数码管连续显示0~~9数字,时间间隔0.2秒。(设计2     

      ORG 00H

START:MOV DPTR,#TABLE

   S1:MOV A,00H

      MOVC A,@A+DPTR

      MOV P0,A

      LCALL DELAY

      INC DPTR

      LJMP S1

DELAY:MOV R5,#20

  D2: MOV R6,#20

  D1: MOV R7,#250

      DJNZ R7,$

      DJNZ R6,D1

      DJNZ R5,D2

      RET

TABLE:DB 3FH,06H,5BH,4FH,66H

      DB 6DH,7DH,07H,7FH,6FH

      END

  //数码管的动态循环显示“8 9 C 5 1(设计3)

MAIN:MOV P0,#80H   ;显示数字8

     CLR P2.0

     ACALL DELAY1

     MOV P0,#0FFH

     MOV P2,#0FFH

   

MOV P0,#90H   ;显示数字9

     CLR P2.1

     ACALL DELAY1

     MOV P0,#0FFH

     MOV P2,#0FFH

   

 MOV P0,#0C6H   ;显示数字C

     CLR P2.2

     ACALL DELAY1

     MOV P0,#0FFH

     MOV P2,#0FFH

    

MOV P0,#92H    ;显示数字5

     CLR P2.3

     ACALL DELAY1

     MOV P0,#0FFH

     MOV P2,#0FFH

   

MOV P0,#0F9H   ;显示数字1

     CLR P2.4

     ACALL DELAY1

     MOV P0,#0FFH

     MOV P2,#0FFH

     AJMP MAIN       ;循环

DELAY1:MOV R1,10

   L1:MOV R2,100

      DJNZ R2,$

      DJNZ R1,L1

      RET

END   
注意:由于Proteus图纸不能正常显示,如有需要,联系QQ:646038584

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客