《 单片机应用技术》课件-项目一 流水灯的制作_第1页
《 单片机应用技术》课件-项目一 流水灯的制作_第2页
《 单片机应用技术》课件-项目一 流水灯的制作_第3页
《 单片机应用技术》课件-项目一 流水灯的制作_第4页
《 单片机应用技术》课件-项目一 流水灯的制作_第5页
已阅读5页,还剩108页未读 继续免费阅读

下载本文档

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

文档简介

单片机的内部结构任务小结任务导读什么是微控制器?单片机引脚介绍任务一、认识微控制器项目一流水灯的制作任务目标导读学习目标技能目标掌握51系列单片机常用引脚及功能。了解常用型号单片机的特点。掌握单片机的内部结构。能识别不同类型的单片机芯片。熟悉单片机的外部特征及引脚功能。1.了解什么是单片机及其应用领域。2.熟悉单片机的外部特征及引脚功能。3.掌握51单片机的内部结构。4.理解CPU、振荡器、程序存贮器、数据存贮器的作用。知识教学点

项目目标导读教学重点、难点

教学重点:1.单片机的引脚功能。2.理解CPU、振荡器、程序存贮器、数据存贮器的作用。教学难点:1.控制信号引脚功能的理解。2.理解CPU、晶振电路、程序存贮器、数据存贮器的作用。

参考学时:1学时~2学时

单片机在哪里?4任务导入任务一认识单片机电磁炉与单片机5输入设备(箭头指向单片机):加、减按钮输出设备(箭头指向设备):4个指示灯、电磁线圈的驱动电路任务导入任务一认识单片机

更多单片机6单片机还隐藏在我们日常生活的许多电子产品中,如鼠标、遥控器、洗衣机、机器人等。任务一认识单片机单片机应用领域:测控系统、智能仪表、智能接口、办公自动化、光机电一体化设备、通讯设备、网络设备、汽车电子、消费类电子产品、智能楼宇设备…任务一认识单片机单片机技术的应用遍布国民经济与人民生活的各个领域任务一认识单片机任务导入在日常生活中,像手机、电话机、洗衣机、电冰箱、空调机、彩电、玩具、电子表、电子秤、MP3、MP4、数码相机、录音笔、汽车防盗器等常用设备,给我们带来了许多方便和生活情趣,可你了解在这些设备中发挥主要作用的单片机吗?图1-3单片机芯片外型图

计算机系统通常由多块印刷电路板制成

主板显卡声卡存储器接口网卡输入输出接口内存条CPU任务一认识单片机1、什么是单片机CPU输入设备输出设备软件系统+微型计算机系统硬件系统输入接口设备输出接口设备运算器控制器存储器单片微型计算机是指集成在一个芯片上的微型计算机,简称单片机——单片机实质上就是一个芯片相关知识:单片机基本知识

单硅晶片CPU存储器控制电路定时器时钟电路I/O口单片机任务一认识单片机1.什么是单片机(展示)任务一认识单片机通俗:单片机是一块集成芯片,但这块集成芯片具有一些特殊功能,而它的功能的实现要靠我们使用者自己来编程完成(指挥、发出指令)。我们编程的目的就是控制这块芯片的各个引脚在不同的时间输出不同的电平,进而控制与单片机各个引脚相连接的外围电路的电气状态。实现我们需要的控制效果(功能)。书面:就是将中央处理器(CPU)、存储器(包括随机存储器RAM和只读存储器ROM)及各种输入/输出接口集成在一块芯片上的微控制器(MCU)。目前国外已普遍称之为微控制器MCU。什么是单片机任务一认识单片机任务一认识单片机2、51系列单片机及其内部结构串行通信接口全双工1个ROMTXDRXD中断系统并行通信接口4×8bit定时/计数器RAM时钟电路CPU总线控制图1-2MCS-51单片机结构框图

