收藏本站| 欢迎收藏LED之家,LED之家是国内LED行业信息最全面的门户网站之一。
首页
登录免费注册一个新账号
我的账号
广州国际照明展览会(光亚展)
首页 》LED之家 》LED驱动 》基于74LS164的8段LED温度显示设计 点击:1420    LED知识讨论发表新主题
LED之家   永久地址:www.ledjia.com

  电路  LED显示  LED  设计

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

LED之家  于2010-01-24 07:46:48  http://www.ledjia.com/ledhangye/viewarticle.php?id=6242

文章摘要:基于I-O8LED温度显示设计这个LED显示部分由于74ls164接在了RXD端,也就是要用串行口来发送温度数据到LED。所以在主程序中要开串行口中断允许,以下是串行口中断子程序,并假设要显示的温度已经存到了某个存储器中。这里假设温度已经存到了TEM1和TEM0中,其中TEM1里存的是温度的

基于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

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


LED之家小提示:若文章图片无法显示,又急需查看图片,请将需求文章的网址发往邮箱:wantled@163.com ,本站将尽快将相关图片回复到您的邮箱。



相关词语:  电路  LED显示  LED  设计

LED之家永久地址:www.ledjia.com
首页 -- 联系我们 -- 使用帮助 -- 收藏本站 -- 设为首页

Copyright ? 2008~2024 www.ledjia.com. All Rights Reserved.  [ 粤ICP备05006808号 ]  版权所有: LED之家.