片机项目实践教程刘燎原项目二流水.ppt_第1页
片机项目实践教程刘燎原项目二流水.ppt_第2页
片机项目实践教程刘燎原项目二流水.ppt_第3页
片机项目实践教程刘燎原项目二流水.ppt_第4页
片机项目实践教程刘燎原项目二流水.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微控制器系统设计与应用,刘燎原,徐州建筑职业技术学院,徐州建筑职业技术学院,实验1.Keil步骤-编程,产生.hex文件2.Proteus步骤 -画图,加载.hex文件,仿真3.思考题:通过按键控制灯闪烁快慢 带形参的延时程序,徐州建筑职业技术学院,#include /包含AT89X52.H头文件 sbit LED=P10; /定义LED是P1.0引脚对应的变量名 sbit sw=P30; void Delay(unsigned int t) unsigned int i, j; for(i=0;it;i+) for(j=0;j255;j+); void main (void) while(1

2、) LED=LED; if(sw=0) Delay(100); else Delay(500); ,徐州建筑职业技术学院,项目二 流水灯,徐州建筑职业技术学院,知识目标: 1.掌握单片机的内部硬件资源 2.理解并运用相关指令 3.掌握微控制器的输出接口的电路形式与作用 技能目标: 1.掌握流水灯电路的制作 2.掌握延时程序的计算和编写 3.掌握LED与单片机之间的连接,徐州建筑职业技术学院,任务4:控制八只发光二极管按一定的规律循环点亮 八个LED如何和单片机连接?,徐州建筑职业技术学院,P1口接发光二极管(LED)的阴极,P1口的管脚输出低电平时对应的发光二极管点亮。 问题: 如何控制灯按顺

3、序一个一个点亮? 通过程序按一定的规律向P1口的管脚输出低电平和高电平,控制八只发光二极管循环点亮。 问题: 程序怎么使P1口的管脚循环输出低电平和高电平? 首先要了解单片机的并行I/O口。,徐州建筑职业技术学院,单片机经常要和外设之间传输数据(输入,输出),P0,P1,P2,P3就是可以和外设完成并行数据传输的接口。 一、P1口 1.结构 其1位的结构原理如图所示。 P1由8个这样的电路组成 锁存器起输出锁存作用, 场效应管(FET)V组成输出驱动器, 以增大带负载能力; 三态门1是用于读锁存器端口; 三态门2是引脚输入缓冲器;,徐州建筑职业技术学院,2.功能 (1)输出(外接发光二极管)

4、P1=0Xdata 内部总线输出“0”,则D=0, Q=1,V导通,则输出点=0 (2)输入(外接开关) a.读引脚 A=P1 读引脚脉冲有效,为高电平,把该三态缓冲器打开,这样端口引脚上的数据经过三态门缓冲器读入到内部总线。 如果输入数据走该通道,那么V是否对引脚有影响?有的。 如果锁存器原来寄存的数据Q=0,那么则V导通,引脚始终被嵌位在低电平,不可能输入外接电路的高电平。所以在输入前,必须用输出指令向锁存器写入“1”,使V截止(断开),保证单片机输入的电平与外接电路电平相同。所以P0口被称为一个准双向口。 P1=0XFFH ACC=P1 复位时? b.读锁存器 如:ANL P0,A 称为

5、“读-改-写”,徐州建筑职业技术学院,二、P0口 1.结构 与P1不同: 多路选择开关 (选择它的两种功能) V1:输出驱动器 2功能 (1)输出 开关连接B点,V1截止(其它同P1口) 因为输出驱动器漏极开路,所以外接上拉电阻 (2)输入(准双向口,先写入“1”) 外接上拉电阻(其它同P1口) (3)地址/数据线 开关接在A点,输出地址信号(低8位)或输出/输入数据信号 不需接上拉电阻,徐州建筑职业技术学院,三、P2口 1.结构 多路选择开关(接在Q上) 反相器、Q0输出驱动 2.功能 (1)输出(同P1口) (2)输入(同P1口) (3)地址总线(高8位) 与P0口构成16位地址,徐州建筑

6、职业技术学院,四、P3口 1.结构 2.功能 (1)输出(同P1口) (2)输入(同P1口) (3)第二功能 第二功能输入: 缓冲器2关闭, P3口的口线状态通过缓冲器0送入“第二功能输入端” 第二功能输出: Q端为高电平时, P3口的口线状态就取决于第2功能输出线的状态。 P3第二功能各引脚功能定义: P3.0:RXD串行口输入 P3.1:TXD串行口输出 P3.2:INT0外部中断0输入 P3.3:INT1外部中断1输入 P3.4:T0定时器0外部输入 P3.5:T1定时器1外部输入 P3.6:WR外部写控制 P3.7:RD外部读控制,徐州建筑职业技术学院,总结:,徐州建筑职业技术学院,五

