电子系毕业论文Word格式.docx
《电子系毕业论文Word格式.docx》由会员分享,可在线阅读,更多相关《电子系毕业论文Word格式.docx(27页珍藏版)》请在冰豆网上搜索。
这类单片机都使用80C51的CPU内核及指令系统,且MCS-51系列中的8051成为许多半导体厂家。
电气公司竞相选用的对象并以其为基核,推出了许多兼容性的CHMOS单片机,且这些单片机都具有极好的兼容性,并有很强的生命力,统称80C51系列
MCS-51系列单片机产品有8051,8031,8751,80C51,80C31等型号(前三种为CMOS芯片,后两种为CHMOS芯片)。
它们的结构基本相同,其主要差别反映在存储器的配置上。
8051内部设有4K字节的掩模ROM程序存储器,8031片内没有程序存储器,而8751是将8051片内的ROM换成EPROM。
由ATMEL公司生产的89C51将EPROM改成了4K的闪速存储器,他们的结构大同小异。
·
MCS-51单片机内部结构
8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。
下图是MCS-51系列单片机的内部结构示意图2。
8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:
图1
1)中央处理器(CPU):
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
2)数据存储器(RAM):
8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
3)程序存储器(ROM):
8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。
4)定时/计数器(ROM):
8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
5)并行输入输出(I/O)口:
8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。
6)全双工串行口:
8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
7)中断系统:
8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。
TCON的中断标志:
位号76543210
TF1
TR1
TF0
TR0
IE1
IT1
IE0
TT0
字节地址:
88H
IT0:
外部中断INT0触发方式控制位。
IE0:
外部中断INT0中断请求标志位。
IE0=1时,表示INTO向CPU请求中断。
IT1:
外部中断INT1触发方式控制位。
IE1:
外部中断INT1中断请求标志位。
IE0=1时,表示INT1向CPU请求中断。
TF0:
定时/计数器T0益出中断请求标志位。
在T0启动后就开始由出值加1记数,直至最高位产生益出由硬件置位TF0,向CPU响应中断。
CPU响应中断时,TF0由硬件自动清0。
TF1:
定时/计数器T1益出中断请求标志位。
中断允许控制:
CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。
IE的状态可通过程序由软件设定。
某位设定为1,相应的中断源允许;
某位设定为0,相应的中断源屏蔽。
CPU复为时,IE各位清0,禁止所有中断。
IE寄存器:
位号76543210
EA
ES
ET1
EX1
ET0
EX0
A8H
EX0:
外部INT0中断允许位。
ET0:
定时/计数器T0中断允许位。
EX1:
外部INT1中断允许位。
ET1:
ES:
串行口中断允许位。
EA:
CPU中断允许(总允许)位。
第二章基于单片机AT89C51的99马表硬件系统
2.1、基于单片机AT89C51的99马表原理
2.1.1、主要功能:
1)开始时,显示“00”,第1次按下SP1后就开始计时。
2)第2次按SP1后,计时停止。
3)第3次按SP1后,计时归零。
图2-1基于单片机AT89C51的99马表原理图
2.1.2、系统板上硬件连线
1)
把“单片机系统”区域中的P1.0/AD0-P1.7/AD7端口分别用导连接到LED数码显示器U2的a-h端口上;
要求:
P1.0/AD0对应着a,P1.1/AD1对应着b,……,P1.7/AD7对应着h。
2)
把“单片机系统”区域中的P2.0/A8-P2.7/A15端口分别用导连接到LED数码显示器U1的a-h端口上;
P2.0/A8对应着a,P2.1/A9对应着b,……,P2.7/A15对应着h。
3)
把“单片机系统“区域中的P3.5/T1用导线连接到”独立式键盘“区域中的SP1端口上;
2.2、AT89S51的介绍
AT89S51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
如图2-2
图2-2AT89S51引脚图
2.2.1、主要特性
1)与MCS-51兼容
2)4K字节可编程闪烁存储器
3)寿命:
1000写/擦循环
4)数据保留时间:
10年
5)全静态工作:
0Hz-24Hz
6)三级程序存储器锁定
7)128*8位内部RAM
8)32可编程I/O线
9)两个16位定时器/计数器
10)5个中断源
11)可编程串行通道
12)低功耗的闲置和掉电模式
13)片内振荡器和时钟电路
2.2.2、管脚说明
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
p3口管脚备选功能
1)P3.0RXD(串行输入口)
2)P3.1TXD(串行输出口)
3)P3.2/INT0(外部中断0)
4)P3.3/INT1(外部中断1)
5)P3.4T0(记时器0外部输入)
6)P3.5T1(记时器1外部输入)
7)P3.6/WR(外部数据存储器写选通)
8)P3.7/RD(外部数据存储器读选通)
9)P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:
当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,EA将内部锁定为RESET;
当EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
2.2.3、振荡器特性
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
2.2.4、芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89S51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
2.3、基于AT89S51的99马表外围电路设计
2.3.1、复位电路
系统复位是任何微机系统的第一步,它能使整个控制芯片回到默认的硬件初始状态下。
复位对单片机来说,就是回到初始状态,程序计数器赋值0000H,为程序运行做好贮备工作。
1)复位的实现:
当在单片机的RST引脚上加上高电平并保持两个机器周期(24个始终震荡周期),就可以完成复位操作。
为了达到这个要求,可以使用很多方法,这里提供一种方法参考,其电路图如2-3所示。
+5V
1K10μF
按键
地
图2-3复位电路
这种复位电路的工作原理是:
通电时,电容两段相当于是短路,于是RST引脚上为高电平,然后电源通过电阻对电容充电,RST端电压慢慢下降,经过一段时间,达到低电平,单片机开始正常工作。
根据实际操作的经验,图1-2中复位电路的电容、电阻参考值分别为C=10uF,R1=1K
,R2=10K
。
2)单片机复位后的状态
单片机的复位操作使单片机进入初始化状态。
51单片机在系统复位时,将其内部的一些重要寄存设置为特定的值,其中包括使程序计数器PC为0000H,程序从0000H地址单元开始执行;
21个特殊功能寄存器复位后的状态为确定值;
P0、P1、P2、P3口输出高电平;
运行中的复位操作不改变内部RAM的数据,重新上电时片内RAM则为随机值,如表2-4所示。
表2-421个特殊功能寄存器复位后的状态
特殊功能寄存器
初始状态
A
00H
TMOD
B
TCON
PSW
TH0
SP
07H
TL0
DPL
TH1
DPH
TL1
P0—P3
FFH
SBUF
不定
IP
×
00000B
SCON
IE
0×
PCON
1PSW=00H:
表明选积存器0组为工作寄存组。
2SP=07H:
表明堆栈指针指向片内RAM07H字节单元。
3P0—P3=FFH:
表明已向各端口线写入1,此时,各端口既可用于输入用可用于输出。
4IP=XXX00000B:
表明各个中断源处于低优先级
5IE=0XX00000B:
表明各个中断均被关断。
6RST引脚的第二功能是作为备用电源的输入端,当主电源发生故障、电压值降低到规定的低电平时,+5V电源自动接入RST端,作为备用电源为系统供电,保证复位后能继续正常运行。
2.3.2、时钟电路
AT89C51片内设有一个由反向放大器所构成的振荡电路,XTAL1和XTAL2分别为振荡电路的输入和输出端,时钟可以由内部方式产生或外部方式产生。
内部方式时钟电路如图2-5所示。
在XTAL1和XTAL2引脚上外接定时元件,内部振荡电路就产生自激振荡。
定时元件通常采用石英晶体和电容组成的并联谐振回路。
晶振可以在1.2MHz到12MHz之间选择,电容值在5-30PF之间选择,电容的大小可起频率微调作用。
电容1晶振
电容2
图2-5内部方式时钟电路
外部方式的时钟很少用,若要用时,只要将XTAL1接地,XTAL2接外部振荡器就行。
对外部振荡信号无特殊要求,只要保证脉冲宽度,一般采用频率低于12MHz的方波信号。
时钟发生器把振荡频率两分频,产生一个两相时钟信号P1和P2供单片机使用。
P1在每一个状态S的前半部分有效,P2在每个状态的后半部分有效。
2.3.3、数码管
在数字需要用数字器件将数字、文字和符号直观地显示出来。
能够用来直观显示数字、文字和符号的器件称为显示器。
数字管器件的种类很多,按显示方式的不同,可分为字形重迭式、分段式样、点阵式;
按发光材料不同可分为荧光管显示器、半导体发光二极管显示器(LED)和液晶显示器(LCD)等。
本设计运用的是LED数码管。
LED数码显示器是一种由LED发光二极管组合显示字符的显示器件。
它使用了8个LED发光二极管,其中7个用于显示字符,1个用于显示小数点。
LED数码显示器有两种连接方法:
1)共阴极接法(如图2.2)。
把发光二极管的阳极连在一起构成公共阴极,使用时公共阴极接地,每个发光二极管的阳极通过电阻与输入端相连。
当阳极端输入低电平时,发光二极管就导通点亮,而输入高电平时则不点亮。
图2.2共阴极接线图
2)共阳极接法(图2.3)。
把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接地。
每个发光二极管的阴极通过电阻与输入端相连。
当阴极端输入高电平时,发光二极管就导通点亮,而输入低电平时则不点亮。
图2.3共阳极线路图
LED显示器的特点是清晰悦目﹑工作电压低(1.5~3V)﹑体积小﹑寿面长﹑响应速度快﹑颜色丰富(有红﹑绿﹑黄)﹑工作可靠.
表2-8LCD数码管显示字形与字段码关系
显示字形
共阳极字段码
共阴极字段码
C0H
3FH
9
90H
6FH
1
F9H
06H
a
88H
77H
2
A4H
5BH
b
83H
7CH
3
B0H
4FH
c
C6H
39H
4
99H
66H
d
A1H
5EH
5
92H
6DH
e
86H
79H
6
82H
7DH
f
8EH
71H
7
F8H
g(熄灯)
8
80H
7FH
2.3.4、键盘电路
1)键盘的结构与原理
触点式按键开关,起主要功能是把机械上的通断转换为电气上的逻辑关系(1和0)。
常见的种类有:
独立式按键和矩阵式键盘。
开始时,显示“00”,第1次按下SP1后就开始计时。
第3次按SP1后,计时归零。
第2次按SP1后,计时停止。
(图2-9键盘控制电路)
图2-9键盘控制电路
2)按键电路的抖动问题
由于按键是机械触点,当机械触点断开、闭合时,会有抖动,这种抖动对于人来说是感觉不到的,但对于计算机来说,则是完全可以感觉到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是个“漫长”的时间了。
为使CPU能正确地读出按键的状态,对每一次按键只作一次响应,就必须考虑如何去除抖动。
常用的去除抖动方法有两种:
硬件方法和软件方法。
单片机中常用软件法,软件法其实很简单,就是在单片机获得端口为低的信息后,不是立即认定开关已被按下,而是延时10ms或更长一些时间后再次检测该口,如果认为低电平,说明开关的确按下了,这实际上是避开了按键按下的抖动时间。
以上是消除键斗动的原则。
在本片电路中消除键的抖动是调用一个10ms的延时程序。
第三章基于AT89S51的99马表软件系统
3.1、基于单片机AT89S51的99马表汇编程序
3.1.1、基于单片机AT89S51的99马表流程图
1)主程序框图
T0中断服务程序框图
图4.17.2
3.1.2、基于单片机AT89S51的99马表汇编程序
TCNTAEQU30H;
初始化
TCNTBEQU31H
SECEQU32H
KEYCNTEQU33H
SP1BITP3.5
ORG00H;
主程序从00起
LJMPSTART
ORG0BH;
定时器0中断0BH起
LJMPINT_T0
START:
MOVKEYCNT,#00H;
按键统计为0
MOVSEC,#00H;
秒内容(32H)为0
MOVA,SEC;
显示秒内容
MOVB,#10
DIVAB
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVP1,A;
显示十位
MOVA,B
MOVP2,A;
显示个位
MOVTMOD,#02H;
选择8位定时工作方式;
工作方式2就具有自动重装载功能,即自动加载计数初值,所以也有的文献称之为自动重加载工作方式。
在这种工作方式中,16位计数器分为两部分,即以TL0为计数器,以TH0作为预置寄存器,初始化时把计数初值分别加载至TL0和TH0中,当计数溢出时,不再象方式0和方式1那样需要“人工干预”,由软件重新赋值,而是由预置寄存器TH以硬件方法自动给计数器TL0重新加载。
SETBET0
SETBEA
WT:
JBSP1,WT;
直接寻址位为1转移(按键按下时S