课程设计基于单片机的跑马灯控制系统设计1Word文件下载.docx
《课程设计基于单片机的跑马灯控制系统设计1Word文件下载.docx》由会员分享,可在线阅读,更多相关《课程设计基于单片机的跑马灯控制系统设计1Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
摘要.................................................................................................................................................2
绪论.................................................................................................................................................4
第一章本设计意义和主要任务、内容概述.............................................................................5
1.1设计内容概述....................................................................................................................5
1.2设计的主要任务................................................................................................................5
1.3设计要求............................................................................................................................5
第二章系统总体方案及硬件电路设计.....................................................................................6
2.1AT89C51的硬件结构........................................................................................................6
2.2AT89C51的工作模式.........................................................................................................9
2.3AT89C51程序存储器的加密............................................................................................10
2.4数码管显示原理...............................................................................................................10
2.5单片机控制原理...............................................................................................................12
2.6硬件电路设计...................................................................................................................13
第三章系统的软件设计..............................................................................................................14
3.1程序流程图.......................................................................................................................14
3.2定时/计数器.....................................................................................................................15
3.3程序代码...........................................................................................................................15
第四章总结................................................................................................................................16
致谢................................................................................................................................................17
附录................................................................................................................................................18
参考文献........................................................................................................................................22
绪论
在生活和生产的各领域中,凡是有制动控制要求的地方都会有单片机的身影出现;
从简单到复杂,从空中、地面带地下,凡是能想象到的地方几乎都有使用单片机的需求。
现在尽管单片机的应用已经很普遍了,但仍有许多可以用单片机控制而没有实现的项目,因此,单片机的应用大有想象和拓展空间。
单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保真安全等。
但是单片机应用的意义绝不仅限于它的广阔范围以及所带来俄经济效益上,更重要的意义还在于:
单片机的应用正从根本上改变者传统的控制系统设计思想和设计方法。
从前必须有模拟电路或数字电路实现的大部分功能,现在已能使用单片机通过软件方法来实现了。
这种以软件取代硬件并提高系统系能的控制系统‘‘软化’’技术,称之为微控制技术。
微控制技术是一种全新的概念,是对传统控制技术的一次革命。
随着单片机应用的推广普及,微控制技术必将不断发展、日益完善和更加充实。
在众多的微控技术中,我选择了较为熟悉的AT89Z51单片机,由于按键硬件去抖效果逊色于软件去抖,所以我选用软件去抖,根据任务书描述的功能设计的外围资源较少,而LED电路接到I0口的方法。
总体下来软、硬件都较为简易,这样设计时,成功率课大大增高。
第一章本设计的意义和主要任务
1.1设计内容概述
本设计选择采用AT89C51单片机为核心。
AT89C51是一个低电压、高性能CMOS8位单片机带有K字节的可反复擦写的程序存储器。
和128字节的存取数据存储器RAM,这种器件采用ATMEL公司的高密度、不容易丢失存储技术生产,并且能够与MCS-51系列的单片机兼容。
片内含有8位中央处理器和闪烁存储单位,有较强的功能的AT89C51单片机能够被应用到控制领域中
AT89C51提供以下的功能标准:
4K字节闪烁存储器,128字节随机存取数据存储器,32个I/O口,2个16位定时/计数器,1个5向量两级中断结构,1个串行通信口,片内振荡器和时钟电路。
另外,AT89C51还可以进行OHZ的静态逻辑操作,并支持两种软件的节电模式。
闲散方式停止中央处理器的工作,能够允许随机存取数据存储器、定时/计数器、串行通信口及中断系统继续工作。
掉电方式保存随机存取数据存储器中的内容,但振荡器停止工作并禁止其它所有部件的工作直到下一个复位。
1.2设计任务
选择采用AT89C51单片机为核心,使用简单的程序实现跑马灯显示效果设计。
1.3设计要求
实现16个红色LED的亮、灭显示等。
安排3个按键,其中一个按键用于控制16只LED灯模式的输出,另二个用于控制16只LED灯速度的输出。
最后还有1个7段共阴数码管,用于显示模式,根据显示模式的变化,16只LED灯循环显示不同,还用于显示速度的大小,显示的数字越大,则16只LED灯流动的更快,否则就慢。
第二章系统总体方案及硬件电力设计
2.1AT89C51的硬件结构
AT89C51共有40条引脚,引脚排列如图2-1所示。
图2-1AT89C51的引脚排列图
AT89C51主要特性如下:
1.与MCS-51兼容。
2.4K字节可编程闪烁存储器。
3.寿命:
1000写/擦循环。
4.数据保留时间为10年。
5.全静态工作为OHz-24MHz。
6.三级程序存储器锁定。
7.128乘18位内部RAM。
8.32可编程I/O线。
9.两个16位定时器/计数器。
10.5个中断源。
11.可编程串行通道。
12.低功耗的闲置和掉电模式。
13.片内振荡器和时钟电路。
PO口为了一个8位漏极开路双向I/O口,每脚课吸收8TTL门电流。
当PO口的管脚第一次写1时,被定义为高阻输入。
PO能够用于外部程序数据存储器,它可被定义为数据/地址的第八位。
在FIASH编程时,PO口作为原码输入口,当FIASH进行校验时,PO输出原码,此时PO外部必须被拉高。
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器嫩接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口为一个内部上拉电阻的8位双向I/O口,P2缓冲器可接收,输出4个TTL门电流,当P2口被写‘‘1’’时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入是,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址高八位。
在给出地址‘‘1’’时它利用内部上位优势,当对外部八位地址数据存储器进行续写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入‘‘1’’后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口:
P3.0RXD(串行输入口);
P3.1TXD(串行输出口);
P3.2/INT1(外部中断0);
P3.3/INT1(外部中断1);
P3.4T0(记时器0外部输入);
P3.5T1(记时器1外部输入);
P3.6/WR(外部数据存储器写选通);
P3.7/RD(外部数据存储器选通)。
表2-1P3口第二功能列表
端口引脚
第二功能
P3.0
RXD
P3.1
TXD
P3.2
INTO
P3.3
INT1
P3.4
T0
P3.5
T1
P3.6
WR
P3.7
RD
RST为复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ATL/PROG为当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期书出正脉冲信号,此频率为振荡器频率的1/6,因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0.此时ALE只有在执行MOVX,MOVX指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,位置无效。
PSEN为外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP为当/EA保持低电平时,则在此期间外部程序存储器,不管是否有内部程序存储器,注意加密方式1时,/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部存储器。
在FLASH编程期间,次引脚也用于施加12V编程电源(VPP)。
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端,这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自然振动器。
外接石英晶体及电容C1,C2接在放大器的反馈回路中构成并联振荡电路。
对外接电容C1,C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。
如果使用石英晶体,我们推荐电容使用30PF+_10PF,而如果使用陶瓷振荡器建议选择40PF+-10PF。
用户也可采用外部时钟。
采用外部时钟的电路如图所示。
这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。
由于外部时钟信号是通过一个二分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。
2.2AT89C51的工作模式
AT89C51共用2种工作模式,分别为闲散节电模式和掉电模式。
下面进行介绍。
AT89C51有两种可用软件编程的省电模式,它们是闲散模式和掉电工作模式。
这两种方式是控制专用寄存器PCON中的PD和IDL位来实现的。
PD是掉电模式,当PD=1时,激活带掉电工作模式,单片机进入掉电工作状态。
IDL是闲散等待方式,当IDL=1,激活闲散工作状态,单片机进入睡眠状态。
如需要同时进入两种工作模式,即PD和IDL同时为1,则先激活掉电模式。
在闲散工作模式状态,中央处理器CPU保持睡眠状态,而所有片内的外设仍保持激活状态,这种方式由软件产生。
此时,片内随机存取数据存储器和所有特殊功能寄存器的内容保持不变,闲散模式可由任何允许的中断请求或硬件复位终止,终止闲散工作模式的方法有两种,一是任何一条被允许中断的事件激活,IDL被硬件清除,即刻终止闲散工作模式。
程序会首先影响中断,进入终端服务程序,执行完中断服务程序,并紧随RETI指令后,下一条要执行的指令就是使单片机进入闲散工作模式,那条指令后面的一条指令。
二是通过硬件复位也可将闲散工作模式终止,需要注意的是:
当硬件复位来终止闲散工作模式时,中央处理器CPU通常是从激活空闲模式那条指令的下一条开始继续执行程序的,要完成内部复位操作,硬件复位脉冲要保持两个机器周期有效,在这种情况下,内部禁止中央处理器CPU访问内RAM,而允许访问其它端口,为了避免可能对端口产生的意外写入:
激活闲散模式的那条指令后面的一条指令不应是一条对端口或外部存储器的希望如指令。
在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在中指掉电模式前被冻结。
退出掉电模式的唯一方法是硬件复位,复位后将从新定义全部特殊功能寄存器但不改变RAM中的内容,在VCC恢复到正常工作电平前,复位应无效且必须保持一定时间以使振荡器从新启动并稳定工作。
闲散和掉电模式外部引脚状态如表2-2所示。
模式
程序存储器
ALE
PSEN
P0
P1
P2
P3
闲散模式
内部
1
数据
浮空
地址
掉电模式
外部
0
0
表2-2闲散和掉电模式外部引脚状态
2.3AT89C51程序存储器加密
AT89C51可使用对芯片上的三个加密位LB1,LB2,LB3进行编程(P)或不编程(U)得到如表2-3所示。
程序加密位
保护类型
U
没有程序保护功能
2
P
禁止从外部程序存储器中执行MOVC指令读取内部程序指令存储器的内容
3
P
除上表功能外,还禁止程序校验
4
除以上功能外,同时禁止外部执行
表2-3程序加密位的配置工作,被锁存的EA电平与这个引脚当前辑电平一致。
机密位只能通过整片擦除的方法清除
当LB1被编程时,在复位期间,EA端的电平被锁存,如果单片机上电后一直没有复位,锁存起来的初始值是一个不确定数,这个不确定数会一直保存到真正位置。
为了是单片机正常2.4数码管显示原理
数码管实际上是由7个发光管组成8节字形构成的,加上小数点就是8个,我们分别把它们命名为a、b、c、d、e、f、g。
图2-2数码管内部结构图
假设我们显示一个数字2,那么a、b、g、e、d这5个段的发光管两就可以了,c、f、h不亮,同时由于接法为共阴接法,那么为低电平时灭,为高电平是亮。
从高往低排列,P1.7-P1.0写成二进制为01011011,把他转化为16进制则为0x5b。
我们可以根据硬件的接线把数码管显示数字编制成一个表格,见下表,以后直接调用就行了。
显示
P聱1.7小数点
P1.6g
P1.5小f
P1.4e
P1.3d
P1.2c
P1.1b
P1.0a
16进制代码
0x3f
0x06
1
0x5b
0x4f
0x66
5
0x6d
6
0x7d
7
0x07
8
0x7f
9
0x6f
a
0x77
b
0x7c
c
0x39
d
0x5e
e
0x7b
f
0x71
-
0x40
表2-4共阴极数码管显示
数码管的接口有静态和动态两种接口。
静态接口为固定显示方式,无闪烁,其电路可采用一个并行口接一个数码管,数码管的公共端按共阳接VCC,本次课程设计由于所需数码管较多,故不可用些种方法接线。
这种接法占用接口多,仅能接少量数码管。
动态接口采用各数码管循环轮流显示的方法,当循环显示的频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出,另一个接口完成各数码管的轮流点亮,本设计采用此方法。
2.5单片机控制原理
图2-5可调控的跑马灯电路原理图
2.6硬件电路设计
本设计使用AT89C51芯片作为控制芯片,利用P0口和P1口共连接16个发光二极管,且P0口还连接了一个7段数码管,还有P2口1脚、2脚、3脚分别连接了3个按键。
按键是用来控制跑马灯的显示模式和跑马灯的运行速度,数码管是用来显示跑马灯运行模式,应用PROTEUS软件画出电路原理图如2-6所示。
图2-6所示可以调控的跑马灯原理图
第三章系统的软件设计
由设计给出的功能要求,并结合硬件电路图设计和资源分配,来进行软件设计。
步骤为先画出软件流程,然后根据流程图在Keiluvision3开发环境下使用C语言进行编写代码和仿真调试,最后在手中已有的51开放板上进行脱机实验。
进过不断修改之后,代码趋于完善。
3.1程序流程图
图3-1所示程序流程图
3.2定时/计数器
可调控的跑马灯其实就是