单片机控制LED闪烁

单片机控制LED闪烁

ID:44361003

大小:1.88 MB

页数:58页

时间:2019-10-21

单片机控制LED闪烁_第1页
单片机控制LED闪烁_第2页
单片机控制LED闪烁_第3页
单片机控制LED闪烁_第4页
单片机控制LED闪烁_第5页
资源描述:

《单片机控制LED闪烁》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、任务2:LED闪烁----单片机内部结构如何实现软件设计硬件电路设计功能要求引出问题设计一个彩灯点亮的单片机控制系统,在单片机的P2端口上接8个发光二极管,使不停地一亮一灭,一亮一灭的时间间隔为0.2秒,循环往复。功能要求硬件设计硬件方案确定––系统电路图80C51单片机内部结构和工作原理内部结构(见下图)引脚功能40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。电源1)Vcc:电源(+5V)2)Vss:接地时钟XTAL1、XTAL2:晶体振荡电路反相输入端和输出端。ALE/PROG:地址锁存

2、允许/片内EPROM编程脉冲1)ALE:用来锁存P0口送出的低8位地址(并行扩展)有效:P0口传送低8位地址信号无效:P0口传送8位数据信号2)PROG:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。控制线控制线PSEN:外ROM读选通信号RST/VPD:复位/备用电源1)RST:该引脚上连续保持两个机器周期以上高电平。2)VPD:在Vcc掉电情况下,接备用电源。EA/VPP:内外ROM选择/片内EPROM编程电源1)EA:EA=“1”,先访问内ROM,当超过4KB时,自动转向外

3、ROM。EA=“0”,只访问外ROM。8031片内无ROM,EA必须接地。2)VPP:片内有EPROM的芯片,在EPROM编程期间,施加编程电源。I/O引脚(4个8位并行口,共32个引脚)P0口:8位双向I/O口并行扩展时,分时传送低8位地址和8位数据信号。P1口:8位准双向I/O口准双向:内部有固定的上拉电阻。P2口:8位准双向I/O口传送高8位地址P3口:8位准双向I/O口P0口用作通用I/O口作为输出口当P0口用作输出口时,因输出级处于开漏状态,必须外接上拉电阻作为输入口当P0口用作输入口时,

4、必须先向该端口锁存器写入“1”,地址/数据总线输出P0口用于低8位地址总线和数据总线(分时传送);P1口:用作通用I/O口,用作输入时,均须先写入“1”;P2口:用作通用I/O口,用作输入时,均须先写入“1”;P2口用于高8位地址总线;P3口用作通用I/O口,用作输入时,均须先写入“1”;P3口用于第二功能;P3.0(RXD):串行口输入端P3.1(TXD):串行口输出端P3.2(INT0):外部中断0请求输入端P3.3(INT1):外部中断1请求输入端P3.4(T0):定时/计数器0外部信号输入端

5、P3.5(T1):定时/计数器1外部信号输入端P3.6(WR):外RAM写选通信号输出端P3.7(RD):外RAM读选通信号输出端总结:P0~P3口都能用作I/O口,用作输入时,均须先写入“1”;用作输出时,P0口应外接上拉电阻。在并行扩展外存储器或I/O口情况下,P0口用于低8位地址总线和数据总线(分时传送);P2口用于高8位地址总线;P3口常用于第二功能,用户能使用的I/O口只有P1口和未用作第二功能的部分P3口端线。第一个程序/*ex101.c-点亮LED.*///注释#include

6、51.h>//预处理命令voidmain()//程序入口(主函数){//函数体开始P2=0x00;//功能语句}//函数体结束软件设计单色灯闪烁:8只单色灯亮,然后8只单色灯灭#include"reg51.h"voidmain(){P1=0x00;(1)P1=0xff;(2)}P1=0xff;是什么呢?0xff对应二进制的数值是11111111,到这里大家明白了吧。对前面说到了送1到对应的引脚是熄灭单色灯,所有这里送8个1,代表的就是熄灭8个单色灯。录入程序后我们通过单步运行程序,就可以看到当程序走

7、过第(1)条语句后单色灯全亮,走过第二条语句后单色灯全灭了。但是到现在为止,我们为什么只是让程序单步的走呢?为什么不能让他自己走呢?可能有很多同学有这样那样的疑问,对的,我们现在就解决大家的这些疑问,如果按照我们上面的这段程序全速执行的话,只能看到灯灭了。因为单片机执行的速度实在是太快了,我们跟本分辨不出单色灯点亮呢。单色灯就已经被熄灭了,如何能让我们分辨出单色灯的亮和灭呢,解决的办法就是“延时”,如何做延时呢?常用延时办法非精确延时1、for(i=0;i<100;i++);2、i=100;whil

8、e(i--);精确延时办法1、利用库函数_nop_();(需要include)2、利用定时器进行定时(后边的课程进行介绍)程序修改:#include"reg51.h“voidmain(){unsignedinti;//定义变量P1=0x00;(1)for(i=0;i<100;i++);//循环语句P1=0xff;(2)}几个基本概念标识符标识符是用来标识源程序中某个对象的名字。这些对象可以是语句、数据类型、常量、变量、数组等。标识符的命名规则:1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。