急求:ADC0809和AT89C51的AD转换汇编程序 模拟量从IN0进入 0809和单片机的P0口连接
1个回答
展开全部
编写的源程序如下:
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
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询