任务一认识单片机(1)中央处理器CPU:8位,运算和控制功能(2)内部RAM:共256个RAM单元,用户使用前128个单元,用于存放可读写数据,后128个单元被专用寄存器占用。(3)内部ROM:4KB掩膜ROM,用于存放程序、原始数据和表格。(4)定时/计数器:两个16位的定时/计数器,实现定时或计数功能。(5)并行I/O口:4个8位的I/O口P0、P1、P2、P3。(6)串行口:一个全双工串行口。(7)中断控制系统:5个中断源(外中断2个,定时/计数中断2个,串行中断1个)(8)时钟电路:可产生时钟脉冲序列,允许晶振频率6MHZ和12MHZ程序下载到哪里?16以.HEX为后缀的执行代码文件可通过下载线下载到单片机中。如果用记事本打开执行代码文件会得到一串十六进制数,其中包含了每条指令的执行代码。执行代码通过下载线下载到了单片机的片内ROM中。因为片内ROM中下载的是程序,所以也称这个片内ROM为片内程序存储器。任务一认识单片机3.51系列单片机信号引脚简介

VCCGNDXTAL2

XTAL1RSTP0.0

P0.1

P0.2P0.3P0.4P0.5P0.6P0.7P1.0

P1.1

P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0ALEP3.0

P3.1

P3.2P3.3P3.4P3.5P3.6P3.72、振荡电路:XTAL1、XTAL23、复位引脚:RST4、并行口:P0、P1、P2、P37、ALE:地址锁存控制信号1、电源线:VCC(+5V)、GND(地)EAPSEN5、EA:访问程序存储控制信号6、PSEN:外部ROM读选通信号RXD/

TXD/

INT0/INT1/

T0/

T1/

WR/

RD/1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

313029282726252424222180318051875189C51任务一认识单片机40个引脚双排直插DIP封装,大致可分为3类:电源及时钟、控制和I/O引脚。40只引脚按功能分为3类:(1)电源及时钟引脚:Vcc、GND;XTAL1、XTAL2。(2)控制引脚:

PSEN*、EA*、ALE、RESET(即RST)。(3)I/O口引脚:P0、P1、P2、P3,为4个8位I/O口的外部引脚任务一认识单片机1951系列单片机芯片引脚及其功能89C51是标准的40引脚双列直插封装(DIP)集成电路芯片1.主电源和时钟振荡电路引脚VCC(40脚) 运行和程序校验时接+5V电源GND(20脚) 地线XTAL1(19脚)用作晶体振荡电路的反相器输入端,内部接至振荡器的反相放大器。当采用外部时钟时,该引脚接地;XTAL2(18脚) 用作晶体振荡电路的反相器输出端,内部接至时钟发生器。当采用外部时钟时,该引脚接收振荡器信号;任务一认识单片机202.输入/输出(I/O)引脚P0.0~P0.7(39脚~32脚):8位漏极开路的双向I/O口

当使用片外ROM和RAM时,用作低8位地址和数据分时复用。P1.0~P1.7(1脚~8脚):8位带上拉电阻的准双向I/O口

在编程/校验期间,用作输入低8位地址。对于8052,P1.0是定时器T2的计数输入端;P1.1是定时器T2的外部输入端。

P2.0~P2.7(21脚~28脚):8位带上拉电阻的准双向I/O口

当使用片外ROM和RAM时,输出高8位地址。

P3.0~P3.7(10脚~17脚):8位带上拉电阻的准双向I/O口 P3口具有第二功能在单片机中,“口”是一个集数据输入缓冲、输出驱动及锁存等多项功能于一体的I/O电路。任务一认识单片机213.控制信号引脚RST/VPD(9引脚):RST为复位信号输入端。当RST端保持2个机器周期以上高电平时,单片机完成复位操作。ALE /PROG(30引脚):ALE为地址锁存允许信号在系统扩展时,ALE用于控制把P0口输出的低8位地址送入锁存器锁存起来,以实现低8位地址和数据的分时传送。任务一认识单片机22PSEN(29引脚):外部程序存储器(ROM)读选通信号访问外部ROM时,PSEN产生负脉冲作为外部ROM选通信号。访问外部RAM或内部ROM时,不会产生有效的PSEN信号。EA/VPP(31引脚):EA为访问程序存储器(ROM)控制信号对8051和8751,它们的片内有4KB的ROM,当EA为高电平时,若访问的地址空间在0~4KB范围内,CPU访问片内ROM;若访问的地址范围超过4KB时,CPU将自动访问外部ROM。EA保持低电平,则访问外部ROM。对于8031,EA必须接地,只能访问外部ROM。任务一认识单片机任务小结:1.单片机

40个引脚双排直插DIP封装,大致可分为3类:电源及时钟、控制和I/O引脚。40只引脚按功能分为3类:(1)电源及时钟引脚:Vcc、GND;XTAL1、XTAL2。(2)控制引脚:

PSEN*、EA*、ALE、RESET(即RST)。(3)I/O口引脚:P0、P1、P2、P3,为4个8位I/O口的外部引脚任务一认识单片机2.89C51单片机的片内结构片内结构如图所示:单片机的片内结构任务一认识单片机点亮1个LED灯任务小结任务导读单片机最小系统任务二、点亮1个LED灯项目一流水灯的制作任务目标导读学习目标技能目标理解单片机的最小系统。掌握单片机4个I/O端口的功能和使用方法。掌握C语言程序设计的基本方法。根据任务要求能构建单片机最小应用系统。会使用单片机4个I/O端口连接外部设备。能够编写常见的顺序程序。熟悉KeiluVision4软件的使用1.理解单片机的最小系统。2.掌握单片机4个I/O端口的功能和使用方法。3.理解LED发光二极管原理及点亮led灯的编程方法。4.掌握keil软件及ISP下载软件的使用。知识教学点

任务目标导读教学重点、难点

教学重点:1.单片机的最小系统。2.单片机4个I/O端口的功能和使用。教学难点:1.单片机4个I/O端口的功能和使用。2.理解LED发光二极管原理及点亮led灯的编程方法。参考学时:1学时~2学时

28任务导入任务二点亮1个led灯五颜六色的LED灯是怎么亮起来的?什么是LED灯?半导体二极管的一种,可以把电能转化成光能;常简写为LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。由镓(Ga)与砷(AS)、磷(P)的化合物制成的二极管能发出不同的光。任务二点亮1个led灯提出任务:单片机的最小系统单片机是如何控制LED灯的?如何实现单片机与LED灯的连接与控制?具体任务:1.如何点亮一个LED灯?2.如何点亮8个LED灯?3.如何让LED灯闪烁?任务二点亮1个led灯用最少的元件组成以单片机为核心元件的可以正常工作的系统。能够正常运行的单片机最小组成。

要让单片机里面的程序运行,需要的最低硬件配置。什么是单片机最小系统?任务二点亮1个led灯(1)时钟电路

表1-3AT89S51单片机主要特性参数

单片机的连接引脚XTAL1、XTAL2;连接方法内部时钟方式

外部时钟方式

内部机器频率F=fosc/12C1和C2的一般取值

20~30pF陶瓷电容任务二点亮1个led灯(2)复位电路

单片机复位的条件是:必须使RST引脚(第9引脚)加上持续两个机器周期(即24个振荡周期)的高电平。若时钟频率为12MHz,每机器周期为1us,则只需2us以上时间的高电平。

(a)上电复位电路(b)按键复位电路

图1单片机常见的复位电路任务二点亮1个led灯复位后,内部各专用寄存器状态如表1-1,其中*表示无关位。表1-1

单片机复位状态

专用寄存器复位状态专用寄存器复位状态PC0000HTMOD00HACC00HTCON00HB00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP0~P3FFHSCON00HIP***00000BSBUF不定IE0**00000BPCON0***0000B任务二点亮1个led灯单片机的最小系统任务二点亮1个led灯点亮LED灯硬件设计方案选用STC89C52单片机芯片、时钟电路、复位电路、电源和一个发光二极管构成最小系统,完成对单个信号灯的控制。并行接口STC89C52单片机电源时钟电路复位电路发光二极管LED显示点亮LED灯硬件设计方案

任务二点亮1个led灯

点亮LED灯采用STC89C52单片机,通过74HC573锁存器与单片机P0相连。硬件电路如图所示:任务二点亮1个led灯STC89C52单片机电路任务二点亮1个led灯单片机如何控制LED的亮灭状态当单片机的P0.0输出高电平,发光二极管D1就会导通发亮;否则,不亮。由于单片机P1口的8个引脚可以同时输出不同的电平,所以可以控制不同的发光二极管D1~D8同时亮灭。任务二点亮1个led灯74HC573芯片资料任务二点亮1个led灯1、库函数文件reg51.h可以帮助我们使用C51芯片内部资源。2、C程序由函数构成,其中main()为程序的主函数,是每个程序执行的起始点。3、C语言程序的书写格式:一行可以写几个语句,一个语句也可以写在多行上;每条语句的最后必须有一个分号“;”表示语句的结束。4、使用注释可以提高程序可读性,是编程人员的良好习惯。例如使用/**/进行多行注释,或者使用//对当前行注释。KEILC51相关知识:任务二点亮1个led灯5、在程序的书写中,我们多用TAB键将每一部分的语句对齐,使编写的程序呈现锯齿形,这样可以帮助我们分清不同的程序体,便于调试。6、while(1);为一个死循环,可以理解为程序将在此处进入空闲和等待状态。7、我们可以通过sbit定义位变量,表示单片机的一个位地址或者一个二进制的位变量。KEILC51相关知识:任务二点亮1个led灯1.如何点亮一个LED灯?

#include<reg52.h>sbitDLE=P1^6;//打开第一片573锁存器

sbitled0=P0^0;sbitled1=P0^1;voidmain(){P0=0X00;DLE=1;led0=1;//P0=0x01;

while(1); //原地循环

}软件设计:位输出任务二点亮1个led灯2.如何点亮8个LED灯?

#include<reg52.h>//包含库函数文件

sbitDLE=P1^6;//打开第一片573锁存器

voidmain()//主程序

{DLE=1;

P0=0xFF;//P0=0x01;

while(1); //原地循环

}通过总线方式,给P0口送8个高电平!并口输出任务二点亮1个led灯3.如何让LED灯闪烁?

需要用到延时子程序。任务二点亮1个led灯2.如何让LED灯闪烁?

让第一个灯与最后一个灯闪烁

#include<reg52.h>sbitwle=P1^6;sbitled0=P0^0;sbitled7=P0^7;voiddelay(){unsignedinti;i=50000;while(i--);}

voidmain(){ P0=0X00;DLE=1;while(1){led0=1;led1=1;delay();led0=0;led1=0;}}任务二点亮1个led灯任务小结:

本次课讲解了单片机最小系统的组成。包括复位电路和时钟电路。通过具体任务:1.如何点亮一个LED灯?2.如何点亮8个LED灯?3.如何让LED灯闪烁?理解单片机的控制作用及简单程序设计。延时函数的编写。思考:如何LED灯流动起来?任务二点亮1个led灯项目一流水灯的制作硬件设计系统调试任务导读任务导入软件设计任务三、流水灯任务目标导读学习目标技能目标掌握LED发光二极管接口电路设计,理解单片机的IO口使用“>>”“<<”、“_crol_”“_cror_”指令掌握延时程序、while、for循环语句使用学生的沟通能力及团队协作精神LED发光二极管接口电路设计掌握延时子函数的编写、For语句、一维数组用法。熟练单片机下载程序使用“>>”“<<”、“_crol_”“_cror_”指令

