电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

C语言编写,用PIC16F690双机异步USART通信(收发全有)

C语言编写,用PIC16F690双机异步USART通信(收发全有)_第1页
1/11
C语言编写,用PIC16F690双机异步USART通信(收发全有)_第2页
2/11
C语言编写,用PIC16F690双机异步USART通信(收发全有)_第3页
3/11
C 语言编写,用PIC16F690 双机异步USART 通信(收发全有) Post By:2008-9-18 10:33:00 我的这个程序是利用PIC16F690 单片机编写的。 要实现双机异步通信,用USART 进行通信。 目的是,让单片机A 发送 00~ 99 到单片机B 中,然后在单片机B 链接一个LED 数码管显示出 00~ 99; 与此同时,单片机A 也同样链接一个LED 数码管,显示发送出去的00~ 99. 也就是让单片机A 和 B 的数码管显示同样的00 和 99。 我的程序如下,问题挺多,在下是新手,有点乱。请那位老师指点一下。 发送程序: #include /*该程序实现 PIC16F690 单片机双机异步通信功能; 该程序是发送部分(发送 00~ 99),并在 LED 显示器上显示出发送的数据;*/ #define PRESCALE1S 100 //1s #define PRESCALE4MS 1 //4ms unsigned char Reg_L = 0; unsigned char Reg_H = 0; unsigned char IntFlag = 0; unsigned char tran[8]; //存储发送数据数组; const char NumTab[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0XD8,0x80,0x90}; //不带小数点,共阳极显示 0~ 9; unsigned int NumADD; unsigned int DispPreScale = PRESCALE1S; unsigned int DispPreScaleCnt = 0x00; /***函数名称:InitPort;***/ /***函数功能:I/O 端口初始化;***/ void InitPort(void) { TRISA = 0x00; //PORTA 初始化; PORTA = 0x00; TRISB = 0x00; //PORTB 初始化; PORTB = 0x00; TRISC = 0x00; //PORTC 初始化; PORTC = 0x00; } /***函数名称:ASSIGN;***/ /***函数功能:给数组赋初值;***/ /*void ASSIGN(void) { for(k=0;k<8;k++) { tran[k] = k + 3; } }*/ /***函数名称:InitTMR1;***/ /***函数功能:定时器1 初始化;***/ void InitTMR1(void) { T1CON = 0x30; //TMR1 寄存器时钟为 Fosc/4 再经 8 分频; TMR1H = 0xFC; TMR1L = 0x18; //4ms 定时初始化值; TMR1IE = 1; //允许Timer1 溢出中断; TMR1ON = 1; //TMR1 使能; } /***函数名称:InitDevice;***/ /***函数功能:对MCU 各个功能初始化;***/ void InitDevices(void) { InitPort(); //端口初始化; InitTMR1(); //TMR1 定时器初始化; BRGH = 1; //选择高速波特率; SPBRG = 103; //晶振 8M,异步,高速,19200BPS,误差 0....

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

C语言编写,用PIC16F690双机异步USART通信(收发全有)

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部