版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、信息工程学院课程设计报节日彩灯控制器设计称:电子信息工程专业综合课程设计(1)评阅成绩:.评阅教师:设计时间:2016.06.22指导教师:目录1.课程设计的性质和目的课程设计的要求2.1设计题目2.2设计要求1.主要仪器设备及软件四、课题分析及设计2.4.1设计任务2.4.2设计方案2.4.3系统硬件设计2.4.3.1单片机最小系统4.3.2控制电路介绍4.3.3 Proteus电路仿真图4.4软件设计4.4.1程序流程图4.4.2软件程序及分析五、组装调试125.1硬件12六、总结1.3、课程设计的性质和目的学习基本理论在实践中综合运用的初步经验, 掌握电路设计的基本方法、设 计步骤,培养
2、综合设计与调试能力;掌握汇编语言程序设计方法;培养实践技能, 提高分析和解决实际问题的能力。、课程设计的要求2.1设计题目节日彩灯控制器设计。2.2设计要求设计一个16个LED丁的多样显示控制器。1.选择两个I/O端口控制16个LED流水灯。2.设置四个按键K1K4,按下K1跑马灯,K2鸳鸯戏水,K3双流水灯,a则循环三种控制方式。3.跑马灯:共16个LED逐次点亮,每隔100msS亮一个 LED,点亮 100ms后关闭,然后继续上次操作。4.鸳鸯戏水灯:第一次单数灯点亮,延时100ms关闭,然后双数灯点亮,延时100ms关闭,然后继续上次操作。间隔100ms再依次向两边扩散5.双流水灯:16
3、个LED依次向中间点亮,点亮,间隔100ms然后继续上次操作。三、主要仪器设备及软件计算机、KeilC51软件、Proteus软件、单片机AT89C51 LED灯、电阻、拨码开关、晶振。四、课题分析及设计4.1设计任务彩灯用16个发光二极管代替;电路具有控制16个LED灯逐个点亮、单数点 亮、双数点亮、扩散点亮等功能(用 4个按键切换LED显示状态);彩灯两灯移 动时间间隔为100ms4.2设计方案本课题使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是 一个带有16个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、 复位、电源等电路和必要的软件组成的单个单片机。如果要
4、让接在 P0.0 口和P2.0 口的16个LED亮起来,那么只要把P0.0 口和P2.0 口的电平变为低电平就可以了;相反,如果要接在P0.0 口的LED熄灭,就 要把P0.0 口的电平变为高电平;同理,接在P0.1P0.7 口的其他7个LED的点 亮和熄灭的方法同以上LED因此,要实现流水灯功能,我们只要将发光二极管LEDLED16依次点亮、熄灭,16只LED灯便会一亮一暗的做流水灯或跑马灯了。 同样的道理,可以让16个灯上移或下移点亮,全亮、全灭。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不 到“流
5、水”效果了。4.3系统硬件设计AT89C51是一种带 4K字节 FLASH存储器(FPEROFlash Programmable andErasable Read Only Memory )的低电压、高性能 CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单 片机的可擦除只读存储器可以反复擦除 1000次。该器件采用ATMEI高密度非易失存储器制造技术制造,与工业标准的 MCS-51指令集和输出管脚相兼容。由于 将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL勺AT89C51是一种高效微控制器,AT89C2051是它的一种精简
6、版本。AT89C5仲片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图4.1所示。U1XTA.UPSEN AL三0 13 3- G71 11111P P P PPF prAn=nr5i4.3.1单片机最小系统(1)P0 口介绍PU.U/IJ ro 1 侶口 1 FO 2/AD2 ro D/ADS Fci 4 am Uo no匚ISFO Z/ADT-F2.DAAeP2.2/A10P2. 3/A1 1IN 4/心心门2 WAI弓P2.E/A1 4 口丄?/Al 5P3.Q/RX口 F P. HJdJ Pl Z?/1MTn R3.3/lTjri" 仏 TO P3 6
7、rT1 pa.GAVFf P3 7/J7T7图4.1 AT89C51单片机芯片引脚3a5ZiZP0 口为一个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编程和校验时接收高八位地址信号和控制信号。(4
9、) P3 口介绍P3 口管脚是8个带内部上拉电阻的双向I/O 口,可接收输出4个TTL门电 流。当P3 口写入“ 1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL )这是由于上拉的缘故。P3 口也 可作为AT89C51的一些特殊功能口。复位系统(5) 上电复位电路AT89C5啲上电复位电路如图4.2所示,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。对于 CMO型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1卩F。上电复位的工作过程是在加电时,复位电路通过电容加给RST端一个短暂的高电
10、平信号, 此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。上电时,Vcc的上升时间约为10ms而振荡器的起振时 间取决于振荡频率,如晶振频率为 10MHz起振时间为1ms晶振频率为1MHz起振时间则为10ms在如图的复位电路中,当 Vcc掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对 器件产生损害。另外,在复位期间,端口引脚处于随机状态,复位后,系统将端 口置为全“ I”态。如果系统在上电时得不到有效的复位, 则程序计数器PC
11、将得 不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。VccIMF占ATM9C;IasTM,2 kQGMD图4.2上电复位电路(6) 手动复位电路手动按钮复位需要人为在复位输入端 RST上加入高电平。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。如图4-3所示,当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。LRST230三C3P聿NALz卓"P1 0P1 1Pi 0J lOuFIWk2I S图4.3手动复位电路(7) 晶振系统晶振是
12、给单片机提供工作信号脉冲的.这个脉冲就是单片机的工作速度.比 如12M晶振.单片机工作速度就是每秒12M.单片机内部也有晶振,接外部晶振可 以或得更稳定的频率。因为晶振与单片机的脚XTAL0和脚XTAL1构成的振荡电路 中会产生偕波(也就是不希望存在的其他频率的波),这个波电路的影响不大,但 会降低电路的时钟振荡器的稳定性,如图 4.4所示。80C51型单片机内有一高增益反相放大器,按如图连接可构成自激振荡电路,振荡频率取决于石英晶体的振荡频率,范围可取1.2 12MHz C01.C02主要起频率微调和稳定作用,电容值可取 5 30Pf。432控制电路介绍(1)按键机械式按键再按下或释放时,由
13、于机械弹性作用的影响,通常伴随有一定时 间的触点机械抖动,然后其触点才稳定下来。抖动时间的长短与开关的机械特性 有关,一般为5 10 ms,如图4.5所示。PI.1PI2PI.3 PI-A 卩MPISPl?ATMCSIK31<4图4.5按键控制电路(2) LED电路能直接与单片机接口,可方LED显示器具有功耗低,接口控制方便等优点,便地实现各种不同的操作。16个发光二极管L1-L16分别接在单片机P0.0-P0.7,P2.0-P2.7。输出“ 0”,发光二极管亮。433 P roteus电路仿真图1主士rrr 卜yUHr W Mlri T41*1 = 9 HkA 4 rid-Mu 4 4
14、 "UMTIB rP-nOj-M-_ 1 _Kfli上-H.u* 'a*Fr 1 h琵却 r.-B fin '»-H 1, j_ _c 1 J 1:|1'r pJwtar" ,_隔冲 J. B-nu 丰喘._|玄F甕县尸.质亠亠二二“:“严:-:一一 w”一手h图4.7电路原理图4.4软件设计4.4.1程序流程图图4.9主程序流程图在主程序中,应该尽量的使得任务简化,不要让中断服务程序作过多复杂的任务,而要尽量把这些复杂的任务放到主程序中间去完成。中断流程如图所示。去抖功能:读入键值,存入地址,然后延迟 10ms后,也就是一个很短的时间之后
15、,再次读入一个键值,两次键值相比较,如果一样则不是因为外部原因抖动产生按键,如果不一样则说明是别的原因产生的按键抖动。这样的一个程序就可以 去除因为抖动产生的错误输入信号。442软件程序及分析(1)主要程序分析:/定义8051寄存器的头文件定义intrins.h 函数定义数学函数#inelude <reg51.h> #i nclude vintrin s.h> #in elude <math.h> #in elude <stdio.h>#defi ne u8 un sig ned char#defi ne s8 sig ned char#defi ne
16、 u16#defi ne s16#defi ne u32#defi ne s32#defi ne fp32#defi ne fp64un sig ned short sig ned short un sig ned int sig ned int floatdouble/定义无符号字符定义无符号整型定于无符号整型定义浮点数 双倍精度浮点数#defi ne INT8U un sig ned char按键1 按键2 按键3 按键4#defi ne INT16U un sig ned intsbit K1 = P19sbit K2 = P11;/sbit K3 = P 1八2;/按键检测时间 获取到
17、按键的值sbit K4 = P 1八3;/#defi ne KEY_CHK_TIM 10u8 _g_key_value;跑马灯数组:code u16 dis pcode16=0xfeff,0xfdff,0xfbff,0xf7ff,0xefff,0xdfff,0xbfff,0x7fff,0xfffe,0xfffd,0xfffb,0xfff7,0xffef,0xffdf,0xffbf,0xff7f;双流水灯数组:code u16 dis pcode116=0xfe7f,0xfc3f,0xf81f,0xf00f,0xe007,0xc003,0x8001,0x0000,0x7ffe,0x3ffc,0x
18、1ff8,0x0ff0,0x07e0,0x03c0,0x0180,0x0000;定时器初始化函数:void timenit(void) TMOD |= 0x01; TH0 = 0xf8;TL0 = 0x2f;/=1;ET0 = 1;EA = 1;ES = 1;TRO设定定时器初值/(65535-63535)大约 60ms打开定时器开中断(2)void dis p0(void) /调用前面的跑马灯数组u8 i; / 定义 ifor(i = 0 ;i<16;i+)跑马灯运行方式:P0 = dis pcodei>>8; P2 = dis pcodei; delay_ms(100);
19、/ P0/P1/口运行第二行数组 口运行第一行数组延时100ms(3) 鸳鸯灯运行方式:void dis p1(void)delay_ms(100);P0 = 0xaa;P2 = 0xaa; delay_ms(100);P0 = 0x55;P2 = 0x55; delay_ms(100);(4) 双流水灯运行方式:void dis p2(void)u8 i;for(i = 0 ;i<8;i+)P0 = dis pcode1i>>8;P2 = dis pcode1i;delay_ms(100);:/P0/P2/P0/P0/延时100ms口 8个LED单数亮口 8个LED灯亮双数
20、灯亮双数灯亮延时100ms口运行第二行数组,逐个点亮,向中间 口运行第一行数组,逐个点亮,向中间for(i = 8 ;i<16;i+)P0 = dis pcode1i>>8;P2 = dis pcode1i; delay_ms(100);/向两边亮向两边亮延时100msk1_P re_kep_tim = 0;/中断计数清零(5)按键扫描函数:k1_ pre_kep_tim k1_p ress_flag = 0;if (k1_short_ press_flag =1 ) k1_short_ press_flag = 0;=0;/k1/k1/按键按下保持时间清零按键按下标志清零短
21、按标志为1短按标志清零g_key_value = 1;/触发1号短按键else if (k1_p ress_flag = 0)k1_P re_kep_tim+;if (k1_ pre_kep_tim > KEY_CHK_TIM) k1_short_ press_flag = 1;/累加定时中断次数/短按标志置1void key_sca n(v oid)1 staticu16k1_P re_kep_tim = 0;/k1按键按下保持时间staticu8k1_p ress_flag = 0;/k1按键按下标志staticu8k1_short_ press_flag=0;/k1短按触发标志st
22、aticu16k2_p re_ke p_tim = 0;/k2按键按下保持时间staticu8k2_p ress_flag = 0;/k2按键按下标志staticu8k2_pre_ctn_ti m=0; /按键连续触发的间隔延时计数staticu16k3_p re_ke p_tim = 0;/k3按键按下保持时间staticu8k3_p ress_flag = 0;/k3按键按下标志staticu8k3_pre_ctn_tim=0;/k1短按触发标志staticu16k4_p re_kep_tim = 0;/k4按键按下保持时间staticu8k4_p ress_flag = 0;/k4按键按
23、下标志if (K1 = 1)/当按键松开为真if (k1_pre_kep_tim > 300) (6)主程序:/只运行跑马灯if (con_f = 1) dis pO();if (con_f = 2) dis p1();/只运行鸳鸯灯if (con_f = 3) dis p2();/只运行双流水/循环以上三种if (con_f = 4) dis pO();dis p1();dis p2();五、组装调试5.1硬件硬件包括MCS-51单片机,LED发光二极管,晶振,电容,开关,电源,电 阻及导线。将所有硬件配齐,按电路原理图组装好电路,在电路板上一一对应,所有硬件准备就绪后,接通电源,软硬结合。首先用烧录软件给单片机芯片加载*hex文件,等待加载完毕,运行电路。当按下 K1时,跑马灯开始,16个LED 灯从上到下逐个点亮,第一个灯亮,然后灭,然后每个间隔时间为 100ms当按下K2时,鸳鸯灯开始,16个LED灯先单数亮,然后双数亮,间隔时间也是100ms 当K3按下时,双流水灯开始,16个LED灯依次往中间移动,然后再依次往外 移动
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度新能源汽车推广贷款协议4篇
- 二零二五年度名下公司自愿解除劳动合同竞业禁止协议4篇
- 二零二五年度模板木枋行业联盟采购合同3篇
- 二零二五版城市公园改造升级工程合同4篇
- 新春看消费之家电篇:只属于白电的狂欢
- 粘土围堰施工方案
- 2025年绿色能源项目融资合作协议3篇
- 宁国无尘室设计施工方案
- 2025年度个人健身教练服务合同范本7篇
- 2025年度专业摄影车租赁合同模板(简易版)3篇
- 社区医疗抗菌药物分级管理方案
- 《医院标识牌规划设计方案》
- 国家职业大典
- 2024版房产代持协议书样本
- 公众号运营实战手册
- 2024中考地理必考试卷含解析
- (高清版)DZT 0282-2015 水文地质调查规范(1:50000)
- 会议分组讨论主持词
- 动火作业审批表
- 新能源汽车火灾事故处置程序及方法
- 教学查房及体格检查评分标准
评论
0/150
提交评论