📄 adc0804例程.txt
字号:
ADC0804转换程序
2008-06-10 13:50:46 来源:本站原创 作者:佚名 【大 中 小】 点击:6399 次
;********************************************************************************
;ADC0804转换程序
;程序编写:邓德武 转载请注明作者及标明转自中国单片机资讯网http://www.c51.cn/
;更多例程及学习资料,请登陆中国单片机资讯网官方网站
;本实验在成功一号学习套件上实验通过!
;********************************************************************************
;*********************************************
;*********************************************
;ADC0804端口定义
;*********************************************
cs0804 equ p3.6;定义AD的片选信号线
wr0804 equ p2.0
rd0804 equ p3.7
out0804 equ p1;定义AD转换后的数字信号送P1口
org 0000h
ajmp main
org 004h
main:
lcall Start;调启动转换子程序
lcall delay1ms;延时1ms
lcall read;调读取转换结果子程序
clr wr0804
mov p0,a;送P0口显示当前AD转换结果
ajmp main
;*********************************************
;A/D转换开始
;*********************************************
Start:
clr cs0804;选中ADC0804
nop
clr wr0804
nop
setb wr0804
nop
setb cs0804
nop
ret
;*********************************************
;读A/D 转换结果
;*********************************************
Read:
mov out0804,#0ffh
clr cs0804
nop
clr rd0804
nop
nop
mov a,out0804;
nop
setb rd0804
nop
setb cs0804
ret
;*********************************************
; 延时1ms子程序
;*********************************************
delay1ms:
mov r1,#2
tt1:
mov r0,#250
djnz r0,$
djnz r1,tt1
ret
end
;*******************************************************************************
;ADC0804转换程序
;12MHZ晶振,将转换后结果送数码管显示
;18号插座上接可变电阻,电压从0-5V变化,对应数码管
;(从右边到左第1个数码管除外,分别是个、十、百位,)
;显示从000-255
;程序编写:邓德武 转载请注明作者及标明转自中国单片机资讯网http://www.c51.cn/
;更多例程及学习资料,请登陆中国单片机资讯网官方网站
;本实验在成功一号学习套件上实验通过!
;********************************************************************************
;*********************************************
;*********************************************
;ADC0804端口定义
;*********************************************
cs0804 equ p3.6;定义AD的片选信号线
wr0804 equ p2.0
rd0804 equ p3.7
out0804 equ p1;定义AD转换后的数字信号送P1口
ge_bit equ 30h
shi_bit equ 31h
bai_bit equ 32h
org 0000h
ajmp main
org 0004h
main:
lcall Start;调启动转换子程序
lcall delay1ms;延时约1ms
lcall read;调读取转换结果子程序
clr wr0804;清除转换结果?
mov r4,a
mov b,#100;求转换结果百位
div ab;
mov bai_bit,a
mov a,b
mov b,#10;求转换结果十、个位
div ab
mov shi_bit,a
mov ge_bit,b;
lcall Display
ajmp main
Display:
setb p2.3
mov DPTR,#disptab
mov a,ge_bit
movc a,@a+dptr
mov p0,a
clr p2.1
call delay1ms
setb p2.1
mov DPTR,#disptab
mov a,shi_bit
movc a,@a+dptr
mov p0,a
clr p2.2
call delay1ms
setb p2.2
mov DPTR,#disptab
mov a,bai_bit
movc a,@a+dptr
mov p0,a
clr p2.3
call delay1ms
ret
;*********************************************
;A/D转换开始
;*********************************************
Start:
clr cs0804;选中ADC0804
nop
clr wr0804
nop
setb wr0804
nop
setb cs0804
nop
ret
;*********************************************
;读A/D 转换结果
;*********************************************
Read:
mov out0804,#0ffh
clr cs0804
nop
clr rd0804
nop
nop
mov a,out0804;
nop
setb rd0804
nop
setb cs0804
ret
;*********************************************
; 延时1ms子程序
;*********************************************
delay1ms:
mov r1,#2
tt1:
mov r0,#250
djnz r0,$
djnz r1,tt1
ret
disptab:
db 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;字形代码表
;0 1 2 3 4 5 6 7 8 9
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -