- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
51系列串口通讯例程
51系列串口通讯例程.rar serial.c,
//?题目:串口初始化C代码? ??
//?要求:? ??
//?1.波特率1200bps,无奇偶校验,停止位1,数据位8? ??
//?2.定时器T1做波特率发生器? ?????
//?软件模拟测试说明:? ??
//?1.这个测试采用查询方式进行串口通讯? ??
//?2.将软件仿真环境的晶震设为11.0592?MHz? ??
//?3.软件模拟全速运行,?观察波特率是1200bps? ??
//?4.在串口1中输入数字或字母,可观察到通讯是否有误。? ??????
//#pragma?src? ?????
#include?REG51.H? ?????
//串口初始化? ??
void?serial_init(void)???
{???
???//ET1??=?0;?????//CLR???0ABH??????;禁止T1中断? ??
???TMOD?=?0x20;??//MOV???89H,#20H??;timer?1?mode?2:?8-Bit?reload(定时器T1?模式2:?8位自动初值重装)? ??
???TH1??=?0xE8;??//MOV???8DH,#0E8H? ??
???TL1??=?0xE8;??//MOV???8BH,#0E8H?;1200bps,?11.059? ??
???TR1??=?1;?????//SETB??8EH???????;启动定时器1? ??
???SCON?=?0x50;??//?mode?1:?10-bit?UART,?enable?receiver(模式1:?10位异步发送/接收,?使能接收允许位)
???//SM1??=?1;?????//?????? ??????;串行口?模式1? ??
???//SM0??=?0;? ??
???//REN??=?1;?????//????????????????;允许串行中断接收? ?
???SM2??=?1;?????//SETB??O9DH??????;收到有效的停止位时才将RI置1?
???ES???=?1;?????//SETB??0ACH??????;允许串行中断?? ??
???EA???=?1;?????//SETB??0AFH??????;总中断开? ??
}???
//中断方式处理串口数据? ??
void?serial(void)?interrupt?4?using?1???
{???
????if(RI)???
????{???
???????//?RI?=?0;? ??
??????//?串口接收,?采用临时缓冲? ??
????}???
#if?0? ??
???if(TI)???
???{???
??????//?TI?=?0;? ??
??????//?串口发送,?没有必要使用中断方式? ??
???}???
#endif? ??
}???
//?查询方式接收串口数据? ??
unsigned?char?getchar(void)???
{???
???while(!RI);//?没有收到串口数据则一直等待? ??
???RI=0;???
???return?SBUF;???
}???
//?查询方式发送串口数据? ??
void?putchar(unsigned?char?ch)???
{???
???SBUF=ch;???
???while(!TI);???
???TI=0;???
}???
code?unsigned?char?HEX_TAB?[]=0123456789ABCDEF;???
void?puthex(unsigned?char?ch)???
{???
???unsigned?char?i,j;???
???i=ch4;???
???j=ch0x0f;???
???putchar(HEX_TAB[i]);???
???putchar(HEX_TAB[j]);???
}???
51系列串口通讯例程.rar test.c
//?采用查询方式进行串口通讯的例子? ??
//?采用这种方式的弊端:?? ??
//?1.如果对方没有发送数据,则本机无限等待,而不能做其它事情? ??
//?2.如果对方发送数据而本机正做其它事情,那么有可能丢失数据。?
//?因此实际上串口接收常采用中断方式,串口发送则不需要。? ??
#include?REG51.H? ??
extern?void?serial_init(void);???
extern?unsigned?char?getchar(void);???
extern?void?putchar(unsigned?char?ch);???
extern?void?puthex(unsign
您可能关注的文档
- 雷甜-----综述.doc
- 英文写作第一反应词替换表【转发分享】.doc
- 四六级考试常用词组.doc
- 英文写作第一反应词替换表 来1.docx
- 计算机辅助教学11.doc
- 计算机辅助教学5.doc
- 英语考研,四六级考试写作替换词.doc
- 考研英语搭配和替换词.doc
- 计算机辅助教育13.doc
- 专业外语-中英对照.doc
- GB/T 32151.38-2024温室气体排放核算与报告要求 第38 部分:水泥制品生产企业.pdf
- 中国国家标准 GB/T 32151.38-2024温室气体排放核算与报告要求 第38 部分:水泥制品生产企业.pdf
- 《GB/T 22069-2024燃气发动机驱动空调(热泵)机组》.pdf
- GB/T 22069-2024燃气发动机驱动空调(热泵)机组.pdf
- 中国国家标准 GB/T 22069-2024燃气发动机驱动空调(热泵)机组.pdf
- 中国国家标准 GB/T 11064.1-2024碳酸锂、单水氢氧化锂、氯化锂化学分析方法 第1部分: 碳酸锂含量的测定 滴定法.pdf
- GB/T 11064.1-2024碳酸锂、单水氢氧化锂、氯化锂化学分析方法 第1部分: 碳酸锂含量的测定 滴定法.pdf
- 《GB/T 11064.1-2024碳酸锂、单水氢氧化锂、氯化锂化学分析方法 第1部分: 碳酸锂含量的测定 滴定法》.pdf
- GB/T 1148-2024内燃机 铝活塞.pdf
- 中国国家标准 GB/T 1148-2024内燃机 铝活塞.pdf
文档评论(0)