单片机课程设计-16个LED灯的多样显示控制器(13页).doc

上传人:1595****071 文档编号:47774665 上传时间:2022-10-03 格式:DOC 页数:13 大小:996KB
返回 下载 相关 举报
单片机课程设计-16个LED灯的多样显示控制器(13页).doc_第1页
第1页 / 共13页
单片机课程设计-16个LED灯的多样显示控制器(13页).doc_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《单片机课程设计-16个LED灯的多样显示控制器(13页).doc》由会员分享,可在线阅读,更多相关《单片机课程设计-16个LED灯的多样显示控制器(13页).doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、单片机课程设计单片机课程设计-16 个个 LED 灯的灯的多样显示控制器多样显示控制器信信 息息 工工 程程 学学 院院课课 程程 设设 计计 报报 告告设计题目:节日彩灯控制器设计名称:电子信息工程专业综合课程设计(1)班级:姓名:学号:设计时间:2016.06.22指导教师:评语:评阅成绩:评阅教师:目录目录一、课程设计的性质和目的.1二、课程设计的要求.12.1 设计题目.12.2 设计要求.1三、主要仪器设备及软件.1四、课题分析及设计.14.1 设计任务.24.2 设计方案.24.3 系统硬件设计.24.3.1 单片机最小系统.34.3.2 控制电路介绍.54.3.3 Proteus

2、 电路仿真图.54.4 软件设计.64.4.1 程序流程图.64.4.2 软件程序及分析.8五、组装调试.125.1 硬件.12六、总结.13一、课程设计的性质和目的一、课程设计的性质和目的学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力;掌握汇编语言程序设计方法;培养实践技能,提高分析和解决实际问题的能力。二、课程设计的要求二、课程设计的要求2.1 设计题目节日彩灯控制器设计。2.2 设计要求设计一个16个LED灯的多样显示控制器。1.选择两个I/O端口控制16个LED流水灯。2.设置四个按键K1K4,按下K1跑马灯,K2鸳鸯戏水,K3双流水灯

3、,K4则循环三种控制方式。3.跑马灯:共16个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms后关闭,然后继续上次操作。4.鸳鸯戏水灯:第一次单数灯点亮,延时100ms,关闭,然后双数灯点亮,延时100ms,关闭,然后继续上次操作。5.双流水灯:16个LED依次向中间点亮,间隔100ms,再依次向两边扩散点亮,间隔100ms,然后继续上次操作。三、主要仪器设备及软件三、主要仪器设备及软件计算机、KeilC51 软件、Proteus 软件、单片机 AT89C51、LED 灯、电阻、拨码开关、晶振。四、课题分析及设计四、课题分析及设计-第 2 页4.1 设计任务彩灯用 16 个发光二极

4、管代替;电路具有控制 16 个 LED 灯逐个点亮、单数点亮、双数点亮、扩散点亮等功能(用 4 个按键切换 LED 显示状态);彩灯两灯移动时间间隔为 100ms。4.2 设计方案本课题使用 AT89C51 单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有 16 个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。如果要让接在 P0.0 口和 P2.0 口的 16 个 LED 亮起来,那么只要把 P0.0 口和P2.0 口的电平变为低电平就可以了;相反,如果要接在 P0.0 口的 LED 熄灭,就要把 P0.0 口的电平变为高电平;同

5、理,接在 P0.1P0.7 口的其他 7 个 LED 的点亮和熄灭的方法同以上 LED。因此,要实现流水灯功能,我们只要将发光二极管LED1LED16 依次点亮、熄灭,16 只 LED 灯便会一亮一暗的做流水灯或跑马灯了。同样的道理,可以让 16 个灯上移或下移点亮,全亮、全灭。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。4.3 系统硬件设计AT89C51 是一种带 4K 字节 FLASH 存储器(FPEROMFlash Programmable andErasable Read On

6、ly Memory)的低电压、高性能 CMOS8 位微处理器,俗称单片机。AT89C2051 是一种带 2K 字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除 1000 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪速存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高-第 3 页效微控制器,AT89C2051 是它的一种精简版本。AT89C51 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图 4.1 所示。图 4.1 AT8

7、9C51 单片机芯片引脚4.3.1 单片机最小系统(1)P0 口介绍P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P0 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义 4 为数据/地址的低八位。在 FIASH 编程时,P0口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须接上拉电阻(2)P1 口介绍P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输

8、出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为低八位地址接收。(3)P2 口介绍P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在FLASH 编程和校验时

9、接收高八位地址信号和控制信号。(4)P3 口介绍P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。P3 口也可作为 AT89C51 的一些特殊功能口。复位系统-第 4 页(5)上电复位电路AT89C51 的上电复位电路如图 4.2 所示,只要在 RST 复位输入引脚上接一电容至 Vcc 端,下接一个电阻到地即可。对于 CMOS 型单片机,由于在 RST 端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至

