急求:ADC0809和AT89C51的AD转换汇编程序 模拟量从IN0进入 0809和单片机的P0口连接

 我来答
陈红杰08152
2011-05-02
知道答主
回答量:23
采纳率:0%
帮助的人:16.7万
展开全部
编写的源程序如下:
ORG 0000H
LOOP: CLR P2.2
SETB P2.2
JNB P2.1,$ ;检测转换是否结束
CLR P2.0
MOV A,P0 ;读取转换结果
SETB P2.0
CLR C
SUBB A ,#2CH ;数值调整,此值是针对本任务,非通用,由表6-2得
MOV DPTR,#TEMPTAB ;查表获得温度值
MOVC A,@A+DPTR
SETB P3.1
SETB P3.2
MOV B,#10 ;将温度值转换为BCD码
DIV AB ;温度十位BCD码在A中,温度个位BCD码在B中
MOV R3,A ;温度十位BCD码暂存R3中
MOV R4,B ;温度个位BCD码暂存R4中
MOV DPTR,#DIGITTAB ;七段数码表首地址送DPTR
MOV A,R3
MOVC A,@A+DPTR ;查表取得温度十位数的七段码
MOV P1,A ;温度十位数送P1口
CLR P3.2 ;开十位显示
ACALL DELAY
MOV A,R4
MOVC A,@A+DPTR ;查表取得温度个位数的七段码
SETB P3.2 ;关闭十位显示;
MOV P1,A ;温度个位数送P1口
CLR P3.1 ;开个位显示
ACALL DELAY
AJMP LOOP
DELAY:MOV R6,#2
D1:MOV R7,#250
D2:NOP
NOP
DJNZ R7,D2
DJNZ R6,D1
RET
DIGITTAB: ;数字0~9的共阳七段显示码
DB 0C0H ;0
DB 0F9H ;1
DB 0A4H ;2
DB 0B0H ;3
DB 099H ;4
DB 092H ;5
DB 082H ;6
DB 0F8H ;7
DB 080H ;8
DB 090H ;9
DB 08EH ;F 错误显示
TEMPTAB: ;温度数据表
DB 90,89,88,87,100,86,85,84,83,100,82,81,100,80
DB 79,100,78,77,100,76,75,100,74,100,73,100,72,71
DB 100,70,100,69,100,68,100,67,100,66,100,65,100,64
DB 100,63,100,62,100,61,100,60,100,100,59,100,58,100
DB 57,100,100,56,100,55,100,54,100,100,53,100,52,100
DB 100,51,100,50,100,100,49,100,48,100,100,47,100,46
DB 100,100,45,100,100,44,100,43,100,100,42,100,100,41
DB 100,40,100,100,39,100,38,100,100,37,100,100,36,100
DB 35,100,100,34,100,100,33,100,32,100,100,31,100,30
DB 100,100,29,100,28,100,100,27,100,26,100,100,25,100
DB 24,100,100,23,100,22,100,21,100,20,100,100,19,100
DB 18,100,17,100,16,100,15,100,14,100,13,100,12,100
DB 11,100,10,9, 100,8, 100,7, 6, 100,5, 4, 100,3
DB 2, 1, 100,0
END
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式