简易数字秒表课程设计1.docx
《简易数字秒表课程设计1.docx》由会员分享,可在线阅读,更多相关《简易数字秒表课程设计1.docx(20页珍藏版)》请在冰豆网上搜索。
![简易数字秒表课程设计1.docx](https://file1.bdocx.com/fileroot1/2023-1/26/6024d182-8e6c-4003-9abc-f3734055e0c0/6024d182-8e6c-4003-9abc-f3734055e0c01.gif)
简易数字秒表课程设计1
单片机技术课程设计说明书
题目
系、部:
电气与信息工程系
学生姓名:
胡世平
指导教师:
王韧职称副教授
专业:
自动化
班级:
自本0801班
完成时间:
2010年12月30日星期三
摘要
随着电子技术的发展,电子技术在各个领域的运用也越来越广泛,渗透到人们日常生活的方方面面,,掌握必要的电工电子知识已经成为当代大学生特别是理工类大学生必备的素质之一。
本次我们设计的秒表,是以AT89S52为核心,以分频、计数与译码显示模块为主要构成部分的电子秒表的设计方案,充分利用数字电路的计数、译码、显示的优良特性,使整个设计达到了比较满意的效果。
基本电路主要有时基产生电路、电源电路、分频电路、计数与译码电路(包括显示电路)、开关按钮电路。
所设计的电子秒表达到了设计要求的各项指标,并且在这个基础上进行了功能扩展,系统具有随时启动、停止以及清零功能。
这次设计中不但对以前的知识进行巩固,而且学会了更多的新知识,提高思维、强化动手能力,能够更好地适应和走上工作岗位,为以后的就业打下一定的基础。
关键词数字式秒表;单片机;计时
ABSTRACT
Withthedevelopmentofelectronictechnology,electronictechnologyinvariousfieldsofusingmoreandmorewidely,penetratesintoallaspectsofPeople'sDailylife,andhavethenecessaryelectricalandelectronicknowledgehasbecomecontemporarycollegestudentsespeciallynecessary.
Thiswedesignedstopwatch,isAT89S52asthecore,withseparatefrequency,countinganddecodingdisplaymoduleformaincomponentsofelectronicstopwatchdesignscheme,makefulluseofdigitalcircuitcounting,decoding,displayexcellentcharacteristicsof,makewholedesignachievedsatisfactoryeffect.Thebasiccircuitmainsometimesbaseproducecircuit,countanddecodercircuit(includingdisplaycircuit),switchbuttoncircuit.Thedesignofelectronicstopwatchmeetsthedesignrequirementsofeachindex,andonthisbasis,thefunctionexpansionandthesystemhasalwaysstartandstopandresetfunction.Thisdesignnotonlyforthepreviousknowledgeforconsolidated,andlearntomorenewknowledge.
KeywordsDigitalstopwatch;Computers,; Counttime
目录
1设计课题名称任务、功能要求说明及总体方案介绍等等………………………4
1.1设计课题任务…………………………………………………………………4
1.2功能要求说明…………………………………………………………………4
1.3设计课题总体方案介绍………………………………………………………4
2硬件系统的设计……………………………………………………………………5
2.1硬件系统各模块功能简要介绍……………………………………………6
2.2电路原理图、PCB图、元器件布局图………………………………………6
2.3元器件清单…………………………………………………………………9
3软件系统的设计…………………………………………………………………11
3.1设计课题使用单片机资源的情况…………………………………………11
3.2设计课题软件系统各模块功能简要介绍…………………………………11
3.3设计课题软件系统程序流程框图…………………………………………13
3.4设计课题软件系统程序清单………………………………………………15
4设计结论、仿真结果、误差分析、教学建议等等………………………………21
4.1设计课题的设计结论及使用说明…………………………………………21
4.2设计课题的仿真结果………………………………………………………21
4.3设计课题的误差分析………………………………………………………22
4.4设计体会,谈谈本设计的重点、难点及精妙之处…………………………22
4.5教学建议……………………………………………………………………22
致谢……………………………………………………………………………………23
参考文献………………………………………………………………………………24
附录……………………………………………………………………………………25
1设计课题名称任务、功能要求说明及总体方案介绍
1.1设计任务:
设计一个单片机控制的多功能秒表系统。
利用单片机的定时器计数器定时计数的原理,结合显示电路,用8个LED数码管以及按键来设计计时器。
将软、硬件有机的结合起来,使得系统能够正确的进行加计时。
同时,数码管能够正确的显示时间。
1.2功能要求说明:
该秒表是基于单片机技术设计的8位数字式秒表。
它具有计时的功能,该数字式秒表上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
该数字式秒表具有开始、暂停、连续、清零和停止功能。
1.3设计课题总体方案介绍
2.硬件系统的设计
2.1各模块功能介绍
电子秒表主要应用了单片机最小系统中的“数码管电路”、“CPU”、“下载口”、“独立式键盘”、“晶振电路”、“电源”。
其中“数码管电路”主要负责显示功能,“CPU”负责对数据处理、采集、发送的功能,“下载口”负责输入软件程序,“独立式键盘”负责人机沟通进行操作的功能,“晶振电路”负责提供外部震荡信号,“电源”提供单片机最小系统的“+5V”电源。
2.3总体电路图,布线图以及说明:
2.3.1电路图部分
电路图部分见附录
2.3.2数码管显示部分
数码管是一种把多个LED显示段集成在一起的显示设备。
有两种类型,一种是共阳型,一种是共阴型。
共阳型就是把多个LED显示段的阳极接在一起,又称为公共端。
动态显示的原理是,各个数码管的相同段连接在一起,共同占用8位段引管线;每位数码管的阳极连在一起组成公共端。
利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示就会清晰显示出来。
本设计采用两个四位共阳数码管实现。
位控线通过八个PNP接在8951P2口,段控线接至P0口线。
2.3.3键盘部分
本系统采用的是独立键盘结构,每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。
他软件是采用查询结构,首先逐位查询每根I/O口线的输入状态,如某根I/O口线输入为低电平,则可确认该口线所对应的按键已按下,然后,在转向该键功能处理程序。
2.3.4时钟信号部分
单片机本身是一个复杂的同步时序系统,为了保证同步工作方式的思想,单片机必须有时钟信号,以使其系统在时钟信号的控制下按时序协调工作。
本设计采用单片机片内时钟电路结合外部晶振、电容产生。
图所示为时钟电路原理图,在at89s52芯片内部有一个高增益方相刚大器,其输入端为芯片引脚XTAL1,输出端魏应交XTAL2。
而在内部,XTAL1和XTAL2之间跨接晶体振荡器。
时钟电路产生的震荡脉冲为单片机提供时钟脉冲信号
2.3.5电源部分
利用变压线圈和稳压管以及极性和无极性电容制作一个带有±5V的直流电压源。
这个直流电压源的功率能够驱动带有单片机最小系统、简单的数字功放,以及本次我们做的简易三功能电子秒表。
2.3.6复位电路部分
复位是单片机的初始化操作,其主要功能是吧PC初始化为0000H,是单片机从0000H单元开始执行程序,病史复位电路采用的是按键复位,他是通过复位端经电阻与VCC电源接通而实现的,它兼具上电复位功能。
2.3.7Protel布线图部分
PROTEL布线图见附录
2.3.8Protues仿真图部分
Protues仿真图见附录
2.3元器件选择及说明:
2.3.1元器件清单
表2.3.1元器件清单
名称
规格
数量
变压器(中心轴头)
12V输出20w
1
六角开关
6mm*6mm
1
电解质电容
25v2200µF
2
电解质电容
25v470µF
4
瓷片电容
104
4
LM7812
1
LM7912
1
LM7805
1
LM7905
1
发光二极管
0.5mm
4
接口插座
12
散热片
4
整流桥
2W102A/1000V
1
220V电源插头线
1
AT89S52
1
底座
3
晶振
12MHZ
1
单排插
40脚
1
三极管PNP型
9012
9
蜂鸣器
1
小按键
9
下载口座子
十芯
1
18b20温度传感器
1
六脚开关
1
USB电源线加接口
1
电阻
200
1
电阻
4.7K
1
电阻
1K
3
电阻
470
24
电解电容
220uF
1
瓷片电容
33pF
2
排阻
10K
2
短路帽
3
杜邦线8p
1
PCB板子
1
3.软件系统的设计
3.1使用单片机资源介绍
KA、KB、KC键分别连接P1.0-P1.2,当有键按下时P1.0-P1.2的某一位为低电平,反之,则为高电平;
两个八位数码管位控线分别连接P2口的P2.0-P2.7,从左至右。
其段控线分别接至P0.7---P0.0段控线,分别接LED的显示段dp,g,f,e,d,c,b,a,采用共阳数码管,当控制位为低电平时,LED相应段点亮。
P2.0---P2.7位控线,(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0),显示缓冲区设定从左至右依次为78H,79H,7AH,7BH,7CH,7DH,7EH,7FH。
3.2软件系统各模块功能介绍
本系统的软件系统主要可分为主程序、定时计数中断程序、键扫描程序、键功能程序、延时程序、显示子程序几大大模块。
*************************************************************************
堆栈栈底80H
*************************************************************************
LED数码管显示器设定
P0.7---P0.0段控线,接LED的显示段dp,g,f,e,d,c,b,a
P2.0---P2.7位控线,从左至右(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0)
显示缓冲区设定从左至右依次为78H,79H,7AH,7BH,7CH,7DH,7EH,7FH
*************************************************************************
独立式键盘设定
8个按键S2至S9分别依次接在P1.0至P1.7口线
30H为毫秒寄存器
31H为秒寄存器
32H为分寄存器
*************************************************************************
键功能程序
KEYA(S2键键功能程序)
KEYB(S3键键功能程序)
KEYC(S4键键功能程序)
TC0(中断服务程序)
*************************************************************************
常数表格
DISBH(系统提示符P.字型代码序号表)
DISBI(00-00字符的代码序号)
TAB(共阳数码管字型代码表)
*************************************************************************
子程序
DL(2毫秒延时子程序)
DISP(数码管显示子程序)
KEY(键扫描子程序);
KEYCHULI(P1口数据处理子程序)
3.3流程框图
图3.1主流程框图
图3.2中断服务程序流程框图
图3.3键扫描程序流程框图
;项目名称:
秒表
;设计者:
胡世平
;设计日期:
2010年12月25日
;************************************************************************
;堆栈栈底7FH;
;************************************************************************
;LED数码管显示器设定;
;P0.7---P0.0段控线,接LED的显示段dp,g,f,e,d,c,b,a
;P2.7---P2.0位控线,从左至右(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0)
;显示缓冲区设定从左至右依次为7FH,7EH,7DH,7CH,7BH,7AH,79H,78H(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0)
;************************************************************************
;独立式键盘设定;
;8个按键S2至S9分别依次接在P1.0至P1.7口线;
;************************************************************************
;子程序;
;DL(1毫秒延时子程序,晶振频率12MHz)
;KEY(键扫子程序)
;KEYCHULI(P1口数据处理子程序)
;************************************************************************
;常数表格;
;DISBH(共阳数码管字型代码表)
;TAB(系统提示符P.字型代码序号表)
;********************************************************************
;中断服务程序;
;********************************************************************
;键功能程序;
;********************************************************************
;数据存储器变量及常量单元定义;
;
;********************************************************************
;伪指令定义区
;********************************************************************
ORG0000H
START:
LJMPMAIN
ORG000BH
LJMPZHONG
ORG0030H
;*****************************************************************
;初始化程序
MAIN:
MOVSP,#7FH
MOVPSW,#00H
MOVR0,#20H
MOVR7,#96
KAI:
MOV@R0,#00H
INCR0
DJNZR7,KAI
TSF:
MOVDPTR,#DISBH
MOVR5,#08H
MOVR0,#78H
DISPTS:
CLRA
MOVCA,@A+DPTR
MOV@R0,A
INCR0
INCDPTR
DJNZR5,DISPTS
;*****************************************************************
JIAN:
LCALLDISP
LCALLKEYLUO
JB20H.0,KEY00;是S2键,转KEY00执行
LJMPJIAN
LCALLDISP
;*****************************************************************
KEY00:
MOVR4,#100
MOV78H,#00H
MOV79H,#00H
MOV7AH,#12H
MOV7BH,#00H
MOV7CH,#00H
MOV7DH,#12H
MOV7EH,#00H
MOV7FH,#00H
SETBEA
SETBET0
MOVTMOD,#01H
MOVTH0,#0D8H
MOVTL0,#0F0H
SETBTR0;启动定时
LCALLDISP
PP:
LCALLDISP
LCALLKEYLUO
LCALLDISP
JNB20H.0,DUD;按下暂停键
LCALLDISP
LJMPSDF
LCALLDISP
DUD:
JNB20H.1,PP;按下直接清零键(暂停)
MOV78H,#00H
MOV79H,#00H
MOV7AH,#12H
MOV7BH,#00H
MOV7CH,#00H
MOV7DH,#12H
MOV7EH,#00H
MOV7FH,#00H
PP22:
LCALLDISP
LCALLKEYLUO
JNB20H.0,PP22;清零键(暂停)的启动键
LCALLDISP
LJMPKEY00
LCALLDISP
SDF:
CLRTR0;关闭定时
LCALLDISP
P8:
LCALLDISP
LCALLKEYLUO
LCALLDISP
JNB20H.0,DU;启动键
LCALLDISP
LJMPPP8
LCALLDISP
DU:
JNB20H.1,P8;暂停时的清零键
LCALLDISP
MOV78H,#00H
MOV79H,#00H
MOV7AH,#12H
MOV7BH,#00H
MOV7CH,#00H
MOV7DH,#12H
MOV7EH,#00H
MOV7FH,#00H
PP11:
LCALLDISP
LCALLKEYLUO
LCALLDISP
JNB20H.0,PP11m;清零后再次启动键
LCALLDISP
LJMPKEY00
LCALLDISP
PP8:
SETBTR0
LCALLDISP
LJMPPP
;***********************************************************************************************************
;中断服务程序
ZHONG:
MOVTH0,#0D8H
MOVTL0,#0F0H
MOVR0,#79H
LCALLDAAD1
DJNZR4,OUT
MOVR4,#100
MOVR0,#7CH
LCALLDAAD1
CJNEA,#6,OUT
MOV7CH,#00H
MOVR0,#7FH
LCALLDAAD1
CJNEA,#6,OUT
MOV7FH,#00H
OUT:
RETI
;***************************************************************
;加1子程序
DAAD1:
MOVA,@R0
DECR0
SWAPA
ORLA,@R0
ADDA,#01H
DAA
MOVR2,A
ANLA,#0FH
MOV@R0,A
MOVA,R2
INCR0
ANLA,#0F0H
SWAPA
MOV@R0,A
RET
;*****************************************************************
;数码管显示子程序
DISP:
PUSHDPH
PUSHDPL
PUSHACC
PUSHPSW
CLRRS1;改变当前寄存器组为组1
SETBRS0
MOVR1,#78H;显示缓冲存储单元首地址
MOVR2,#0FEH;从右至左显示
DISP1:
MOVA,@R1
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP0,A;送段控
MOVP2,R2;送位控
LCALLDL;延时2毫秒
MOVA,R2
JNBACC.7,DISP2
RLA
INCR1
MOVR2,A
LJMPDISP1
DISP2:
POPPSW;恢复当前寄存器组的组号
POPACC
POPDPL
POPDPH
RET
;***********************