这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 1121 求助:1121串口通讯有问题!!!

共2条 1/1 1 跳转至

1121 求助:1121串口通讯有问题!!!

院士
2006-09-17 18:14:16     打赏
1121 求助:1121串口通讯有问题!!!



关键词: 求助     串口     通讯     有问题    

院士
2006-12-22 22:43:00     打赏
2楼
问 我用的是1121在串口通讯时,遇到了这样一个问题:
单片机发送 06 结果上位机收到的却是 06 00 不知为什么?
请给位高手指点!!谢谢!:confused: 1: 哎,每人理我我还要说,还要补充!!:mad:
上面这个程序,在循环发送中上位机收到的十分正确,可单步发送却总是有个尾巴,比如:00;80;f0等等,不知为什么?请各位好心的大虾看看吧?
下面是程序:
ORG 0F000h ; 程序开始

RESET mov.w #300h,SP ;初始化堆栈指针
MOV #05H,R5
call #Init_Sys ;初始化系统模块
Mainloop MOV #05H,R5
Call #TX_Byte ;发送数据
Jmp Mainloop ;程序不断循环

Init_Sys ;初始化程序
StopWDT mov #WDTPW+WDTHOLD,&WDTCTL ; 停止看门狗
SetupTA mov #TASSEL0+MC1,&TACTL ;输入ACLK,连续工作方式
SetupC0 mov #OUT,&CCTL0 ; TXD=1,发送空闲
SetupP1_2 bis.b #TXD,&P1SEL ; P1.1/TA0 为发送TXD
bis.b #TXD,&P1DIR
eint
ret

TX_Byte ;发送一个字节数据
mov &TAR,&CCR0 ;确定第一位的时间长度
add #Bitime,&CCR0
bis #0100h, RXTXData ; 数据中增加起始和停止位
rla RXTXData
mov #10,BitCnt ;8 个数据位+1 个起始位+1 个停止位
mov #OUTMOD0+CCIE,&CCTL0 ;输出方式1,TXD = 1,仍未发送数据
TX_Wait bit #CCIE,&CCTL0 ;等待数据全部发送完毕
Jnz TX_Wait
ret

TA0_ISR ;CCR0 数据收发中断服务程序
add #Bitime,&CCR0 ;发送下一位数据的时间
rra RXTXData ;最低有效位移入C
jnc TX_Space ; Jump --> bit = 1
UART_TX bic #OUTMOD2,&CCTL0 ;输出方式2,中断输出1
JMP TX_Test
TX_Space bis #OUTMOD2,&CCTL0 ;输出方式5,中断输出0
TX_Test dec BitCnt ;所有的数据位都收发完毕
jnz TX_Next ;没有,准备收发下一位
bic #CCIE,&CCTL0 ;所有的位都收发完毕关闭TIMER_A 中断
TX_Next reti

ORG 0FFFEh ;复位入口地址
DW RESET
ORG 0FFF2h ;Timer_A0 向量地址
DW TA0_ISR
END
END:eek: 2: 谢谢了各位大虾,帮帮我吧!谢谢了!!!!!:p 3: 又一天了,哎!没人理我!!!
:( 4: 老兄,我跟你有相同问题,也没有解决。我发26,上位机收到26 FF,不明白。

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]