No.98730 作者:yeying117 邮件:tangjyd28@163.com ID:61521 登陆:1次 文章数:2篇 最后登陆IP:222.171.23.85 最后登陆:2006/10/19 15:38:57 注册:2006/10/19 10:35:06 财富:112 发帖时间:2006/10/19 10:47:30 发贴者IP:222.171.23.85 标题:yeying117:各位大虾麻烦帮我看看我的串口接收程序 摘要:No.98730各位大虾麻烦帮我看看我的串口接收程序 这是我的程控放大程序,硬件经过调试,没什么问题,但我用串口精灵给下位机发数据,就是接收不了。请各位大虾给我指出问题 我的程序 ;----------I/O口定义---------------- PD0 BIT P1.0 PD1 BIT P1.1 PD2 BIT P1.2 PD3 BIT P1.3 WDI BIT P3.4 ;----------缓存区定义---------------- SEND_INDEX EQU 20H ; 执行发送命令标志 SEND_INDEX.0=0 有发送 SEND_INDEX.0=1无发送 CARD1 EQU 30H ;卡1 CARD2 EQU 31H ;卡2 CARD3 EQU 32H ;卡3 CARD4 EQU 33H ;卡4(自检) MULCARD EQU 31H ;放大倍数 SERDATA1 EQU 32H ;串口数据1(卡号) SERDATA2 EQU 33H ;串口数据2(放大倍数) SUMDATA EQU 34H ;串口数据3(校验和) ;----------------------------------------- ORG 0000H LJMP MAIN ORG 0023H LJMP SERVE ;串口中断服务程序入口 ORG 0050H ;------------------初始化----------------------- MAIN: LCALL DOG LCALL INITIAL LCALL INIOUT LOOP1: LCALL SELFCHELK JB SEND_INDEX.0,LOOP1 LCALL DATA_SEND AJMP LOOP1 ;------------------串口初始化----------------------- INIOUT: LCALL DOG MOV SCON,#50H;设置成串口1方式 MOV TMOD,#20H;波特率发生器T1工作在模式2上 MOV PCON,#80H;波特率翻倍为2400x2=4800BPS MOV TH1,#0F3H;预置初值(按照波特率2400BPS预置初值) MOV TL1,#0F3H;预置初值(按照波特率2400BPS预置初值) SETB TR1;启动定时器T1 ;以上完成通讯初始化设置 RET ;------------------系统初始化--------------------- INITIAL: MOV DPH,#01H MOV DPL,#01H SETB PD0 SETB PD1 SETB PD2 SETB PD3 CLR PD3 MOV A,#0FFH MOVX @DPTR,A SETB PD3 CLR PD2 MOV A,#0FFH MOVX @DPTR,A SETB PD2 CLR PD1 MOV A,#0FFH MOVX @DPTR,A SETB PD1 CLR PD0 MOV A,#0FFH MOVX @DPTR,A SETB PD0 MOV SEND_INDEX,#01H RET ;------------------数据接收----------------------- SERVE: LCALL DOG PUSH A PUSH PSW WAIT: JBC RI,RECET AJMP WAIT ;保护现场 RECET: MOV A,SBUF MOV SERDATA1,A WAIT0: JBC RI,RECET0 AJMP WAIT0 RECET0: MOV A,SBUF MOV SERDATA2,A WAIT1: JBC RI,RECET1 AJMP WAIT1 RECET1: MOV A,SBUF MOV SUMDATA,A WAIT2: JNB RI,WAIT2 CLR RI RETURN: POP PSW POP A SETB EA ......
>>返回讨论的主题
|