- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机入门之串口通讯
AT89C51串口编程
前言
本文档是为单片机初学者写的有关串口通讯编程的说明文档。使用的单片机硬件是最通用的AT89C51单片机,编程语言为c语言。本文档不是系统的介绍单片机知识的教程,而是为了使您尽快掌握串口编程方法的技术说明。
本文档前几部分大量内容摘自平凡老师的单片机教程,此教程是单片机入门的良好教材,但由于那本教程是由汇编语言描述的,对于时间不充足的同学来说,学习汇编会浪费一些时间,所以我还是整理了我们要了解的内容写到了本文档中。对于时间比较充分,也有兴趣学习汇编语言的同学可以先阅读平凡老师的“单片机教程”,然后从本文档第六部分看起。该教程网址:/pmcu/dpjjx/ndpjjx2.htm
我也已经下载了此教程,存在本实验室电脑中。
单片机的基本认识
一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控制)、RAM(数据存储)、ROM(程序存储)、输入/输出设备(例如:串行口、并行输出口等)。在个人计算机上这些部份被分成若干块芯片,安装一个称之为主板的印刷线路板上。而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如A/D,D/A等。
天!电脑中的CPU一块就要卖上千块钱,这么多东西做在一起,还不得买个天价!再说这块芯片也得非常大了。
不,价格并不高,从几元人民币到几十元人民币,体积也不大,一般用40脚封装,当然功能多一些单片机也有引脚比较多的,如68引脚,功能少的只有10多个或20多个引脚,有的甚至只8只引脚。
为什么会这样呢?
功能有强弱,另外这种芯片的生产量很大,技术也很成熟,51系列的单片机已经做了十几年,所以价格就低了。
既然如此,单片机的功能肯定不强,干吗要学它呢?
话不能这样说,实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用P4?应用的关键是看是否够用,是否有很好的性能价格比。
实现一个发光二极管的闪烁体会对单片机的c语言编程
买回来一块c51单片机,要想使用它 首先要做必要的连线。我们实验室通常会给我们提供已经接好线的板子,所以我们不必自己去连线,这里需要说明的一点是,一块单片机要工作起来首先需要复位,所谓复位就是在单片机的RST引脚持续的加上两个机器周期的高电平,使单片机回到工作的状态。(机器周期在串口波特率的计算中介绍)我做实验时使用的板子是一块较复杂的板子的一部分,那块板子的复位方式是其他器件的程序给单片机复位,可是我做实验时那个器件不需要工作,所以,单片机一直不能复位。如果你遇到这种情况,请按任何一本书上介绍的加电复位选择合适的电容和电阻,按书上的连线图焊接好,如果你用的是我以前用过的板子,这块板子已经接好了复位电路,无须多考虑。请打开一本单片机的书,找到单片机的引脚图。我们用的板子在p1.0脚接有一个发光二极管,当p1.0为高电压时,二极管点亮,为低电压时,二极管熄灭。我们现在想让小灯每隔0.5s闪烁一次,实际上就是要灯亮0.5s,再灭0.5s,也就是说要P10不断地输出高和低电平。怎样实现这个要求呢?我们首先给出程序,然后对照程序分析。
实验1//程序开始
#includereg51.h#define uint unsigned int
#define uchar unsigned char
sbit P10=P1^0; //sbit是单片机c程序新的关键字,用于定义位变量
void Delay(uint i)//延时程序,i是参数
{ uint j;
for(;i0;i--)
for(j=0;j125;j++)
{;}
}
void main()
{
for(;;)
{
P10=0; //单片机内部给p10脚加低电平,关闭小灯
Delay(500);//延时0.5s
P10=1; //单片机内部给p10脚加高电平,点亮小灯
Delay(500); //延时 0.5S
}
}
在以上程序中,我们可以看出,p10=1这条语句的含义就是p10加高电压,这个高电压不是1v,而是5v。p10=0则是p10加低电压。为什么是p10=1是给p10加5v电压而不是1v,我们不用管。现在从主函数看起,主函数内部是个for循环,此循环是让程序不停的在循环体内部转圈。循环体中,首先让灯暗,然后调用延时函数delay,此函数的作用是延时0.5s,然后点亮小灯,然后又是延时,延时完了进入下一次的循环……这样,程序就每隔0.5s就给p10加一次电压,加的电压高低更替,并且永远循环下去。其结果是让小灯不停的闪烁。Delay函数纯粹是用软件的运行来消耗时间以达到延时的目的,至于为什么参数是500时,延时为0.5s,以后再谈。
写好了程序
文档评论(0)