




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学华夏学院课程设计报告书课 程 名 称 单片机原理及应用课程设计 课程设计总评成绩_ 学生姓名、学 号 李 唱 学 生 专 业 班级 电信1131 指 导 教 师 姓名 李文彦 课程设计起止日期 1 月04日1月15日 单片机课程设计任务书题 目: 基于单片机的彩灯控制器电路设计 初始条件: 1、51单片机 2、四位一体共阳数码管要求完成的主要任务: 1、LED彩灯花样变幻 2、LED彩灯闪烁速度的加速、减速 3、暂停和复位 4、花样模式数码管显示 时间安排: 序号阶 段 内 容所需时间1方案选择及电路设计5天2制作、编程、调试5天3撰写课程设计报告及答辩4天合 计2周指导教师签名: 年 月 日 基于单片机的彩灯控制器系统设计作者: 李唱武汉理工大学华夏学院信息工程系摘要: 基于单片机的LED流水灯的应用十分广泛,由单片机作为的核心控制器,通过按键实现控制功能和数据输入是非常普遍的。通常在所需按键数量不多时,系统常采用独立式按键。这种按键的电路配置灵活,软件结构简单。由于实际应用中,不同系统对按键的要求不同,因此,对按键程序的设计要考虑全面,以便更好地完成按键所设定的功能,简述了该系统中一些重要芯片的基本工作原理,着重论述了硬件线路各个模块的设计思想。进而熟练掌握相关专业基础知识的综合应用,提高学生的实际动手和设计能力。 本系统是基于AT89C51系列单片机为核心的LED彩灯设计,实现8个LED灯变化方向和速度的可调。 关键词:单片机 独立式按键 LED1、总体设计方案本方案主要有硬件部分和程序部分构成。硬件部分主要由单片机最小系统和输入输出设备构成。 首先搭建单片机最小系统,包括电源电路,手动复位电路,时钟电路。时钟电路才用内部时钟方式,手动复位电路采用按键电平复位方式。再根据要求在P2口串接8个发光二极管作为输出设备,分别通过限流电阻接电源,在P3口串接2个独立按键,作为输入设备。通过独立按键控制LED灯的闪烁和移动及速率变化。同时在P1口连接一个数码管显示电路,用于自动计时,实现自动改变LED彩色流水灯的样式。 程序部分设定T0为定时工作方式,T0每隔一定的时间扫描独立按键,当检测到某个键按下时,在主函数中执行相应的程序。程序框图如图1所示:开始设置定时器工作方式开中断启动定时器判断count1的值,强制转换灯的闪烁样式判断count2的值确定速率数码管计时10s之后,自动改变样式图12、硬件原理2.1 AT89C51单片机简介:AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51单片机示意图VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指钟写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态, 特殊功能寄存器 初始态 特殊功能寄存器 初始态 ACC 00H B 00H PSW 00H SP 07H DPH 00H TH0 00H DPL 00H TL0 00H IP xxx00000B TH1 00H IE 0xx00000B TL1 00H TMOD 00H TCON 00H SCON xxxxxxxxB SBUF 00H P0-P3 1111111B PCON 0xxxxxxxB 8051的初始态(4-2-2)ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89S51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。3、 电路设计3.1整体仿真电路图如图2所示:图23.2各部分模块原理各模块原理介绍如下:3.2.1单片机最小系统首先搭建单片机最小系统,包括电源电路,手动复位电路,时钟电路。时钟电路才用内部时钟方式,手动复位电路采用按键电平复位方式。时钟电路用于产生AT89C51单片机工作时所必需的时钟信号。AT89C51单片机的内部电路在时钟信号的控制下,严格地按时序执行指令进行工作。复位是单片机的初始化操作,除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态,通过复位按键可使单片机重新启动。如图3所示:图33.2.2外围电路外围电路主要有输入设备和输出设备。输入设备主要由2个独立按键构成,如图4所示。输出设备由8个二极管构成,如图5所示,及七段数码管显示电路,如图6所示。其中s1键控制8个二极管的花样显示,s2控制8个二极管点亮的速率。数码管用于计时10s,10s之后自动转换二极管显示样式,如果10s之内有s1按键按下,则强制执行s1按键的内容。其中二极管的保护电阻的取值范围为220-880欧姆之间。 图4 图5s1键按一下,二极管从上往下单向点亮,哪个送入的是0,就点亮哪个灯,然后依次使0右移,实现依次点亮;按两下,二极管双向移动点亮;按三下,二极管4个交替闪烁;按四下,二极管8个交替闪烁;按五下,8个二极管依次点亮,依次熄灭;从而实现二极管的花样显示;s2键按下,通过延时程序,可以改变二极管点亮的速率。 图6数码管显示电路,通过往p1.0p1.6写入0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90会显示数字09,自动计时10s;如果10s之内没有按键按下,则10s之后,二极管自动改变显示样式,如果10s之内有按键按下,则强制执行按键内容。4 、核心代码本设计主要的模块就是输出设备中的8个二极管及七段数码管显示电路,分别如上图的5、6所示。4 .1 其中控制8个二极管花样点亮的程序如下,重点以花样1为说明:if(count1=1) /花样1: 灯单向向下移模块子程序 if(count2=1) rate=rate1; /如果s2键按一下,执行速率1 if(count2=2) rate=rate2; /如果s2键按两下,执行速率2 P2=0xfe; /给p2端口送入初值,这时D1点亮 delay(rate); temp=P2; for(i=0;i8;i+) /通过延时及循环,依次点亮D2D8 if(count1=1) temp=_crol_(temp,1); P2=temp; if(count2=1) /并随时判断是否有s2键按下 rate=rate1; if(count2=2) rate=rate2; delay(rate); if(i=7) i=0; 4 .2 七段数码管显示电路的程序如下:unsigned char code table210=0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90; /定义数码管0-9数字显示的表 void display(unsigned char j)P1= table2j/10; /通过片选使两位数码管分别显示数字,但是延时时间小,可以实现两位数码管同时显示 S3 = 1; delay(10); S3 = 0;P1= table2j%10; S4 = 1; delay(10); S4 = 0; 中断服务程序如下:void timer0() interrupt 1 TH0=(65536-50000)/256; /T0重新装初值 TL0=(65536-50000)%256; count+; display(table2index); if(table2index=0 & count=1) /如果数码管显示数字0时改变流水灯的样式 count1+; if(count1=6) count1=1; /如果五个花样显示完了之后,再按下按键S1或数码管计数到10时,再重新从花样1显示 if(count=20) /累加计数器的次数,如果到20次的话数码管数字通过查表自动加1显示 count=0; table2index=table2index+1; if(table2index=11) table2index=0; if(S1=0) /检测是否是S1按下 delay(5); /软件延时消抖 if(S1=0) /再次检测S1是否确实按下 table2index=0; count1+; /如果s1确实按下,则执行s1内容 while(!S1); /如果s1没有按下,继续执行原来的花样显示 if(count1=6) count1=1; if(S2=0) /检测是否是S2按下 delay(5); /软件延时消抖 if(S2=0) /再次检测S2是否确实按下 count2+; while(!S2); /如果s2没有按下,则继续执行原来的速率 if(count2=3) count2=1;5 、参考文献1 C语言程序设计教程科学出版社2 单片微型计算机与接口技术第四版,电子工业出版社3 单片机原理及应用机械工业出版社4 单片机实用系统设计技术国防工业出版社5 单片机应用系统设计北航出版社附件:附录一:电路原理图附录二:PCB仿真图附录三:源程序/目的:实现基于单片机的LED流水灯控制/语言:C; /变量: S1:P3.4口 S2:P3.5口 S3:P3.6口 S4:P3.7口 table1:流水灯样式控制 table2:数码管-9数字/变量:temp:临时变量i:临时变量table2index:存储table2的下标/变量:count:累加计数器次数 count1:累加单击第一个按键次数count2:累加单击第二个按键次数 /变量:rate:速度变量rate1:速度变量rate2:速度变量#include#includesbit S1=P34; sbit S2=P35;sbit S3=P36;sbit S4=P37;unsigned char code table19=0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00; /流水灯样式控制unsigned char code table210=0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90; /数码管-9数字 unsigned char temp,i,table2index=0;unsigned char count1=0,count2=0,count=0; unsigned char rate=100 ,rate1=100,rate2=500; /*/Begin-延迟 void delay(unsigned char z) unsigned int x,y; for(x=z;x0;x-) for(y=100;y0;y-);/End-延迟/*/Begin-数码管数字显示void display(unsigned char j) P1= table2j/10; S3 = 1; delay(10); S3 = 0; P1= table2j%10; S4 = 1; delay(10); S4 = 0; /End-数码管数字显示/*void main() P1=0xff; TMOD=0x01; /设置定时器T0为工作方式 TH0=(65536-50000)/256; /定时器赋初值 TL0=(65536-50000)%256; EA=1; /开总中断 ET0=1; /开启定时器T0中断 TR0=1; /启动定时器T0 while(1)/*/Begin-流水灯样式控制/Begin-花样 if(count1=1) /花样:灯单向向下移模块子程序 if(count2=1) rate=rate1; if(count2=2) rate=rate2; P2=0xfe;delay(rate); temp=P2; for(i=0;i8;i+) if(count1=1) temp=_crol_(temp,1); P2=temp; if(count2=1) rate=rate1; if(count2=2) rate=rate2; delay(rate); if(i=7) i=0; /End-花样 /* /Begin-花样 if(count1=2) /花样:灯双向移模块子程序 P2=0x7f; if(count2=1) rate=rate1; if(count2=2) rate=rate2; delay(rate); temp=P2; for(i=0;i7;i+) if(count1=2) temp=_cror_(temp,1); P2=temp; if(count2=1) rate=rate1; if(count2=2) rate=rate2; delay(rate); for(i=0;i7;i+) if(count1=2) temp=_crol_(temp,1); P2=temp; if(count2=1) rate=rate1; if(count2=2) rate=rate2; delay(rate); /End-花样/*/Begin-花样 if(count1=3) /花样:个交替闪烁模块子程序 P2=0xf0; if(count2=1) rate=rate1; if(count2=2) rate=rate2; delay(rate); P2=0x0f; if(count2=1) rate=rate1; if(count2=2) rate=rate2; delay(rate); if(count1=4) /花样:八个灯交替闪烁模块子程序 P2=0xff; if(count2=1) rate=rate1; if(count2=2) rate=rate2; delay(rate); if(count1=4) P2=P2; if(count2=1) rate=rate1; if(count2=2) rate=rate2; delay(rate); if(count1=5) /花
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年潍坊寿光综合医院(原寿光市人民医院)招聘专业技术人员(23名)模拟试卷及完整答案详解
- 2025河南新乡市延津县审计局招聘辅助审计人员5人考前自测高频考点模拟试题完整参考答案详解
- 2025年三明永安市事业单位专门面向驻军随军家属公开招聘考前自测高频考点模拟试题及参考答案详解
- 2025年山东出版集团有限公司山东出版传媒股份有限公司招聘(192名)考前自测高频考点模拟试题及完整答案详解
- 2025甘肃定西市岷县人力资源和社会保障局招聘城镇公益性岗位人员11人考前自测高频考点模拟试题及完整答案详解
- 2025年福建省泉州市丰泽区部分公办学校专项公开编制内17人考前自测高频考点模拟试题及答案详解(夺冠系列)
- 2025年芜湖安徽工程大学博士专职辅导员招聘2人模拟试卷及答案详解(必刷)
- 体考数学考试题库及答案
- 地质勘查员考试题库及答案
- 临漳医疗招聘考试题库及答案
- 广东省省级政务信息化服务预算编制标准(运维服务分册)
- 2022版义务教育语文课程标准小学语文学习任务群解读的七个维度
- 妊娠合并先心病指南解读专家讲座
- 雅思考试简介与评分标准
- GB/T 9460-2008铜及铜合金焊丝
- 第7课+李さんは+每日+コーヒーを+飲みます+知识点课件【知识精讲+拓展提升+迁移训练】 高中日语新版标准日本语初级上册
- FZ/T 52023-2012高强高模聚乙烯醇超短纤维
- 智慧教育云平台建设解决方案
- 统编版《始终坚持以人民为中心》ppt精品课件1(共19张PPT)
- 2022年国家公务员考试申论真题及答案(地市级)
- 西方法律思想史教案课件
评论
0/150
提交评论