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

📄 0804kong.asm

📁 这是一个有关于51单片机的A/D转换的代码
💻 ASM
字号:
 ;adc0804制作的温度控制器, 设一个加热器p2.0一个制冷器p1.4
 ;设定下限温度30度(设4bh)存31h上限温度60度(设96h)存30h
 ;调整腾龙版的ad电位器可观察到p2.0,p1.4继电器端口的动作范围
 ;此程序仅仅供演示,如果实际应用请另外扩展继电器以及温度/电压转换部分
;***************************************************************************
;*  sxj1974@163.com		     (51c51 test web)     www.8951.com     *
;*  Create by :石学军      www.51c51.com 更多例程请登陆网站        	   *
;***************************************************************************
;//定义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 + -