收藏 分销(赏)

基于单片机的秒表课程设计.doc

上传人:人****来 文档编号:4431391 上传时间:2024-09-22 格式:DOC 页数:14 大小:52.50KB 下载积分:8 金币
下载 相关 举报
基于单片机的秒表课程设计.doc_第1页
第1页 / 共14页
基于单片机的秒表课程设计.doc_第2页
第2页 / 共14页


点击查看更多>>
资源描述
基于单片机的秒表课程设计 14 2020年4月19日 文档仅供参考 基于单片机的秒表课程设计 姓名: 班级: 学号: 专业: 指导老师: 年 月 日 目录 1、总体设计方案简介 1.1设计课程任务 1.2系统分析 1.3系统方案 1.4方案论证 2、硬件设计 2.1控制芯片的介绍 2.2硬件接线 2.2.1硬件接线接口 2.2.2硬件接线图 3、软件设计 3.1程序设计思路 3.2流程图 3.3源程序 3.4仿真结果 4、元件清单 5、心得体会 基于单片机的秒表课程设计 摘要 本设计的成品是在单片机最小系统的基础上增加显示电路和控制电路来完成数字式秒表的硬件电路的。电子秒表电路主要由AT89S51单片机最小系统电路、七段数码管动态显示电路和控制电路组成,它能实现八段数码显示和计时,能经过控制电路控制时间的暂停和开始。 关键字:AT89S51 数码管 最小系统 1总体设计方案简介 1.1设计课题任务 设计一个具有特定功能的数字式秒表。用AT89C52设计一个2位LED数码显示“秒表”,显示时间为00-59,另设计一个“开始”按钮和一个“复位”按钮。按键说明:按“开始”按键,开始计数,数码管从00开始每秒自动加一;按“复位”按键,系统清零,数码管显示00。 1.2系统分析 设计的电路主要是能多次计时,计时的多少经过显示电路出来,设计框图如图所示; 控制部分 技术和存储部分 显示部分 1.3系统方案 利用AT89C52单片机设计数显定时器。此方案采用AT89C52单片机系统来实现。AT89C52芯片内含8KB的EEPROM,不需要外扩展存储器,可是系统整体结构更为简单。设计框图如图所示; 外部控制开关 AT89C52 单 片 机 七段数码显示 1.4方案论证 此方案是以AT89C52芯片为中心控制系统,可实现计时、清零等功能,大大提高了系统的智能化,也是的系统所测结果精度大大提高。因此此方案可行。 2硬件设计 2.1控制芯片的介绍 AT89S52是一种低功耗、高性能的片内含有4KB快闪可编程/擦除只读存储器,的8位CMOS微控制器,使用高密度、非易失存储技术制造,并与80S52引脚和指令系统完全兼容。 主要性能: 与MCS-51微控制器 产品系列兼容。 片内有4KB可在线重复编程的快闪擦写存储器 存储数据保存时间为 宽工作电压范围:VCC可为2.7V到6V 全静态工作:可从0Hz至16MHz 程序存储器具有3级加密保护 128*8位内部RAB 32条可编程I/O线 两个16位定时器/计数器 中断结构具有5个中断源和2个优先级 可编程全双串行通道 空闲状态维持低功耗和掉电状态保存存储内容 2.2硬件接线 2.2.1硬件接线端口 时钟引脚:XTAL1和XTAL2与内部的反相放大器构成一个振荡器,它提供单片机的时钟控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 P2口:P2.6和P2.7端口分别控制数码管的十位和个位供电,当相应的端口变成低电平时,驱动相应的三极管会导通,+5V经过三极管给数码管相应的位供电,这是只要PO口送出数字的显示代码,数码管就能正常显示数字。 PO口:PO.O-PO.6端口用排线连接到数码管显示模块区域中的A-G端口上;PO.O对应着A,......,PO.6对应着G。P0.7接高电平。 P1.0接“开始”按键 2.2.2硬件接线图(见附录图) 3软件设计 3.1程序设计思路 在硬件的基础上,能够经过软件完成数字式秒表的设计。我先用了矩阵键盘上的任意两个独立按键作为控制键。用一个键去控制计时的开始;用一个键做计时的清零按键。用按键扫描的方式判断按键是否按下。用动态显示的方法扫描秒表的计数,显示所记下的数。用中断的方法来进行计时加1,每10ms中断一次进行重新赋值并加1,当10ms单元达到10,就令该单元赋0,并让100ms单元加1,以此类推。 3.2流程图 1主程序流程图 程序初始化 开个中断 P1.0=1 关定时器0,1 调用显示子程序 P1.0=0 开定时器0,1 程序开始 3.3源程序 FIRST EQU P2.7 ;第一位数码管的位控制 SECOND EQU P2.6 ;第二位数码管的位控制 SEC EQU 00H ;1S到的标记 UALUE EQU 21H ;秒计数器 COUNT EQU 22H ;软件计数器 DISPBUF1 EQU 5EH ;5EH是显示缓冲区 DISPBUF2 EQU 5FH ;5EF是显示缓冲区 HIDDEN EQU 10 ;消隐码在字型码表的第10位 ORG 0000H LJMP START1 ORG 000BH LJMP INT_T0 ORG 0100H START1:JB P1.0,START1 LJMP START START:MOV SP,#5FH ;设置堆栈指针初值 MOV VALUE,#0 ;秒计数器 MOV COUNT,#0 ;软件计数器 MOV DISPBUF1,#0 ;显示缓冲区 填充0 MOV DISPBUF2,#0 ; 显示缓冲区 填充0 MOV TMOD,#01H MOV TH0,#0ECH ;取60536的高8位,60536=65536-10000*6/12定时器初值,定时时间10ms MOV TL0,#98H ; 取60536的高8位,60536=65536-10000*6/12定时器初值,定时时间10ms SETB ET0 ;开T0中断 SETB TR0 ;定时器T0开始运行 CLR SEC SETB EA ;开总中断 LOOP:JBC SEC,NEXT ;1s到,消除1s到的标记 LCALL DISP ;1s未到,调用显示程序 SJMP LOOP ;继续循环 NEXT:MOV A,VALVE ;获得秒的数值 MOV B,#10 DIV AB ;二进制转化为十进制,十位和个位分别送显示缓冲区 JZ NEXT1 ;如果A中值是0,高位0消隐 SJMP NEXT2 ;否则直接送去显示 NEXT1:MOV A,#HIDDEN NEXT2:MOV DISPBUF1,A MOV DISPBUF2,B ;个位送显示缓冲区 LCALL DISP LJMP LOOP ;主程序到此结束 DISP: : 显示子程序 PUSH ACC ;ACC入栈 PUSH PSW ;PSW入栈 MOV A,DISPBUF1 ;取第一个带显示数 MOV DPTR,#DISPTAB ;字型表首地址 MOVC A,@A+DPTR ;取字形码 MOV P0,A ;将字型码送P0位 CLR FIRST ;开第一位显示器口 LCALL DELAY ;延时5MS SETB FIRST ;关闭第一位显示器(开始准备第二位的数字) MOV A,DISPBUF2 ;去显示缓冲区的第二位 MOV DPTR,#DISPTAB MOVC A,@A+DPTR MOV P0,A ;将第二个字型码送P0口 CLR SECOND ;开第二位显示器 LCALL DELAY ;延时 SETB SECOND ;关第二位显示器 POP PSW POP ACC RET ;显示程序结束 DELAY:;以下是延时程序 PUSH PSW ;5ms延时程序 SETB RSO MOV R7,#50 D1: MOV R6,#50 D2: DJNZ R6,$ DJNZ R7,D1 POP PSW RET DISPTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH ;显示字型表,最后一个OFFH是消隐码,它是表中的第11位元素 INT_T0: ;定时中断处理 PUSH ACC PUSH PSW ;中断保护 MOV TH0,#OECH MOV TLH,#98H ;定时计数器重置初值 INC COUNT ;软件计数器加一 MOV A,COUNT CJNE A,#100,INT_RET MOV COUNT,#0 ;计到100,软件计数器清零 SETB SEC ;将秒标志置位一 INC VALVE ;秒的值加一 MOV A,VALVE CJNE A,#60,INT_RET MOV VALVE,#0 INT_RET: POP PSW POP ACC RETI END 4元件清单 元件名 数量 AT89C52 1 八段数码管 2 NPN三极管 2 12M晶振 1 按键 2 330Ω电阻 9 200Ω电阻 1 无极性电容(30pf) 2 电解电容(10U/25V) 1 5心得体会 本文主要从硬件方面说明设计的总体思路和设计的实现过程,预期的设计目的是:能够实现秒表的基本功能,正常显示计数。 在设计中有好多问题都是因为理论知识不扎实,在有些管脚的置零和置一上概念模糊,这让我知道自己的理论知识学习的不够扎实,同时我明白要把所学的理论转化为实践需要一段努力学习的过程。 最近几年,科学发展很快,经过本次课程设计让我有了更深的认识,只有在设计制作的过程中不断的学习才能有更新的进步,不论我们在什么地方、什么岗位上都要以学为主、学以致用,才能把我们的工作做得更好。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服