




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、职业技术学院毕业设计说明书(论文)设计(论文)题目:_彩灯循环控制系统 专 业:_ 电子信息工程技术 班 级:_ 电信07级1班_ _学 号:_ _ _姓 名:_ _ _指导教师: _ _二九年十二月二十六日目录摘要1第1章 绪论21.1 单片机的简介21.2 单片机的应用领域21.3 单片机的发展趋势2第2章 彩灯硬件电路框架设计32.1 彩灯功能描述32.2 硬件电路设计框架32.3 系统硬件单元电路设计及论证42.3.1 晶振电路42.3.2 复位电路42.3.3 错误报警电路42.3.4 开关电路52.3.5 发光电路5第3章 彩灯系统软件设计63.1 程序设计框图63.2 子程序设计
2、和功能介绍63.2.1 延时程序63.2.2 初始化函数73.2.3 彩灯循环方式控制程序83.2.4 中断服务程序10第4章 系统调试134.1 软件调试134.2 硬件调试13第5章 毕业设计总结15参考文献16附录1 彩灯电路总图及元器件清单17附录2 彩灯整体程序18 四川信息职业技术学院毕业设计说明书(论文)第0页摘要单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(cpu)。随着单片机技术的飞速发展,各种单片机蜂拥而至,单片机技术已成为一个国家现代化科技水平的重要标志。单片机可单独地完成现代工业控制所要求的智能化控制
3、功能,这是单片机最大的特征。单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化。现在单片机控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。本毕业设计的课题是“彩灯循环控制系统的设计”。主要考核我们对单片机技术,编程能力等方面的情况。观察独立分析、设计单片机的能力,以及实际编程技能。关键字: 单片机;彩灯;循环;控制 四川信息职业技术学院毕业设计说明书(论文)第21页第1章 绪论1.1 单片机的简介单片机是单片微型计算机的简称,也就是把微处理器(cpu),随机存取数据存储器(ra
4、m),只读程序存储器(rom),输入输出电路(i/o口),还包括定时计数器,串行通信口(sci),显示驱动电路(lcd或led驱动电路),脉宽调制电路(pwm),a/d转换器等电路集成到一块单块芯片上,构成一个最小然而完善的计算机系统。这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。由此来看,单片机是可单独地完成现代工业控制所要求的智能化控制系统,这是单片机最大的特征。1.2 单片机的应用领域目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下
5、几个范畴:1.在智能仪器仪表上的应用2.在工业控制中的应用3.在家用电器中的应用4.在计算机网络和通信领域中的应用5.单片机在医用设备领域中的应用1.3 单片机的发展趋势现在可以说单片机是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流c51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:1.低功耗cmos化2.微型单片化3.主流与多品种共存第2章 彩灯硬件电路框架设计2.1 彩灯功能描述本次毕业设计主要完成功能有:(1)当按下开关
6、key1时,彩灯依次一个一个点亮。(2)当按下开关key2时,彩灯每两个间隔点亮。(3)当按下开关key3时,彩灯灯全部闪烁。(4)当按下开关(顺序)时,以上3种点亮方式依次执行一次。(5)当按下暂停开关时,保持彩灯当前状态,松开开关时,继续运行。(6)当按下中断开关时,说明彩灯系统出错了,所有红灯亮,喇叭报警。(通过中断假设出故障)(7)当按下复位开关时,彩灯系统恢复到最初状态。2.2 硬件电路设计框架根据设计要求,彩灯硬件电路框图设计如图2-1所示:rst p1口x1 p2口x2单片机 p3.2、p3.3 p0.1p0.4p0.0晶振电路彩灯发光电路错误报警电路复位电路开关电路图2-1彩灯
7、设计框图从框图中可以看出本次毕业设计单元电路包括了由32只不同颜色组成的发光电路、12mhz晶振组成的晶振电路、复位电路、错误报警电路、开关电路。2.3 系统硬件单元电路设计及论证2.3.1 晶振电路c1xtla1xtla2c2单片机工作所需要的时钟信号有两种产生方式,即内部时钟方式和外部时钟方式。图是内部时钟方式,改图中电容c1和c2取33pf,晶体的振荡频率取12mhz,晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。其实际连接如图2-2所示:图2-2晶振电路2.3.2 复位电路复位电路如图2-3所示。当单片机一上电,立即复位。电容c和电阻实现上电自动复位。复位也是使单片机推出
8、低功耗工作方式而进入正常状态的一种操作。图2-3复位电路2.3.3 错误报警电路错误报警电路(如图2-4)的设计仅仅由一个发声装置构成,其主要的作用是当系统发出错误中断信号时,向p0.0口提供一个高电平,报警电路进行错误报警。图2-4 错误报警电路2.3.4 开关电路开关电路(如图2-5)的设计由6个独立的开关按钮组成,它们分别提供6个不同的中断信号,使彩灯完成不同的闪烁效果。 图2-5 开关电路2.3.5 发光电路红、黄、绿、蓝等色彩的发光二极管32只,各接一个限流电阻便设计出如图2-6所示的彩灯发光电路。图2-6 部分彩灯连接原理图第3章 彩灯系统软件设计3.1 程序设计框图有无按钮按下调
9、用延时函数调用彩灯循环函数结束yyny开始初始化有无中断请求条件真假调用中断服务函数n本次程序设计采用的是c语言程序设计,其设计框图如图3-1所示:图3-1 程序设计框图3.2 子程序设计和功能介绍3.2.1 延时程序void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=120;y0;y-);程序中定义了一个返回值为空的delay函数,里含一个形参无符号整型变量z,还定义了无符号整型变量x、y,通过一个二重for循环,完成多次空操作,从而实现延时功能。3.2.2 初始化函数void init()/定义一个返回值为空的init函数ea=1;/开放所有
10、中断ex0=1;/允许外部中断0中断it0=1;/外部中断0的中断触发方式控制位置1,设置外部中0为边沿触发方式et0=1;/允许t0中断(定时器/计数器t0的输出中断允许位)tr0=0;/停止定时器/计数器0th0=(65536-30000)/256;tl0=(65536-30000)%256;ex1=1;/允许外部中断1中断it1=0;/将外部中断1的中断触发方式控制位置0,即设置外部中断1为电平触发方式px1=1;/将外部中断1中断优先级控制位置1et1=1;/允许t1中断tr1=0;/停止定时器/计数器1th1=(65536-50000)/256;tl1=(65536-50000)%2
11、56;p1=0xff; p2=0xff;/将p1口和p2口置1,在p1口和p2口引脚时,应先向锁存器写1 temp1=0x7f;temp2=0x7f;cnt=8;aa=0;bb=0;key_int1=1;key1=1;key2=1;key3=1;key4=1;temp_int1=key_int1;temp_key1=key1;temp_key2=key2;temp_key3=key3;temp_key4=key4;beep=1;flag=0;/分别对temp1、temp2、cnt、aa、bb、key_int1、key1、key2、key3、key4、temp_int1、temp_key1、te
12、mp_key2、temp_key3、temp_key4、beep、flag赋值该函数名为init,该段程序主要是对中断优先级、一些中断控制位、某些变量等进行初始化赋值。3.2.3 彩灯循环方式控制程序1.循环方式1void fun1()cnt=8; temp1=0x7f;temp2=0x7f; /对cnt、temp1、temp2进行赋值while(cnt!=0)/while循环,若cnt不等于0循环继续,否则,跳出循环cnt-;/变量cnt自减1temp1=_crol_(temp1,1);delay(500);/调用延时子函数p2=0xff; /对p2口置1p1=temp1; /将temp1的
13、值赋给p1口temp2=_crol_(temp2,1); /将temp2右移1位 delay(500);/调用延时子函数p1=0xff; /对p1口置1 p2=temp2; /将temp2的值赋给temp2p1=0x0ff; p2=0x0ff; /分别对p1、p2口置1设计的此段程序的功能是实现依次一个一个的被点亮。2.循环方式2void fun2()temp1=0xaa;temp2=0xaa; /将二进制数10101010赋给temp1、temp2tr0=1; /启动定时器/计数器0while(tr0=1);/while循环,当tr0等于1时,进行循环p1=0x0ff;p2=0x0ff; /
14、对p1口和p2口置1设计此段程序实现的功能是每隔两个间隔点亮一个灯。3.循环方式3void fun3()temp1=0x0;temp2=0x0; /将0赋给temp1、temp2,驱动彩灯发光tr1=1; /启动定时器/计数器1while(tr1=1); /while循环,若tr1等于1,进行循环p1=0x0ff;p2=0x0ff; /对p1口和p2口置1设计此段程序是为了实现彩灯的全部闪烁。3.2.4 中断服务程序1.外部中断0服务程序void _ex0_() interrupt 0 while(1) /while循环,条件真即为1,便循环p1=0x77;p2=0xee; /对p1口和p2口
15、赋值beep=!beep;/对beep的值进行取反delay(100);/调用延时函数此段程序定义了一个返回值为空的_ex0_函数,关键字interrupt后面的0表示终端号,即表示的外部中断0,中断向量地址为0003h。2.定时器0中断服务程序void _et0_() interrupt 1th0=(65536-50000)/256;/将计算出的值赋给定时器0的高8位tl0=(65536-50000)%256;/将计算出的值赋给定时器0的低8位aa+; /aa的值自加1if(aa!=20)/判断aa的值是否等于20,若不得,则执行循环p1=temp1;p2=temp2;/将temp1、tem
16、p2的状态值赋给temp1、temp2temp1=_cror_(temp1,1);temp2=_cror_(temp2,1);/temp1、temp2右移1位delay(500);/调用延时函数else /当aa的值等于20时aa=0;/将0赋给aatr0=0;/停止定时器/计数器0th0=(65536-50000)/256;tl0=(65536-50000)%256;此段程序定义了一个返回值为空的_et0_函数,关键字interrupt后面的1表示终端号,即表示定时器0,中断向量地址是000b h。3.外部中断1服务程序void _ex1_() interrupt 2px1=0;px0=1;
17、/设置外部中断1、外部中断0的优先级temp_int1=key_int1;/将key_int1的值赋给temp_int1while(temp_int1=0)/while循环,若temp_int1的值等于0,循环temp_int1=key_int1;/将key_int1的值赋给temp_int1px0=0;px1=1;/设置外部中断0、外部中断1的优先级此段程序定义了一个返回值为空的_ex1_函数,关键字interrupt后面的2表示终端号,即表示外部中断1,其中断向量地址为0013h。4.定时器1中断服务程序void _et1_() interrupt 3th1=(65536-50000)/2
18、56;tl1=(65536-50000)%256;bb+;if(bb!=20)p1=temp1;p2=temp2;temp1=temp1;temp2=temp2;delay(500);else bb=0;tr1=0;th1=(65536-50000)/256;tl1=(65536-50000)%256;此段程序定义了一个返回值为空的_et1_函数,关键字interrupt后面的3表示终端号,即表示定时器1,其中断向量地址为001bh。第4章 系统调试单片机硬件和软件调试的工具分别为:protues 和keil c51调试软件。4.1 软件调试单片机软件调试主要是调试本次课程设计的主程序。其调试
19、过程如下:(1)新建一个工程。单击project菜单,在弹出的下拉菜单中选new project。(2)然后选择你要保存的路径,输入工程文件的名字,保存。(3)新建一个工程后弹出一个对话框,根据你的需要选择你使用的单片机型号。然后点击确定。(4)单击“file”,选择“new”,新建文件并在其中输入程序代码,然后保存为c语言文件。(5)回到编辑界面后,单击“target 1”前面的“+”号,然后在“source group 1”单击右键选择“add file to group source group 1”,选中test.c文件。(6)单击“project”菜单,选中“built target
20、”,完成程序的编译,在工程文件夹中找到*.hex文件即可。4.2 硬件调试单片机硬件调试是检测在设计电路时,电路中存在的一些缺陷,故硬件调试是必不可少的,其步骤大致如下:(1)打开软件protues,将设计好的单片机硬件电路打开。(2)在确定电路已经连接完成后,双击at89c51单片机加入*.hex文件。(3)单击软件最左下方的play按钮。若无异常,当按下某一按键时,能完成以下功能时,则表示设计调试通过。(1)当按下开关key1时,彩灯依次一个一个点亮。(2)当按下开关key2时,彩灯每两个间隔点亮。(3)当按下开关key3时,彩灯灯全部闪烁。(4)当按下开关(顺序)时,以上3种点亮方式依次
21、执行一次。(5)当按下暂停开关时,保持彩灯当前状态,松开开关时,继续运行。(6)当按下中断开关时,说明彩灯系统出错了,所有红灯亮,喇叭报警。(通过中断假设出故障)(7)当按下复位开关时,彩灯系统恢复到最初状态。第5章 毕业设计总结大学三年就会在这最后的毕业设计总结划上一个圆满的句号。我曾经以为时间是一个不快不慢的东西,但现在我感到时间过的是多么的飞快,三年了,感觉就在一眨眼之间结束了我的大学生涯。最能把理论知识运用到实践当中的过程就数毕业设计了。在整个毕业设计的过程中每一步都是自己亲自做过的,遇到的问题也非常多,在经过遇到问题,思索问题到解决问题的过程中,收获是最多的。以往没有注意到的问题,都
22、在这一次的毕业设计中得以体现,这培养了我的细心,耐心和专心。我觉得能够在这次的毕业设计中学到很多的东西,以往不注意的细节,在这一次中是必须让自己去注意的。也是我这三年来所学到知识的一个体现。我深深知道,每一次的学习实践环节都是那么的来之不易,都是通过老师的深思熟虑后,才给我们定下目标。然后让我们在知识的海洋里翱翔,让我们随着年龄的增长不断的扩充自己的知识领域,也逐渐成熟,逐渐长大,老师同时也教导我们逐渐成为一个能够为身边的人,为家庭,为国家做出点点贡献的人,教导我们学会感恩。所以,我在这次的毕业设计中,认真对待每一个过程,希望自己的认真,自己最后的毕业设计的成果能够回报老师这么多年来的教导,这
23、么多年的奉献。最后,由于理论方面所学有限,理解又不好,再加之动手能力的匮乏,在这次毕业设计中难免会有错误,还望老师批评指正。参考文献1林志琦.单片机原理接口及应用.北京:中国水利水电出版社,20072胡辉.单片机原理与应用.北京:中国水利水电出版社,20073赵文博.单片机语言c51程序设计.北京:人民邮电出版社,20054谭浩强.c程序设计.北京:清华大学出版社,1991附录1 彩灯电路总图及元器件清单元器件清单:at89c51一个、按键7个、发光二极管32只(不同色)、石英晶振器1个、电容2个、极性电容1个、电阻和导线若附录2 彩灯整体程序#include /将51单片机的寄存器包含在头文
24、件中#include /将内部函数包含在头文件中#define uint unsigned int/宏定义,用uint代替unsigned int(无符号整型变量)#define uchar unsigned char/宏定义,用uchar代替unsigned char(无符号字符变量)uchar temp_int1;uchar temp1;uchar temp2;uchar temp_key1;uchar temp_key2;uchar temp_key3;uchar temp_key4;/定义无符号字符变量temp_int1、temp1、temp2、temp_key1、temp_key2、
25、temp_key3、temp_key4uint cnt;uint aa;uint bb;uint flag;/定义无符号整型变量cnt、aa、bb、flagsbit key1=p02;sbit key2=p03;sbit key3=p04;sbit key4=p01;sbit key_int1=p33;sbit beep=p00;/用key1、key2、key3、key4、key_int1、beep代替p02、p03、p04、p01、p33、p00/延时函数void delay(uint z)/定义了一个返回值为空的delay函数,里含一个形参无符号整型变量z uint x,y;/定义了无符号
26、整型变量x、y for(x=z;x0;x-) for(y=120;y0;y-);/二重for循环,外循环循环z(z的值在delay函数被调用时得到)次,内循环循环120次,其循环语句均为空操作,从而实现延时功能/初始化函数void init()/定义一个返回值为空的init函数ea=1;/开放所有中断ex0=1;/允许外部中断0中断it0=1;/外部中断0的中断触发方式控制位置1,即设置外部中0为边沿触发方式et0=1;/允许t0中断(定时器/计数器t0的输出中断允许位)tr0=0;/停止定时器/计数器0th0=(65536-30000)/256;tl0=(65536-30000)%256;e
27、x1=1;/允许外部中断1中断it1=0;/将外部中断1的中断触发方式控制位置0,即设置外部中断1为电平触发方式px1=1;/将外部中断1中断优先级控制位置1et1=1;/允许t1中断tr1=0;/停止定时器/计数器1th1=(65536-50000)/256;tl1=(65536-50000)%256;p1=0xff; p2=0xff;/将p1口和p2口置1,因为在p1口和p2口引脚时,应先向锁存器写1 temp1=0x7f;temp2=0x7f;cnt=8;aa=0;bb=0;key_int1=1;key1=1;key2=1;key3=1;key4=1;temp_int1=key_int1
28、;temp_key1=key1;temp_key2=key2;temp_key3=key3;temp_key4=key4;beep=1;flag=0;/分别对temp1、temp2、cnt、aa、bb、key_int1、key1、key2、key3、key4、temp_int1、temp_key1、temp_key2、temp_key3、temp_key4、beep、flag赋值/彩灯方式1void fun1()cnt=8;temp1=0x7f;temp2=0x7f;while(cnt!=0)cnt-;temp1=_crol_(temp1,1);delay(500);p2=0xff;p1=temp1;temp2=_crol_(temp2,1); delay(500);p1=0xff; p2=temp2;p1=0x0ff;p2=0x0ff;/彩灯方式2void fun2()temp1=0xaa;temp2=0xaa;tr0=1;while(tr0=1);p1=0x0ff;p2=0x0ff;/彩灯方式3void fun3()temp1=0x0;temp2=0x0;tr1=1;while(tr1=1); p1=0x0ff;p2=0x0ff;/主函数void main() init(); while(1) temp_key1=key1;tem
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五商铺物业委托管理合同(含社区健康管理与医疗支持)
- 二零二五年校园环境卫生管理与绿化合同
- 二零二五年度农村土地承包经营权与农村社会保障合作合同
- 二零二五年度夜店酒吧员工安全协议与安全教育培训费用合同
- 2025年度电动车买卖协议模版
- 二零二五年度知识产权法律风险管理顾问合同
- 二零二五年度武汉房屋租赁合同物业管理约定
- 二零二五年度摩托车第三者责任保险合同
- 《物流系统分析》课件 项目九-任务三 (一)车辆路径优化模型1
- 2025年包头a2货运资格证模拟考试
- 2025年黑龙江民族职业学院单招职业技能测试题库必考题
- 统编版语文八年级下册全册大单元整体教学设计表格式教案
- QC成果提高大跨度多节点曲面钢桁架一次安装合格率
- 国家电网有限公司十八项电网重大反事故措施(修订版)
- 环氧乙烷固定床反应器课程设计
- 班、团、队一体化建设实施方案
- 如何建构结构性思维 课后测试
- 施工方案(行车拆除)
- 开网店全部流程PPT课件
- 《春》带拼音
- 中国银行_境外汇款申请表模板(练手)
评论
0/150
提交评论