跑马灯设计毕业论文文档格式.docx
《跑马灯设计毕业论文文档格式.docx》由会员分享,可在线阅读,更多相关《跑马灯设计毕业论文文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统,提供了一种灵活性高且价廉的方案。
外形及引脚排列如图1所示。
图1
1.2输入部分
由于向主控芯片输入信号前须先向各位写入1,所以设定输入时低电平有效。
该输入采用四个按键开关作为输入信号的载体,在软件程序中编写时,首先给P0.0-P0.3置高电平,在电路板中设置的低电平有效,则利用汇编语言的控制,可以实现按键开关的单击有效性。
(具体识别部分在程序中设定,详细部分将在第三章软件部分介绍)。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
1.3输出部分
输出只是对我们控制要求的一种验证或显示,可以有多种方式,在该设计使用的是6个发光二极管。
但由于二极管本身的击穿电压和额定电流都很低,所以将6个发光二极管串接一个6×
10M的排阻,排阻另一端接正VCC,这时要求使芯片的输出端为低电平有效就可以实现跑马灯了。
在本实验中,P1口的6个I/O口作为输出端。
即在程序中P1口为低电平时有效。
1.4时钟和复位
单片机本身是一个复杂的电路,要使这个芯片稳定高效的工作,也必须有个稳定的时钟电路。
AT89S52内有一个高增益反向放大器,只要外接一石英晶体振荡电路就可构成自激振荡,振荡频率由石英的振荡频率所决定,我们这里取12MHz。
复位电路采用按键复位就行了,具体时钟和复位电路见图2和图3。
图2图3
二、硬件设计
2.1总体电路介绍
该电路采用AT89S52作为主控芯片,其基本功能就是对每位按键进行单击后发光二极管会显示不同的发光个数及顺序,当按复位键后个发光二极管就会恢复到初始状态(全部都灭)。
其电路原理图如图4所示(见附录1)。
芯片的左边主要由三部分组成:
由四个SB按键分别并接在P0口的P0.0—P0.3的四个引脚上,构成的输入部分;
由按键复位电路构成的复位部分;
由晶体振荡电路构成的时钟电路。
芯片右边则是由6个发光二极管和电阻构成的显示部分。
其原理图封装图如附录1。
2.2AT89S52芯片的功能简介和引脚分配
2.2.1AT89C51的介绍
AT89C51是一种低功耗、高性能的且带有8KB可编程Flash存储器的8位MCU,它采用ATMEL的高密非易失存储器技术制造,并和工业标准MCS-51指令集和引脚结构兼容。
其内部功能结构框图如图5所示(见附录1):
它包括微处理器、存储器(存放程序指令或数据的ROM、RAM等)、输入/输出口(I/O口)及其他功能部件如定时/计数器、中断系统等。
它们通过地址总线、数据总线和控制总线连接起来。
2.2.2AT89C51内部主要功能
内部主要功能部件如下:
1)一个8位CPU;
2)一个内部振荡器和时钟电路,全静态操作:
0~33MHz;
3)8KB系统可编程Flash存储器;
4)256KB内RAM;
5)4个I/O端口共32线;
6)3个16位定时/计数器;
7)全双工串行口通道;
8)ISP端口;
9)定时监视器;
10)双数据指针(DPTR);
11)24个特殊功能寄存器。
2.2.3AT89C51主要特性
主要特性:
·
与MCS-51兼容
4K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
全静态工作:
0Hz-24MHz
三级程序存储器锁定
128×
8位内部RAM
32可编程I/O线
两个16位定时器/计数器
5个中断源
可编程串行通道
低功耗的闲置和掉电模式
片内振荡器和时钟电路
2.2.4AT89C51引脚分配和简介
AT89C51单片机有多种封装形式,常见的有DIP封装、PLC封装、TQFP封装,为了使用的方便通常使用DIP封装形式的单片机。
外部共有40个引脚,图6为引脚的排列图。
40个引脚大致可分为4大类:
电源、时钟、控制和I/O引脚,下面就以这四大类具体介绍。
1)电源
VCC——芯片电源引脚,接+5V;
GND——接地端。
2)时钟
时钟也即外部振荡器引脚,晶体振荡电路反向输入端和输出端。
XTAL1:
当外接晶振时,接外部晶振的一个引脚。
片内振向器组成,XTAL1为方向器的输入,当外部振荡器提供时钟信号时,则由XTAL1端输入。
XTAL2:
接外部晶振的另一个引脚,片内为单级反向器的输出。
当由外部时钟源提供时钟信号时,则本引脚浮空。
图6.AT89C51的引脚排列图
3)控制线
RST:
复位信号输入端。
振荡器起振时该引脚置高电平,并持续两个机器周期以上系统进行复位在定时监视器定时输出后引脚置成高电平并持续96个振荡周期。
特殊功能寄存器AUXR(地址8EH)中的DISRT0位可以使复位无效。
默认的DISRT0位状态,RST引脚上的高电平有效。
ALE//PROG:
ALE为地址锁存使能端,当访问外部器件时ALE的负跳变将P0口低8位地址送入锁存器。
在FLASH编程时输入编程脉冲(/PROG)。
在非访问外部器件期间,ALE仍以1/6振荡频率的常量输出,可用于外部计数或时钟信号。
当访问外部数据器件时将跳过一个ALE脉冲。
当对特殊功能寄存区的地址为8EH单元的D0位置“1”可禁止ALE输出,而只有在执行MOVX或MOVC等指令时才能被激活。
/PSEN:
访问外部程序存储器读选通信号。
在访问外部程序存储器读取指令码时,每个机器周期产生两次有效信号。
在执行片内程序存储器取指令码时不产生此脉冲,在读写外部数据时,亦不产生/PSEN信号。
/EA/VPP:
/EA为访问内部或外部程序存储器选择信号。
当/EA端保持高电平时,CPU首先从片内0000H单元开始执行内部程序存储器程序,如果外部还有扩展存储器,则CPU在执行完内部程序存储器程序时将会自动转向执行外部程序存储器程序。
4)I/O多功能引脚
P0口:
8位并行I/O口,作为输出口时,每个管脚可带8个TTL负载。
在外扩存储器时,它定义为低8位地址或数据总线,当定义为I/O口时,为准双向I/O口,需外接上拉电阻,在写入“1”后就成为高阻抗输入口。
P1口:
内接上拉电阻的8位准双向I/O口。
能负担4个TTL负载。
在FLASH编程和校验时定义为低8位地址线,他的第二功能如下:
表2.1P1口功能
引脚
功能
P1.0
定时/计数器,T2的外部计数输入
P1.1
定时/计数器,T2捕捉/再装入触发及方向控制
P1.5
MOSI(用于系统内部编程)
P1.6
MISO(用于系统内部编程)
P1.7
SCK(用于系统内部编程)
P2口:
当访问外部存储器时定义为高8位地址总线。
P3口:
它的第二功能如下:
表2.2P3口功能
功能
P3.0
RXD(串行接收端口)
P3.1
TXD(串行发送端口)
P3.2
/INT0(外部中断0请求端)
P3.3
/INT1(外部中断1请求端)
P3.4
T0(定时/计数器0外部计数输入端)
P3.5
T1(定时/计数器1外部计数输入端)
P3.6
/WR(外部数据写选通)
P3.7
/RD(外部数据读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
2.3振荡器特性
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
2.4芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
三、软件设计
3.1总体设计思想
在硬件设计完成后,将要面对的就是驱动程序,本设计的编程语言采用与AMTALATC51相兼容的汇编语言。
根据电路和控制要求的需要,该程序涉及主程序和延时程序。
主程序用以识别是哪个按键按下的,延时程序主要用于控制显示的延时。
程序原理框图以下将会介绍,具体程序见附录
该试验中用到的软件烧写软件是伟煌MCS51开发系统和TOP851编程器,以下将简单介绍该软件。
3.1.1伟煌MCS51开发系统简介
该学习开发板采用的是ISP在线系统可编程技术,完全白兔了单片机仿真器、编程器的束缚,大大降低了单片机学习开发的成本,使学者能在花费不多的时间内学好这一门新的技术。
这既是学习工具,也是编程工具,采用将编程电缆与实验板分离技术,能使学者将编程电缆用于其他用户板,完全实现了ISP技术。
目前,该开发板是性价比最高的开发板。
该开发板主要服务于AT89S51/52/53的各级用户,适用于大学在校生做课程设计、毕业设计使用;
也可为单片机开发者提供