- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
单片机课程设计
题目基于单片机的流水灯设计
姓名:李坤呈
班级
学号:33
摘要:单片机是一种集成电路芯片,采用超大规模技术,把具有数据
处理能力的微处理器、随机存取数据存储器、只读程序存储器、输入输出电路、
可能还包括定时计数器、串口通信口、显示驱动电路,脉宽调制电路、模拟多路
转换器及A/D转换器等电路集成到一块芯片上,构成一个最小而完善的计算机系
统。这些电路在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任
务。
键控流水灯设计通过编写代码实现8个LED灯3种流水灯显示方式。在设计中主
要采用AT89C51这款芯片作为控制主体,用按钮来切换流水灯的发光方式来显示
流水灯的发光模式。系统通过P0口外接8个发光二极管,P3口接2个按键,一
个按键实现一种发光模式,并且两个按键有优先级。设计中辅以简单的设备和必
要的电路,设计了一款流水灯,最终达到预期的目的。
关键词单片机AT89C51LED键控流水灯
1引言
单片机控制系统能够取代以前利用复杂电子线路或者数字电路构成的控制
系统,可以软件控制来实现,并能够实现智能化。现在的单片机的控制范畴无所
不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,
单片机的应用领域越来越广泛。
2中断系统概述
1.中断概念:中断是指计算机在执行某一程序的过程中,由于计算机系统内、外
的某种原因,而必须中止原来程序的执行,转去执行相应的处理程序,待处理
结束之后,再回来继续执行被中止的原程序的过程。
2.中断作用:采用了中断技术后的计算机,可以解决CPU与外设之间速度匹配的
问题,使计算机可以及时处理系统中许多随机的参数和信息,同时,它也提高
了计算机处理故障与应变的能力。
3.中断的处理过程:分为四步,第一是中断请求,第二是中断响应,第三是中断
服务,第四是中断返回。
3总体设计
实现这个课题我使用AT89C51作为控制主体,使用八个共阳极发光二极管作
为LED显示流水灯,外接两个按钮,一个按键显示一种花样。外接一个晶振来提
供外接时钟脉冲。
模块图如下图所示
时钟模块显示模块
主控模块
复位模块按键模块
系统电路设计图
程序流程图
4模块设计
主体控制模块
芯片AT89C51是核心,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左右,二晶体振荡器的频率范围通常是1.2-12MHZ,晶体振
荡器的频率越高,振荡频率越高。
显示模块
显示模块主体是八个LED灯。都是接的高电平。当某段驱动电路的输出端为低
电平时,则该端所连接的字段导通并点亮。根据发光位置和个数的不同可显示出
各种花样。
5程序设计
C语言程序
#defineuintunsignedint
voiddelay(uintm)
{
uinti;
for(;m0;m--)
{
for(i=0;i124;i++)
{;}
}
文档评论(0)