《键控流水灯设计》word版

上传人:日度 文档编号:169468889 上传时间:2021-02-25 格式:DOC 页数:14 大小:252.50KB
返回 下载 相关 举报
《键控流水灯设计》word版_第1页
第1页 / 共14页
《键控流水灯设计》word版_第2页
第2页 / 共14页
《键控流水灯设计》word版_第3页
第3页 / 共14页
《键控流水灯设计》word版_第4页
第4页 / 共14页
《键控流水灯设计》word版_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《《键控流水灯设计》word版》由会员分享,可在线阅读,更多相关《《键控流水灯设计》word版(14页珍藏版)》请在金锄头文库上搜索。

1、单片机课程设计题目 基于单片机的流水灯设计 姓名:李坤呈 班级:11110201 学号:33摘 要:单片机是一种集成电路芯片,采用超大规模技术,把具有数据处理能力的微处理器、随机存取数据存储器、只读程序存储器、输入输出电路、可能还包括定时计数器、串口通信口、显示驱动电路,脉宽调制电路、模拟多路转换器及A/D转换器等电路集成到一块芯片上,构成一个最小而完善的计算机系统。这些电路在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。键控流水灯设计通过编写代码实现8个LED灯3种流水灯显示方式。在设计中主要采用AT89C51这款芯片作为控制主体,用按钮来切换流水灯的发光方式来显示流水灯的发光

2、模式。系统通过P0口外接8个发光二极管,P3口接2个按键,一个按键实现一种发光模式,并且两个按键有优先级。设计中辅以简单的设备和必要的电路,设计了一款流水灯,最终达到预期的目的。关键词 单片机AT89C51 LED 键控 流水灯1引言单片机控制系统能够取代以前利用复杂电子线路或者数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化。现在的单片机的控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。2中断系统概述1.中断概念:中断是指计算机在执行某一程序的过程中, 由于计算机系统内、 外的某种原因, 而必须中止原来程序的执行,

3、转去执行相应的处理程序, 待处理结束之后, 再回来继续执行被中止的原程序的过程。2.中断作用:采用了中断技术后的计算机, 可以解决CPU与外设之间速度匹配的问题, 使计算机可以及时处理系统中许多随机的参数和信息, 同时, 它也提高了计算机处理故障与应变的能力。3.中断的处理过程:分为四步,第一是中断请求,第二是中断响应,第三是中断服务,第四是中断返回。3总体设计实现这个课题我使用AT89C51作为控制主体,使用八个共阳极发光二极管作为LED显示流水灯,外接两个按钮,一个按键显示一种花样。外接一个晶振来提供外接时钟脉冲。模块图如下图所示系统电路设计图程序流程图4模块设计主体控制模块芯片AT89C

4、51是核心,P0、P3口均可以作为I/O口使用。八个LED灯接在AT89C51的P0口上,P3口的P3.2和P3.3分别接一个按键,P3.2口的按键实现八个LED灯闪烁五次,P3.3口的按键让LED灯循环右移。按键控制模块 按键控制模块采用独立式按键接口设计。独立式按键是每一个按键占用一根I/O端线。特点:各个按键相互独立,电路配置灵活;按键数量较多时,I/O端线耗费较多,电路复杂;软件结构简单。时钟模块时钟电路用于产生单片机工作时所需的时钟信号,在芯片的外部通过18脚、19脚接晶体振荡器和微调电容,形成反馈电路,构成一个稳定的自激振荡器。电路中的C1、C2取30Pf左右,二晶体振荡器的频率范

5、围通常是1.2-12MHZ,晶体振荡器的频率越高,振荡频率越高。显示模块显示模块主体是八个LED灯。都是接的高电平。当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮。根据发光位置和个数的不同可显示出各种花样。5程序设计C语言程序#includereg51.h#includeintrins.h#define uint unsigned intvoid delay(uint m)uint i;for(;m0;m-)for(i=0;i124;i+); void Timer0() interrupt 0static k;P0=0xff;for(k=0;k0;m-)for(i=0;i124

6、;i+); void shanshuo()unsigned int k;if(P3|0xfb)!=0xff)P0=0xff;for(k=0;k10;k+) P0=P0; delay(1000);void main()unsigned char g=0xfe;unsigned char outdata=0x7f;for(;)P0=g;shanshuo();if(P3|0xf7)!=0xff)while(1)shanshuo(); P0=outdata; shanshuo(); outdata=_cror_(outdata,1); shanshuo(); delay(1000); shanshuo

7、(); g=_crol_(g,1);shanshuo();delay(1000);shanshuo();张老师,这个没有用中断的c语言程序利用for语句和if语句的相互嵌套,实现了中断里面的优先次序,但系统的灵活性还是没有用中断的程序好,但这个程序也是我花时间写出来的,当时就是想,能不能不用中断也实现这样的功能,虽然这个程序没有按要求做,但我还是想写在这里,毕竟这也是我的成果,希望老师能理解。6系统的调试与仿真 当没有发生中断时,八个LED灯是循环左移闪亮的当INTO发生中断时,八个LED灯闪烁五次当INT1发生中断时,八个LED灯是循环右移闪亮的对于这次的调试,比上次的情况好多了,开始做汇编

8、语言的时候,仿真时,系统循环左移老是不对,总是两个灯一起移动,后来我在网上查阅相关资料,大幅修改了左移函数,最终达到了想要的结果;做c语言调试时,大问题不多,主要是语法有很多错误,这都是我编程时的疏忽大意,经过修改,也同样实现了该功能。7学习的感想与收获8对老师的意见与建议对于单片机这门课,我认为作为一个老师来说,要教好一个学生这是一个挑战,但张老师做得很好,也很到位,我认为我听得还挺明白,但我对老师的课也有一些建议:老师您的课堂大致可分为两部分,第一部分是纯粹的讲单片机理论,比如讲一节课的定时或者中断,第二部分就是叫大家自己把第一节课的PPT上的程序仿真出来,然后给老师您看。对于第一个部分,

9、我认为每个老师都会这样做,主要是第二部分,第二部分无非就是给出程序,然后叫大家仿真出来,这是非常简单的,就是按步骤执行就可以做出来,因为最难做的程序是给好的。而我希望第二部分能有一些改进,比如老师您可以基于上节课讲的一个单片机系统马上给出一道与之类似的题,在第二节课的45分钟里带着大家,和大家一起来做这个系统,我们大家一起来一步一步完成这个系统,而这个过程重点就是讲编程,即一边带着大家一起编程,一边讲解汇编语言,这样效果比纯粹讲一节课的汇编语言更有效,就相当于在课堂上实现了实践。另外我认为同学们多多少少有一点c语言基础,讲c语言编程的话会更容易懂,但指令系统还是不得不用汇编语言。以上就是我对老师的意见与建议,如果有什么语言不当,没有礼貌的地方,还希望老师理解和见谅。我期望的成绩:优秀 (注:本资料素材和资料部分来自网络,仅供参考。请预览后才下载,期待您的好评与关注!)

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

当前位置:首页 > 中学教育 > 中学学案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号