基于80C51单片机的倒计时器docWord格式.docx
《基于80C51单片机的倒计时器docWord格式.docx》由会员分享,可在线阅读,更多相关《基于80C51单片机的倒计时器docWord格式.docx(13页珍藏版)》请在冰豆网上搜索。
![基于80C51单片机的倒计时器docWord格式.docx](https://file1.bdocx.com/fileroot1/2023-1/1/654e0ab3-2c86-472a-adce-65113974a7be/654e0ab3-2c86-472a-adce-65113974a7be1.gif)
数码显示器显示出来,体现本倒计时系统的功能。
由于数码管的段选、位选和4*4
的矩阵键盘的输入输出都是接到P0.0~P0.3口,以需要锁存器来锁存不同时刻不同模块需要的P0.0~P0.3
的值。
本系统由于数码显示器的8个二极管和位的选择的状态均由SST89E516RD的P0.0~P0.7来决定,所以需要锁存器在需要的时候为其锁定相应的值,从而使显示器正确显示倒计时,如果没有锁存器则会出现很多错误并且不能实现功能.同理,锁存器的功能也是一样的,判断矩阵键盘的输出值从而判断按下的键,实现键盘扫描原理的功能。
2.1、80C51
单片机结构
单片机通常是指芯片本身,它是有芯片制造商生产的,在它上面集成的是一些作为基本组成部分的运算器电路、控制器电路、存储器、中断系统、定时器/计数器以及输入/输出口电路等。
但一个单片机芯片并不能把计算机的全部电路都集成到其中,例如组成谐振电路和复位电路的石英晶体、电阻、电容等,这些元件在单片机系统中只能以散件的形式出现。
此外,在实际的控制应用中,常常需要扩展外围电路和外围芯片。
从中可以看到单片机和单片机统的差别:
单片机只是一块芯片,而单片机系统则是在单片机芯片的基础上扩展其它电路或芯片构成的具有一定应用功能的计算机系统。
通常所说的单片机系统都是为实现某一控制应用需要由用户设计的,是一个围绕单片机芯片而组建的计算机应用系统。
在单片机系统中,片机处于核心地位,是构成单片机系统的硬件和软件基础。
不同型号MCS-51单片机CPU处理能力和指令系统完全兼容,只是存储器和I/O接口的配置有所不同。
其中8051主要包括算术/逻辑部件ALU、累加器A、只读存储器ROM、随机存储器RAM、程序计数器PC、定时器/计数器、I/O接口电路等,还有堆栈寄存器SP等部件。
这些部件集成在一块芯片上,通过内部总线连接,构成完整的微型计算机。
2.2、80C51芯片介绍
80C51的原生产厂商是Intel公司,最早推出80C51芯片的也是Intel公司,并且作为MCS-51的一部分,按原MCS-51芯片的规则命名,如80C31、80C51、87C51和89C51,这样我们就能很容易地认识80C51的系列芯片。
但后来愈来愈多的厂商生产80C51的系列芯片,例如PHILIPS,ATMEL,LG,华邦等公司。
这些芯片都是以80C51为核心并与MCS-51芯片兼容,但它们又各具特点。
然而由于生产厂家多,芯片的类型也很多,使芯片的命名无法再遵循统一规律,造成我们辨认上的困难。
目前这些80C51的兼容芯片已开始在我国使用,其中尤其是PHILIPS公司的同名芯片80C51及其派生产品最受欢迎,而ATMEL公司的闪速存储器型单片机芯片AT89C51等.更是后来居上,大有取代传统EPROM型芯片之势。
80C51芯片内部集成了CPU、RAM、ROM、定时/计数器和I/O口等各功能部件,并由内部总线把这些部件连接在一起。
80C51单片机内部包含以下一些功能部件:
①一个8位CPU;
②一个片内振荡器和时钟电路;
③4KBROMM(80C51有4KB掩膜ROM,87C51有4KBEPROM,80C31片内有无ROM);
④128B内RAM;
⑤可寻址64KB的外ROM和外RAM控制电路;
⑥两个16位定时/计数器;
⑦21个特许功能寄存器;
⑧4个8位并行I/O口,共32条可编程I/O端线;
⑨一个可编程全双工串行口;
⑩5个中断源,可设成2个优先级。
3.1、
80C51单片机的引脚功能
MCS-51系列单片机芯片均为40条引脚,HMOS工艺制造的芯片用双列直插(DIP)方式封装,各引脚功能说明如下:
Vcc(40脚):
接+5V电源正端。
Vss(20脚):
接+5V电源地端。
P0口(39-32):
P0口为8位漏极开路双向I/O口,每引脚可吸收8个TTL门电流;
P1口(1-8):
P1口是从内部提供上拉电阻器的8位双向I/O口,P1口缓冲器能接收和出4个TTL门电流;
P2口(21-28):
P2口为内部上拉电阻器的8位双向I/O口,P2口缓冲器可接收和输出4个TTL门电流;
P3口(10-17):
P3口是8个带内部上拉电阻器的双向I/O口,可接收和输出4个TTL门电流,P3口也可作为AT89C51的特殊功能口;
P3口各口线与专用功能:
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:
外RAM写选通信输出端;
P3.7——RD:
外RAM读选通信号输出端。
上述4个I/O口,各有各的用途。
在不并行扩展外存储器\时,4个I/O口都可作为双向I/O口用。
在并行扩展外存储器(包括并行扩展/O口)时,P0口专用于分时传送低8位地址信号和8位数据信号,P2口专用于传送高8位地址信号。
P3口根据需常用于第二功能,可提供给用户使用的I/O口是P1口和一部分未用作第二功能的P3口端线。
3.2、80C51单片机的中断
80C51的中断系统有5个中断源(8052有6个),2个优先级,可实现二级中断嵌套。
4个用于中断控制的寄存器IE、IP、TCON和SCON——用于控制中断的类型、中断的开/关和各种中断源的优先级别。
5个中断源有两个中断优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序的嵌套。
3.2.1、8051单片机的5个中断源包括:
INT0、INT1引脚输入的外部中断源,三个内部中断源(定时器T0、T1
的一处中断源和串行口的发送/接受中断源)。
(1)、IT0(TCON.0)外部中断0(INT0)触发方式控制位。
IT0=0时,外部中断0程控为电平触发方式;
IT0=1时外部中断0为边沿触发方式。
当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。
(2)IT1(TCON.2)外部中断1(INT1)请求类型控制位。
IT1=0时,外部中断1程控为电平触发方式;
IT1=1时外部中断1为边沿触发方式。
当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置1,向CPU申请中断。
(3)、TF0(TCON.5)片内定时/计数器T0溢出中断申请位,TF0实际上是T0中断触发的一个输出端。
T0被允许计数以后,从初值开始加1计数,当产生溢出时置TF0=1,向CPU
请求中断,直到CPU响应该中断时才由硬件清0。
(4)、TF1(TCON.7)片内定时/计数器T1溢出中断申请位。
定时器T1被允许计数后,初值开始加1计数,当产生溢出时置TF1=1,向CPU请求中断,直到CPU响应该中断时才由硬件清0。
(5)、RI(SCON.0)或TI(SCON.1)串行口中断请求标志位。
当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。
4.1.、硬件设计
4*4矩阵式键盘识别显示系统概述矩阵式键盘模式以N个端口连接控制N*N个按键,实时在LED数码管上显示按键信息。
显示按键信息,省下了很多的I/O端口为他用,相反,独立式按键虽编程简单,但占用I/O口资源较多,不适合在按键较多的场合应用。
并且在实际应用中经常要用到输入数字、字母、符号等操作功能,如电子密码锁、电话机键盘、计算器按键等,至少都需要12到16个按键。
矩阵式键盘简介:
矩阵式键盘又称行列键盘,它是用N条I/O线作为行线,N条I/O线作为列线组成的键盘。
在行线和列线的每个交叉点上设置一个按键。
这样键盘上按键的个数就为N*N个。
这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。
一般由16个按键组成,在单片机中正好可以用一个P口实现16个按键功能,这也是在单片机系统中最常用的形式,计就采用这个键盘模式。
4.2、硬件电路设计及电路图
硬件电路设计图如下图所示。
把单片机的P1.0-P1.7端口通过8联拨动拨码开关连接到“4*4行列式键盘”,其中P1.0-P1.3作为列线,P1.4-P1.7作为行线,把单片机的P0.0-P0.6端口连接到共阴极“静态数码显示模块”区域中对应的a-g端口上;
系统首先通过CPU对全部键盘进行扫描,即把第一根行线置为“0”状态,其余行线置于“1”状态,读入输入缓冲器的状态,若其状态全为“1”表明该行无键按下,再将第二根行线置为“0”状态,同样读入输入缓冲器的状态,如其状态也全为“
1”则置第一根行线置为“0”状态,以此类推[5]。
如读入输入缓冲器的状态不全为“1确定哪一根列线为“0”状态,当某个键的行线和列线都为“0”状态时,表明该键按下。
最后通过显示程序将该键的序号显示出来。
4.3、LED
数码显示器的结构
LED数码显示器是一种有LED发光二极管组合显示字符的显示器件。
它使用了8个LED发光二极管,其中7个用于显示字符,剩下的一个用于显示小数点,故通常称之为7段发光二极管数码器。
在数码管中,若将二极管的阳极连在一起,称为共阳极数码管;
若将二极管的阴极连在一起,称为共阴极数码管。
当发光二极管导通时,它就会发光。
每个二极管就是一个笔画,若干个二极管发光时,就构成了一个显示字符。
若将单片机的I/O口与数码管的a——g及h相连,高电平的位对应的发光二极管亮,即I/O输出不同的代码,就可以控制数码管显示不同的字符。
例如:
当I/O输出得代码为0011
1111时,数码管显示的字符为0。
这样形成的显示字符的代码为显示代码或者段选码。
本次设计的实验板用的共阴LED显示器。
4.3.1、LED
数码管显示方式
LED显示器工作方式有两种:
静态显示方式和动态显示方式。
静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。
当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。
这种方法的优点是占用CPU时间少,显示便于监测和控制。
缺点是硬件电路比较复杂,成本较高。
本次设计采用的是动态显示方式。
动态显示的特点是将所有位数码管的段选线并
联在一起,由位选线控制是哪一位数码管有效。
选亮数码管采用动态扫描显示。
所谓
动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人
眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
动态显示的亮度比静态
显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
流程图:
总体接线图:
【总结】
本文主要介绍了本次设计需要用到的MCS-51单片机的部分基本原理。
第一,单片机的概述,介绍了单片机的定义和历史;
第二,以80C51为例,大致的介绍了单片机的基本组成原理;
第三,介绍了单片机的40条引脚功能,特别对输入输出接口进行了详细的介绍;
第四,介绍了单片机的一个重要部分:
中断。
首先对中断进行了阐述,然后对中断系统结构和中断响应条件进行了介绍。
第五,比较简单的介绍了定时器。
在对单片机的基本原理介绍的基础上,接下来就是对倒计时系统的设计与调试,以完成本次设计。
【参考文献】
[1]张毅坤.单片微型计算机原理及应用西安电子科技大学出版社,1998.
[2]余锡存曹国华.单片机原理及接口技术.西安电子科技大学出版社,2005.
[3]吴黎明,王桂棠,洪添胜,等.单片机原理及应用技术.科学出版社,2005.
[4]韩克,柳秀山,等.电子技能与EDA技术.暨南大学出版社,2004.
[5]周润景.张丽娜.基PROTEUS的电路及单片机系统设计与仿真.航空航天大学出版社,
2012.
[6]张毅坤.单片微型计算机原理及应用.西安电子科技大学出版社,1998
[7]李俊谟.单片机中级教程.北京航空航天大学出版社,2009.
[8]胡宴如.模拟电子技术.高等教育出版社,2004
[9]李朝青.单片机原理及接口技术(修订版).北京:
北京航空航天大学出版社,1998.
[10]李广弟.单片机基础.北京:
北京航空航天大学出版社,1992.
[11]何立民.单片机应用技术大全.北京:
北京航空航天大学出版社,2000.
[12]V.Yu.Teplov,A.V.Anisimov.ThermostattingSystemUsingaSingle-ChipMicrocomputerandThermoelectricModulesBasedonthePeltierEffect[J],2002
[13]YeagerBrent.Howtotroubleshootyourelectronicscale[J]..PowderandBulkEngineering.1995
[14]MeehanJoanne,MuirLindsey.SCMinMerseysideSMEs:
Benefitsandbarriers[J]..TQMJournal.2008
附件
1
程序
ORG
0000H
SJMP
MAIN
ORG
0003H
LJMP
INT_0
0013H
INT_1
040H
MAIN:
MOV
P0,#00H
P1,#00H
R0,#00H
R4,#00H
TCON,#05H
IE,#85H
SETB
PX1
START:
P2,#0F0H
MOVA,P2
ORL
A,#0FH
CJNE
A,#0FFH,K0
SJMP
START
K0:
P2,#0FEH
A,P2
A,#0F0H
CJNE
A,#0F0H,KEYS0
K1:
P2,#0FDH
A,#0F0H,KEYS1
K2:
P2,#0FBH
A,#0F0H,KEYS2
K3:
P2,#0F7H
A,#0F0H,KEYS3
KEYS0:
JNB
P2.4,KEY0
P2.5,KEY1
P2.6,KEY2
P2.7,KEY3
K1
KEYS1:
P2.4,KEY4
P2.5,KEY5
P2.6,KEY6
P2.7,KEY7
K2
KEYS2:
P2.4,KEY8
P2.5,KEY9
P2.6,KEY10
P2.7,KEY11
K3
KEYS3:
P2.4,KEY12
P2.5,KEY13
K0
KEY0:
A,#0
ACALL
SQR
KEY1:
A,#1
KEY2:
A,#2
KEY3:
A,#3
KEY4:
A,#4
KEY5:
A,#5
KEY6:
A,#6
KEY7:
A,#7
KEY8:
A,#8
KEY9:
A,#9
KEY10:
P3.0
KEY11:
SECOND
KEY12:
KEY13:
SQR:
INC
R0
R0,#01H,SQ1
R2,A
DPTR,#TABLE
MOVC
A,@A+DPTR
P1,A
DELAY
SQ2
SQ1:
R0,#02H,SQ2
R1,A
P0,A
ACALL
SQ2:
RET
SECOND:
NEXT1:
A,R2
A,R1
DEC
R1
R1,#0FFH,NEXT1
R2,#00H,NEXT2
NEXT4
NEXT2:
R2
R3,#09H
NEXT3:
A,R3
R3
R3,#0FFH,NEXT3
R2,#00H,NEXT2
NEXT4:
INT_0:
R4,#01H,$
RETI
INT_1:
R4
DELAY:
R7,#10
LOOP3:
R6,#100
LOOP2:
R