1.掌握LED发光二极管接口电路设计,理解单片机的IO口使用。2.掌握while、for循环语句使用。3.“>>”“<<”、“_crol_”“_cror_”指令的用法。4.掌握延时子函数的编写、一维数组用法。知识教学点

任务目标导读教学重点、难点

教学重点:1.掌握LED发光二极管接口电路设计,理解单片机的IO口使用。2.掌握延时程序、while、for循环语句使用。教学难点:1.掌握延时程序、while、for循环语句使用2.“>>”“<<”、“_crol_”“_cror_”指令的用法。参考学时:1学时~2学时

51任务导入任务三流水灯五颜六色的LED灯是怎么亮起来的?LED如何来模拟交通灯半导体二极管的一种,可以把电能转化成光能;常简写为LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。由镓(Ga)与砷(AS)、磷(P)的化合物制成的二极管能发出不同的光。任务三流水灯发光二极管具有单向导电性。当发光二极管导通时,发光二极管的管压降为1.8~2.2V,流过二极管的电流I=3~10mA,所以限流电阻电路分析:为什么LED会亮?任务三流水灯提出任务:如何实现单片机与LED灯的连接与控制?具体任务:利用单片机实验板的8个LED模拟流水灯效果。第一步:8个LED亮灭4次第二步:8个LED奇数灯、偶数灯交替点亮4次第三步:1个LED循环左(右)移点亮第四步:8个LED开幕式、闭幕式展示任务三流水灯STC89C52是STC公司生产的一种低功耗、高性CMOS8位微控制器,具有8K在系统可编程Flash存储器。512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。任务三流水灯

点亮LED灯采用STC89C52单片机,通过74HC573锁存器与单片机P0相连。硬件电路如图所示:硬件电路任务三流水灯STC89C52单片机电路任务三流水灯软件设计:87654321P0=0x01;/00000001亮最低位1个P0=0xff;//11111111全亮P0=0x00;//00000000全灭P0=0x0f;//11110000亮低位4个P0.7P0.6

P0.5

P0.4

P0.3

P0.2

P0.1P0.010进制16进制2进制00000011000122001033001144010055010166011077011188100099100110a101011b101112c110013d110114e111015f1111单片机如何控制LED亮灭任务三流水灯KEILC51相关知识:1、KeilC51程序是由函数构成,任何函数必须先定义,再使用。2、我们可以使用unsignedint定义一个无符号整型变量,表示一个16bit的二进制数,其数值范围为0~65535,其命名遵循标识符命名原则。同理,使用unsignedchar定义一个无符号字符型变量,表示一个8bit的二进制数,其数值范围为0~255。变量如果定义在函数的外面,成为全局变量;变量如果定义在函数体内,则只能在函数内部使用。任务三流水灯4、while(1){},表示程序将循环执行{

}中的语句体。while(1);5、for(i=0;i<8;i++){语句};这条语句将把{

}内的语句循环执行8次。6、voiddelay(unsignedintt)为参数控制延时时间的函数。通常单片机使用的石英晶振振荡频率为12MHz,其对应的机器周期为1us通过分析和验证,unsignedintn=0;for(n=0;n<112;n++);语句将会执行约1ms。KEILC51相关知识:任务三流水灯软件设计:点亮8灯开始延时0.5s熄灭8灯延时0.5s#include<reg52.h>sbitwle=P1^6;unsignedchark;voiddelay(unsignedintt){ unsignedinti,j; for(i=0;i<t;i++) //延时t个1ms for(j=0;j<112;j++);//延时约1ms}voidmain(){wle=1; while(1) {for(k=0;k<4;k++)

