EDN China > 技术文章 > 嵌入式系统 > 开发工具 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

基于μPD78045F单片机的软件UART

来源:电子产品世界 / 作者:西北工业大学 魏江 李红娟 邓红德?? 2006年01月09日 ?? 收藏0

?????? 引? 言

?????? 单片机在数据采集与控制、智能仪表中发挥重要的作用。单片机应用系统与后端上位机系统之间通讯进行数据交换,构成功能强大的测控系统是目前发展的趋势。

?????? NEC公司生产的μPD78045F是78K0系列8位单片机功能较强的044F子系列的最高型号。该芯片功能强、可靠性高、速度快、支持节电应用。美中不足的是,该芯片的2个串行I/O口虽然功能强,却只支持同步通讯,没有异步通讯功能。

?????? 本文给出在μPD78045F上采用软件模拟方式,使用2个I/O口线和一个8位定时器实现异步串行UART功能的方法。本方法占用资源少,设置和使用简单方便,帧格式可自由改变。

?????? 设计思路

????&nb

sp;?

每一个UART都应具备如下功能:

?????? 异步串行发送和接收的基本单位是帧,通常每帧包括以下部分:

?????? 本设计中,发送采用主动查询方式,可使用任一输出端口,本文中将P12.1设置为输出口,作为TxD;由于异步通讯中接收是被动的和随机的,因此只能采用中断方式,P0.1是外部中断INTP1的外部引脚,设计中使用它作为RxD,设置为下降沿触发方式,可及时检测到起始位的逻辑0电平,进入中断处理程序进行数据接收。

?????? 波特率发生器使用8位定时器TM1,产生指定波特率下的1个发送/接收位时序长度,即“位定时”。UART的并行数据到串行数据的转换、每帧数据格式的生成、发送和接收功能都由软件来控制完成。在指定波特率下,位定时为1,000,000ms / 波特率,硬件系统采用fx=4.9152 MHz的主晶振,软件设置定时器计数时钟为4分频,即:fx/4=1.2288 MHz? ,达到指定波特率位定时常数为:1228800 / 波特率 。常用的波特率对应的位定时常数列在表1中。

常用的波特率对应的位定时常数


?????? 以下设置通讯参数为9600波特率,1位起始位,6位数据位,发送顺序从MSB到LSB,偶校验,2位停止位。

软件初始化的C语言程序

发送过程流程图

???????????????????????????????????????????????????????????????? 图1 发送过程流程图

接收过程流程图

??????????????????????????????????????????????????????????? 图2 接收过程流程图


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

操作系统? 单片机? UART?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