根据STCSTC15F2K60S2单片机的串口通讯
- 格式:doc
- 大小:636.17 KB
- 文档页数:14
使用说明(第三版)一、开发板简介:此款开发板专为STC15系列封装为LQFP44的单片机设计,板载单片机为IAP15F2K61S2,支持在线仿真,主时钟频率建议28MHz以下(STC官网说明最高频率为35MHz)。
该开发板适合新手入门学习,也适合熟练STC单片机的工程师进行开发设计。
发货清单:开发板*1,USB数据线*1(为使客户能够自由选择,其他器件请自行在本店购买)二、实物图鉴赏:三、功能说明:1、支持MINI USB接口供电/下载以及RS232串口下载2、RS232串口可切换3、双电源供电(5V/3.3V)4、6~9V电源适配器供电5、全部IO引出6、4位独立按键7、8位LED8、有源蜂鸣器9、MAX485通信10、译码器74LS13811、四相五线步进电机驱动12、6位共阴数码管13、LCD1602接口14、LCD12864接口15、温度传感器DS18B2016、红外接收17、PCF8574IIC IO扩展单片机资源说明(IAP15F2K61S2):1、42个IO2、双串口3、程序空间61K4、6个定时器5、10位8通道ADC6、3通道PWM7、SPI(只能作为MASTER)8、无需外部晶振四、下载说明:下载前请确保板子已经供电,如下图上方用黄色框圈出跳线帽为默认设置。
当上面一个跳线帽接右边时,只要连接迷你USB数据线就可以为板子供电,连接左边则需要用适配器供电,输入电压范围:6~9V。
下面的跳线帽为单片机工作电压,一般不需要改变。
下面的黄色框圈出薄码开关是单片机的串口(从左往右依次规定为1~6),如图所示时可以使用迷你USB线为单片机烧录程序。
当需要用9针串口为单片机下载程序时,请将1、2位拨下来,3、4位拨上去,5、6位拨下来。
两种下载方式的区别只是改变1、2和3、4的位置,5、6位的使用后续说明,下载程序不需要改变(注意:在任意时刻不能将1234位或者3456位同时拨到上面,否则会出现无法下载或者串口通信出错)。
基于STC15F2K系列单片机串口通信控制的研究
赵宏杰
【期刊名称】《电子科学技术》
【年(卷),期】2017(004)004
【摘要】本设计以STC15F2K60S2单片机为研究核心,并以计算机超级终端为调试窗口.阐述了如何通过编程和设置,使单片机串口和计算机超级终端能够快速、稳定、准确地进行通信.在设计中,以计算机内部C语言函数库为载体,对库函数进行适当的修改和软件设置,完成了STC15F2K系列单片机串口和计算机超级终端的完美通信.
【总页数】4页(P116-119)
【作者】赵宏杰
【作者单位】漯河技师学院,河南漯河,462000
【正文语种】中文
【中图分类】TP399
【相关文献】
1.基于单片机和串口通信的高速步进电机控制系统设计 [J], 谭辉;潘涵;邢芳;宋文武;刘义;郑生全;吴华兵
2.基于LabVIEW7.0语言的PC机与AVRAT90系列单片机串口通信技术在体温检测中的应用 [J], 韦哲;程自峰;李凯
3.基于PC与单片机串口通信控制的点阵系统设计 [J], 龚再兰
4.PC机与51系列单片机的远距离串口通信 [J], 李振起;马君;王丙君;唐兵
5.基于VB与单片机串口通信的智能控制教学演示台的设计开发 [J], 王海蛟;李丹;丁栋;张勤河
因版权原因,仅展示原文概要,查看原文内容请购买。
STC15F2K60S2串口2程序下面是串口2 的程序,昨天一直没调出来的原因是由于串口发送完中断标志位,置位和清零上出了问题。
其中为什么要把它,照着资料手册上那种方式写才行,这我现在也没大清楚,我想可能这需要反汇编才看的出来,由于竞赛时间紧,只有暂且放下进一步的分析,下面是程序代码。
#include “reg51.h”sfrP4 = 0xc0;sfr P5 = 0xc8;sfr AUXR = 0x8e ;sfr S2CON = 0x9a ;sfr S2BUF = 0x9b ;sfr T2H = 0xd6 ;sfr T2L = 0xd7 ;sfr IE2 = 0xaf ;sfr IP2 = 0xb5 ;#define S2RI 0x01 // S2CON.0#define S2TI 0x02 // S2CON.1unsigned char temp ;bit flag1 = 0 , flag2 = 0 , busy = 0 ; unsigned char xdata Uart1TxBuffer [20] = “杜兴杰你必须加油个”; //void SendData ( unsigned char date ) ; //数据发送函数定义void Uart2Init(void)//9600bps@11.0592MHz{S2CON = 0x50; //8 位数据,可变波特率AUXR |= 0x04; //定时器2 时钟为Fosc,即1TT2L = 0xE0; //设定定时初值T2H = 0xFE; //设定定时初值AUXR |= 0x14; //启动定时器2 4 注意这里EA = 1 ;IE2 = 0x01 ; //开启串口中断ES2IP2 |= 0x00 ; //串口2 优先级0}void main( void ){char i ;P0 = 0;Uart2Init() ;SendData (C) ;SendData (C) ;for ( i = 0 ; i {SendData (Uart1TxBuffer[i]) ;}for ( i = 0 ; i {SendData (Uart1TxBuffer[i]) ;} SendData (C) ;SendData (C);while(1){if( flag2 == 1 ){SendData ( temp );flag2 = 0 ;}}}void Uart2( void ) interrupt 8{if( S2CON & S2RI ){S2CON &= ~ S2RI ; temp = S2BUF ;flag2 = 1 ;}if(S2CON & S2TI ){S2CON &= ~ S2TI ;busy = 0 ;}}void SendData ( unsigned char date ){while ( busy ) ; //busy = 1 ;S2BUF = date ;// while ( !( S2CON & 0x02 ) ) ;// S2CON &= ~ S2TI ;}下一步是把串口1 和串口2 加在一起,还有就是加入循环队列实现流控等tips:感谢大家的阅读,本文由我司收集整编。
基于STC15F2K60S2单片机开发板设计制作摘要单片机开发板的介绍单片机开发板是一块电路板和诸多元器件组合在一起供平时的学习、实验、开发等使用;是正式批量生产产品前,对产品进行设计和开发时使用的板子。
我们学习单片机,开始是对理论知识的学习,学习了一些指令和相关单片机结构的知识,而单片机开发板就是我们实践的工具,通过开发板我们可以做一些实验,从而掌握所学的知识。
打个比较通俗的例子:我们编写的代码是“软件”,而开发板是“硬件”,两者结合才会有用,如果只有代码,只有模拟的实验结果而不经过板子实践是学不好的,也掌握不了单片机。
简单概括说开发板实际上就是个多功的实验板,是学习单片机和开发单片机产品的好帮手。
上面集成了好多单片的的外围器件,如LED灯、数码管、按键、行列式按键、步进电机、伺服电机、液晶显示等等,利用一个开发板就可以编制不同的程序实现各种各样的功能,不用为了一个实验焊一块电路板了。
在开发板上设计、调试好程序,就能方便地移植到产品上,只是有时要作适当的修改,比如端口的设置等,因为毕竟开发板和产品的电路板不可能完全一致的。
这样我们就可以通过开发板的使用节省大量的资源,提高我们的学习效率。
为我们更好的学习单片机提供一个良好的平台。
国内外发展趋势现在可以说是单片机的战国时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。
纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:1、低功耗CMOS化MCS-51系列的8031推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。
像80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。
湖南科技大学信息与电气工程学院《单片机课程设计报告》题目:基于STCSTC15F2K60S2单片机的串口通讯专业:自动化班级:一班姓名:罗永恒学号: 1209010303指导教师:范小春2015年 6月 30日单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
本文将具体介绍单片机与PC机进行串口通信的实现方法和编程方法,并且在最后给出一个实用的单片机与计算机通过串口通信的程序。
关键词:单片机串口通信第一章 STCSTC15F2K60S2的简介 (1)1.1 STCSTC15F2K60S2的内部结构框图 (1)1.2 STC15F2K60S的DIP封装图 (1)1.3 STC15F2K60S的各引脚简介 (2)第二章单片机通过USB与PC机的通信设计 (4)2.1设计方案选择 (4)2.1.1 PC机同单片机通信存在的问题 (4)2.1.2 USB接口同RS-232(DB-9)串口的比较 (4)2.1.3 USB转接芯片的选择 (4)2.2 通信功能要求 (5)第三章硬件电路图的设计 (5)3.1单片机最小系统 (5)3.2 USB与单片机连接主电路 (6)3.3 总电路图 (6)3.4 PCB图 (6)第四章程序设计 (7)4.1 串口初始化 (7)4.2 主程序 (7)4.3 中断服务程序 (8)4.4 总程序 (8)第五章总结与体会 (10)第六章参考文献 (11)第一章 STCSTC15F2K60S2的简介1.1 STCSTC15F2K60S2的内部结构框图1.2 STC15F2K60S的DIP封装图1.3 STC15F2K60S 的各引脚简介(1)电源引脚Vcc :一般接电源的+5V 。
STC15F2K60S2应⽤笔记STC15F2K60S2系列单⽚机是STC⽣产的单时钟/机器周期的单⽚机。
是⾼速/⾼可靠/低功耗/超强抗⼲扰的新⼀代8051单⽚机。
采⽤第⼋代加密技术,加密型超强,指令代码完全兼容传统的8051,速度快8~12倍。
内部集成⾼精度R/C时钟,+/-1%温漂,常温下温漂5%,5MHz~35MHz宽范围可设置,可彻底省去昂贵晶振电路和外部复位电路。
之前在犹豫做机器⼈到底是⽤单⽚机控制还是ARM芯⽚,现在终于决定了,由于好多传感器的电源电压都是5V的,信号接受也是5V,于是决定部分传感器由单⽚机控制,然后在与ARM控制器进⾏通讯,将单⽚机与ARM控制器结合起来。
但是不知为何,在设计单⽚机控制模块的时候在对单⽚机型号进⾏选型时,也许是想尝试新技术——选择了2012年才开始供货的STC15F2K60S2,其中有⼏个原因:1. 它的存储容量⼤,考虑到之前⽤到的STC8952单⽚机,flash才有8K,移植⼀个ucousII都不够。
2. 不⽤外接晶振电路和复位电路,这将节省了电路板的空间。
3. 接⼝丰富,因为需要与ARM进⾏通讯,STC15F2K60S2有两个独⽴串⼝。
4. 有PWM控制输出模块,4个中断,完全满⾜机器⼈的电机驱动和传感器的控制。
5. ⼀般都是LQFN-44封装,⼩指指甲那么⼤的⾯积,很容易⼿⼯焊接。
选定单⽚机型号后,把电路板设计好后,等到我去成都的电⼦元器件交易市场——城隍庙的时候,问了好多家店,都没有这系列的芯⽚,原因是这块芯⽚太新了,店家们都还没有开始供货。
没办法,只有到淘宝上买,很便宜6.5元/⽚,我权衡了⼀下买了三⽚。
刚拿到后就开始打算焊到板⼦上,这种贴⽚式封装的我还是第⼀次焊,不过看过⽜⼈焊过贴⽚式的芯⽚,⽆⾮就是先把引脚对齐;加焊锡固定并⼤量上錫;在⽤扁平的电烙铁将焊锡除去,OK!焊好后,因为我之前有STC-ISP下载模块,USB接⼝的,但是我按原理图接上,TXD——RXD的原则,在下载最新的STC-ISP(V6.33),这软件改变的很多,增加了很多⼯具,对于开发⼈员很⽅⾯,就连延时函数都不⽤⾃⼰调试,直接给你⽣成汇编或者C代码。
STC15F2K60S2系列单片机总体介绍1.STC15F2K60S2系列单片机简介STC15F2K60S2系列单片机是STC 生产的单时钟/机器周期(1T)的单片机,是高速/高可靠/低功耗/超强抗干扰的新一代8051单片机,�������代��技术,����,指�代�����������代��技术,����,指�代����指�代����容传统8051,但速度快8-12倍。
����高�度����高�度R/C 时钟(±0.3%),±1%温飘(-40℃~+85℃),常温下温飘±0.6%(-20℃~+65℃),ISP 编程时5MHz~35MHz 宽范围可设置,可彻底省掉外�昂贵的晶振和外�复位电路(��已��高可靠复位电路,ISP 编程时8级复位门槛电压可选)。
3路CCP/PWM/PCA ,8路高速10位A/D 转换(30万次/秒),�置2K 字节大容量SRAM ,2组超高速异步串行通信端口(UART1/UART2,可在5组管脚之间进行切换,分时复�可作5组串口使�),1组高速同步串行通信端口SPI ,���串行口通信���串行口通信�串行口通信/电机控制/强干扰场合。
在 Ke�lC Ke�l C 开发环境中,选择 Intel 8052 编译,头文件包含<reg51.h>即可现STC15系列单片机��STC-Y5超高速CPU �核,在相同的时钟频率下,速度又比STC 早期的1T 系列单片机(如STC12系列/STC11系列/STC10系列)的速度快20%.1.增强型 8051 CPU ,1T ,单时钟/机器周期,速度比普通8051快8-12倍2.工作电压:STC15F2K60S2 系列工作电压:5.5V - 4.5V (5V 单片机)STC15L2K60S2 系列工作电压:3.6V - 2.4V (3V 单片机)3.8K/16K/24K/32K/40K/48K/56K/60K/61K/63.5K 字节片�Flash 程序存储器,可擦写次数10万次以上4.片�大容量�大容量2048字节的的SRAM ,包括常规的256字节RAM <�data> 和��扩展的1792字节XRAM <xdata>5.大容量片�EEPROM ,擦写次数10万次以上6.ISP/IAP ,在系统可编程/在应�可编程,�需编程器,�需仿真器7.共8通道10位高速ADC ,速度可达30万次/秒,3路PWM 还可当3路D/A 使�8.共3通道捕获/比较单元(CCP/PWM/PCA)----也可�来再实现3个定时器或3个外�中断(支持上升沿/下降沿中断)或3路D/A9.利�CCP/PCA高速脉冲输出功能可实现3路9 ~ 16位PWM (每通道占�系统时间小于0.6%)10.利�定时器T0、T1或T2的时钟输出功能可实现高�度的8 ~ 16位PWM (占�系统时间小于0.4%)11.��高可靠复位,ISP编程时8级复位门槛电压可选,可彻底省掉外�复位电路12.工作频率范围:0MHz ~ 28MHz,相当于普通8051的0MHz~336MHz13.��高�度R/C时钟(±0.3%),±1%温飘(-40℃~+85℃),常温下温飘±0.6%(-20℃~+65℃),ISP编程时��时钟从5MHz~28MHz可设(5.5296MHz / 11.0592MHz / 22.1184MHz)14.不需外�晶振和外�复位,还可�外输出时钟和低电平复位信号15.两组超高速异步串行通信端口(可同时使�),可在5组管脚之间进行切换,分时复�可当5组串口使�:串口1(RxD/P3.0, TxD/P3.1)可以切换到(RxD_2/P3.6, TxD_2/P3.7),还可以切换到(RxD_3/P1.6, TxD_3/P1.7);串口2(RxD2/P1.0, TxD2/P1.1)可以切换到(RxD2_2/P4.6, TxD2_2/P4.7)注意:建议�户将串口1放在 P3.6/P3.7 或 P1.6/ P1.7 (P3.0/P3.1 作下载/仿真�);若�户不想切换,坚持使� P3.0/P3.1 或作为串口1进行通信,则务必在下载程序时,在软件上勾选“下次冷启动时,P3.2/P3.3为0/0时才可以下载程序”。
湖南科技大学信息与电气工程学院《单片机课程设计报告》题目:基于STCSTC15F2K60S2单片机的串口通讯专业:自动化班级:一班姓名:罗永恒学号: 1209010303指导教师:范小春2015年 6月 30日单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
本文将具体介绍单片机与PC机进行串口通信的实现方法和编程方法,并且在最后给出一个实用的单片机与计算机通过串口通信的程序。
关键词:单片机串口通信第一章 STCSTC15F2K60S2的简介 (1)1.1 STCSTC15F2K60S2的内部结构框图 (1)1.2 STC15F2K60S的DIP封装图 (1)1.3 STC15F2K60S的各引脚简介 (2)第二章单片机通过USB与PC机的通信设计 (4)2.1设计方案选择 (4)2.1.1 PC机同单片机通信存在的问题 (4)2.1.2 USB接口同RS-232(DB-9)串口的比较 (4)2.1.3 USB转接芯片的选择 (4)2.2 通信功能要求 (5)第三章硬件电路图的设计 (5)3.1单片机最小系统 (5)3.2 USB与单片机连接主电路 (6)3.3 总电路图 (6)3.4 PCB图 (6)第四章程序设计 (7)4.1 串口初始化 (7)4.2 主程序 (7)4.3 中断服务程序 (8)4.4 总程序 (8)第五章总结与体会 (10)第六章参考文献 (11)第一章 STCSTC15F2K60S2的简介1.1 STCSTC15F2K60S2的内部结构框图1.2 STC15F2K60S的DIP封装图1.3 STC15F2K60S 的各引脚简介(1)电源引脚Vcc :一般接电源的+5V 。
具体的电压幅度应参考单片机的手册。
GND :接电源地。
(2)外接晶体引脚XTAL2XTAL1C2C1GNDM芯片内部一个反相放大器的输入端和输出端。
通常用于连接晶体振荡器。
(3)控制和复位引脚单片机RST/VPDGNDCr 10uFRr 10KΩVcc功能:当访问外部存储器或者外部扩展的并行I/O 口时,ALE (允许地址锁 存)的输出用于锁存地址的低位字节。
RST (与P5.4复用):当振荡器运行时,在此引脚上出现两个机器周期的 高电平将使单片机复位。
如果需要单片机接上电源就可以复位,则需要使 用上电复位电路。
(4)I/O 口的复用功能 P0口:a.用作数据总线(D7~D0)或者地址总线低8位(A7~A0)。
b.用作普通I/O 。
P1口:a.用作普通I/O 。
b.复用为ADC 转换输入、捕获/比较/脉宽调制、SPI 通信线、第二串口 或者第二时钟输出,如表所示。
P2口:a:用作通用I/O。
b:用作地址总线的高8位输出。
c:用于SPI和捕获/比较/脉宽调制的备用切换端口。
P3口:a:用作通用I/O。
b:可复用为外部中断输入、计数器输入、时钟输出、第一串口和外部总线的读/写控制,如表所示。
P4口:a:用作通用I/O。
b:某些口线具有复用功能,可配置为SPI通信线、捕捉/比较/脉宽调制、第二串口线等。
P5口:a:P5.4/RST(复位脚)/MCLKO(内部R/C振荡时钟输出;b:输出的频率可为MCLK/1或MCLK/2)/SS_3(SPI接口的从机选择信号备用切换引脚)。
c:该引脚默认为I/O口,可以通过ISP编程将其设置为RST(复位)引脚。
第二章单片机通过USB与PC机的通信设计2.1设计方案选择由于实际应用中单片机在数据处理能力、人机交互等方面往往不能满足要求, 因而通常用PC来弥补单片机的这些不足。
例如,在工程应用中,常常由一台PC机和一台单片机构成主从式计算机测控系统。
在这样的系统中,以单片机为核心的智能测控仪表(从机)作为现场测控设备,完成数据的采集、处理和控制各种任务,同时将数据传给PC机(主机),PC机将这些数据加工处理后,进行显示、打印报表等。
PC机也可以将各种控制命令传送给单片机,干预单片机系统的运行,从而发挥PC机的优势。
要实现这样的功能,就涉及到PC机与单片机之间的通信问题。
现在的计算机提供了各种各样的串口,他们支持不同的通信协议,有着不同的功能。
目前计算机提供的串口有RS-232,RJ45,USB2.0等。
2.1.1 PC机同单片机通信存在的问题目前,15系列单片机同PC机的通信在大多数情况下仍然是使用RS-232(DB-9)串口作为通信接口实现的。
而随着USB接口技术的成熟和使用的普及,由于USB 接口有着一系列RS-232(DB-9)串口无法比拟的优点,RS-232(DB-9)串口正在逐步的为USB接口所替代。
而在现在的大多数笔记本电脑中,出于节省物理空间和用处不大等原因,RS-232(DB-9)串口已不再设置,这就约束了基于RS-232(DB-9)串口与PC机联络的单片机设备的使用范围。
2.1.2 USB接口同RS-232(DB-9)串口的比较通过USB接口和RS-232(DB-9)的比较,不难发现:(1)USB接口支持即插即用和热插拔,而RS-232(DB-9)串口不支持即插即用和热插拔,设备安装后需重启计算机方可使用。
(2)USB接口的传输速率较快,可达480Mbps(V2.0),而RS-232(DB-9)串口的最高速率仅为19200波特。
(3)USB接口占用体积较小,插拔方便;而RS-232(DB-9)串口的的插拔需要使用改锥,且在机箱后操作,比较麻烦。
综上可知,USB 接口取代RS-232(DB-9)串口的趋势不可逆转。
2.1.3 USB转接芯片的选择目前常用的USB转接芯片包括PL2303,CH341,CP2101,FT232等。
在综合考虑了各方面因素后,CH341成为了本次电路设计的首选芯片。
CH341是南京沁恒电子公司生产的USB总线的转接芯片,通过USB总线提供异步串口,打印口,并口及常用的2线和4线等同步串行端口。
其特点有:(1)提供全速USB设备借口,兼容USB2.0,外围设备只需要晶体和电容;(2)可通过外部的低成本串行EPROM定义厂商ID,产品ID,序列号等;(3)成本低廉,可直接转换原串口外围设备;(4)采用SOP-28封装,串口应用还提供小型的SSOP-20封装。
正是由于在PC机同单片机通信电路中,USB转接芯片CH341 具有以上其他芯片无法比拟的优点,同时价格低廉并且提供中文技术支持,因此它成为了本电路USB转接芯片的最优选择。
本电路采用的是SSOP-20封装的CH341T,其引脚图如图所示。
2.2 通信功能要求(1)PC控制单片机IO口输出,并且通过两个LED灯显示数据发收状态,如果数据处于发送或者接收状态,则相应的LED灯闪亮。
(2)PC控制单片机IO口输出,并且通过两个按键控制PC机是否接收数据。
(3)PC机与单片机之间的通信结果通过串口助手进行调试和显示。
第三章硬件电路图的设计3.1单片机最小系统由起振电路,复位电路组成3.2 USB 与单片机连接主电路其中,两个按键分别控制是否接收数据,两个LED 灯显示接收数据状态,CH341芯片提供串口。
3.3 总电路图123456ABCD654321D CBATitleN u mb er R ev isio nSize B D ate:3-Ju l-2015Sh eet o fFile:H \B AY A NW EI\原理图D d b D raw n B y A D0/P 0.01A D1/P 0.12A D2/P 0.23A D3/P 0.34A D4/P 0.45A D5/P 0.56A D6/P 0.67A D7/P 0.78R x D 2/CC P1/A D C0/P 1.09Tx D2/C C P0/A DC 1/P1.110EC I/S S/AD C 2/P1.211MO SI/A D C3/P 1.312MISO /A D C4/P 1.413SL CK /AD C 5/P1.514X TA L2/R x D _3/A DC 6/P1.615X TA L1/Tx D_3/AD C 7/P1.716SS _3/MC LK O/R ST/P5.417V CC 18P5.519G n d 20P3.0/R x D /IN T4/T 2C LK O 21P3.1/T x D /T 222P3.2/IN T023P3.3/IN T124P3.4/T 0/T1C LK O /E CI_225P3.5/T 1/T0C LK O /C C P0_226P3.6/IN T2/R x D _2/C CP 1_227P3.7/IN T3/Tx D_2/CC P2/C C P2_228P4.1/MISO _329P4.2/W R 30P4.4/R D 31P2.0/A 8/R STO U T_L OW 32P2.1/A 9/SC LK _233P2.2/A 10/MISO _234P2.3/A 11/MO SI_235P2.4/A 12/E CI_3/S S_236P2.5/A 13/C C P0_337P2.6/A 14/C C P1_338P2.7/A 15/C C P2_339P4.5/A LE 40PD IP-40J1ST C15F2K60S2Y 112MHzC 230p F+C 647u FS2SW -P BV CCV CC 19V 35G ND 8V D-7V D+6X 19X 010N OS #20Tx D 4R x D 3U 1C H3411234U 2U SBV CCC 3C APC 4C APY 2C RY ST ALC 5C APC 7C APV CCD 31N 5817R 3301RR 13.3k R 23.3kD 1LE DD 2LE DS1SW 17S3SW 18C 1C AP3.4 PCB 图第四章程序设计4.1 串口初始化void UartInit(void) //115200bps@22.1184MHz{SCON = 0x50; //8位数据可变波特率AUXR |= 0x40; //定时器1时钟为Fosc,即1TAUXR &= 0xFE; //串口1选择定时器1为波特率发射生器TMOD &= 0x0F; //设置定时器1为16位自动重装方式TL1 = 0xD0; //设定定时初值TH1 = 0xFF; //设定定时初值ET1 = 0; //禁止定时器1中断TR1 = 1; //启动定时器1}4.2 主程序void main(void){P0M1 = 0; P0M0 = 0; //设置为准双向口P1M1 = 0; P1M0 = 0; //设置为准双向口P2M1 = 0; P2M0 = 0; //设置为准双向口P3M1 = 0; P3M0 = 0; //设置为准双向口P4M1 = 0; P4M0 = 0; //设置为准双向口P5M1 = 0; P5M0 = 0; //设置为准双向口P6M1 = 0; P6M0 = 0; //设置为准双向口P7M1 = 0; P7M0 = 0; //设置为准双向口UartInit() ;//UART1_config(1); // 选择波特率, 2: 使用Timer2做波特率, 其它值: 使用Timer1做波特率.EA = 1; //允许总中断ES=1; //开串口中断PrintString1("STC15F2K60S2 UART1 Test Prgramme!\r\n"); //SUART1发送一个字符串while (1){ if(INT0==0) //如果相应按键(默认为sw18)按下,则允许接收 {REN=0;}if((TX1_Cnt != RX1_Cnt) && (!B_TX1_Busy)) //收到数据, 发送空闲{SBUF = RX1_Buffer[TX1_Cnt]; //把收到的数据远样返回B_TX1_Busy = 1;if(++TX1_Cnt >= UART1_BUF_LENGTH) TX1_Cnt = 0;}else{if(INT1==0) //如果相应按键(默认为sw17)按下,则禁止接收 {REN=1;}}}}4.3 中断服务程序void UART1_int (void) interrupt 4//中断服务子程序{if(RI) //如果产生中断,则把SBUF内容赋值给单片机的数组{RI = 0;RX1_Buffer[RX1_Cnt] = SBUF;if(++RX1_Cnt >= UART1_BUF_LENGTH)RX1_Cnt = 0; //防溢出}if(TI){TI = 0;B_TX1_Busy = 0;}}4.4 总程序/************* 功能说明**************双串口全双工中断方式收发通讯程序。