找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1655|回复: 1
收起左侧

有没有大佬帮忙看一下为什么单片机数码管显示不出数字

[复制链接]
ID:657999 发表于 2019-12-21 19:37 | 显示全部楼层 |阅读模式
51hei图片20191221193242.png
  • ORG   0000H
  • AJMP  MAIN
  • ORG   000BH        //T0中断入口地址
  • LJMP  INT_T0
  • ORG   0030H
  • RRR   EQU  0F6H         ;红红都亮
  • GR   EQU  0DEH   ;东西绿灯亮,南北红灯亮
  • YR   EQU  0EEH   ;东西黄灯亮,南北红灯亮
  • RG   EQU  0F3H   ;东西红灯亮,南北绿灯亮
  • RY   EQU  0F5H   ;东西红灯亮,南北黄灯亮
  • EW_TIME EQU R0         ;东西方向时间
  • SN_TIME EQU R1         ;南北方向时间
  • MAIN:        //I/0口,寄存器初始化
  •     MOV P1,#RRR
  •         MOV P3,#0FFH
  •         LCALL DELAY_1S
  •         MOV R2,#20        //定时计数器T0定时50ms,循环20次获得一秒定时
  •         MOV 50H,#20          //红灯时间
  •         MOV 51H,#16          //绿灯时间
  • /*************T0初始化**************/
  •         MOV        TMOD,#11H        //定时计数器T0,模式1,16位
  •         MOV        TH0,#3CH        //50ms定时初值
  •         MOV        TL0,#0B0H
  •         SETB        EA        //开总中断
  •         SETB        ET0        //开T0中断
  •         SETB        TR0        //T0启动
  • /**********************************
  • 状态1:
  • 东西绿灯亮16s
  • 南北红灯亮20s
  • **********************************/
  • START:        MOV P1 , #GR
  •         MOV EW_TIME,50H                //东西方向倒计时初值15
  •         MOV SN_TIME,51H                //南北方向倒计时初值12
  • D0:        LCALL  DISPLAY            //调用显示子程序
  •         CJNE   SN_TIME,#00H,D0
  • /**********************************
  • 状态2:
  • 东西黄灯闪烁4S
  • 南北还是红灯
  • **********************************/
  • MOV A,50H
  • SUBB A,51H
  • MOV  SN_TIME,A        //黄灯倒计时初值4
  • MOV P1 , #YR
  • D1:LCALL        DISPLAY
  • CJNE        SN_TIME,#03H,D1
  • SETB P1.4                    //闪烁
  • D2:LCALL        DISPLAY
  • CJNE        SN_TIME,#02H,D2
  • CLR P1.4
  • D3:LCALL        DISPLAY
  • CJNE        SN_TIME,#01H,D3
  • SETB P1.4
  • D4:LCALL        DISPLAY
  • CJNE        SN_TIME,#00H,D4
  • /**********************************
  • 状态3:
  • 南北绿灯亮12s
  • 东西红灯亮15s
  • **********************************/
  • MOV P1 , #RG
  • MOV  SN_TIME,50H
  • MOV  EW_TIME,51H
  • D5:LCALL   DISPLAY
  • CJNE  EW_TIME,#00H,D5
  • /**********************************
  • 状态4:
  • 东西持续红灯
  • 南北黄灯亮3s
  • **********************************/
  • MOV P1 , #RY
  • MOV A,50H
  • SUBB A,51H
  • MOV  EW_TIME,A        //东西绿灯灭,黄灯倒计时初值3s
  • MOV  P1,#RY
  • D6:LCALL        DISPLAY
  • CJNE        SN_TIME,#03H,D6
  • SETB P1.1                    //闪烁
  • D7:LCALL        DISPLAY
  • CJNE        SN_TIME,#02H,D7
  • CLR P1.1
  • D8:LCALL        DISPLAY
  • CJNE        SN_TIME,#01H,D8
  • SETB P1.1
  • D9:LCALL        DISPLAY
  • CJNE        SN_TIME,#00H,D9
  • /**********************************/
  • LJMP        START       //返回初始状态
  • //********显示子程序*******//
  • DISPLAY:MOV DPTR,#TABLE
  •         MOV A,EW_TIME
  •         MOV B,#10
  •         DIV AB
  •         MOVC A,@A+DPTR
  •         MOV P3,#0FFH
  •         MOV P2,A
  •         MOV P3,#0FEH
  •         LCALL        DELAY_5MS
  •         MOV A,B
  •         MOVC A,@A+DPTR
  •         MOV P3,#0FFH
  •         MOV P2,A
  •         MOV P3,#0FDH
  •         LCALL        DELAY_5MS
  •         MOV A,SN_TIME
  •         MOV B,#10
  •         DIV AB
  •         MOVC A,@A+DPTR
  •         MOV P3,#0FFH
  •         MOV P2,A
  •         MOV P3,#0FBH
  •         LCALL        DELAY_5MS
  •         MOV A,B
  •         MOVC A,@A+DPTR
  •         MOV P3,#0FFH
  •         MOV P2,A
  •         MOV P3,#0F7H
  •         LCALL        DELAY_5MS
  •         RET
  • //******T0中断子程序*******//
  • INT_T0: DJNZ  R2,NT0        //计数寄存器不为0则跳转,T0重新赋初值
  •         MOV   R2,#20       //计数器重新赋值
  •         DEC   EW_TIME            //南北方向倒计时数值减1
  •         DEC   SN_TIME           //东西方向倒计时数值减1
  • NT0:    MOV  TH0,#3CH          //T0赋50ms初值
  •         MOV  TL0,#0B0H
  •         SETB TR0             //启动T0
  •         RETI
  • TABLE:DB 3FH ,06H, 5BH ,4FH ,66H ,6DH ,7DH ,07H ,7FH ,6FH  //段码
  • DELAY_5MS:MOV   TMOD,#11H        //定时计数器T1,模式1,16位
  •         MOV   TH1,#0F8H;#0D8H;      //5ms定时初值
  •         MOV   TL1,#2FH;#0F0H;
  •         SETB  TR1        //T1启动
  • DD1:        JBC TF1 ,TRE
  •         AJMP DD1
  • TRE:        RET
  • DELAY_1S:MOV R3 , #250
  • DD2:        LCALL DELAY_5MS
  •         DJNZ R3 ,DD2
  •         RET
  • END





新建文件夹.rar

60.02 KB, 下载次数: 4

回复

使用道具 举报

ID:656668 发表于 2019-12-22 00:31 | 显示全部楼层
换一个程序就好了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表