{P0=0x00; //0x55

delay(500); //延时0.5s

P0=0xff; //0xaa

delay(500); //延时0.5s

}

}}8个LED亮灭4次//8个LED奇数灯、偶数灯交替点亮4次任务三流水灯单灯流水灯效果单灯流水灯流程图第1灯亮1s第2灯亮1s……第7灯亮1s反复循环第8灯亮1s任务三流水灯D8D7D6D5D4D3D2D1D1亮:P1=0xfe;delay(1000);//11111110D2亮:P1=0xfd;delay(1000);//11111101D2亮:P1=0xfb;delay(1000);//11111011……控制LED左移点亮思考:效果变化速度变化亮度变化任务三流水灯while(1){P1=0xfe;delay(500);//11111110P1=0xfd;delay(500);//11111101P1=0xfb;delay(500);//11111011P1=0xf7;delay(500);//11110111P1=0xef;delay(500);//11101111P1=0xdf;delay(500);//11011111P1=0xbf;delay(500);//10111111P1=0x7f;delay(500);//01111111}举例:单灯流水左移,每一个灯亮500ms方法1、顺序结构任务三流水灯1、KeilC自带有一个位左移和位右移运算符(<<和>>),其功能是将一个数的二进制代码全部同时左移或者右移若干位,移出的数据丢失,空白的地方补“0”。位左移运算格式为a<<n,表示把a的值左移n位,高位丢失n位,低位自动补上n个0;例如P1=(P1<<2);表示把P1的值左移2位,右边补上2个“0”,然后再赋给P1,如果P1原来的值为0x5c=01011100B,左移2位后P1=01110000B=0x70。KEILC51相关知识:任务三流水灯1、KeilC自带有一个位左移和位右移运算符(<<和>>),其功能是将一个数的二进制代码全部同时左移或者右移若干位,移出的数据丢失,空白的地方补“0”。位左移运算格式为a>>n,表示把a的值右移n位,高位丢失n位,低位自动补上n个0;例如P1=(P1>>1);表示把P1的值右移1位,左边补上1个“0”,然后再赋给P1。KEILC51相关知识:任务三流水灯2、KeilC自带有一个循环左移和循环右移运算符(_cror_和crol_)。KEILC51相关知识:任务三流水灯#include<reg52.h>voiddelay(unsignedintt)sbitwle=P1^6;voidmain(){ wle=1;

unsignedchari,temp=0x01; //定义变量

while(1) { temp=0x01;//temp=0x10; for(i=0;i<8;i++) {

P0=temp;

delay(200);temp=temp<<1;//temp=temp>>1; } }}P0左移1位显示开始延时0.2s方法2、左移指令第三步:1个LED循环左(右)移点亮任务三流水灯P1左移1位显示开始延时0.2s#include<reg51.h>sbitwle=P1^6;#include<intrins.h>//包含_crol_函数所在的头文件voiddelay(unsignedintt){

unsignedinti,j; for(i=0;i<t;i++) //延时t个1ms for(j=0;j<112;j++); //延时约1ms}voidmain(){ wle=1;

unsignedchari=0x01; //定义变量

while(1) { i=_crol_(i,1);//i循环左移

P0=i; //P0显示

delay(200);

}}方法3、循环左移-使用外部函数任务三流水灯KEILC51相关知识:1、数组一种具有固定数目和相同类型成分的的有序集合,常用来表示一些固定表格、数据等。例如unsignedchartable[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80},表示一个无符号整数型数组,一共有8个元素,分别用table[0],table[1],……table[7]来表示,我们可以使用table[i]来使用这个数组里的数,其中i=0~7。任务三流水灯#include<reg52.h>unsignedchartable[

]={0x18,0x24,0x42,0x81,0x81,0x42,0x24,0x18};main(){ unsignedchari; while(1) { for(i=0;i<8;i++) { P0=table[i]; delay(1000); } }}i=0开始取第i个模式延时1si<8YNi=i+1方法循环查表第四步:8个LED开幕式、闭幕式展示任务三流水灯本任务涉及到LED发光二极管与单片机的接口电路设计,从最简单的8个灯一起闪烁,到流水灯的设计。项目训练了单片机并行I/O口的应用能力,For循环的熟练应用和一维数组的编程与调试能力。本项目的知识盘点如下:LED发光二极管接口电路设计“>>”“<<”、“_crol_”“_cror_”指令延时子函数的编写For语句一维数组思考:如何实现多种花样流水灯?任务小结任务三流水灯项目一流水灯的制作硬件设计系统调试任务导读任务导入软件设计任务四、花样流水灯任务目标导读学习目标技能目标掌握LED发光二极管接口电路设计,理解单片机的IO口使用“>>”“<<”、“_crol_”“_cror_”指令掌握延时程序、while、for循环语句使用学生的沟通能力及团队协作精神LED发光二极管接口电路设计掌握延时子函数的编写、For语句、一维数组用法。掌握独立按键的使用方法。“>>”“<<”、“_crol_”“_cror_”指令

1.理解单片机的IO口使用,独立按键的工作原理。2.掌握while、for循环语句使用。3.“>>”“<<”、“_crol_”“_cror_”指令的用法。4.掌握延时子函数的编写、一维数组用法。知识教学点

任务目标导读教学重点、难点

教学重点:1.理解单片机的IO口使用,独立按键的工作原理。2.掌握延时程序、while、for循环语句使用。教学难点:1.掌握延时程序、while、for循环语句使用2.“>>”“<<”、“_crol_”“_cror_”指令的用法。参考学时:1学时~2学时

76任务导入任务三流水灯五颜六色的LED灯是怎么亮起来的?LED灯为什么会发光?半导体二极管的一种,可以把电能转化成光能;常简写为LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。由镓(Ga)与砷(AS)、磷(P)的化合物制成的二极管能发出不同的光。任务四花样流水灯发光二极管具有单向导电性。当发光二极管导通时,发光二极管的管压降为1.8~2.2V,流过二极管的电流I=3~10mA,所以限流电阻电路分析:为什么LED会亮?任务四花样流水灯提出任务:如何实现单片机与LED灯的花样控制?具体任务:利用单片机实验板按键实现3种花样流水灯效果。效果1:按下KA,1个LED向左流动3次,向右流动3次,中间向两边流动3次。效果2:按下KB,向左逐个点亮4次、闪烁,向右逐个点亮4次,闪烁,两边相中间流动4次,闪烁。效果3:按下KC,流水灯两边向中央点亮,闪烁,从中央向两边熄灭,闪烁。任务四花样流水灯STC89C52是STC公司生产的一种低功耗、高性CMOS8位微控制器,具有8K在系统可编程Flash存储器。512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。任务四花样流水灯

按键的符号、

外观与尺寸任务四花样流水灯

点亮LED灯采用STC89C52单片机,通过74HC573锁存器与单片机P0相连。硬件电路如图所示:硬件电路任务四花样流水灯STC89C52单片机电路任务四花样流水灯软件设计:87654321P0=0x01;/00000001亮最低位1个P0=0xff;//11111111全亮P0=0x00;//00000000全灭P0=0x0f;//11110000亮低位4个P0.7P0.6

P0.5

P0.4

P0.3

P0.2

P0.1P0.010进制16进制2进制00000011000122001033001144010055010166011077011188100099100110a101011b101112c110013d110114e111015f1111单片机如何控制LED亮灭任务四花样流水灯KEILC51相关知识:voiddelay(unsignedintt)为参数控制延时时间的函数。通常单片机使用的石英晶振振荡频率为12MHz,其对应的机器周期为1us。通过分析和验证:voiddelay(unsignedintt){

unsignedinti,j; for(i=0;i<t;i++) //延时t个1ms for(j=0;j<112;j++); //延时约1ms}任务四花样流水灯While(表达式)

{语句(内部也可为空)}

特点:先判断表达式,后执行语句。

原则:若表达式不是0,即为真,那么执行语句。否则跳出while语句。For(表达式1;表达式2;表达式3)

{语句(内部可为空)}

执行过程:

1.求解一次表达式1.

2.求解表达式2,若其值为真(非0即为真),则执行for中语句。然后执行第3步。否则结束for语句,直接跳出,不再执行第3步。

3.求解表达式3.

4.跳到第2步重复执行。KEILC51相关知识任务四花样流水灯单灯流水灯效果单灯流水灯流程图第1灯亮1s第2灯亮1s……第7灯亮1s反复循环第8灯亮1s任务四花样流水灯KeilC自带有一个循环左移和循环右移运算符(_cror_和crol_)。KEILC51相关知识:任务四花样流水灯#include<reg52.h>voiddelay(unsignedintt)sbitwle=P1^6;voidmain(){ wle=1; unsignedchari,temp=0x01; //定义变量 while(1) { temp=0x01;//temp=0x10; for(i=0;i<8;i++) {

P0=temp;

delay(200);temp=temp<<1;//temp=temp>>1; } }}P0左移1位显示开始延时0.2s流水灯左移任务四花样流水灯P0左移1位显示开始延时0.2s#include<reg51.h>sbitwle=P1^6;#include<intrins.h>//包含_crol_函数所在的头文件voiddelay(unsignedintt){

unsignedinti,j; for(i=0;i<t;i++) //延时t个1ms for(j=0;j<112;j++); //延时约1ms}voidmain(){ wle=1; unsignedchari=0x01; //定义变量

while(1) { i=_crol_(i,1);//i循环左移

P0=i; //P0显示

delay(200);

}}循环左移任务四花样流水灯效果1:1个LED向左流动3次,向右流动3次,中间向两边流动3次,蜂鸣器响1声。任意模式流水灯显示

各显示模式字之间无任何变化规律,无法采用移位指令和循环结构的程序来实现。应该采用什么结构的程序呢?任务四花样流水灯KEILC51相关知识:1、数组一种具有固定数目和相同类型成分的的有序集合,常用来表示一些固定表格、数据等。例如unsignedchartable[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80},表示一个无符号整数型数组,一共有8个元素,分别用table[0],table[1],……table[7]来表示,我们可以使用table[i]来使用这个数组里的数,其中i=0~7。任务四花样流水灯#include<reg52.h>unsignedchartable[

]={0x18,0x24,0x42,0x81,0x81,0x42,0x24,0x18};main(){ unsignedchari; while(1) { for(i=0;i<8;i++) { P0=table[i]; delay(1000); } }}i=0开始取第i个模式延时1si<8YNi=i+1方法循环查表8个LED开幕式(中间向两边流动)、闭幕式展示任务四花样流水灯整体软件设计思路1、首先完成第1个流水灯效果设计,并编写为子程序模式voidliushui1(){for(i=0;i<8;i++){ …… }

}2、同理完成第2个、3个……3、汇总,并生成3种效果的流水灯循环任务四花样流水灯//单灯左移3次流水灯程序voidliushui1(){

unsignedchari,j;

for(j=0;j<4;j++){for(i=0;i<8;i++) {P1=table[i]; delay(200);} }}//单灯右移1位8次流水灯程序voidliushui2(){}voidmain(){ while(1) {

if(ka==0){liushui1();}

if(kb==0){liushui2();}if(kc==0){liushui3();} }}任务四花样流水灯本项目涉及到LED发光二极管与单片机的接口电路设计,从最简单的8个灯一起闪烁,到流水灯的设计。项目训练了单片机并行I/O口的应用能力,For循环的熟练应用和一维数组的编程与调试能力。本项目的知识盘点如下:LED发光二极管接口电路设计“_crol_”“_cror_”指令For语句,While语句一维数组任务小结任务四花样流水灯项目一流水灯的制作硬件设计系统调试任务导读任务导入软件设计任务五、LED模拟交通灯任务目标导读学习目标技能目标I/O端口分配统一硬件电路设计掌握C语言程序设计的基本方法。FOR

温馨提示

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

评论

0/150

提交评论