10、1F。上电复位的工作过程是在加电时,复位电路通过电容加给 RST 端一个短暂的高电平信号,此高电平信号随着 Vcc 对电容的充电过程而逐渐回落,即 RST 端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST 端的高电平信号必须维持足够长的时间。上电时,Vcc 的上升时间约为 10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为 10MHz,起振时间为 1ms;晶振频率为 1MHz,起振时间则为 10ms。在如图的复位电路中,当 Vcc 掉电时,必然会使 RST 端电压迅速下降到 0V 以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位期

11、间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。如果系统在上电时得不到有效的复位,则程序计数器 PC 将得不到一个合适的初值,因此,CPU 可能会从一个未被定义的位置开始执行程序。图 4.2 上电复位电路(6)手动复位电路手动按钮复位需要人为在复位输入端 RST 上加入高电平。一般采用的办法是在 RST 端和正电源 Vcc 之间接一个按钮。如图 4-3 所示,当人为按下按钮时,则Vcc 的+5V 电平就会直接加到 RST 端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。图 4.3 手动复位电路(7)晶振系统晶振是给单片机

12、提供工作信号脉冲的.这个脉冲就是单片机的工作速度.比如 12M 晶振.单片机工作速度就是每秒 12M.单片机内部也有晶振,接外部晶振可以或得更稳定的频率。因为晶振与单片机的脚 XTAL0 和脚 XTAL1 构成的振荡电路中会产生偕波(也就是不希望存在的其他频率的波),这个波电路的影响不大,但会降低电路的时钟振荡器的稳定性,如图 4.4 所示。80C51 型单片机内有一高增益反相放大器,按如图连接可构成自激振荡电路,振荡频率取决于石英晶体的振荡频率,范围可取 1.212MHz,C01.C02 主要起频率微调和稳定作用,电容值可取 530Pf。-第 5 页图 4.4 晶振电路4.3.2 控制电路介

13、绍(1)按键机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。抖动时间的长短与开关的机械特性有关,一般为 510 ms,如图 4.5 所示。图 4.5 按键控制电路(2)LED 电路LED 显示器具有功耗低,接口控制方便等优点,能直接与单片机接口,可方便地实现各种不同的操作。16 个发光二极管 L1-L16 分别接在单片机 P0.0-P0.7,P2.0-P2.7。输出“0”,发光二极管亮。图 4.6 LED 显示电路4.3.3 Proteus 电路仿真图图 4.7 电路原理图-第 6 页4.4 软件设计4.4.1 程序流程图开始读入四个开

14、关状态判断开关状态灯依次向下移单、双数灯向中间亮循环前面三种无输入图 4.9 主程序流程图在主程序中,应该尽量的使得任务简化,不要让中断服务程序作过多复杂的任务,而要尽量把这些复杂的任务放到主程序中间去完成。中断流程如图所示。去抖功能:读入键值,存入地址,然后延迟 10ms 后,也就是一个很短的时间之后,再次读入一个键值,两次键值相比较,如果一样则不是因为外部原因抖动产生按键,如果不一样则说明是别的原因产生的按键抖动。这样的一个程序就可以去除因为抖动产生的错误输入信号。4.4.2 软件程序及分析(1)主要程序分析:#include/定义8051寄存器的头文件#include/定义 intrin

15、s.h 函数#include/定义数学函数#include#define u8unsigned char/定义无符号字符#define s8signedchar#define u16unsigned short/定义无符号整型-第 7 页#define s16signedshort#define u32unsigned int/定于无符号整型#define s32signedint#define fp32float/定义浮点数#define fp64double/双倍精度浮点数#define INT8Uunsigned char#define INT16Uunsigned intsbit K1

16、=P10;/按键 1sbit K2=P11;/按键 2sbit K3=P12;/按键 3sbit K4=P13;/按键 4#defineKEY_CHK_TIM10/按键检测时间u8_g_key_value;/获取到按键的值跑马灯数组:code u16 dispcode16=0 xfeff,0 xfdff,0 xfbff,0 xf7ff,0 xefff,0 xdfff,0 xbfff,0 x7fff,0 xfffe,0 xfffd,0 xfffb,0 xfff7,0 xffef,0 xffdf,0 xffbf,0 xff7f双流水灯数组:code u16 dispcode116=0 xfe7f,

