河南理工大学单片机控制的多功能秒表系统设计Word格式文档下载.doc
- 文档编号:14182974
- 上传时间:2022-10-19
- 格式:DOC
- 页数:24
- 大小:342KB
河南理工大学单片机控制的多功能秒表系统设计Word格式文档下载.doc
《河南理工大学单片机控制的多功能秒表系统设计Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《河南理工大学单片机控制的多功能秒表系统设计Word格式文档下载.doc(24页珍藏版)》请在冰豆网上搜索。
4.3子程序模块设计 11
4Proteus软件仿真 14
4.1功能简介 14
4.2WAVE编译 14
4.3PROTEUS仿真 14
5课程设计体会 16
参考文献 16
附1.源程序代码 17
附2.程序原理图 23
1概述
1.1设计任务
设计一个单片机控制的秒表系统。
利用单片机的定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及按键来设计计时器。
将软、硬件有机地结合起来,使得系统能够正确地进行加、减(倒)计时,数码管能够正确地显示时间。
1.2设计要求
1.能同时记录四个相对独立的时间并分别显示。
2.两位LED显示,显示时间为00~99秒。
3.每秒自动加1。
4.一个开始按键、一个复位按键、一个暂停按钮和一个快加按钮(每10ms快速加一)。
5.用上翻页按钮查看四个不同的计时值。
6.添加下翻页按钮,并实现快减功能。
2系统总体方案及硬件设计
2.1系统总体方案
本系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等来设计计时器,将软、硬件有机地结合起来。
单片机
外围
电路
电源
显示电路
键盘电路
图1系统电路原理
2.2硬件电路设计
本系统中,硬件电路主要有电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等
(1)单片机简介
本系统设计采用AT89C51单片机。
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容(由于在微机原理中学过C-51的具体知识,这里不再详细说明)。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效的微控制器。
(2)电源电路
电源电路是系统最基本的部分,任何电路都离不开电源部分,由于三端集成稳压器件所组成的稳压电源线路简单,性能稳定,工作可靠,调整方便,已逐渐取代分立元件,在生产中被广泛采用,由于是小系统,我们采用7809电源提供+5V稳压电压。
(3)晶体振荡电路
MCS--51单片机内部的振荡电路是一个高增益反相放大器,引线XTAL1和XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。
这里,我们选用51单片机12MHZ的内部振荡方式,电路如下:
电容器C1,C2起稳定振荡频率,快速起振的作用,C1和C2可在20-100PF之间取,这里取30P,接线时要使晶体振荡器X1尽可能接近单片机。
图2晶体振荡电路
(4)复位电路
采用上电+按键复位电路,上电后,由于电容充电,使RST持续一段高电平时间。
当单片机已在运行之中时,按下复位键也能使用使RST持续一段时间的高电平,从而实现上电加开关复位的操作。
这不仅能使单片机复位,而且还能使
单片机的外围芯片也同时复位。
当程序出现错误时,可以随时使电路复位。
电路图如下:
图3复位电路
(5)显示电路
显示电路既可以选用液晶显示器,也可以选用数码管显示。
我们采用的是数码管显示电路。
用2个共阳极LED显示,LED是七段式显示器,内部有7个条形发光二极管和1个小圆点发光二极管组成,根据各管的亮暗组合成字符。
在用数码管显示时,我们有静态和动态两种选择,静态显示程序简单,显示稳定,但是占用端口比较多;
动态显示所使用的端口比较少,可以节省单片机的I/O口。
在设计中,我们采用LED动态显示,用P0口驱动显示。
由于P0口的输出级是开漏电路,用它驱动时需要外接上拉电阻才能输出高电平。
电路图如下所示:
图4显示电路
(6)键盘电路
在按键电路中,我们可以在I/O口上直接接按键,或者通过I/O口设计一个键盘,然后通过键盘扫描程序判断是否有键按下等。
键盘扫描电路节省I/O口,但编程有些复杂,在这里,由于我们所用的按键较少,且系统是一个小系统,有足够的I/O口可以使用,为了使程序简化,我们采用按键电路,用部分P1口做开关,P1.0停止,P1.1快减,P1.2快加,P1.3暂停记录,P1.4下翻,P1.5上翻,用外中断INT0开始,另外用软件法消除抖动。
图5键盘电路
3软件设计
4.1软件设计概述
在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。
把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。
应用系统的程序由包含多个模块的主程序和各种子程序组成。
各程序模块都要完成一个明确的任务,实现某个具体的功能,如:
加计数、减计数、延时、快加、快减,计数和显示等,在具体需要时调用相应的模块即可。
功能描述:
用2位LED数码显示"
秒表"
,显示时间为00~99秒,每秒自动加1;
一个"
开始"
键,一个"
复位"
暂停"
键,一个“快减”键,一个“快加”键;
一个“记录”键,可同时记录四个相对独立的时间;
一个“上翻”键,一个“下翻”键,查看四个不同的计时值。
4.2程序流程图
(1)主程序:
这里采用分支结构,通过对按键的扫描,判断要实现什么功能。
如下所示:
开始
初始化
P1.0=0?
P1.1=0?
P1.2=0?
P1.3=0?
P1.4=0?
P1.5=0?
停止
快减
快加
下翻
上翻
够4个?
N
Y
暂停记录
(2)加1程序
(20H)A
进位清零
做加法
到100?
(20H)清零
个位十位分开
返回
N
Y
(3)定时器1程序
用定时器0实现定时1秒,定时器1实现定时10毫秒,定时初值都是0D8F0H,
这里只写定时1秒的流程图,如下所示:
压栈保护
赋定时初值
到1秒?
调用加1程序
调用显示程序
中断返回
4.3子程序模块设计
(1)停止子程序
按键后,使秒表停止,即关闭定时器0,1,程序如下:
STOP:
CLRTR0
CLRTR1;
关闭定时器0,1
ACALLDISP;
显示
(2)暂停记录子程序
按键结束后,将此时显示内存中的数送寄存器中保存,并通过条件转移指令判断是否存够4个数,若存够则停止,否则继续。
JILU:
MOVA,20H
MOV@R1,A
INCR1
DJNZ50H,HERE;
是否够四个数?
MOVR1,#71H
MOV50H,#04H
MOV51H,#04H
SJMPSTOP;
够4个数停止
(3)加1子程序
此程序只为简单的加1,并判断是否到100?
到则从0开始,否则继续,另外将显示内存中的数个位十位分开,以便于动态显示。
JIA1:
MOV A,20H;
CLRC
INCA
CJNEA,#100,GO1;
是否加到100?
MOV20H,#00H
RET
GO1:
MOV20H,A;
将个位十位分开显示
MOVB,#0AH
DIVAB
MOV31H,A
MOV30H,B
(4)显示子程序,采用动态显示
DISP:
MOV R0,#30H
MOV R3,#0FEH
MOV A,R3
PLAY:
MOVP2,A
MOVA,@R0
MOVDPTR,#DSEG1
MOVCA,@A+DPTR
MOVP0,A
LCALLDL1
MOVP2,#0FFH
MOVA,R3
RLA
JNBACC.2,LD1
INCR0
MOVR3,A
LJMPPLAY
LD1:
RET
DL1:
MOV R7,#05H
DL:
MOV R6,#0FFH
DL6:
DJNZ R6,$
DJNZ R7,DL
RET
(5)延时子程序
例如延时10ms程序:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 河南 理工大学 单片机 控制 多功能 秒表 系统 设计