欢迎来到天天文库
浏览记录
ID:18581945
大小:128.50 KB
页数:17页
时间:2018-09-19
《单片机课程设计文档》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单片机课程设计题目:简易流水灯系别:信息技术学院专业:计算机科学与技术班级:专升本1班学号:111112003111112006姓名:朱旭鹤于晶晶指导老师:陈向奎17目录摘要:3第一章绪论41、流水灯的设计背景4第二章系统设计41、系统设计要求42、流水灯设计的工作流程图5第三章系统主要工作原理61.时钟设计部分62.复位设计部分73.开关部分74.工作电路部分8第四章软件程序流程图91.单片机详细C51程序代码92.元器件说明133.仿真电路图14第五章工作总结和愿望15参考文献:16致谢1717摘要:51单片机是各单片机中最为典型和最有代表性的一种。这次设计是
2、通过对它的学习、应用,以AT89c51芯片为核心,辅以必要的电路,设计了一个简易的流水灯,它由4.5V直流电源供电,按照不同的要求,通过按钮控制点亮多个Led灯,并在顺序和频率上做出相应的改变,从而达到学习、设计、开发软、硬件的目的。关键词:单片机at89c51简易流水灯17第一章绪论1、流水灯的设计背景当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。虽然功能
3、简单,但是由于其操作简单得到了广泛的应用。第二章系统设计1、系统设计要求本设计要求采用AT89C51单片机,实现8只LED灯从上到下点亮、从下到上、从中间到两边、从两边到中间的“流水”效果。使用两个按钮控制,其中一个控制流水灯亮的方式,另一个控制流水灯亮的频率。当按下开关k0时,单片机产生有效信号从P2端口输出到led灯。Led灯根据相应的信号,灯亮的顺序发生相应变化。当按下开关k3时,单片机产生有效信号从P2端口输出到led灯。Led灯根据相应的信号,灯亮的频率发生相应变化。172、流水灯设计的工作流程图晶振电路单片机AT89C51灯亮按钮图1总体设计框图该系统
4、的设计在总体上分为以下几个部分:1单片机控制部分;2按键控制部分;3led灯输出部分。具体设计步骤如下:(1)按以上要求制定设计方案,并绘制出系统工作框图,绘制程序流程图;(2)按要求设计单片机的外围电路,给出电路原理图;(3)单片机仿真器等元器件正确可靠地连接;(4)利用仿真器进行程序设计与调试;17第三章系统主要工作原理1.时钟设计部分单片机必须在时钟的驱动下才能工作.在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。电路中两个电容C1,C2的作用有两个:一是帮助振荡器起振;二是对振荡器的
5、频率进行微调。C1、C2、晶振提供时钟信号。172.复位设计部分滤波电容提供复位,一端与接口9相连,另一端与接口31相连。电阻的作用是用于上电复位的,VCC以上电,由于电容两端电压不能突变,所以RST上为高电平,然后电容放电,RST就为低电平了3.开关部分按键输入的防抖设计17按键的触点在闭合和断开时均会产生抖动,这是触点的逻辑电平是不稳定的,如不妥善处理,将会引起按键命令的错误执行或重复执行。现在一般采用软件延时的方法来避开抖动阶段。防抖使用了nop指令,Nop指令为单周期指令,有晶振频率决定。K0控制灯亮的顺序当余数等于0时,为原始状态。当余数等于1时,灯亮顺
6、序从上到下。当余数等于2时,灯亮顺序从下到上。当余数等于3时,灯亮顺序从中间到两边。当余数等于4时,灯亮顺序从两边到中间。K3控制灯亮的频率时间初值设为250us,开关每按下时间减少50us,当减小到0时,再设置为300us。4.工作电路部分1)工作电路就是根据总的电路的指令,来反应工作情况。本电路的流水灯电路具体的如下:172)根据各个模块的功能及他们的信号传输,连接电路如下:第四章软件程序流程图1.单片机详细C51程序代码#include//此文件中定义了51的一些特殊功能寄存器#includesbitK0=P0^0;/
7、/闪烁方式把K0定义为P0^0口sbitK3=P0^3;//闪烁频率把K3定义为P0^3口unsignedintkey_num();//计算按键按下子程序“unsignedint"为无符号整型voiddelayms(unsignedcharms)//延时子程序"ms"决定延时时间的长短,ms值越大,延时时间越长{unsignedchari;while(ms--){for(i=0;i<120;i++);//延时程序,当执行时,每个周期i从零增加到120,所用的时间乘以ms的值,就是要延时的时间}17}voidmain(){unsignedcharLED;//定义无符
8、号字符型"
此文档下载收益归作者所有