📄 新建 文本文档 (2).txt
字号:
;******************************1.采用单片机89c51及AD转换0809设计多路数据采集系统
2.多通道输入信号由5V电压分压到IN0---IN9
3.采集的数据由4位数码管动态显示
4.必须具有上电自检功能及外接电源,公共地线端口
求大虾们给设计出电路原理图和PCB图,万分感谢!!!!!!*******
;* *
;* 主程序和中断程序入口 *
;* *
;*************************************
ORG 0000H
LJMP START
ORG 0003H
RETI
ORG 000BH
RETI
ORG 0013H
RETI
ORG 001BH
RETI
ORG 0023H
RETI
ORG 002BH
RETI
;
;*************************************
;* *
;* 初始化程序中的各变量 *
;* *
;*************************************
CLEARMEMI CLR A
MOV P2,A
MOV R0,#70H
MOV R2,#0CH
LOOPMEM: MOV @R0,A
INC R0
DJNZ R2,LOOPMEM
MOV A,#0FFH
MOV P0,A
MOV P1,A
MOV P3,A
RET
;
;*************************************
;* *
;* 主程序 *
;* *
;*************************************
START: LCALL CLEARMEMIO ;初始化
MAIN: LCALL DISPLAY ;显示数据一次
LCALL TEST ;测量一次
AJMP MAIN
NOP ;PC值出错处理
NOP
NOP
LJMP START
;
DISPLAY: MOV R3,#08H ;8路信号循环显示控制
MOV R0,#70H ;显示数据初址70H~77H
MOV 7BH,#00H ;显示通道路数
DISLOOP1: MOV A,@R0 ;显示数据转为三位BCD码存入7AH、79H、78H
MOV B,#100
DIV AB
MOV 7AH,A
MOV A,#10
XCH A,B
DIV AB
MOV 79H,A
MOV 78H,B
MOV R2,#0FFH ;每路显示时间控制 4MS*255
DISLOOP2: LCALL DISP ;调四位显示程序
DJNZ R2,DISLOOP2
INC R0 ;显示下一路
INC 7BH ;通道显示数加一
DJNZ R3,DISLOOP1
RET
;
DISP: MOV R1,#78H ;共阳显示子程序,显示内容在78H—7BH
MOV R5,#0FEH ;数据在P1输出,列扫描在P3.0-P3.3
PLAY: MOV P1,#0FFH
MOV A,R5
ANL P3,A
MOV A,@R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
LCALL DL1MS
INC R1
MOV A,P3
JNB ACC.3,ENDOUT
RL A
MOV R5,A
MOV P3,#0FFH
AJMP PLAY
ENDOUT: MOV P3,#0FFH
MOV P1,#0FFH
RET
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH
;
;
DL1MS: MOV R6,#14H ;1MS延时子程序
DL1: MOV R7,#19H
DL2: DJNZ R7,DL2
DJNZ R6,DL1
RET
;
TEST: CLR A ;模数转换子程序
MOV P2,A
MOV R0,#70H ;转换值存放首址
MOV R7,#08H ;转换8次控制
LCALL TESTART ;启动测试
WAIT: JB P3.7,MOVD ;等A/D转换结束信号
AJMP WAIT
;
TESTART: SETB P2.3 ;测试启动
NOP
NOP
CLR P2.3
SETB P2.4
NOP
NOP
CLR P2.4
NOP
NOP
NOP
NOP
RET
;
;
MOVD: SETB P2.5 ;取A/D转换数据
MOV A,P0
MOV @R0,A
CLR P2.5
INC R0
MOV A,P2 ;通道地址加1
INC A
MOV P2,A
CJNE A,#08H,TESTCON ;等8路A/D转换结束
JC TESTCON
CLR A ;结束恢复端口
MOV P2,A
MOV A,#0FFH
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -