- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机串口编程
实验三 单片机串行口编程
一、实验目的
1、掌握单片机串行口的工作方式;
2、掌握单片机串行口的编程方法。
二、实验内容
1、学习单片机串行口的工作方式、初始化以及应用等;
2、利用单片机串行口编写程序,利用串口助手工具通过PC机发送相应信息,单片机串行口根据接收到的信息控制开发板上的LED灯按一定规律工作。
要求:
“#”指令开始标志,“*”指令结束标志。
根据接收到的指令start—控制LED灯闪烁,闪烁频率1Hz;pause—控制LED点亮;stop—控制LED熄灭。
测试串口正常工作的代码(通过串口接收一个字符,再发送回串口)
#include reg51.h
main()
{
unsigned char a;
/*在12MHz下,设置4800波特率,方式1*/
TMOD=0x20; //设置定时器1的方式
TH1=0xf3; //设置定时器1的初值
TL1=0xf3;
SCON=0x50; //设置串行口方式1,并允许接收
PCON=0x80; //SMOD=1
TR1=1; //启动定时器1
while(1)
{
while(RI==0);
a=SBUF;
RI=0;
SBUF=a;
while(TI==0);
TI=0;
}
}
三、实验设备
1、STC单片机开发板;
2、PC机以及串口线。
四、实验分析及关键代码
#include reg52.h
sbit led=P2^5;
unsigned char a; //串行
unsigned char num; //定时
unsigned char start[]=#start*;
unsigned char stop[]=#stop*;
unsigned char pause[]=#pause*;
unsigned char startNum,stopNum,pauseNum;
//初始化
void init()
{
TMOD=0x21; //设置定时器方式
//定时器
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
//串口
TH1=0xf3;
TL1=0xf3;
SCON=0x50; //设置串行口方式1 PCON=0x80; //
TR1=1;
ES = 1; //允许串行中断
}
//定时器中断
void Timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num ++;
if(num==20)
{
num=0;
led=!led;
}
}
//串行中断
void seri() interrupt 4
{
//RI接受中断标志 TI发送中断标志
if(RI)
{
a=SBUF;
RI=0;
SBUF=a;
while(TI==0);
TI=0;
//
if(start[startNum]==a a!=\0)
startNum++;
else startNum=0;
if(pause[pauseNum]==a a!=\0)
pauseNum++;
else pauseNum=0;
if(stop[stopNum]==a a!=\0)
stopNum++;
else stopNum=0;
if(startNum==7)
{
TR0=1;//启动定时器
}
if(pauseNum==7)
{
TR0=0;
led=0;
}
if(stopNum==6)
{
TR0=0;
led=1;
}
}
}
void main()
{
init();
while(1);
}
您可能关注的文档
最近下载
- 哈尔滨市轨道交通3号线二期工程项目实施方案策划书.doc VIP
- 建筑垃圾处理方案.docx VIP
- 《建筑工程消防施工质量验收规范》.docx VIP
- 2024建筑工程消防施工质量验收规范.docx VIP
- 2024第48届世界技能大赛江苏省选拔赛-抹灰与隔墙系统项目技术文件及图纸样题.pdf VIP
- 2023年人教版数学八年级上册《11.2 与三角形有关的角》分层练习(含答案) .doc VIP
- 氦氮氧混合气高气压作业减压表.pdf VIP
- 中建五局《施工方案编制指南(2023版)》1042页.pdf VIP
- T_FSI 084-2022_双酚AF_团体标准.pdf VIP
- 《GB/T 43947-2024低速线控底盘通用技术要求》.pdf
文档评论(0)