[]单片机c51参考资料.doc

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[]单片机c51参考资料

第4章 学习C51例题,入门C简单程序设计 本章的例题都是简单C语言例题,例题中没有复杂的C语言语法与难以理解的数据结构,因此特别适合入门学习C语言。 本章所有例题都在实验板上实验过,实验用51单片机电路板的接线图如图4-1所示。 图4-1 实验电路接线图 图中单片机为AT89S51或是STC89C51RC,其P0、P1口连接共阳极数码管,P2口连接8个低电平有效的LED灯(发光二极管),P3口连接8个低电平有效的按钮。若是采用STC89C51RC单片机,由于ISP需要占用串行口,若是不切换引脚,则与P3.0和P3.1相连的按钮不能使用。若是采用AT89S51,由于SPI编程需要P1.5、P1.6和P1.7引脚通信,所以编程后,需要切换引脚,才能使P1口连接的数码管正常显示。 4.1 第一部分 [例题4-1] 控制P2_0引脚相连的LED灯闪烁。 该程序只能用软件单步仿真,因为在实际的单片机上运行,使P2_0引脚变为低电平后,立刻又将其变为高电平,眼睛不能看到LED灯闪烁,但是使用软件单步仿真,可以看到P2_0引脚的电平变化。 #include AT89X51.H //包含头文件 void main(void) // 主程序 { while(1) //无限循环 { P2_0=0; //亮灯 P2_0=1; //灭灯 }} 软件单步仿真的窗口如图4-2所示。 图4-2 软件单步仿真的窗口 [例题4-2] 使P2_0引脚相连的LED灯闪烁。C源程序如下: #include AT89X51.H //头文件 void main(void) // 主程序 { unsigned int n; //声明变量 while(1) //无限循环 { P2_0=~p2_0; //引脚取反,与引脚相连的LED灯闪烁 for (n=0;n2000;n++); //循环语句延时 }} 编译并链接后,在图4-3所示的仿真窗口仿真。 图4-3例题1-2所示的仿真窗口 可以在图4-4所示屏幕左下角的命令窗口输入变量名后回车的方法查看变量;也可以屏幕右下角的Local窗口或是Watch窗口观察变量。 图4-4 查看变量 选择View/Momory Window菜单,屏幕弹出图4-5所示的存储器窗口。 图4-5 存储器窗口 在Address对话框输入:“d:0x00”就可以看到data 空间的从0x00 开始的所有内存。如图4-5。 输入“i:0x00”,就可以看到idata 空间的所有内存的值。 输入“x:0x00”,就可以看到xdata 空间的所有内存的值。 输入“c:0x00”,就可以看到code 空间的所有程序。 [例题4-3] 如下程序实现流水灯的方法是,依次灭掉前一个灯,然后点亮后一个灯,再延时一会,不断循环,就可以看到流水灯的效果了。源程序如下: #include AT89X51.H //头文件 void main(void) // 主程序 { unsigned int n; while(1) { P2_3=1;P2_0=0; //灭掉P2_3,点亮P2_0=0 for(n=0;n20000;n++); //循环延时 P2_0=1;P2_1=0; //灭掉P2_0,点亮P2_1=0 for(n=0;n20000;n++); //循环延时 P2_1=1;P2_2=0; //灭掉P2_1,点亮P2_2=0 for(n=0;n20000;n++); //循环延时 P2_2=1;P2_3=0; //灭掉P2_2,点亮P2_3=0 for(n=0;n20000;n++); //循环延时 }} [例题4-4] 双按键控制的LED灯。用单片机读取按键的值,并使用一个与P3-1引脚相连的按键点亮与P2_0引脚连接的LED,用另一个与P3_2引脚相连的按键关闭与P2_0引脚连接的LED。 用单片机可以读取某个IO的值,因为51单片机的I/O口,如果处于输出1的状态(51上电后I/O就默认为1),这时的I/O口内部简化成为一个几十K的电阻上拉到电源VCC(P0口除外),因此可以作为输入引脚。P0口没有上拉电阻,相当于一个悬空的引脚,就是高阻状态,如果用P0口,必须在外部接上拉电阻。这里用的是内部有上拉电阻的P3口连接按键。 如果直接读一个没有与地短路按键的I/O引脚,就会读到高电平,就是逻辑1。如果这个I/O引脚通过按

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档