7、、带负载能力(驱动能力) 负载能力就是说能够在一定的电压(0-5V)下面能够灌入或拉出的最大电流。 拉电流和灌电流是衡量电路输出驱动能力的参数,这种说法一般用在数字电路中。 1.灌电流(输出低电平) 当负载的另一端接VCC/VDD,输出端口输出低电平时,就会产生灌电流。 就是从负载流向输出端口,“灌进去”的电流,一般是要吸收负载的电流,其吸收电流的数值叫“灌电流”。 2.拉电流(输出高电平) 当负载的另一端接地,输出端口输出高电平时,就会产生拉电流; 就是从输出端口流向负载,“拉出来”的电流,一般是对负载提供电流,其提供电流的数值叫“拉电流”. 一般地, LSTTL即低功耗肖特基晶体管。1个L

8、STTL:拉电流(高电平)0.20uA,灌电流(低电平)0.35mA。 所以灌电流一般它比拉电流要大得多。 3.I/O口驱动能力 P0:灌入,驱动8个(没有高电平能力,必须上拉电阻),2.88mA P1-3:灌入、拉,驱动4个,1.44mA 51系列的芯片低电平的驱动能力比较大一点 。举例说明流水灯 4个引脚,每个引脚灌电流10mA 每个端口8个引脚灌电流之和:P0 26mA P1、P2、P3 15mA,徐州建筑职业技术学院,任务4:控制八只发光二极管按一定的规律循环点亮,向右循环点亮: 第一次:D1亮,P1.7输出低电平,其他都输出高电平 P1=FEH 第二次:D2亮,P1.6输出低电平,其

9、他都输出高电平 P1=FDH 第八次:D8亮,P1.0输出低电平,其他都输出高电平 P1=7FH,徐州建筑职业技术学院,如何编程?,方法一: #include /包含AT89X52.H头文件 sbit LED=P10; /定义LED是P1.0引脚对应的变量名 void Delay(unsigned int t) unsigned int i, j; for(i=0;it;i+) for(j=0;j255;j+); void main (void) P1=0XFF; while(1) P1=0XFE; Delay(200); P1=0XFD; Delay(200); P1=0XFB; Delay

10、(200); P1=0XF7; Delay(200); P1=0XEF; Delay(200); P1=0XDF; Delay(200); P1=0XBF; Delay(200); P1=0X7F; Delay(200); ,徐州建筑职业技术学院,方法二:(看数是否有规律?) #include /包含AT89X52.H头文件 #include / intrins.H中有循环左移函数 void Delay(unsigned int t) unsigned int i, j; for(i=0;it;i+) for(j=0;j255;j+); void main (void) unsigned ch

11、ar m; P1=0XFF; while(1) P1=0 xfe; Delay(200); for(m=0;m8;m+) P1=_crol_(P1,1); Delay(200); ,徐州建筑职业技术学院,方法三:(数没有任何规律) #include /包含AT89X52.H头文件 sbit LED=P10; /定义LED是P1.0引脚对应的变量名 unsigned char code sz1=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f; void Delay(unsigned int t) unsigned int i, j; for(i=0

12、;it;i+) for(j=0;j255;j+); void main (void) unsigned char m; while(1) for(m=0;m8;m+) P1=sz1m; Delay(200); Code:表示数组的存储类型,存储在程序存储器,徐州建筑职业技术学院,任务5:8个流水灯从先从上到下逐个点亮,然后再从下到上逐个点亮,然后依次循环,徐州建筑职业技术学院,实验3:,K1按下, 8个流水灯从上到下逐个点亮,若K1断开, 8个流水灯从下到上逐个点亮,然后依次循环,徐州建筑职业技术学院,#include /包含AT89X52.H头文件 sbit k1=p30; unsigned

13、 char code sz1=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f; void Delay(unsigned int t) unsigned int i, j; for(i=0;i0;m-) P1=sz1m-1; Delay(200); ,徐州建筑职业技术学院,关于LED的例子 1.要求P1.0所接的灯闪烁 #include sbit LED=P10; void Delay(unsigned int a) unsigned char i; while(-a!= 0) for(i=0;i125;i+); void main() while

14、 (1) LED=0; Delay(1000); LED=1; Delay(1000); 红色段可改写为: LED=LED;DELAY(1000);,徐州建筑职业技术学院,2、八个灯循环点亮 #include void delay(unsigned int a) unsigned char i; while(-a!= 0) for(i=0;i125;i+); void main() unsigned char k,i; while (1) k=0 xfe; for(i=0;i8;i+) P1=k; delay(1000); k=k1; k=k|0 x01; ,徐州建筑职业技术学院,3、左右来回

15、循环流水 #include #include void delay(unsigned int a) unsigned char i; while(-a!= 0) for(i=0;i125;i+); void main() unsigned char i,j; P1=0 x7f; while (1) for(i=0;i8;i+) P1=_crol_(P1,1); delay(1000); for(j=0;j7;j+) P1=_cror_(P1,1); delay(1000); ,徐州建筑职业技术学院,4、花样流水灯(无规律) #include unsigned char code sz1=0 x7e,0 xbd,0 xdb,0 xe7,0 xdb,0 xbd,0 x7e,0 x00,0 xff; void delay(unsigned int a) unsigned char i; while(-a!= 0) for(i=0;i125;i+); void main() unsigned char i; while (1) for(i=0;i9;i+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论