17、0 xfc3f,0 xf81f,0 xf00f,0 xe007,0 xc003,0 x8001,0 x0000,0 x7ffe,0 x3ffc,0 x1ff8,0 x0ff0,0 x07e0,0 x03c0,0 x0180,0 x0000;定时器初始化函数:void time_init(void)TMOD|=0 x01;TH0=0 xf8;TL0=0 x2f;/设定定时器初值(65535-63535)大约 60msTR0=1;/打开定时器ET0=1;/开中断EA=1;ES=1;(2)跑马灯运行方式:void disp0(void)/调用前面的跑马灯数组u8 i;/定义 ifor(i=0;i8;

18、/P0 口运行第二行数组P2=dispcodei;/P1 口运行第一行数组delay_ms(100);/延时 100ms(3)鸳鸯灯运行方式:void disp1(void)delay_ms(100);/延时 100msP0=0 xaa;/P0 口 8 个 LED 单数亮P2=0 xaa;/P0 口 8 个 LED 灯亮-第 8 页delay_ms(100);P0=0 x55;/双数灯亮P2=0 x55;/双数灯亮delay_ms(100);/延时 100ms(4)双流水灯运行方式:void disp2(void)u8 i;for(i=0;i8;/P0 口运行第二行数组,逐个点亮,向中间P2=

19、dispcode1i;/P2 口运行第一行数组,逐个点亮,向中间delay_ms(100);for(i=8;i8;/向两边亮P2=dispcode1i;/向两边亮delay_ms(100);/延时 100ms(5)按键扫描函数:void key_scan(void)staticu16k1_pre_kep_tim=0;/k1 按键按下保持时间staticu8k1_press_flag=0;/k1 按键按下标志staticu8k1_short_press_flag=0;/k1短按触发标志staticu16k2_pre_kep_tim=0;/k2 按键按下保持时间staticu8k2_press_f

20、lag=0;/k2 按键按下标志staticu8k2_pre_ctn_tim=0;/按键连续触发的间隔延时计数staticu16k3_pre_kep_tim=0;/k3 按键按下保持时间staticu8k3_press_flag=0;/k3 按键按下标志staticu8k3_pre_ctn_tim=0;/k1 短按触发标志staticu16k4_pre_kep_tim=0;/k4 按键按下保持时间staticu8k4_press_flag=0;/k4 按键按下标志if(K1=1)/当按键松开为真k1_pre_kep_tim=0;/k1 按键按下保持时间清零k1_press_flag=0;/k1

21、 按键按下标志清零if(k1_short_press_flag=1)/短按标志为 1k1_short_press_flag=0;/短按标志清零_g_key_value=1;/触发 1 号短按键else if(k1_press_flag=0)k1_pre_kep_tim+;/累加定时中断次数if(k1_pre_kep_tim KEY_CHK_TIM)k1_short_press_flag=1;/短按标志置 1if(k1_pre_kep_tim 300)-第 9 页k1_pre_kep_tim=0;/中断计数清零k1_short_press_flag=0;/清除按键短按的有效标志k1_press_

22、flag=1;/自锁按键置位,避免一直触发_g_key_value=11;/触发长按(6)主程序:if(con_f=1)disp0();/只运行跑马灯if(con_f=2)disp1();/只运行鸳鸯灯if(con_f=3)disp2();/只运行双流水if(con_f=4)disp0();/循环以上三种disp1();disp2();五、组装调试五、组装调试5.1 硬件硬件包括 MCS-51 单片机,LED 发光二极管,晶振,电容,开关,电源,电阻及导线。将所有硬件配齐,按电路原理图组装好电路,在电路板上一一对应,所有硬件准备就绪后,接通电源,软硬结合。首先用烧录软件给单片机芯片加载*.he

23、x 文件,等待加载完毕,运行电路。当按下 K1 时,跑马灯开始,16 个 LED灯从上到下逐个点亮,第一个灯亮,然后灭,然后每个间隔时间为 100ms;当按下 K2 时,鸳鸯灯开始,16 个 LED 灯先单数亮,然后双数亮,间隔时间也是 100ms;当 K3 按下时,双流水灯开始,16 个 LED 灯依次往中间移动,然后再依次往外移动,亮过的灯不熄灭;当 K4 按下时,循环以上三种亮灯方式。最终实现功能,演示如下图 5.1 所示。图 5.1 实物演示图六、总结六、总结经过一段时间的努力,我们顺利的完成了这次单片机课设。这是一个磨练意志的过程。从课题的选择开始,计算器的设计、硬件和软件系统的设计

24、、到最后的 Proteus 软件仿真完成,这其中经历了很多困难,但是更重要的是在这个过程-第 10 页中我得到了很大的锻炼。一方面通过 C51 单片机等一些器件的设计让我学习和掌握了单片机技术的基础知识和技术要点,也使以前学的很多知识都得到了运用;另一方面在用 Proteus 软件画电路图时,然后再转换成一维的 WORD 中进行编辑,这个过程中让我掌握了计算机辅助的设计技术。当然,这是一个需要不断的尝试,不断的校核,不断的修改,最后完成一个合理的设计的过程。需要的是细心和耐心。在很大程度上培养了我拼搏的工作精神。使我受益匪浅,更加明确了自己专业的方向。了解了在单片机系统中扩展简单 I/O 接口的方法.外部中断技术的基本使用方法,掌握了中断处理程序的编程方法,掌握 51 系列单片机的基本硬件结构及工作原理,掌握 51 系列单片机的 C 语言及基本程序设计方法;学习并掌握在PROTEUS 仿真环境中进行调试的基本方法。顺利如期的完成本次课程设计给了我很大的信心,让我了解专业知识的同时也对本专业的发展前景充满信心,通过对单片机的系统学习。对一些 LED 的设计做了一些必要的改进。同时对自己的改进也做了真实的仿真。达到了预期的目的。但是在改进的过程里也发现了自己的很多的不足。这会在以后的学习生活里不断提高,逐步完善自己。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 合同协议

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