完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1. 定时发送1字节数据给电脑,波特率9600 #include typedef unsigned char u8; ***it BEEP = P1 ^ 0; //置1则响 //--------------------------------------------------------------------- u8 testbit = 'F'; //--------------------------------------------------------------------- void delay_2ms(unsigned long int time) //2ms的基 { unsigned long int i; for (i = 0; i < time * 100; i++); } void UART1_Init() { SCON = 0x50; TMOD = 0x20; TH1 = 0xfd; TL1 = 0xfd; TR1 = 1; ES = 1; EA = 1; } void Uart1_ISR() interrupt 4 { ES = 0; if (TI == 1) // 如果TI=1,则说明中断是由发送完成引发的 { TI = 0; } else if (RI == 1) // 如果RI=1,则说明中断是由发送完成引发的 { RI = 0; } ES = 1; } //------------------------------------------------------------------------- void main() { BEEP = 0; UART1_Init(); while (1) { SBUF = testbit; delay_2ms(250); } } 2. 接收一字节数据并将其发回去 ,波特率9600 #include typedef unsigned char u8; ***it BEEP = P1 ^ 0; //置1则响 //--------------------------------------------------------------------- u8 testbit = 'F'; static u8 recbit; //--------------------------------------------------------------------- void delay_2ms(unsigned long int time) //2ms的基 { unsigned long int i; for (i = 0; i < time * 100; i++); } void UART1_Init() { SCON = 0x50; TMOD = 0x20; TH1 = 0xfd; TL1 = 0xfd; TR1 = 1; ES = 1; EA = 1; } void Uart1_ISR() interrupt 4 { ES = 0; if (TI == 1) // 如果TI=1,则说明中断是由发送完成引发的 { TI = 0; } else if (RI == 1) // 如果RI=1,则说明中断是由发送完成引发的 { recbit=SBUF; SBUF=recbit; RI = 0; } ES = 1; } //------------------------------------------------------------------------- void main() { BEEP = 0; UART1_Init(); while (1); } |
|
|
|
只有小组成员才能发言,加入小组>>
2549 浏览 0 评论
1148浏览 2评论
747浏览 1评论
500浏览 0评论
266浏览 0评论
429浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 20:46 , Processed in 1.239656 second(s), Total 79, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号