




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
专业综合设计基于单片机的流水灯的设计与制作II专业综合设计任务书一、设计题目:基于单片机的炫彩流水灯的设计与制作二、设计目的1、掌握单片机的的基本原理及利用I/O口输入输出功能 ;2、掌握LCD动态扫描显示驱动电路设计的方法;3、掌握利用proteus进行软件仿真及对单片机器件进行程序下载的方法。三、设计任务及要求 设计并实现流水灯。下载芯片:AT89C52。流水灯具有以下基本功能:1、从P1.0-1.7逐个点亮,再由P1.7-P1.0逐个点亮,进入2模式;2、从P1.0、P1.1-P1.6、1.7两两点亮,并返回P1.0,进入3模式;3、从p1.0、P1.7一起向中间点亮直到全亮,再由中间2个先灭,直到全灭,返回1模式;4、利用LCD显示学号姓名;四、设计时间及进度安排设计时间共三周(2011.12.20-2012.1.6),具体安排如下表:时间安排进度安排设计时间第一阶段收集、查阅相关资料,综合讨论最终的决绝方案2011年12月20日-2011年12月22日第二阶段购买所需的所有元器件,完成硬件电路的设计与制作,包括PCB的制作、电路的焊接及初步的调试工作;软件程序的编写与调试2011年12月23-2011年12月29日第三阶段后期的系统调试以及撰写作品说明书和设计2011年12月30日-2012年1月2日第四阶段参加作品演示与答辩2012年1月3日-2012年1月6日五、指导教师评语及学生成绩指导教师评语:年 月 日成绩指导教师(签字):目录专业综合设计任务书I第一章专业综合设计的目的- 1 -第二章 任务描述及设计方案- 1 -2.1任务描述- 1 -2.2设计方案- 1 -第三章 硬件设计方案- 2 -3.1流水灯控制系统电路原理图- 2 -3.2 单片机功能说明- 2 -第四章 程序设计方案- 5 -4.1 程序流程图- 5 -4.2 仿真电路图- 5 -结论- 6 -参考文献- 7 -附件1 PCB电路图- 7 -附录2 源程序清单- 7 -第一章 专业综合设计的目的 设计是学生理论联系实际的重要实践教学环节,是对学生进行的一次综合性专业设计训练。通过专业综合设计使学生获得以下几方面能力,为毕业设计(论文)奠定基础。1、进一步巩固和加深学生所学一门或几门相关专业课(或专业基础课)理论知识,培养学生设计、计算、绘图、计算机应用、文献查阅、报告撰写等基本技能;2、培养学生实践动手能力及独立分析和解决工程实际问题的能力;3、培养学生的团队协作精神、创新意识、严肃认真的治学态度和严谨求实的工作作风。 一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。学习单片机的最有效方法就是理论与实践并重,现在我把单片机流水灯设计作为一个课程设计,需要更深的去了解单片机的很多功能,努力的去查找资料,当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。第二章 任务描述及设计方案2.1任务描述设计并实现流水灯。下载芯片:AT89C52。流水灯具有以下基本功能:1、从P1.0-1.7逐个点亮,再由P1.7-P1.0逐个点亮,进入2模式;2、从P1.0、P1.1-P1.6、1.7两两点亮,并返回P1.0,进入3模式;3、从p1.0、P1.7一起向中间点亮直到全亮,再由中间2个先灭,直到全灭,返回1模式;4、利用LCD显示学号姓名;2.2设计方案实现此功能有两种方案,一种是使用传统的模拟电路,另一种是用单片机控制的电路。我们选择单片机控制系统。其中系统工作原理为:在上个程序中我们是逐个控制P1端口的每个位来实现的,因此程序显得有点复杂,下面我们利用循环移位指令,采用循环程序结构进行编程。我们在程序一开始就给P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后延时一段时间,再让这个数据向高位移动,然后再输出至P1口,这样就实现“流水”效果啦。由于8051系列单片机的指令中只有对累加器ACC中数据左移或右移的指令,因此实际编程中我们应把需移动的数据先放到ACC中,让其移动,然后将ACC移动后的数据再转送到P1口,这样就可以实现“流水”效果。 第三章 硬件设计方案如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。3.1流水灯控制系统电路原理图图 3-1 流水灯系统工作原理图3.2 单片机功能说明 按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.255.50V的电压工作范围和024MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的硬件组成的单个单片机。其具体硬件组成如图3-1所示。单片机时钟电路通常有两种形式:3.2.1、内部振荡方式:MCS-51单片机片内有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。把放大器与作为反馈元件的晶体振荡器或陶瓷谐振器连接,就构成了内部自激振荡器并产生振荡时钟脉冲(如图3-1所示)。3.2.2、外部振荡方式:外部振荡方式就是把外部已有的时钟信号引入单片机内(如图3-2所示)。 图3-1 内部振荡方式图 图3-2 外部振荡方式3.2.3、两种复位电路单片机复位电路包括片内、片外两部分。外部复位电路就是为内部复位电路提供两个机器周期以上的高电平而设计的。MCS-51单片机通常采用上电自动复位和按键手动复位两种方式。如图3-3所示。3.2.4、单片机复位后的状态单片机运行出错或进入死循环时,可按复位键重新运行。 图3-3 几种复位电路3.2.5、时钟电路 系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。3.2.6、复位电路复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路,如图所示。当时钟频率选用6MHz时,C取22F,Rs约为200,Rk约为1K。3.2.7、中断服务程序说明与每类I/O设备相关的进程都有一个靠近内存底部的地址,称作中断向量。 它包括中断服务程序的入口地址。中断服务程序:处理器处理“急件”,可理解为是一种服务,是通过执行事先编好的某个特定的程序来完成的,这种处理“急件”的程序被称为中断服务程序。当中央处理器正在处理内部数据时,外界发生了紧急情况,要求CPU暂停当前的工作转去处理这个紧急事件。处理完毕后,再回到原来被中断的地址,继续原来的工作,这样的过程称为中断。实现这一功能的部件称为中断系统,申请CPU中断的请求源称为中断源,单片机的中断系统一般允许多个中断源,当多个中断源同时向CPU请求中断时,就存在一个中断优先权的问题。通常根据中断源的优先级别,优先处理最紧急事件的中断请求源,即最先响应级别最高的中断请求。 中断处理过程: (1)保护被中断进程现场。为了在中断处理结束后能够使进程准确地返回到中断点,系统必须保存当前处理机程序状态字PSW和程序计数器PC等的值。 (2)分析中断原因,转去执行相应的中断处理程序。在多个中断请求同时发生时,处理优先级最高的中断源发出的中断请求。 (3)恢复被中断进程的现场,CPU继续执行原来被中断的进程。3.2.8、C51 定时器0说明M/机器周期=初值;TH0=(65536-初值)/256; TL0=(65536-初值)%256;将(65536-初值)所得的值化成16进制,其高位就是TH0的值,低位为TL0的值例如用12M晶振做1ms定时计算如下:机器周期=12/12*106=1us(微秒)定时初值=(1*10-3)/(1*10-6)=1000;所以:TH0=(65536-1000)/256;(求模运算,即可求出高八位的值) TL0=(65536-1000)%256;(求余运算,因为低八位最大能装255)将65536-1000=64536化为16进制为:0xFC18TH0=0xFC;TL0=0X18;如流水灯初值设置:12MHz除12为1MHz,也就是说一秒=1000000次机器周期。50ms=50000次 机器周期。65536-50000=15536(3cb0)TH0=0x3c,TL0=0xb0.第四章 程序设计方案4.1 程序流程图开始设置初始值数据输出左移一位延时 图 4-1 主程序流程图4.2 仿真电路图在proteus软件仿真之前必须在Proteus里面画出硬件的外部接线图,接下来装入程序,然后组建生成HEX文件,接下来就可以运行仿真了,如图4-2。图4-2仿真图结论通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。而安排课程设计的基本目的,是在于通过理论与实际的结合、人与人的沟通,进一步提高思想觉悟和领悟力。尤其是观察、分析和解决问题的实际工作能力。它的一个重要功能,在于运用学习成果,检验学习成果。运用学习成果,把课堂上学到的系统化的理论知识,尝试性地应用于实际设计工作,并从理论的高度对设计工作的现代化提出一些有针对性的建议和设想。检验学习成果,看一看课堂学习与实际工作到底有多大距离,并通过综合分析,找出学习中存在的不足,以便为完善学习计划,改变学习内容与方法提供实践依据。实际能力的培养至关重要,而这种实际能力的培养单靠课堂教学是远远不够的,必须从课堂走向实践。这也是一次预演和准备毕业设计工作。通过课程设计,让我们找出自身状况与实际需要的差距,并在以后的学习期间及时补充相关知识,为求职与正式工作做好充分的知识、能力准备,从而缩短从校园走向社会的心理转型期。课程设计促进了我系人才培养计划的完善和课程设置的调整。课程设计之后,我们普遍感到不仅实际动手说,这应该是个警示,在剩下的大学生活里,我应该好好珍惜,好好学习各方面的知识。在单片机方面也是了解了一些些,我相信这次课程设计会对我以后的工作通过这次单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为自己的东西。参考文献1 李华,王思明.单片机原理及应用.兰州:兰州大学出版社,2001.52 陈宁.单片机技术项目教程. 南京:南京东南大学出版社,2008.43 胡辉.单片机原理及应用设计.中国水利水电出版社,2006.64 何立民.单片机高级教程.北京:北京航空航天大学出版社, 2000.5 王幸之,钟爱群AT89系列单片机原理与接El技术北京:北京航空航天大学出版社20046万文略,赵利.单片机原理.重庆:重庆大学出版社,2010.4.附件1 PCB电路图附录2 源程序清单#include /#include #define uchar unsigned char#define uint unsigned int#define lcm P1 sbit p_csl=P24;sbit p_csr=P23;sbit p_di=P22; sbit p_rw=P21;sbit p_e=P20;sbit p_rst=P27;uchar code HZ;uchar code Ez;unsigned char t=0,i=0;code unsigned char LED=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7e,0x3c,0x18,0x00,0x18,0x3c,0x7e;/*函数声明*/void delay(uint k);void wcode(uchar c,uchar csl,uchar csr);void wdata(uchar c,uchar csl,uchar csr);void set_statrline(uchar i);void set_xy(uchar x,uchar y);void dison_off(uchar o);void reset();void lcd_init(void);void lw(uchar x,uchar y,uchar dd);/写数据函数void disp_Hz(uchar xx,uchar yy,uchar n,uchar fb);void disp_Ez(uchar xx,uchar yy,uchar n,uchar fb);void disp_num(unsigned long num);void disp_name(unsigned char n);/延时void delay(uint k)uint i; for(;k0;k-) for(i=0;i124;i+) ; /LCM忙判断void lcd_busy(void)p_di=0; p_rw=1; /*lcm=0xff; while(1) p_e=1; if(lcm0x80) break; p_e=0; p_e=0;*/写指令到LCMvoid wcode(uchar c,uchar csl,uchar csr)p_csl=csl; p_csr=csr; lcd_busy(); p_di=0; p_rw=0; lcm=c;/将变量C赋予LCM p_e=1; p_e=0;/写数据到LCM子函数void wdata(uchar c,uchar csl,uchar csr)p_csl=csl; p_csr=csr; lcd_busy(); p_di=1; p_rw=0; lcm=c;/将变量C赋予LCM p_e=1; p_e=0;/设定起始行void set_startline(uchar i)i=0xc0+i; wcode(i,1,1);/定位X方向,Y方向void set_xy(uchar x,uchar y)x=x+0x40; y=y+0xb8; wcode(x,1,1); wcode(y,1,1);/屏幕开启、关闭void dison_off(uchar o)o=o+0x3e; wcode(o,1,1);/复位子函数void reset()/delay(1000); p_rst=0; delay(20); p_rst=1; delay(20);/LCM初始化void lcd_init(void)uchar x,y; reset(); dison_off(0); for(y=0;y8;y+) for(x=0;x=64) set_xy(x-64,y); wdata(dd,0,1); else set_xy(x,y); wdata(dd,1,0); /显示汉字子函数void disp_Hz(uchar xx,uchar yy,uchar n,uchar fb)/xx为该行第xx个字,共8字,yy为第几行,共8行。uchar i,dx; for(i=0;i16;i+) dx=HZ2*i+n*32; /2*i为选择偶数行,因其为列扫描 if(fb) dx=255-dx;/反白显示lw(xx*16+i,yy,dx);dx=HZ(2*i+1)+n*32;if(fb) dx=255-dx;lw(xx*16+i,yy+1,dx); void disp_Ez(uchar xx,uchar yy,uchar n,uchar fb)/显示数字或英语 uchar i,dx; for(i=0;i8;i+) dx=Ez2*i+n*16; if(fb) dx=255-dx;lw(xx*8+i,yy,dx);/ dx=Ez(2*i+1)+n*16;if(fb) dx=255-dx;lw(xx*8+i,yy+1,dx); /*主函数*/void main()lcd_init();disp_name(3); / disp_num(807050223);TMOD=0x11;/定时器0在模式1TL0=(-50000)%256;/定时器每50ms产生一次溢出TH0=(-50000)/256;ET0=1;/使能定时器0中断EA=1;/使能总中断TR0=1;/开始计时while(1); void tiemerO() interrupt 1 TL0=(-50000)%256;/定时器TH0=(-50000)/256;t+; if(t=20) t=0; P3=LEDi; if(i+=21) i=0;uchar code HZ=0x00,0x40,0x00,0x30,0xFC,0x0F,0x44,0x00,0x54,0x7D,0x54,0x25,0x54,0x25,0x55,0x25,0xFE,0x27,0x54,0x25,0x54,0x25,0xF4,0x7D,0x44,0x00,0x44,0x00,0x00,0x00,0x00,0x00,/*,0*/0x00,0x40,0x00,0x30,0xFE,0x0F,0x12,0x21,0x12,0x41,0xFE,0x3F,0x20,0x20,0x1C,0x21,0x10,0x21,0x10,0x21,0xFF,0x3F,0x10,0x21,0x10,0x21,0x10,0x21,0x00,0x20,0x00,0x00,/*,1*/0x00,0x00,0xFE,0xFF,0x02,0x04,0x22,0x08,0x5A,0x04,0x86,0x03,0x00,0x00,0xFE,0x3F,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0xFE,0x3F,0x00,0x00,0x00,0x00/*,2*/;/数字uchar code Ez=0x00,0x00,0xE0,0x0F,0x10,0x10,0x08,0x20,0x08,0x20,0x10,0x10,0xE0,0x0F,0x00,0x00,/*0,0*/0x00,0x00,0x10,0x20,0x10,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,/*1,1*/0x00,0x00,0x70,0x30,0x08,0x28,0x08,0x24,0x08,0x22,0x88,0x21,0x70,0x30,0x00,0x00,/*2,2*/0x00,0x00,0x30,0x18,0x08,0x20,0x88,0x20,0x88,0x20,0x48,0x11,0x30,0x0E,0x00,0x00,/*3,3*/0x00,0x00,0x00,0x07,0xC0,0x04,0x20,0x24,0x10,0x24,0xF8,0x3F,0x00,0x24,0x00,0x00,/*4,4*/0x00,0x00,0xF8,0x19,0x08,0x21,0x88,0x20,0x88,0x20,0x08,0x11,0x08,0x0E,0x00,0x00,/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 自动化销售预测创新创业项目商业计划书
- 电商数据加密系统创新创业项目商业计划书
- 海外汽车设计工作室探访创新创业项目商业计划书
- 海外汽车市场动态创新创业项目商业计划书
- 2025年甘肃培黎职业学院招聘考试笔试试题(含答案)
- 自动化医学影像分析创新创业项目商业计划书
- 2025年游戏化营销助力餐饮品牌传播:案例分析与效果评估报告
- 2025年新能源微电网在能源互联网中的稳定性风险评估报告
- 2025年职业教育创新模式深度分析报告
- 辽宁省大连市庄河高级中学2026届高一化学第一学期期中联考模拟试题含解析
- 《飞机结构与系统》课件-机翼结构
- 渠道维护工考试题库考点
- DL-光伏发电站电能质量检测技术规程
- 《开开心心上学去》公开课课件
- 游戏传媒策划方案
- 变压器油色谱分析(详细超值版)
- 青少无人机科普教育方案课件
- 文物安全培训课件
- 传播学概论课件
- 大于号小于号等于号田字格描红
- 普通心理学第六版PPT完整全套教学课件
评论
0/150
提交评论