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

来源:互联网 发布:淘宝店新手如何推广 编辑:程序博客网 时间:2024/05/16 15:40

基于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
提问者对于答案的评价:太感谢了 无法用语言形容!!
原文网址:http://zhidao.baidu.com/question/125182684.html点击这里
;=======================================================
二次提问:

问题是这样的 下面的是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://zhidao.baidu.com/question/125894276.html
;-------------------------------------------------

0 0
原创粉丝点击