课题如上。
要求是:采用ADC0809把采集过来的模拟信号转换成数字信号。转换完毕后把数据传输给8051单片机,再由8051单片机通过RS232接口电路传给PC机。
我所负责的是下位机的开发,包含数据采集部分和串行通信。希望哪个高手给我指教一下,小弟我感激不尽(我最近做了一点,但是好像显得太“单薄”了一点,而且没有和上位机的握手信号,我把我所编的程序附上,硬件图我过两天扫描上去,请哪位高手给我改正一下)。
附程序:
ORG 0000H
AJMP MAIN
ORG 0013H
LJMP INT
ORG 1000H
MAIN:
MOV TMOD,#20H
MOV PCON,#00H
MOV SCON,#50H
MOV TL1,#0FDH
MOV TH1,0FDH
CLR ET1
SETB TR1
;本程序是串口通信初始化程序,其中设置通讯方式伟1,定时器/计数器方式为2,波特率为9600bps。
CAI_START:
SETB IT0;设置外部中断0为边沿触发
SETB EA;开cpu中断
SETB EX0;开外部中断
MOV R0,#40H;存储区首地址
MOV DPTR,#0FF8H;选通0通道
MOV @DPTR,A;启动A/D转换
SJMP $;等待中断
SEND:;本程序为发送程序,是从单片机8051发到pc机,执行完中断程序之后,本程序自动执行
MOV A,@R0;40h存放内容发给a寄存器
MOV SBUF,A;a寄存器内容发到发送缓冲区
JNB TI,$;判断是否发送完毕
CLR TI;发完后清TI
ACLL CAI_START;转至采集程序
RET
INT:;本程序是中断程序,当EOC发中断请求信号后,开始执行本程序,这个程序是从A/D0809接收数据。
MOVX A,@DPTR;接收数据
MOVX @R0,A;存放到40H开始的区域
CLR EA;关cpu中断
CLR EX0;关外部中断0
RETI;中断返回
|