⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0804kong.asm

📁 说明:本文件夹一共提供各类编程实例200多个
💻 ASM
字号:
;********************************************************************************
;adc0804制作的温度控制器, 设一个加热器p2.0一个制冷器p1.4                        *
;设定下限温度30度(设4bh)存31h上限温度60度(设96h)存30h                           *
;调整ad电位器可观察到p2.0,p1.4继电器端口的动作范围				*
;此程序仅仅供演示,如果实际应用请另外扩展继电器以及温度/电压转换部分             *
;硬件连接:ad0804 wr接p3.6 rd接p3.7 ad0804数据接p1口,输出控制p2.0/p1.4	        *
;********************************************************************************
;*  日期:  2007-3-25                                                            *
;*  版本:  3.0                                                                  *
;*  作者:  深圳学林电子有限公司     专业8051单片机教学站                        *
;*  邮箱: sxj1974@163.com                                                       *
;*  网站: http://www.51c51.com     http://www.8951.com    更多例程请登陆网站   *
;********************************************************************************
;*  硬件:此程序在本公司xlisp系列单片机实验仪运行通过                           *
;********************************************************************************
;* 【版权】 Copyright(C)深圳学林电子有限公司 www.51c51.com  All Rights Reserved *
;* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息!                  *
;********************************************************************************
;//定义ADC的连接端口................
ad_cs   equ P3.6
ad_wr   equ P3.2
ad_rd   equ P3.7
ad_input   equ p1
    org 0000h
    ajmp    main
    org 0030h
main:
    lcall adc_demo
    ajmp    main
;........启动AD转换.................
Adc_Start:
    clr ad_cs
    nop
    clr ad_wr
    nop
    setb    ad_wr
    nop
    setb    ad_cs
    nop
    ret
;.........读AD转换...................
Adc_Read:
    mov ad_input,#0ffh
    clr ad_cs
    nop
    clr ad_rd
    nop
    nop
    mov a,AD_INPUT
    nop
    setb    ad_rd
    nop
    setb    ad_cs
    ret
;............. AD转换程序.............
Adc_Demo:
	lcall Adc_Start
	lcall delay1ms
	lcall adc_read
     mov 34h,a       	;现在的温度存34h
     mov 31h,#4bh 	;下限温度30度存31h
     mov 30h,#96h   	;上限温度60度存30h
     clr c
     subb a,32h 		;现在的温度和以前的温度相减
     jc tdown   	;c=0取入值较大,表示上升否则下降
 tup:mov a,34h 		;取出现有温度
      clr c         	;c=0
      subb a,30h     	;与上限温度比较,c=1则需要加热否则c=0则需要制冷
      jnc poff
      jmp loop
 poff:clr p1.4		;开始制冷
      setb p2.0
      jmp loop

 tdown:mov a,34h  	;取出现有温度
      clr c
      subb a,31h       	;与下限温度比较,c=1则需要加热否则c=0则需要制冷
      jc pon
      jmp loop

 pon: clr p2.0 		;开始加热
      setb p1.4
      jmp loop

 loop:mov 32h,34h  	;把现有温度存32h
      clr a             ;清除a
      mov r4,#0ffh      ;延长时间
      djnz r4,$
      jmp Adc_Demo  	;继续监测温度
 
  delay1ms:             ;延时子程序
	mov	r7,#10
	MM:mov	r6,#50
	djnz	r6,$		
	djnz	r7,MM
	ret
	end




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -