项目4-LED广告灯设计课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《项目4-LED广告灯设计课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 项目 LED 广告 设计 课件
- 资源描述:
-
1、 单片机单片机C C语言应用技术与实践语言应用技术与实践张永格张永格 何乃味何乃味主编主编 任务任务1 流水广告灯的设计流水广告灯的设计 广告灯是一种常见的装饰,常用于街上的广告及舞台装饰等场合。最简单的流水广告灯就是各个灯依次发光。本任务利用AT89S51单片机来实现这一功能。 1.1 提出任务 用AT89S51的P1口做输出口,接八只发光二极管D1、D2、D3、D4、D5、D6、D7、D8,编写程序,使发光二级管循环点亮,时间间隔为0.2s。即刚开始时D1点亮,延时0.2s后,接着是D2点亮,接着依次点亮D3、D4、D5、D6、D7、D8,然后再点亮D7、D6、D5、D4、D3、D2、D1
2、,重复循环。 单片机单片机C C语言应用技术与实践语言应用技术与实践张永格张永格 何乃味何乃味主编主编 1.2 分析任务 1.硬件电路设计 电路组成。这里选择具有内部程序存储器的AT89S51单片机作为控制电路,其P1口接8个发光二极管(LED)和8个限流电阻,硬件电路原理图如图4.1所示。 任务任务1 流水广告灯的设计流水广告灯的设计 单片机单片机C C语言应用技术与实践语言应用技术与实践张永格张永格 何乃味何乃味主编主编 电路分析。要使LED点亮,则P1口的对应端子输出低电平,即P1.00时,D1亮。一般情况下,驱动LED的电流约10mA左右,而LED本身的压降为2V。当P1.0输出为低电
3、平时,输出为0V,则流经D1的电流为,为了在仿真实验中让LED更亮一些,在这里取限流电阻为100。相反,当P1.0输出为高电平时,输出电压为5V,则流经D1的电流为0mA,D1不亮(熄灭),即P1.01时,D1不亮(熄灭)。 任务任务1 流水广告灯的设计流水广告灯的设计 单片机单片机C C语言应用技术与实践语言应用技术与实践张永格张永格 何乃味何乃味主编主编 任务任务1 流水广告灯的设计流水广告灯的设计 单片机单片机C C语言应用技术与实践语言应用技术与实践张永格张永格 何乃味何乃味主编主编 2.软件设计思路 P1口输出电平分析。在图3.1中,P1口的每一位都接有一个LED,要实现流水灯功能,
4、就是要让各个LED依次点亮一段时间,再熄灭一段时间,然后再点亮下一个LED一段时间,然后再熄灭一段时间,如此循环。换句话来说,就是让P1口周而复始地输出高电平和低电平,要实现这一功能,最简单和最直接的方法是依次将数据送往P1口,每送一个数据延时一段时间。根据上述分析,我们列出一个功能表,如表4-1所示。 任务任务1 流水广告灯的设计流水广告灯的设计 单片机单片机C C语言应用技术与实践语言应用技术与实践张永格张永格 何乃味何乃味主编主编 任务任务1 流水广告灯的设计流水广告灯的设计 单片机单片机C C语言应用技术与实践语言应用技术与实践张永格张永格 何乃味何乃味主编主编 从表4-1可以看出,要
5、实现设计任务功能,P1口输出的8个数据分别是11111110B、11111101B、11111011B、11110111B、11101111B、11011111B、10111111B、011111111B,转化成十六进制分别是0 xfe、0 xfd、0 xfb、0 xf7、0 xef、0 xdf、0 xbf和0 x7f。送完这8个数据后再反过来送011111111B 、10111111B、11011111B、11101111B、11110111B、11111011B、11111101B、11111110B,转化成十六进制分别是0 x7f 、0 xbf 、0 xdf、0 xef、0 xf7、0
6、xfb、0 xfd和0 xfe。送完后从头开始循环。 任务任务1 流水广告灯的设计流水广告灯的设计 单片机单片机C C语言应用技术与实践语言应用技术与实践张永格张永格 何乃味何乃味主编主编 如何采用单片机C语言编程实现数据从输出P1口呢?从这些数据来看,有这么一个规律,D1至D8依次点亮时,就是数据中的二进制0的位置依次往左移动了1位,D8至D1依次点亮时,就是往右依次移动1位。在单片机C51中,要直接实现数据的这种计算是不容易的,如果将数据的所有二进制取反后,D1至D8依次点亮时的数据就变成了:0 x01、0 x01、0 x04、0 x08、0 x10、0 x20、0 x40、0 x80,也
7、就是后一个数是在前一个数的基础上乘以2(或者直接左移1位)。 任务任务1 流水广告灯的设计流水广告灯的设计 单片机单片机C C语言应用技术与实践语言应用技术与实践张永格张永格 何乃味何乃味主编主编 根据前面分析,实现任务的思路是:程序开始时,给某一个变量赋初始值0 x01,并从端口输出反码,延时一段时间后,让显示变量左移1位,再次输出反码并延时,直到输出所有左移数据为止,接下来就实现右移数据输出完毕,再次重复整个过程。 任务任务1 流水广告灯的设计流水广告灯的设计 单片机单片机C C语言应用技术与实践语言应用技术与实践张永格张永格 何乃味何乃味主编主编 延时程序编写。单片机程序的延时有两种,一
8、种是软件延时,一种是硬件延时,在这里我们重点讨论软件延时。当系统加电后,单片机就开始工作,按照设计的程序开始运行(也称执行指令)。单片机执行一条指令要花一定的时间,那么单片机执行一条指令的执行时间成为指令周期。指令周期是以机器周期为单位的。MCS-51单片机规定,一个机器周期为单片机振荡器的12个振荡周期。如果单片机时钟电路中的晶振频率为12MHz,则一个机器周期为1us。 任务任务1 流水广告灯的设计流水广告灯的设计 单片机单片机C C语言应用技术与实践语言应用技术与实践张永格张永格 何乃味何乃味主编主编 单片机的指令运行速度是很快的,要想在端口获得一定的延时时间,就要编写程序,使单片机运行
9、设计程序产生时间延迟。 任务中要求获得0.2s的时间长度,当单片机的指令周期是1us时,0.2s就是1us的200 000倍。在程序编写中常用循环语句来完成计数和时间延迟,从而获得需要的延时时间。 任务任务1 流水广告灯的设计流水广告灯的设计 单片机单片机C C语言应用技术与实践语言应用技术与实践张永格张永格 何乃味何乃味主编主编 采用单片机C语言编写的一个0.2s延时程序如下:void delay02s(void) / 定义延时0.2s函数 unsigned char i,j,k; / 声明3个无符号字符型变量i、j、k for(i=2;i0;i-) / 外循环2次,每次约0.1s,延时0.
10、2s for(j=200;j0;j-) / 外循环200次,每次约0.5ms,延时0.1s for(k=250;k0;k-) / 内循环250次,每次约2us,延时05ms ; / 里面的循环的循环体什么也不做,但每次循环延时2us 任务任务1 流水广告灯的设计流水广告灯的设计 单片机单片机C C语言应用技术与实践语言应用技术与实践张永格张永格 何乃味何乃味主编主编 上述程序可以简化为:void delay02s(void) unsigned char i,j,k; for(i=2;i0;i-) for(j=200;j0;j-) for(k=250;k0;k-);整个子程序延时为:2us250
11、2002=200 000us=0.5s任务任务1 流水广告灯的设计流水广告灯的设计 单片机单片机C C语言应用技术与实践语言应用技术与实践张永格张永格 何乃味何乃味主编主编 思考:思考: 如将延时改为1s,该怎样修改程序呢?任务任务1 流水广告灯的设计流水广告灯的设计 单片机单片机C C语言应用技术与实践语言应用技术与实践张永格张永格 何乃味何乃味主编主编 1.3 源程序编写根据程序流程图编写的源程序如下:/ lsd4-1.c# include reg51.h / 包含头文件#define uchar unsigned char / 定义uchar为无符号数据类型void delay02s(v
12、oid) / 延时0.2s函数 unsigned char i,j,k; for ( i=2;i0;i- )for (j=200;j0;j- ) for (k=250;k0;k- ); void main (void) / 主函数任务任务1 流水广告灯的设计流水广告灯的设计 单片机单片机C C语言应用技术与实践语言应用技术与实践张永格张永格 何乃味何乃味主编主编 uchar i,j; / 定义变量 while (1) / 死循环 j=0 x01; / j初始化为0 x01,左移初始值 for(i=0;i8;i+) / for循环语句,完成8个循环 P1= j; / 对变量j 中的值按位取反后,
13、从P1口输出 delay02s( ); / 延时0.2s j= j1; / 左移1位 j=0 x80; / 设置右移初始值j为0 x80 for (i=0;i1; / 右移1位 任务任务1 流水广告灯的设计流水广告灯的设计 单片机单片机C C语言应用技术与实践语言应用技术与实践张永格张永格 何乃味何乃味主编主编 1.4 程序调试与电路仿真 运行C语言编辑软件,在编辑区中输入上面的源程序,并以“lsd4-1.c”为文件名存盘。 运行Keil C51,然后建立一个“lsd4-1.uv2”的工程项目。把源程序文件“lsd4-1.c”添加到工程项目中,进行编译,得到目标代码文件“lsd4-1.hex”
展开阅读全文