宁波国际照明展
广州国际照明展览会(光亚展)
光影显示元宇宙展 2025年5月27 - 30日
2024大湾区国际车灯与车辆照明技术展览会(AUTO LAMP SHOW) 2024年12月4 - 6日
广州国际专业灯光、音响展会 2025年5月27 - 30日

基于74LS164的8段LED温度显示设计

基于I/O 8LED 温度显示 设计

这个LED显示部分由于74ls164接在了RXD端,也就是要用串行口来发送温度数据到LED。

所以在主程序中要开串行口中断允许,以下是串行口中断子程序,并假设要显示的温度已经存到了某个存储器中。这里假设温度已经存到了TEM1和TEM0中,其中TEM1里存的是温度的整数位,TEM0里 存的是温度的小数位。

这是实验作业。现在忙考研没时间做,这是我在网上找的,不知道是不是。帮忙给我看看啊 谢谢了诶!!

     楼主给出的程序较长、较滥,省略了。――――做而论道注

悬赏分:130 - 解决时间:2009-11-14 17:10

;-------------------------------------------------

最佳答案:试试下列程序。

    TEM0 equ 30H

    TEM1 equ 31H

;

    ORG 0000H

;                            虚拟的主程序部分

    mov   TEM0, #4

    mov   TEM1, #2       ;假设已经测得温度是24度

    LCALL TRANS          ;输出显示

    SJMP $

;

;假设温度(两位数字)已经预先存到了TEM1和TEM0里, 其中TEM0是个位,

;这个LED显示部分由74ls164接在了RXD端,要用串行口来发送温度数据到LED。

;那么,查出它们的七段码, 在串行口输出即可

;

TRANS:

    PUSH ACC            ;保护现场

    PUSH DPL

    PUSH DPH


    MOV DPTR, #TAB     ;七段码首地址

    MOV A, TEM1        ;取十位

    MOVC A, @A+DPTR    ;查出笔段码

    MOV SBUF, A        ;串行输出

    JNB TI, $       ;TI=0, 就是没有发送完, 原地转移等待

    CLR TI            ;清标志


    MOV A, TEM0        ;取个位

    MOVC A, @A+DPTR    ;查出笔段码

    MOV SBUF, A        ;串行输出

    JNB TI, $        ;TI=0, 就是没有发送完, 原地转移等待

    CLR TI             ;清标志


    POP DPH           ;恢复现场

    POP DPL

    POP ACC

    RET                  ;两个字节发送完毕,返回主程序;如果是中断程序,应该使用RETI来返回

TAB:

    DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H

                      ;假设LED为共阴极的,若为共阳极 取反即可

    DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H

;-------------------------------------------------

回答者: 做而论道 - 十级   2009-11-12 21:55

提问者对于答案的评价:太感谢了 无法用语言形容!!


;=======================================================

二次提问:问题是这样的 下面的是74164的程序 请改成74373的程序

悬赏分:100 - 解决时间:2009-11-17 19:26

;-------------------------------------------------

最佳答案:通过百度Hi交流,知道了楼主LED显示电路变动的情况,所以对程序进行了修改,请见下面小写的指令。

TRANS:

    PUSH ACC          ;保护现场

    …………

    MOV A, TEM1        ;取十位

    MOVC A, @A+DPTR    ;查出笔段码

setb p2.0        ;选通十位数的373

mov   p0, a      ;输出十位数的段码

clr   p2.0        ;关闭373

    MOV A, TEM0        ;取个位

    MOVC A, @A+DPTR    ;查出笔段码

setb p2.1        ;选通个位数的373

mov   p0, a      ;输出个位数的段码

clr   p2.1        ;关闭373

    POP DPH           ;恢复现场

   …………

    RET                  ;两个字节发送完毕,返回主程序

;-------------------------------------------------

回答者:   做而论道 - 十级   2009-11-17 17:43

提问者对于答案的评价:谢谢大哥!

本文来自网络。 授权转载请注明出处:http://www.ledjia.com/article/pid-1834.html

快速评论 发表新评论

您还未登录!登录后可以发表回复

文章评论 0人参与

联系我们

联系我们

137-9836-0047

在线咨询: QQ交谈

邮箱: admin@ledjia.com

工作时间:周一至周五,9:00-17:00,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部