- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章AT89S51单片机硬件结构要点
* * * 项目3——用单片机的P1.0控制一个灯LED0闪烁 一、项目要求 掌握单片机端口的应用; 熟悉单片机C51编程方法; 掌握C51工程项目的建立; 掌握建立源程序文件; 了解单片机的工作频率。 拓展实训项目 项目3——用单片机的P1.0控制一个灯LED0闪烁 二、项目描述 单片机控制一个发光二极管点亮500ms,熄灭500ms,再点亮500ms,再熄灭500ms……如此循环,产生一个发光二极管闪烁的效果。 拓展实训项目 项目3——用单片机的P1.0控制一个灯LED0闪烁 三、项目实现 1、利用Proteus画电路原理图。 拓展实训项目 与发光二极管相连的电阻值的选择: 发光二极管是电流点亮,一般发光二极管正常点亮的电流值大小为3mA,3~10mA都是正常的亮度,发光二极管两端的压降值为1.7V。 所以,电阻值大小为: (5-1.7)V/3mA=1KΩ 如果更亮,电阻值大小: (5-1.7)V/10mA=300Ω 程序思路: 2、软件设计 P1.0输出0,点亮 延时0.5秒 P1.0输出1,熄灭 延时0.5秒 开始 #include reg51.h //包含特殊功能寄存器定义的头文件 int a; void main() //任何一个C程序都是从main函数开始执行的 { while(1) { a=20000; //延时时间参数 P1=0xfd; //熄灭 while(a--); //延时 a=20000; P1=0xff ; //点亮 while(a--); //延时 } } 软件设计---总线控制实现 #include reg51.h //包含特殊功能寄存器定义的头文件 sbit LED = P1^0; //位地址声明,注意:sbit必须小写、P大写! int a; void main() //任何一个C程序都是从main函数开始执行的 { while(1) { a=20000; //延时时间参数 LED=0; //点亮 while(a--); //延时 a=20000; LED=1; //熄灭 while(a--); //延时 } } 软件设计---位控制实现 /*位操作方法点亮发光二极管闪烁*/ #include reg51.h sbit led=P1^0; int a; void main() { a=5000; while(1) { led=~led; while(a--); } } 简化的位操作 思考: 上述延时不精确,需要反复调试程序才能达到延时要求。 延时经常用到,该功能能否单独写成一个程序,以后用到该功能时直接调用即可呢,这时就需要子函数的调用了。 延时函数的设计 /*延时函数*/ void delay() { int x,y; for(x=100;x0;x--) for(y=625;y0;y--); } 延时函数的设计 #include reg52.h sbit led=P1^0; /*延时函数*/ void delay() { int x,y; for(x=100;x0;x--) for(y=625;y0;y--); } 采用延时函数控制led灯闪烁 void main() { while(1) { led=0; delay(); led=1; delay(); } } 项目4——将P0.0引脚的状态分别送给P1.0、P2.0和P3.0口。 一、项目描述 设计将单片机P0.0引脚的状态,分别送给P1.0、P2.0、P3.0口来点亮发光二极管LED0、LED1、LED2.P0.0接一个按键开关,当S按下,P0.0引脚为低电平,把这个低电平分别送给P1.0、P2.0、P3.0口,3个灯被点亮。当S断开,P0.0引脚为高电平,把高电平分别送给P1.0、P2.0、P3.0,灯熄灭。 拓展实训项目 1、利用Proteus画电路原理图 2、利用Keil进行程序设计 3、利用Proteus仿真 开关按下 开关断开 Thank you * * * * * * * * * * * * * * * * 4. P3口 由于AT89S51的引脚数目有限,因此在P3口电路中增加了引脚的第二功能。P3口的第二功能定义如表2-7所示,读者应熟记。 P3口的每一位都可定义为第二输入功能或第二输出功能。P3口的字节地址为B0H,位地址为B0H~B7H。 (一)AT89S51单片机的并行I/O端口 4. P3口 P3口的特点如下: (1)P3口内部有上拉电阻,不存在高阻抗输入状态,为准双向口。 (2)P3口作为第二功能的输出/输入,或第一功能通
文档评论(0)