标题:
单片机74hc164驱动数码管显示 数字,“7”没法显示。0-9可以,咋回事
[打印本页]
作者:
shlandwind
时间:
2020-7-4 15:59
标题:
单片机74hc164驱动数码管显示 数字,“7”没法显示。0-9可以,咋回事
ORG 0H ;程序从程序存储器的0单元开始存放
AJMP MAIN ;跳转到主程序
ORG 20H ;主程序从程序存储器的30H单元开始存放
MAIN: MOV 30H,#0 ;给30H单元赋初始值0
LOOP: INC 30H ;30H单元内的数加1
MOV R1,30H ;将30H单元内的数赋值给R1,以便应用 CJNE Rn,#DATA,REL语言判断并跳转
CJNE R1,#10,NEXT ;若30H内的数不是10则跳转到调用显示
MOV 30H,#0 ;若30H内的数是10,则清零
NEXT: ACALL DISPLAY ;调用显示子程序
ACALL L2025
SJMP LOOP ;跳转到加1部分,循环
DISPLAY:MOV R2, #8
MOV R0,#30H ;将显示数据的存放首单元赋值给R0,以便调用循环将数值赋值给A
MOV DPTR,#TABLE ;将显示码的首地址赋值给DPTR
DISLOP: MOV A,@R0 ;将以R0内的数30H内的数值赋值给A
MOVC A,@A+DPTR ;查表语句,将显示码赋值给A
DP2: RLC A ;带进位标志的左移操作
MOV P1.0,C ;串行输出一位段码数据
CLR P1.1 ;
SETB P1.1 ;来个上升沿以产生移位时钟, 每次来这个脉冲,移位寄存器上的数往后面移动一位,原来A=1,
DJNZ R2,DP2
RET
;子程序返回
L2025: MOV R6,#28H ; 延时子程序
L2027: MOV R7,#0F9H
L2029: DJNZ R7,$
DJNZ R6,L2027
DJNZ R5,L2025
RET
TABLE:
DB 40H,79H,24H,30H,19H, 12H,02H,78H,00H,10H
END ;程序结束
作者:
wc86110
时间:
2020-7-5 00:04
没见着电路图,如果数字变化能显示正常,只是极个别数字错误就是相应的段码有错
作者:
zhang123...
时间:
2020-7-5 08:27
可能你的7对应的段码出现错误,或者你的延迟时间太小
作者:
清水楼台
时间:
2020-7-5 20:34
替换大法试试!
作者:
黄youhui
时间:
2020-7-6 08:36
汇编语言,没法解读,找高手去吧,
另外0-9都能显示不能显示7,是因为7>9还是7<0.
作者:
小黑的大表舅
时间:
2020-7-7 12:00
汇编语言我也不是很懂,推荐去专门的平台
另外显示不了7这个问题很有可能是电脑出错
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1