资源描述
目 录
第一部分 设计任务与调研 3
1.1 89c51单片机简介 3
1.2单片机的结构及其组成 中央处理器(CPU) 3
第二部分 设计说明 7
2.1设计方案 7
2.2体设计框图 8
2.3总体说明 8
2.4脉冲发生器的设计 8
2.5二十四秒倒计时电路 9
2.6 十二分钟倒计时设计电路 10
2.7译码器和显示器的设计 12
2.8节次控制电路的设计 13
第三部分 设计成果 15
3.1产品特点 15
3.2程序代码 15
第四部分 结束语 22
第五部分 致谢 23
第六部分 参考文献 24
第一部分 设计任务与调研
1.1 89c51单片机简介
51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是52系列的单片机一般不具备自编程能力。
1.2单片机的结构及其组成
中央处理器(CPU)
刚跟大家讲过,需要提醒的是MCS-51的CPU能处理8位二进制数或代码。CPU单片机的主要核心部件,在CPU里面包含了运算器、控制器以及若干寄存器等部件给成。
内部数据存储器(RAM)
MCS-51单片机芯片共有256个RAM单元,其中后128单元被专用寄存器占用(稍后我们详解),能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。地址范围为00H~FFH(256B)。是一个多用多功能数据存储器,有数据存储、通用工作寄存器、堆栈、位地址等空间。
内部程序存储器(ROM)
在前面也已讲过,MCS-51内部有4KB/8KB字节的ROM(51系列为4KB,51系列为8KB),用于存放程序、原始数据或表格。因此称之为程序存储器,简称内部RAM。地址范围为0000H~FFFFH(64KB)。
定时器/计数器
51系列共有2个16位的定时器/计数器(52系列共有3个16位的定时器/计数器),以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。定时时靠内部分频时钟频率计数实现,做计数器时,对P3.4(T0)或P3.5(T1)端口的低电平脉冲计数。
I并行/O口
MCS-51共有4个8位的I/O口(P0、P1、P2、P3)以实现数据的输入输出。具体功能在后面章节中将会详细论述。
串行口
MCS-51有一个可编程的全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为移位器使用。RXD( P3.0)脚为接收端口,TXD(P3.1)脚为发送端口。
中断控制系统
MCS-51单片机的中断功能较强,以满足不同控制应用的需要。51系列有5个中断源(52系列有6个中断源),即外中断2个,定时中断2个,串行中断1个,全部中断分为高级和低级共二个优先级别,优先级别的设置我们也将在后面进行详细的讲解。
定时与控制部件
MCS-51单片机内部有一个高增益的反相放大器,基输入端为XTAL1输出端为XTAL2。MCS-51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。
二、主要任务:
因为在一场篮球赛中,篮球计时器/计分系统不仅要能够记录整个比赛的时间,还可以根据比赛情况的任意修改和暂停比赛时间,并能随时刷新甲、乙两队在整个比赛中的比分,为了加快节奏,规则还要求进攻方在24秒内有一次投篮动作,否则视为违例并发出警报声,当比赛时间剩下5秒时,能每隔1秒发出一次报警声。所以篮球计时/积分系统要具备以下要求:
(1)能记录整个赛程的比赛时间;
(2)可修改比赛时间和暂停比赛时间;
(3)能随时刷新甲、乙两队在整个比赛中的比分;
(4)能显示24秒的进攻时间;
(5)当进攻时间为0秒时,发出报警声;
(6)比赛时间剩下5秒时,能每隔1秒发出一次报警声。
三、设计思路:
根据设计要求设置外部操作开关控制计数器的直接清零、启动和暂停。所以此硬件设计框图包括AT89C51芯片、显示器、报警和按键四大模块。此计时器采用的设计采用模块化的结构主要由以上几个部分组成即计时模块、控制模块以及译码显示模块。在设计此计时模块时采用模块化的设计思想使设计起来更加简单、方便、快捷。 一个完整的计算机应该由运算器、控制器、存储器和I/O接口组成。运算器包括一个可进行8位算术运算和逻辑运算的单元ALU8位的暂存器1、暂存器2,8位的累加器ACC,寄存器B和程序状态寄存器PSW等。控制器包括程序计数器PC、指令寄存器IR、指令寄存器ID、振荡器及定时电路等。存储器分为程序存储器Flash ROM和数据存储器RAM。另外89C51有4个与外部交换信息的8位并行接口即P0至P3。它们都是准双向端口每个端口各有8个I/O线均可输入输出。 单片机显示驱动按键显示报警。
第二部分 设计说明
2.1设计方案
1、理论分析:篮球计时计分系统的电路可以分为主体电路和节次电路。
主体电路:即倒计时部分。包括12分钟和24秒倒计时。12分钟倒计时的基本原理:比赛处于准备开始阶段,扳动启动开关G使倒计时计数器相应的置数或清零端有效,显示设定的时间12:00,当主裁判抛起球,比赛开始,扳动G,倒数计时器开始工作(相应的置数、清零端无效),计时器逐秒进行倒计显示。当有球员犯规,裁判吹哨,整个计时系统的倒计时暂停,这个功能通过暂停开关S截断时钟脉冲的传输来实现。当倒数计时器计数到零时,选取“00:00”这个状态,通过组合逻辑电路给出截断信号,让其与时钟脉冲在与非门中将时钟脉冲截断,从而计时器在计数到零时停住。24秒计数芯片的置数端和12分的置数、清零端共用一个开关,比赛开始后,24秒的置数端也无效,24秒的倒数计时器与12分的倒数计时器同时开始进行倒计时,逐秒倒计到零。同样也是选取“00”这个状态,通过组合逻辑电路给出截断信号,让该信号与时钟脉冲在与非门中将时钟截断,使计时器在计数到零时停住。
节次电路:用四个D触发器和适当的组合逻辑电路搭成四位的移位寄存器,四个LED分别接在这四个D触发器的输出Q上,当一天和尚撞一天钟12分钟重置时,电路自动移位指示节次。
警报提示:为了给出警报提示,可在计数器的输出端用一个普通二极管和LED二极管。当计数为0时,QO输出为0,LED灯亮起。
2.2体设计框图
显 示
显示驱 动
单片机
按
键
报警
图1
2.3总体说明
24秒计时器的总体参考方案框图如图1所示它包括秒脉冲发生器、计数器、译码显示电路、报警电路和辅助时序控制电路等五个模块组成。其中计数器和控制电路是系统的主要模块。计数器完成12分24秒计时功能而控制电路完成计数器的直接清零、启动技术、暂停/连续计数、译码显示电路的显示与灭灯、定时时间到报警等功能。
2.4脉冲发生器的设计
信号发生器是数字钟的核心。它的稳定度及频率的精确度决定了数字钟计时的准确程度,可选用晶振的频率为32768Hz的脉冲经过整形、分步获得1Hz的秒脉冲。
2.5二十四秒倒计时电路
计数器的倒计时功能。用两片74LS192分别做个位(低位)和十位(高位)的倒计时计数器,由于本系统只需要从开始时的“24”倒计到“00”然后停止,所以可以直接运用十进制的74LS192进行减计数。
因为预置的数不是“00”,所以我选用置+
数端LOAD来进行预置数。低位的借位输出信号用作高位的时钟脉冲。
24秒倒计时电路如图:
2.6 十二分钟倒计时设计电路
12分钟倒计时秒部分。运用两片可逆计数器74LS192来构成60进制的减计数器。
这个计数器的低位即个位,不需要搭接任何反馈电路而直接运用74LS192芯片的减计数功能:时钟脉冲接到down端,置数、清零端无效,即可以实现十进制的倒计时计数功能。而最低位的计数变化应当与时钟脉冲的变化同步。所以,原则上应当将时钟脉冲直接引到这片192计数器的减计数时钟脉冲输入端down。
该计数器的高位即十位,与低位的计数进制不相同。由于时间的分和秒都是60进制,所以这里的计数芯片74LS192必须要接成六进制的计数器。这里,我选用反馈置数的方法来实现这个功能。
反馈方案:直接从QD引出高电平信号,通过非门作用后形成低电平反馈信号,送入74LS192芯片的置数端LOAD使之实现置数动作。
置数时,输出的数是与输入的数是一样的,所以我设置的数是5(二进制0101),这样,当计数器从0变到9时,由于进行了异步置数,9就在瞬间变成了5,计数输出的结果就变为0→5→4→3→2→1→0,实现了六进制的功能。
②12分钟倒计时分部分。也是运用两片可逆计数器74LS192来构成减计数器。在两片计数器的连接上,与秒部分一样。也是把低位的借位信号作为高位的时钟脉冲进行连接。而低位计数器的时钟脉冲则是用秒部分高位计数器的借位输出信号来充当的。
运用以上两个计数器组合,就在低位计数器从0变到9或从0变到5的瞬间,在它的借位输出端出现一个电平的上升脉冲沿,从而使高位的计数器倒倒计一个数。实现倒计时功能。
12分钟倒计时电路如下:
2.7译码器和显示器的设计
译码电路的功能是将“秒”、“分”计数器的输出代码进行翻译,变成相应的数字。本次驱动LED七段数码管的译码器,我们选用了CC4511.相应的,与LED七段共阴极显示数码管相互连接。
2.8节次控制电路的设计
节次控制电路图
将这四个D触发器依次命名为D1、D2、D3、D4。四个D触发器级连,前一个输出送入下一个输入,用一个共同的时钟脉冲,形成同步动作。为了保证每次输出只有一位是高电平,用个或门把Q2、Q3进行或运算后,送入或非门与Q1进行运算后送回D1。当电源刚接通、开关G没有接地,整个计时系统没有进行工作,Q1-Q4为低电平(0000状态),D=1,四个LED都不亮。合上G,接高电平,这样,当G接通时就有了一个电平的上升沿跳变,Q1=D1=1;1000状态,LED1亮,指示第一节比赛。电路进入循环状态,倒计时电路重置一次,该电路状态转换一次,实现节次自动指示。
3、总电路图
简要说明:右起第一个开关的作用是对12分钟进行清零和置数。右起第二个开关是暂停、继续开关。 右起第三个开关对24秒进行清零和置数。最左边的开关是整个系统的启动开关。
第三部分 设计成果
3.1产品特点
4秒和12分钟同时置零和启动,也可在暂停的状态下对24秒单独置零,并重新置数启动。
2、可以同时使两个时钟置零。
3、当两个时钟中任意一个时钟置零时,两个时钟都停止调动,并且LED灯亮。
3.2程序代码
ORG 0000H
SJMP MAIN
ORG 000BH
LJMP TOISR
ORG 0030H
MAIN: MOV P0,#3FH ;赋初值
MOV P1, #0FFH
MOV P2, #3FH
MOV P3, #3FH
MOV P4, #3FH
MOV P5, #3FH
MOV P6, #3FH
MOV R0, #00H
MOV R1, #24H
MOV R3,#12H
MOV R4,#00H
MOV DPTR,#TAB
KEY: JB P3.0, $ ;判断P3(启动键)是否按下
ACALL DELAY30MS
JNB P3.0, $
ACALL START
SJMP KEY
START: MOV TMOD,#01H ;启动程序
MOV THO,#03CH
MOV TLO,#0B0H
SETB ET0
SETB EA
SETB TR0
STOP: JB P3.2, ZTJX ; 判断总复位键是否程序
ACALL DELAY 30ms
JNB P3.2,$
SJMP MAIN ;跳复位程序
ZTJX: JB P3.3, TT :判断24秒复位键是否按下
ACALL DELAY 30MS
JNB P3.3,$
MOV R1,#24H
SJMP XS
TT: JB P3.1, XS :判断总暂停键是否按下
ACALL DELAY 30MS
JNB P3.1,$
ZT: CLR TR0 ;暂停键按下后暂停计数,关中断
CLR ET0
CLR EA
JB P3.1,$ ;暂停键再次按下继续计数
ACALL DELAY30MS
JNB P3.1 ,$
JX: SETB ET0 ;第二次按下后继续启动
SETB EA
SETB TR0
XS: MOV A,R1 ;显示子程序
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P0,A ;显示24秒的十位
MOV A,B
MOVC A,@A+DPTR
MOV P2,A ;显示24秒的个位
MOV A,R4 ;
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P4,A ;显示12分钟中的秒的十位
MOV A,B
MOVC A,@A+DPTR
MOV P6,A ;显示12分钟的秒的个位
MOV A,R3
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P5,A ;显示12分钟分的十位
MOV A,B
MOVC A,@A+DPTR
MOV P2,A ;显示12分钟分的个位
CJNE R0,#10H,STOP; 1S时间到否,未到直接转数码管显示
MOV R0,#00H ;1秒到后重赋初值
CJNE R4,#00H,L3 ;判断12分钟的秒是否等于0
CJNE R3,#00H,L6 ;秒等于0再判断分等于0否
SJMP L5 ;秒、分都等于0就跳L5
L3: DEC R4 ;12分的秒自减1
DEC R1 ;24秒减一
CJNE R1,#00H,STOP ; 判断24秒等于0否,不等于0就都跳显示
SJMP L4 ;24秒到了就跳L4
L5: MOV R0, #00H
MOV R1, #24H
MOV R3,#12H
MOV R4,#00H
CLR TR0
CLR EA
CLR ET0
SJMP SND ; 跳报警程序
SJMP KEY
RET
L6: MOV R4,#59H ;给12分的秒赋值
DEC R3 ;12分的分减一
SJMP STOP ;转显示
L4 MOV R1,#24 ;24秒到后暂停比赛,跳报警程序等待P3.4按下继续倒计时
CLR TR0
CLR EA
CLR ET0
JB P3.4,$
ACLALLDELAY 30MS
SETB ET0
SETB EA
SETB TR0
SJMP XS
DELAY30MS:MOV R6,#150 延时子程序
AAA:MOV R7,#100
DJNZ R7,$
DJNZ R6,AAA
RET
T0ISR:CLR TR0 ;中断程序子程序
MOV TH0,#3CH
MOV TL0,#0B0H
INC R0
SETB TR0
RETI
SED: CLR P1.0 ;报警程序子程序
MOV R7,#0FFH
DL: MOV R6,#0FFH
DL1: DJNZ R6,DL1
DJNZ R7,DL
SETB P1.0
RET
TAB:DB 3FH,06H,5BH
DB 4FH,66H,6DH
DB 7DH,07H,7FH,6FH
END
第四部分 结束语
本设计主要通过模块化思想,逐步实现设计所需达到的功能要求:
1、时钟模块为减计数提供一个频率为1Hz的脉冲信号,从而实现计数器计数间隔为1秒钟;
2、计数、译码显示模块主要是为了达到能显示减计数功能;
3、报警模块是为了实现当减计数到零时发出光电报警信号;
4、控制模块主要是为了实现计时器的启动、直接清零和暂停/连续功能,其中在直接清零时,由外控制开关控制译码器消隐端,从而可以实现显示译码器灭灯;通过暂停/连续开关从而实现断点计时功能。
至此,本设计能完成基本要求。
第五部分 致谢
我很庆幸选择了这与单片机有关的这门毕业设计,因为在做毕业设计的这个过程中发现自己对单片机有着太多不明白的地方,但通过这次设计让我受益匪浅。非常感谢老师对我们的悉心指导让我们从开始面对毕业设计时的无从下手到后来的游刃有余,其中的酸甜苦辣只有我们自己知道。在此我还要感谢父母,因为父母的支持和帮助免去了生活上许多烦恼,让我们能够安心在学校完成设计。今年夏季我们就要毕业了,我们总是在即将离开学校的时刻才喜欢上学校,我非常感谢学校每一位老师在校期间对我们思想上和学习上的教导,我也非常珍惜着现在待在学校的每一天,我想把学校的每个角落都记在脑海里也许这是我们最后待在学校里的时间。大学三年时间一晃而过,而我们即将面临新的开始,在此我想感谢和我一起共处三年的室友们,在我困难的时候帮助我、在我生日的时候祝福我、在我哭泣的时候安慰我,谢谢你们,可能我们以后再也不会因为睡觉问题而吵架了,愿我们都有个美好前程。
第六部分 参考文献
1、 陈大钦,《电子技术基础实验——电子电路实验·设计·仿真》。高等教育出版社2000版。
2、 华中工学院电子学教研室编,康华光主编:《电子技术基础》数字部分,第三版,高等教育出版社。
3、 康华光,2005.《电子技术基础数字部分》(第五版),高等教育出版社
4、 祁存荣,2008.《电子技术基础实验(数字部分)》,武汉理工大学教材中心
5、 邓勇,周铎,邓斌,2004.《数字电路设计完全手册》,国防工业出版社
6、 《单片机原理及应用》 张迎新 电子工业出版社
7、 李俊婷主编.《计算机辅助电路设计与Protel DXP》[M].高等教育出版社,2005
8、 刘守义主编.《单片机应用技术》 [M].西安电子科技大学出版社,2002年
9、 李俊婷主编.《计算机辅助电路设计与Protel DXP》[M].高等教育出版社,2005年.
10、 张大明主编.《单片微机控制应用技术》[M].机械工业出版社,2000年
展开阅读全文