找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4232|回复: 2
打印 上一主题 下一主题
收起左侧

51单片机温度控制高温低温报警 带proteus仿真和汇编源码

[复制链接]
跳转到指定楼层
楼主
proteus仿真图


51单片机温度控制高温低温报警汇编语言源程序:
  1. LED_0        EQU         30H
  2. LED_1         EQU         31H
  3. LED_2         EQU         32H
  4. ADC                EQU                35H
  5. TCNTA        EQU                36H
  6. TCNTB        EQU                37H
  7. H_TEMP        EQU                38H                                ;温度上限
  8. L_TEMP        EQU                39H                                ;温度下限
  9. FLAG        BIT                00H
  10. H_ALM        BIT                P3.0
  11. L_ALM        BIT                P3.1
  12. SOUND        BIT                P3.7
  13. CLOCK        BIT                P2.4
  14. ST                 BIT         P2.5
  15. EOC         BIT         P2.6
  16. OE                 BIT         P2.7

  17.                 ORG         00H
  18.                 SJMP        START
  19.                 ORG                0BH
  20.                 LJMP        INT_T0
  21.                 ORG                1BH
  22.                 LJMP        INT_T1
  23.                
  24. START:        MOV                LED_0,#00H
  25.                 MOV                LED_1,#00H
  26.                 MOV                LED_2,#00H
  27.                 MOV                DPTR,#TABLE
  28.                 MOV                H_TEMP,#153
  29.                 MOV                L_TEMP,#77
  30.                 MOV                TMOD,#12H
  31.                 MOV                TH0,#245
  32.                 MOV                TL0,#0
  33.                 MOV                TH1,#(65536-1000)/256
  34.                 MOV                TL1,#(65536-1000)MOD 256
  35.                 MOV                IE,#8aH
  36.                 CLR                C
  37.                 SETB        TR0                                ;为ADC0808提供时钟

  38. WAIT:        SETB        H_ALM
  39.                 SETB        L_ALM
  40.                 CLR         ST
  41.                 SETB         ST
  42.                 CLR         ST                                ;启动转换
  43.                 JNB         EOC,$
  44.                 SETB         OE
  45.                 MOV         ADC,P1                        ;读取AD转换结果
  46.                 CLR         OE
  47.                 MOV                A,ADC

  48.                 SUBB        A,#77                           ;判断是否低于下限
  49.                 JC                LALM
  50.                 MOV                A,H_TEMP
  51.                 MOV                R0,ADC
  52.                 SUBB        A,R0                        ;判断是否高于上限
  53.                 JC                HALM
  54.                 CLR                TR1
  55.                 LJMP        PROC

  56. LALM:                                                        ;低温报警
  57.                 CLR                L_ALM
  58.                 SETB        TR1
  59.                 CLR                FLAG
  60.                 LJMP        PROC

  61. HALM:                                                           ;高温报警
  62.                 CLR                H_ALM
  63.                 SETB        TR1
  64.                 SETB        FLAG
  65.                 LJMP        PROC

  66. PROC:        MOV         A,ADC                         ;数值转换
  67.                 MOV         B,#100
  68.                 DIV         AB
  69.                 MOV         LED_2,A
  70.                 MOV         A,B
  71.                 MOV         B,#10
  72.                 DIV         AB
  73.                 MOV         LED_1,A
  74.                 MOV         LED_0,B
  75.                 LCALL        DISP
  76.                 SJMP         WAIT

  77. INT_T0:        CPL                CLOCK                           ;提供ADC0808时钟
  78.                 RETI

  79. INT_T1:        MOV                TH1,#(65536-1000)/256
  80.                 MOV                TL1,#(65536-1000)MOD 256
  81.                 CPL                SOUND
  82.                 INC                TCNTA
  83.                 MOV                A,TCNTA
  84.                 JB                FLAG,I1                           ;判断是高温警报还是低温警报
  85.                 CJNE        A,#30,RETUNE        ;低温警报声
  86.                 SJMP        I2
  87.         I1:        CJNE        A,#20,RETUNE        ;高温警报声
  88.         I2:        MOV                TCNTA,#0
  89.                 INC                TCNTB
  90.                 MOV                A,TCNTB
  91.                 CJNE        A,#25,RETUNE
  92.                 MOV                TCNTA,#0
  93.                 MOV                TCNTB,#0
  94.                 LCALL        DELAY2
  95. RETUNE:        RETI
  96.                
  97. DISP:        MOV                A,LED_0                        ;数码显示子程序
  98.                 MOVC        A,@A+DPTR
  99.                 CLR                P2.3
  100.                 MOV                P0,A
  101.                 LCALL        DELAY
  102.                 SETB        P2.3

  103.                 MOV                A,LED_1
  104.                 MOVC        A,@A+DPTR
  105.                 CLR                P2.2
  106.                 MOV                P0,A
  107.                 LCALL        DELAY
  108.                 SETB        P2.2

  109.                 MOV                A,LED_2
  110.                 MOVC        A,@A+DPTR
  111.                 CLR                P2.1
  112.                 MOV                P0,A
  113.                 LCALL        DELAY
  114.                 SETB        P2.1
  115.                 RET

  116. DELAY:        MOV                R6,#10
  117. D1:                MOV                R7,#250
  118.                 DJNZ        R7,$
  119.                 DJNZ        R6,D1
  120.                 RET
  121. DELAY2:        MOV                R5,#20
  122. D2:                MOV                R6,#20
  123. D3:                MOV                R7,#250
  124.                 DJNZ        R7,$
  125.                 DJNZ        R6,D3
  126.                 DJNZ        R5,D2
  127.                 RET
  128. TABLE:         DB                 3FH,06H,5BH,4FH,66H
  129.                 DB                 6DH,7DH,07H,7FH,6FH
  130.                 END
复制代码


51单片机温度控制高温低温报警仿真工程文件和汇编源码下载:
55 Temperatuer Monitor.zip (55.01 KB, 下载次数: 41)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:170906 发表于 2017-3-15 16:35 | 只看该作者
先下载看看。
回复

使用道具 举报

板凳
ID:207506 发表于 2017-6-4 14:14 | 只看该作者
老哥,你这个不能用按键设置温度么
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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