三、程序设计
本讲设计实例程序如下:
#include “AT89X52h” (1)
void Init_Com(void) ( 2)
{
TMOD = 0x20; ( 3)
PCON = 0x00; ( 4)
SCON = 0x50; ( 5)
TH1 = 0xE8; ( 6)
TL1 = 0xE8; ( 7)
TR1 = 1; ( 8)
}
void main(void) ( 9)
{
unsigned char dat; ( 10)
Init_Com(); ( 11)
while(1) ( 12)
程序详细说明:
(1)头文件包含。
(2)声明串口初始化程序。
(3)设置定时器1 工作在模式2,自动装载初值(详见第二讲)。
(4)SMOD 位清0,波特率不加倍。
(5)串行口工作在方式1,并允许接收。
(6)定时器1 高8 位赋初值。波特率为1200b/s(7)定时器1 低8 位赋初值。
(8)启动定时器。
(9)主函数。
(10)定义一个字符型变量。
(11)初始化串口。
(12)死循环。
(13)如果接收到数据。
(14)将接收到的数据赋给之前定义的变量。
(15)将接收到的值输出到P0 口。
(16)对接收标志位清0,准备再次接收。
(17)将接收到的数据又发送出去。
(18)查询是否发送完毕。
(19)对发送标志位清0。
如果使用51系列单片机如STC89C52,它用的是串行通信方式的在线烧写功能,和单片机里面编程的串行通信无关,是硬件本身的功能,你连接串口的两根线和共地线,用STC-ISP 48,选择单片机型号与程序位置,关闭单片机开发板,点击程序下载后再上电就可以完成烧写。通常可采用MAX232,台式机后面的串口线或USB+PL2303这两种形式,这个功能AT89C52或是AVR系列都是不具备的。
以上就是关于串行口通信C51程序全部的内容,包括:串行口通信C51程序、KEIL编程 串口通信程序、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)