技术热线: 4007-888-234
设计开发

专注差异化嵌入式产品解决方案 给智能产品定制注入灵魂给予生命

开发工具

提供开发工具、应用测试 完善的开发代码案例库分享

技术支持

从全面的产品导入到强大技术支援服务 全程贴心伴随服务,创造无限潜能!

新品推广

提供新的芯片及解决方案,提升客户产品竞争力

新闻中心

提供最新的单片机资讯,行业消息以及公司新闻动态

USART最简例程

更新时间: 2019-03-26
阅读量:3310

/******************************************************* 一、程序说明: 这是一个最简单的USART(通用异步收发器)的发送程序,采用三线 TXDRXDGND通过RS232接口与电脑传送数据,此程序是循环地向电脑 传送0XOAOXOBOXOCOXODOXOEOXOF6个字节。通过一般网 上下载的串口通信工具即可接收到。

二、硬件连接: 1MCU-PIC16F877A。(当然可以选择其它IC2,采用400晶体。 3,连接: MCU Pin25-----> RS232 Pin11. MCU Pin26-----> RS232 Pin12. RS232 Pin14---> COM1 Pin2. RS232 Pin13---> COM1 Pin3. PCB GND ------> COM1 Pin5(GND) *******************************************************/ #include "pic.h"

void usart_init(void); unsigned char txbuff[6]; char k=0;

void main(void) { TRISC=0X80; //设定RC7为输入,RC6为输出。 PORTC=0; usart_init(); //串口初始化。 INTCON=0; //清中断 PEIE=1; GIE=1; while(1) { txbuff[0]=0x0a; //txbuff[]数组赋值。 txbuff[1]=0x0b; txbuff[2]=0x0c; txbuff[3]=0x0d; txbuff[4]=0x0e; txbuff[5]=0x0f; for (k=0;k<6;k++) { TXREG = txbuff[k]; TXEN=1; //启动发送,TSR开始移位操作。 while (TXIF==0); //等待中断,在此为查询方式。 while (TRMT==0); //判断是否TSR发送完毕,未完等待。 TXEN=0; //关发送功能,防止TXREG空时,TXIF产生置位。 } } }

void usart_init(void) { TXSTA=0X04; //设定TXSTA寄存器。 SPBRG=25; //4MHZ, BRGH=1, 9600BPS. PIE1=0; //清除PIE1所有中断使能。 RCSTA=0X80; //禁止接收。 }

/***********END**********************/