单片机数字秒表
- 格式:doc
- 大小:33.00 KB
- 文档页数:4
目录1 引言 (4)2 总体方案设计 (2)2.1硬件组成 (2)2.2 方案论证 (5)2.3 总体方案 (3)3 硬件电路设计 (4)3.1 单片机及其外围电路 (4)3.2 按键电路 (7)3.3 数码管显示电路 (8)4 系统软件设计 (10)4.1 主程序设计 (10)4.2 中断服务程序设计 (10)4.3 部分主要子程序的设计 (11)5 系统调试与总结 (11)5.1 系统功能测试 (11)5.2 总结 (11)参考文献 (12)附录A 系统原理图 (13)附录B 源程序 (14)1 引言随着现代社会的电子科技的迅速发展,要求我们要理论联系实际,数字电路课题设计的进行使我们有了这个非常好的机会。
本设计就是利用所学到的电子元器件将脉冲源用数码管显示出来以制成简易的数字秒表。
数字秒表是一种应用非常广泛的体育竞技计时工具,数码管显示的时间比钟显示得清晰直观、走时准确,并且还可以扩展出多种功能,本设计利用数量较少的芯片研制了一款带有计数功能的数字秒表,主要功能是计时并且可以记录十组成绩。
在现在的体育竞技比赛中,随着运动员的水平不断提高,差距也在不断缩小。
有些运动对时间精度的要求也越来越高,有时比赛冠亚军之间的差距只有几毫秒,因此就需要高精度的秒表来记录成绩。
2 总体方案设计2.1硬件组成图2.1所示为数字秒表硬件组成框图。
硬件主要包括:(1)控制器。
作为控制系统的核心,本课题在选取单片机时,充分借鉴了许多成形产品使用单片机的经验,并根据自己的实际情况,选择了使用STC89C52。
(2)键盘:需要四个按键,选用单片机实验板上的独立键盘即可,用于控制计时。
(3)数码管:对于数字显示电路,通常采用液晶显示或数码管显示。
本设计的显示电路采用8段数码管作为显示介质。
数码管显示可以分为静态显示和动态显示两种,本设计采用动态显示。
图2.1 硬件方框图2.2 方案论证(1)控制器控制器的选择是确定整个系统硬件方案的关键,它关系到其它几个部分方案的确定,对于数字秒表,控制器的可选方案有以下两种:方案一:纯硬件电路系统,各功能采用分离的硬件电路模块实现。
单片机课程设计_基于单片机的数字秒表设计在当今科技迅速发展的时代,电子设备的应用无处不在,其中数字秒表作为一种常见的计时工具,具有广泛的应用场景,如体育比赛、科学实验、工业生产等。
本次课程设计旨在基于单片机技术实现一个数字秒表,通过对硬件电路的设计和软件程序的编写,掌握单片机系统的开发流程和方法,提高实践动手能力和解决问题的能力。
一、设计要求1、能够实现秒表的启动、暂停、复位功能。
2、计时精度达到 001 秒。
3、能够通过数码管显示计时结果。
二、系统方案设计1、硬件设计单片机选型:选用常见的 STC89C52 单片机作为核心控制器,其具有性能稳定、价格低廉、易于编程等优点。
显示模块:采用 8 位共阴极数码管作为显示器件,通过动态扫描的方式实现数字的显示。
按键模块:设置三个独立按键,分别用于启动、暂停和复位操作。
时钟模块:使用单片机内部的定时器/计数器产生精确的时钟信号,实现计时功能。
2、软件设计主程序:负责系统的初始化、按键扫描和计时处理等。
中断服务程序:利用定时器中断实现 001 秒的定时,更新计时数据。
三、硬件电路设计1、单片机最小系统包括单片机芯片、晶振电路和复位电路。
晶振频率选择 12MHz,为单片机提供时钟信号。
复位电路采用上电复位和手动复位相结合的方式,确保系统能够可靠复位。
2、显示电路将 8 位数码管的段选引脚通过限流电阻连接到单片机的 P0 口,位选引脚通过三极管连接到单片机的 P2 口。
通过动态扫描的方式,依次点亮每个数码管,实现数字的显示。
3、按键电路三个按键分别连接到单片机的 P10、P11 和 P12 引脚,采用低电平有效。
当按键按下时,相应引脚的电平被拉低,单片机通过检测引脚电平的变化来判断按键的操作。
四、软件程序设计1、主程序流程系统初始化后,进入主循环。
在主循环中,不断扫描按键状态,如果检测到启动按键按下,则启动计时;如果检测到暂停按键按下,则暂停计时;如果检测到复位按键按下,则将计时数据清零。
HEBEINONGJI摘要:秒表是一种常用的测时仪器,数字秒表是一种准确度比较高的计时仪器。
数字秒表在现代社会生活的各个领域里应用越来越多,如文体比赛、各种活动计时等。
本文主要研究如何用AT89C51单片机控制一块2片的七段数码管,数码管自动显示从00~99,然后反复循环,也可以99~00进行倒计时。
用C语言在Keil软件上编制程序代码,用Proteus软件对系统进行仿真。
关键词:七段数码管;AT89C51;C语言程序基于AT89C51单片雌制的数字秒表的设计苏州健雄职业技术学院赵素玲1控制要求使用AT89C51单片机控制一个2片的七段数码管,循环从00〜99进行自动显示。
在此时间是可以根据要求进行调整的,并不一定是间隔时间为1秒。
程序中延时子函数的延时时间的改变很容易就能进行时间长短的调整。
该程序还很容易实现从99〜00的倒计时,这种功能可以通过按钮开关的选择来实现,但是加上了按钮程序,程序就变得更复杂、更长。
由于篇幅限制在本文中没有使用按钮程序,所以倒计时的程序是单独给出的。
系统的具体要求有以下四点:(1)以AT89C51芯片为核心控制器,加上外围辅助电路,设计出系统仿真电路图;(2)根据要求用Keil软件编写出C语言程序代码;(3)用一个2位的七段数码管自动的从00-99正计时循环显示;(4)用一个2位的七段数码管自动的从99-00倒计时循环显示。
2系统硬件电路设计2.1系统仿真电路图设计图1电路仿真图系统仿真电路图主要由AT89C51单片机芯片、电源、地、石英晶体振荡电路、复位电路、两片七段共阴极数码管组成。
两个电容C2、C3(30PF)与Xl(石英晶体)组成了石英晶体振荡电路。
电阻R1(1K)、电容C1(22UF)构成复位电路。
P1口控制2位七段数码管,P1口输出字形码,由于P1口作为输出口必须接上拉电阻。
若是选用其他的三个口作为输出口则不需要接上拉电阻,这是由AT89C51单片机自身的特点决定的。
单片机原理及系统课程设计评语:平时(40)修改(30)报告(30)总成绩数字秒表系统设计1 引言数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。
本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。
本系统采用AT89C51单片机作为主控制器设计数字秒表系统。
单片机通电后,首先初始化,然后进行对按键扫描。
开始键用来控制秒表工作的开始;暂停键用来暂停程序的运行;快加键控制快速计数的开始,利用暂停键停止;复位键是用来对程序复位用的,当程序出现死循环或想从00开始重新计时,按下复位键可返回程序开始,重新执行。
设计方案通过将硬件与软件相结合,进行有效的调试,达到完成该实验课程设计的目的要求。
2 设计方案及原理该实验要求进行计时并在数码管上显示时间,则可利用MCS系列单片机微机仿真实验系统中的芯片8051中的P3.2管脚作为外部中断INT0的入口地址,并实现“开始”按键的功能;将P3.3作为外部中断INT1的入口地址,并实现“清零”按键的功能;使用P0口作为段码数据输出控制口,74LS164用作驱动输出控制,P1.0、P1.2口分别实现暂停、快加的功能。
显示电路由两位共阴极数码管组成。
当想实现正常计数时的1s延时,只需要实现40次25ms的定时器T0控制延时就可以实现;使用定时器T1实现10ms的定时,进行快加延时;。
其中“开始”按键当开关由1拨向0时开始计时;“清零”按键当开关由1拨向0时数码管清零,此时若再拨“开始”按键则又可重新开始计时。
初始状态下计时器显示00,当按下开始键时,外部中断INT0向CPU发出中断请求,CPU转去执行外部中断0服务程序,即开启定时器T0,并且进行100次计数,当到100次时,即延时1s时,产生一个中断信号,向CPU发出请求,执行计数器加一且送往数码管显示。
在计时过程中,只要按下暂停键,即根据P1.0口电平变化去执行控制程序,关断定时器T0和T1,调用显示子程序,实现暂停功能。
基于stm32单片机的数字秒表设计摘要:本设计用stm32单片机搭以其它硬件组成数字电子秒表,采用主程序设计,通过数码管显示计时结果。
对硬件电路和软件进行设计,并进行仿真测试,结果表明,计时准确,结构简单,稳定性强。
关键词:STM32;单片机;数字秒表一、研究原理在刚通电后打开电源开关,使系统初始化,此时计时器显示为00.00.00,按下开关开始计时时,stm32单片机接收到外部中发来的中断请求后,转到开启TIM2定时器。
计时是靠TIM2定时器的中断来完成的,TIM2定时器时钟为72Mhz,定时器预分频为72分频,即时钟的72个周期,每1微妙定时器自加1,溢出值设定为999,即从0-999的共1000次,每1毫秒发生一次定时器中断,每当一处定时溢出是就向TIM发出中断请求,实现数据的累加,达到10次就实现进位加一,以此类推,直到实现最大计时23小时59分59.99秒后复位。
在定时器工作过程中,外部按下暂停键,信息会传送到TIM2的捕获输入引脚,CPU就收到捕获中断请求执行定时器捕获中断的程序,显示数据,并将数据存到寄存区内。
在暂停后,对PA0进行扫描,如果按下就回到主程序,准备开始新的计时。
在暂停健被按下时,此时显示时间被存到缓存内,再按下暂停键,再次继续计时时,上次显示的计时时间从缓存区转到最终存储区。
在秒表停止计时后扫描查看键PA2,PA2口是高电平,就查看最近的一次计时缓存,是低电平就调用最终缓存区的计时数据查看前面的计时数据。
从而实现多次计时和查看前面计时数据的功能。
二、硬件设计设计成品由硬件电路和软件程序协调合一组成。
硬件电路由显示电路、电源电路、控制电路、主控电路等组成。
主控电路以STM32为主,显示电路则用1602来作为显示工具。
本秒表利用STM32单片机的定时的定时原理,来达到精确计时的目标。
开始和暂停的功能靠的是单片机的中断系统。
在单片机的几个接口中,PB口为输出口,输出计时数据,列扫描的输出则是安排在PB0-PB4口,三个按钮开关接口为PA0、PA1、PA2,功能依次为开始、暂停、存储和查看前面的计时数据。
单片机数字秒表课程设计一、课程目标单片机数字秒表课程设计旨在通过实践操作,使学生在知识与技能、过程与方法、情感态度价值观三方面得到全面发展。
1. 知识目标:(1)掌握单片机的基本原理和结构;(2)了解数字秒表的工作原理;(3)熟悉C语言编程和单片机编程环境。
2. 技能目标:(1)能够运用所学知识设计并实现一个简单的数字秒表;(2)培养动手实践能力,提高问题解决能力;(3)提高团队协作和沟通表达能力。
3. 情感态度价值观目标:(1)激发学生对单片机及电子技术的学习兴趣,培养科技创新精神;(2)培养学生严谨的科学态度和良好的学习习惯;(3)增强学生的自信心和成就感,培养克服困难的意志。
课程性质:本课程为实践性课程,注重理论联系实际,强调动手能力培养。
学生特点:本课程针对初中年级学生,他们在前期的学习中已具备一定的电学基础和编程知识,对新鲜事物充满好奇心。
教学要求:教师需结合学生特点,以引导为主,注重启发式教学,充分调动学生的积极性和主动性,将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容根据课程目标,教学内容主要包括以下几部分:1. 单片机原理及结构:涉及单片机的内部组成、工作原理、引脚功能等,对应教材第二章内容。
2. 数字秒表原理:介绍数字秒表的基本工作原理,包括计时、计数、显示等,对应教材第四章内容。
3. C语言编程:复习C语言基础知识,重点掌握数组、循环、函数等编程技巧,对应教材第五章内容。
4. 单片机编程环境:学习如何使用编程软件(如Keil)进行程序编写、编译和下载,对应教材第六章内容。
5. 实践操作:设计并实现一个简单的数字秒表,分小组进行实践操作,培养动手能力。
教学大纲安排如下:第一周:回顾单片机原理及结构,学习数字秒表原理;第二周:复习C语言基础知识,学习单片机编程环境;第三周:编写数字秒表程序,进行调试;第四周:分组实践,完成数字秒表的设计与制作。
教学内容具有科学性和系统性,确保学生在掌握理论知识的基础上,通过实践操作提高综合能力。
单⽚机数字秒表计时器编写这次做了51单⽚机的实验数字秒表显⽰,⽤到了定时器,中断服务函数,还有就是数码管的动态显⽰,还有就是程序的逻辑考虑初次在这⾥写,经验不⾜,排版不够美观代码如下:#include<reg52.h>#define uchar unsigned charsbit s0=P1^0;sbit s1=P1^1;sbit s2=P1^2;sbit s3=P1^3; //数码管的位选uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0~9的数码管段码uchar count=0;uchar second=0;uchar minite=0;uchar number=200;void delay(void){uchar a,b;for(b=1;b>0;b--)for(a=90;a>0;a--);}void delay_LED(){ uchar a,b;for(b=38;b>0;b--)for(a=80;a>0;a--);}void ini_display() //初始化数码管显⽰“ help” 字样{ uchar x=1000;while(x--){s0=0;s1=1;s2=1;s3=1;P0=0x89;delay();P0=0xff;s0=1; s1=0; s2=1; s3=1; P0=0x86; delay(); P0=0xff;s0=1; s1=1; s2=0; s3=1; P0=0xc7; delay(); P0=0xff;s0=1; s1=1; s2=1; s3=0; P0=0x8c; delay(); P0=0xff;}}void display() // 显⽰ XX(分):XX(秒) 四个数码管共阳极{if(second<=9){s0=1; s1=1; s2=1; s3=0; P0=table[second]; delay_LED(); P0=0xff;s0=1; s1=1; s2=0; s3=1; P0=table[0]; delay_LED(); P0=0xff;s0=1; s1=0; s2=1; s3=1; P0=table[minite%10]; delay_LED(); P0=0xff;s0=0; s1=1; s2=1; s3=1; P0=table[minite/10]; delay_LED(); P0=0xff;}if(second>=10&&second<60){s0=1; s1=1; s2=0; s3=1; P0=table[second/10]; delay_LED(); delay_LED(); P0=0xff; s0=1; s1=1; s2=1; s3=0; P0=table[second%10]; delay_LED(); P0=0xff;s0=1; s1=0; s2=1; s3=1; P0=table[minite%10]; delay_LED(); P0=0xff;s0=0; s1=1; s2=1; s3=1; P0=table[minite/10]; delay_LED(); P0=0xff;}if(second==60){minite++;second=0;}if(minite==60){minite=0;}}void main(){ uchar flag=0;EA=1;ET1=0;ET0=1;TMOD = 0x21; //定时器0作定时50msTH0 = 0x3c;TL0 = 0xb0;TR0 = 1;TH1 = 0xfd;TL1 = 0xfd; // 定时器1做波特率发⽣器TR1 = 1;EX1 = 1;IT1 = 1;ES = 1;SM0 = 0;SM1 = 1;REN = 1; //设置串⼝⽅式SBUF=temp; //触发串⼝处的中断while(1){if(flag==0){ini_display();flag = 1;}else{display();}}}void timezhongduan( ) interrupt 1 //定时50ms后,计数20次,就是⼀秒----->秒表计时器{TH0 = 0x3c;TL0 = 0xb0;count++;if(count==20){count=0;SBUF=table[minite/10];SBUF=table[minite%10];SBUF=table[second/10];SBUF=table[second%10];second++;}}void waibuint()interrupt 2 //外部中断1,会清零从头开始计数{EX1=0;second=0;minite=0;EX1=1;}void series()interrupt 4 //置零TI{if(TI){TI=0;}}。
数字秒表的设计与仿真
摘要
本设计的数字秒表系统可用数学电子技术的知识完全由集成译码器、计数器、定时器、脉冲发生器和必要的门电路等器件设计实现,但设计出来的电路图若要完全满足设计要求,则电路图会很复杂。
因此,可以采用单片机系统实现此设计要求,采用AT89C51为中心器件,利用其计数器定时和计数的原理,结合显示电路、电源电路、LED数码管以及键盘电路来设计计时器。
将编程和硬件有机的结合起来,使得系统能够实现四位数码管显示,显示时间为00:00s,可以同时记录八个相互独立的时间,并能通过翻页来查看这八个不同的计时值。
由单片机以及其他元器件组成的数字秒表系统可在软件protuse中进行仿真,观察其仿真结果,能直观的了解此数字秒表系统的功能!
目录
1概述 (1)
1.1课程设计的目的 (1)
1.2课程设计的技术要求 (1)
2数字秒表的设计与制作 (1)
2.1设计方案分析 (1)
2.2系统模块组成 (2)
2.3系统功能要求 (2)
2.4各模块原理及其功能 (2)
2.4.1主控模块 (2)
2.4.2显示模块 (5)
2.4.3振荡器电路 (6)
2.4.4外部控制电路 (7)
2.5原理电路总图 (8)
3程序设计 (8)
3.1主程序 (8)
3.2显示程序 (8)
3.3开关控制程序 (9)
3.4记录翻页子程序 (9)
4电路的仿真与分析 (10)
4.1仿真电路图 (10)
4.2参数设置 (10)
4.3仿真记录与分析 (10)
5实际电路的安装与调试 (14)
5.1元件清单 (14)
5.2分析调试结果和电路的改善 (14)
6课程设计的心得体会 (15)
7参考文献 (16)
成绩评定表
数字秒表的设计与仿真
摘要
数字秒表是日常生活中比较常见的电子产品。
秒表的逻辑结构较简单,本设计的数字秒表系统可用数学电子技术的知识完全由集成译码器、计数器、定时器、脉冲发生器和必要的门电路等器件设计实现,使得系统能够实现四位数码管显示,显示时间为00:00s,设计有两个按键,一个用来清零,一个用来记录,按下记录按键,则将当前数据暂存,并显示在数码管上。
由上述元器件组成的数字秒表系统可在软件protuse中进行仿真,观察其仿真结果,能直观的了解此数字秒表系统的功能!
目录
1概述 (1)
1.1课程设计的目的 (1)
1.2课程设计的技术要求 (1)
2数字秒表的设计与制作 (2)
2.1设计方案分析 (2)
2.2系统功能要求 (2)
2.3系统模块组成 (2)
2.4各模块原理及其功能 (3)
2.4.1多谐振荡电路 (3)
2.4.2计数电路 (4)
2.4.3寄存电路 (6)
2.4.4译码显示电路 (7)
2.5电路原理图及分析 (10)
3电路的仿真与分析 (12)
3.1仿真电路图 (12)
3.2参数设置 (12)
3.3仿真记录与分析 (13)
4课程设计的心得体会 (17)
5附录 (18)
参考文献 (19)
成绩评定表。