单片机实验报告秒表系统
单片机课程设计报告秒表系统设计
单片机课程设计报告实验项目:秒表系统设计实验班级:物理与机电工程学院03电本实验人:吴呤————2号实验指导老师:涂二生、王清辉、黄朝良、沈汉鑫一、实验题目秒表系统设计——用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一。
另设计一个“开始”按键和一个“复位”按键。
二、增加功能增加一个“暂停”按键和一个“快加”按键(每10ms快速加一)三、实验内容提要本实验利用单片机的定时器/计数器定时和记数的原理,结合dvcc实验箱上的集成电路芯片8032、LED数码管以及实验箱上的按键来设计计时器。
将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。
其中本实验设计了四个开关按键:其中一个按键按下去时以1秒加一开始计时,即秒表开始键(本实验中当开关从1变为0时开始计时),另一个按键按下去时暂停计时,使秒表停留在原先的计时(本实验中当相应开关从1变为0时即停止计时),第三个按键按下去时清0(本实验中当相应开关从1变为0时即停止计时),第四按键按下去则是以每10ms秒快速加一计时(本实验中当开关从1变为0时开始计时)。
本实验中开始时都要使各按键回到各初始位置,即都处于1状态。
三、实验目的1、通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。
2、掌握定时器、外部中断的设置和编程原理。
3、通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
四、意义该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、快加功能,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义。
五、本人所做工作根据相关的单片机材料,利用所学的单片机知识,结合DVCC系列单片机微机仿真实验系统中的软件和硬件(集成电路芯片8032,七段数码管,开关电路及时钟信号电路,按键等),编写能够实现该项目的软件程序,最后将软、硬件有机的结合起来,进行有效的调试,达到完成该实验课程设计的目的要求。
单片机秒表设计课程设计报告
单片机课程设计报告设计课题:秒表设计目录一、课程设计目的和意义和主要功能1、目的意义2、主要功能二、方案设计与论证1、时钟电路2、按钮电路3、显示电路4、单片机三、硬件电路设计1、STC89C52RC单片机的简单介绍2、接口电路3、硬件连线图四、软件设计:数字秒表流程图、数字秒表源程序五、性能分析六、结论和心得附件(源程序)电子秒表设计摘要:本次设计主要是用STC89C52RC设计一个2位的数码作为“秒表”。
主要是利用单片机的定时器/计数器定时和计数原理来设计简单的计时器系统,拥有正确的启动停止、时间调整,启动停止清零通过键盘按键控制,并同时可以用数码管显示数字0-59,每秒自动加1,能正确地进行计时。
其中软件系统采用汇编语言编写程序,包括显示程序,计数程序,中断,延时程序等,并在keil中调试运行,硬件系统利用单片机开发板能来实现,简单且易于观察,在现实生活中应用广泛,具有现实意义。
关键字:单片机定时器启动停止时间调整数码管键盘一、课程设计目的和意义和主要功能1、目的意义1、通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。
2、掌握定时器、外部中断的设置和编程原理。
3、通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
2、主要功能显示时间为0-59秒,每1秒自动加1,另外设计一个“启动/停止”键、一个“时间调整”键。
能用按钮实现秒表启动、停止、时间调整。
二、方案设计与论证1、方案设计本设计要求进行计时并在数码管上显示时间,分为时钟电路、按钮电路、显示电路和单片机四大部分,这些模块中单片机占主控地位。
其模块电路如图2-1所示。
(1)、时钟电路常用的有内部时钟方式和外部时钟方式,但因为本设计中只需要一片单片机,所以采用内部时钟方式比较简单。
时钟电路如图所示,时钟电路的晶振频率越高,系统的时钟频率越高,单片机的运行速度也就越快。
晶振频率根据设计需要设为12MHz,又根据谐振性质,电路中的电容C1、C2选择为30pF左右。
89C51单片机课程设计之秒表设计实验报告
单片机课程设计报告单片机秒表系统课程设计班级:课程名称:秒表设计成员:实训地点:北校机房实训时间:6月4日至6月15日目录1课程设计的目的和任务1.1 单片机秒表课程设计的概述1.2课程设计思路及描述1.3 课程设计任务和要求2硬件与软件的设计流程2.1系统硬件方案设计2.2所需元器件3 程序编写流程及课程设计效果3.1源程序及注释3.2原理图分析3.3课程设计效果4 心得体会1. 课程设计的目的和任务1.1单片机秒表课程设计的概述一、课程设计题目秒表系统设计——用STC89C51设计一个4位LED数码显示“秒表”,显示时间为000.0~9分59.9秒,每10毫秒自动加一,每1000毫秒自动加一秒。
二、增加功能增加一个“复位”按键(即清零),一个“暂停”和“开始”按键。
三、课程设计的难点单片机电子秒表需要解决几个主要问题,一是有关单片机定时器的使用;二是如何实现LED的动态扫描显示;三是如何对键盘输入进行编程;四是如何进行安装调试。
四、课程设计内容提要本课程利用单片机的定时器/计数器定时和记数的原理,结合集成电路芯片8051、LED数码管以及课程箱上的按键来设计计时器。
将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。
其中本课程设计有三个开关按键:其中key1按键按下去时开始计时,即秒表开始键,key2按键按下去时数码管清零,复位为“00.00”. key3按键按下去时数码管暂停。
五、课程设计的意义1)通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。
2)掌握定时器、外部中断的设置和编程原理。
3)通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
4)该课程通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义1.2课程设计思路及描述该课程设计要求进行计时并在数码管上显示时间,则可利用MCS-51系列单片机的芯片AT89C51的P3.2,P3.3,RST作为按键的入口;定时器T1作为每0.1秒加一的定时器。
单片机秒表课程设计报告
单片机秒表课程设计报告㈠设计任务及要求秒表系统设计——用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~59秒,每秒自动加一。
另设计一个“开始”按键和一个“暂停”按键。
实验要求通过单片机的定时器/计数器定时和计时原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、快加功能,并同时可用数码管显示。
(二)设计思路分析该实验要求进行计时并在数码管上显示时间,则可利用芯片AT89C51中的P2.5管脚作为外部中断0的入口地址,并实现“开始”按键功能;将P2.6作为数据信号DATA输入的入口地址;将P2.7做为外部中断1的入口地址,并实现“清零”按键的功能;其中“开始”按键当开关由1拨向0时开始计时;“清零”按键当开关由1拨向0时数码管清零,此时若再拨“开始”按键则有可重新开始计时。
(三)硬件电路设计如图在P0口上接一个16M的晶振,它是时钟电路中最重要的部件,向主板的各部分提供基准频率。
2位LED数码管作为显示,并接在P0口和P2口。
“起始”、“暂停”和“清零”三个按键分别对应接在P2.5、P2.6、P2.7上。
(四)程序设计STRT EQU P2.5 ; 启动键端口STP EQU P2.6 ; 暂停键端口CLRR EQU P2.7; 复位键端口ORG 00HAJMP MAINORG 0BH ;定时器T0,中断入口AJMP T0INTORG 30HMAIN: MOV R0,#20 ; 中断计数器(循环次数)MOV TMOD,#01H; 定时器初始化MOV TH0,#3CH ; 设定时间50msMOV TL0,#0B0HMOV DPTR,#TABLESETB EA ; 开中断SETB ET0 ; 启动T0k1: LCALL DISPJB STRT,K2 ; 等待k2键停止LCALL DISPJNB STRT,$-3AJMP STARTk2: JB STP,K3 ; 等待K3键LCALL DISPJNB STP,STOPK3: JB CLRR, K1 ; 等待K1键LCALL DISPJNB CLRR,CLEARAJMP K3START: SETB TR0AJMP K1STOP: CLR TR0AJMP K2CLEAR: CLR TR0MOV 40H,#0AJMP K1T0INT: MOV TH0,#3CH ; 重新设置初始值MOV TL0,#0B0HDJNZ R0,RTIMOV R0,#20MOV A,40HCJNE A,#59,ADD1 ; 判断是否等于59MOV 40H,#00H ; 清零CLR TR0AJMP RTIADD1: ADD A,#01H ; 加一MOV 40H,ARTI: RETIDISP: MOV A,40HMOV B,#10DIV AB ;//当前值除以10MOV 20H,A ;//得出的商送给十位MOV 21H,B ;//得出的余数送给个位CLR P2.0SETB P2.1MOV A,20H ;//十位显示MOVC A,@A+DPTRMOV P0,ALCALL DELAYCLR P2.1SETB P2.0MOV A,21H ; //个位显示MOVC A,@A+DPTRMOV P0,A ; P0显示RETDELAY: ;误差0usMOV R6,#01HDL0:MOV R5,#61HDJNZ R5,$DJNZ R6,DL0RETTABLE: DB 0C0H,0F9H,0A4H,0B0H,99H ;//共阳极0-9显示代码DB 92H,82H,0F8H,80H,90HEND(五)调试及结论在整个程序设计、电路的选择过程中,小组成员都遇到了许多问题。
单片机秒表课程设计报告
一:课程设计题目秒表/时钟计时器二:课程设计任务与要求:利用89C51单片机设计秒表/时钟计时器,通过LED显示器显示秒十位和个位,在设计过程中用一个存储单元作为秒计数单元,当一秒钟到来时,就让秒计数单元加1,当秒计数达到60时,就自动返回到0,重新开始秒计数。
三:设计过程:1.设计原理:此次课程设计题目是秒表/时钟计时器,由课程设计的要求和任务,我采用的C语言编程,设计秒表要求一秒定时,采用了定时器和FOR循环来定时,其中一个软件一个硬件,会在方案论证中分析在1秒时采用的是硬件定时,即用单片机内部的定时器T0。
先将时钟初始化,赋入初值50ms定时,循环20次来进行1秒定时。
然后由定义的变量second来进行加一运算,然后将其值通过P1,P2口在数码管上进行显示。
其中数码管的显示时,我在程序中首先定义了一个关于数码管显示的字形码定义,以便在显示时调用即可。
(1)方案论证:方案1:在方案1中,我们所选用的是软件定时,即用for循环来定时1秒进行显示的变化.方案2:在方案2中,采用的是硬件定时,即用单片机内部的定时器T0。
先将时钟初始化,赋入初值50ms定时,循环20次来进行1秒定时.方案比较:我们从两方面进行两种方案的比较,第一,由于此次课程设计要求是秒表,则在定时时要求比较精确,所以采用硬件的定时器定时时比较准确的。
第二,由于秒表的定时程序是很小的,在利用软件定时占用的CPU并不是很多,不能显现出来,但真正大程序时会很占用资源的,所以在用定时中断过程中是非常节省资源的.综合上述两种比较,我们选用了第二种方案.(2)创新点:a。
在课程要求的基础上,我们做成的电路板上,用复位键来控制秒表计时的重新开始,即清零。
b。
在以上设计的基础上,我们又重新设计了一个程序,基本原理没有变,只是将秒表在到达59清零的瞬间向分的位数上进1,程序将会在附录3中给出。
2.硬件系统框图与说明:首先,连接的是单片机51的最小系统,其中包括时钟电路,复位电路,在此中包括的元器件在附录3中.我们所选用的数码管是共阴极的,置1时导通,所以将单片机的P1。
实习报告-单片机秒表设计
目录第1章单片机系统硬件电路 (1)1.1 实习目的 (1)1.2 单片机型号及特性 (1)1.3 单片机开发板 (2)第2章单片机应用系统软件 (5)2.1 STC下载软件 (5)2.2 Keil软件 (5)2.3 外部电路驱动 (6)第3章00-59秒计时器设计 (7)3.1 电路原理图 (7)3.2 设计原理 (7)3.3 实现方法 (8)第4章实习总结 (9)4.1 实习体会 (9)4.2 设计硬件体会 (9)参考文献 (10)附录1 实物图 (11)附录2 系统主要程序 (12)第1章单片机系统硬件电路1.1实习目的了解单片机最小系统;了解keilc软件操作,程序下载及调试方法;掌握单片机外部电路使用;掌握键盘和数码管显示编程方法;应用单片机开发板进行实验开发;1.2单片机型号及特性1、AT89S51单片机功能及特点5l系列单片机中典型芯片(AT89S51)采用40引脚双列直插封装(DIP)形式,内部由CPU,4kB的ROM,256 B的RAM,2个16b的定时/计数器TO和T1,4个8 b 的I/O端I:IP0,P1,P2,P3,一个全双功串行通信口等组成。
特别是该系列单片机片内的Flash可编程、可擦除只读存储器(E~PROM),使其在实际中有着十分广泛的用途,在便携式、省电及特殊信息保存的仪器和系统中更为有用。
5l系列单片机提供以下功能:4 kB存储器;256 BRAM;32条I/O线;2个16b定时/计数器;5个2级中断源;1个全双向的串行口以及时钟电路。
空闲方式:CPU停止工作,而让RAM、定时/计数器、串行口和中断系统继续工作。
掉电方式:保存RAM的内容,振荡器停振,禁止芯片所有的其他功能直到下一次硬件复位。
5l系列单片机为许多控制提供了高度灵活和低成本的解决办法。
充分利用他的片内资源,即可在较少外围电路的情况下构成功能完善的超声波测距系统。
ATMEL的AT89S51是一种高效微控制器,AT89S2051是它的一种精简版本。
单片机秒表实验报告
单片机课程设计说明书题目:电子秒表学生姓名:专业:班级:指导教师:日期:目录第一章单片机课程设计任务书 (1)一、目的意义 (1)二、设计时间、地点和班级 (1)三、设计内容 (1)四、参考电路图形 (2)五、单片机的相关知识 (3)第二章硬件设计 (5)一、单片机简介 (5)二、电源电路 (5)三、晶振振荡电路 (5)四、复位电路 (5)五、显示电路 (6)六、键盘电路 (6)七、硬件主电路图设计 (7)八、元件清单 (7)第三章软件设计 (8)一、软件设计概述 (8)二、主程序流程图 (8)三、程序中各函数设计 (8)四、C语言主程序设计 (10)第四章课程设计体会 (13)..参考文献 (14)五、单片机相关知识本课题在选取单片机时,充分借鉴了许多成形产品使用单片机的经验,并根据自己的实际情况,选择了AT89C51。
AT89C51单片机采用40引脚的双列直插封装方式。
图1.2为引脚排列图,40条引脚说明如下:主电源引脚Vss和Vcc①Vss接地②Vcc正常操作时为+5伏电源外接晶振引脚XTAL1和XTAL2①XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。
当采用外部振荡器时,此引脚接地。
②XTAL2内部振荡电路反相放大器的输出端。
是外接晶体的另一端。
当采用外部振荡器时,此引脚接外部振荡源。
图1.2 AT89C51单片机引脚图控制或与其它电源复用引脚RST/VPD,ALE/PROG,PSEN和EA/Vpp①RST/VPD 当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位在Vcc掉电期间,此引脚可接上备用电源,由VPD向内部提供备用电源,以保持内部RAM中的数据。
②ALE/PROG正常操作时为ALE功能(允许地址锁存)提供把地址的低字节锁存到外部锁存器,ALE 引脚以不变的频率(振荡器频率的1/6)周期性地发出正脉冲信号。
因此,它可用作对外输出的时钟,或用于定时目的。
基于单片机的秒表设计与实现课程设计报告
基于单片机的秒表课程设计报告一、设计题目秒表系统设计——用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一。
另设计一个“开始”按键和一个“复位”按键。
二、增加功能增加一个“暂停”按键和一个“快加”按键(每10ms快速加一)三、设计提要本实验利用单片机的定时器/计数器定时和记数的原理,结合dvcc实验箱上的集成电路芯片8032、LED数码管以及实验箱上的按键来设计计时器。
将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。
其中本实验设计了四个开关按键:其中一个按键按下去时以1秒加一开始计时,即秒表开始键(本实验中当开关从1变为0时开始计时),另一个按键按下去时暂停计时,使秒表停留在原先的计时(本实验中当相应开关从1变为0时即停止计时),第三个按键按下去时清0(本实验中当相应开关从1变为0时即停止计时),第四按键按下去则是以每10ms秒快速加一计时(本实验中当开关从1变为0 时开始计时)。
本实验中开始时都要使各按键回到各初始位置,即都处于1状态。
三、课设目的1、通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。
2、掌握定时器、外部中断的设置和编程原理。
3、通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
四、意义该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、快加功能,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义。
五、本人所做工作根据相关的单片机材料,利用所学的单片机知识,结合DVCC系列单片机微机仿真实验系统中的软件和硬件(集成电路芯片8032,七段数码管,开关电路及时钟信号电路,按键等),编写能够实现该项目的软件程序,最后将软、硬件有机的结合起来,进行有效的调试,达到完成该实验课程设计的目的要求。
六、实验内容用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一。
单片机秒表研究设计课程研究设计报告
单片机课程设计报告一、实验题目秒表系统设计——用两个数码管来显示秒表数据,一个显示秒,另一个显示十分之一秒。
二、系统总体功能用两个数码管来显示秒表数据,一个显示秒,另一个显示十分之一秒。
有一个按键来启动秒表的开始和结束。
增加一个清零按钮,计时结束后可以清零。
三、实验目的1、利用单片机定时器/计数器中断设计秒表,从而实现秒、十分之一秒的计时。
2、综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。
3、通过本次课程设计加深对单片机掌握定时器、外部中断的设置和编程原理的全面认识复习和掌握,对单片机实际的应用作进一步的了解。
4、通过本次试验,增强自己的动手能力。
认识单片机在日常生活中的应用的广泛性,实用性。
四、系统设计方案本实验利用单片机的定时器/计数器定时和记数的原理,通过采用proteus 仿真软件来模拟实现。
模拟利用AT89C51单片机、LED数码管以及控件来控制秒表的计数以及计数的开启/暂停/继续与复位!其中有两个数码管用来显示数据,一个数码管显示秒(两位),另一个数码管显示十分之一秒,十分之一秒的数码管计数从0~9,满十进一后显示秒的数码管的数字加一,并且十分之一秒显示清零重新从零计数。
计秒数码管采用两位的数码管,当计数超过范围是所有数码管全部清零重新计数。
五、试验设计所需硬件(模拟硬件)Atmel89C51单片机芯片一个、LED数码显示管三个,低压电源、开关(按钮)两个、电阻、电容及导线若干。
由于条件限制本实验采用软件模拟硬件系统,采用proteus软件进行模拟设计及调试工作。
图1 七段数码管引脚图图2Atmel89C51单片机外部引脚图六、试验设计原理图图3 试验设计电路图七、软件设计分析程序流程图:实验程序清单:#include <reg51.H>{sbit sta_end=P3^4;sbit reset=P3^7;unsigned char code table0[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsigned char code table1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};/*声明second10用于计数十分之一秒变化,second1用于记录秒的个*/ /*位,second2用于记录秒的十位*/unsigned int second10,second1,second2;bit bdata flag;/*以下是设置延时功能的函数*/void delay(){unsigned char i,j;for(i=90;i>0;i--)for(j=200;j>0;j--);}}/*以下是设置时间的函数*/void setTime(){second10++;if(second10==10) /*当十分之一秒计数到十后从零重新计时*/ {second10=0; /*同时秒计时个位加一*/second1++;if(second1==10) /*当秒计数个位到十后从零重新计时*/ {second1=0;second2++; /*同时秒计时十位加一*/if(second2==6)second2=0;}}}/*以下是向LED管输数据并使之显示的函数*/void dispact(){P3=0xfe;P0=table1[second1];delay();P3=0xfd;P0=table1[second2];delay();P2=table0[second10];/*以下是设置时间函数和输数据函数被此函数调用实现,利用定时器中断*/ /*十分之一秒刷新一次,实现十分之一秒进一*/Timer0 () interrupt 1 using 1{TH0 = (65535 - 50000)/256;TL0 = (65535 - 50000)%256;if(flag)setTime();dispact();}void main(void){TMOD = 0x01;TH0 = (65535 - 50000)/256; /*定时器赋初值*/TL0 = (65535 - 50000)%256;flag = 0;EA = 1;/*cpu开中断*/TR0 = 1; /*利用定时器0*/ET0 = 1; /*外部中断允许*/do{if(!sta_end){if(flag == 0)flag = 1;else flag = 0;}if(!reset) /*复位设置,全部清零*/ {flag = 0;second10 = 0;second1 = 0;second2 = 0;}}while(1);}八、试验设计总结通过这一周的课程设计,我对一些专业知识和电子设计有了更深的了解,同时也尝试着去应用自己的所掌握的知识。
单片机嵌入式实验报告51秒表
单片机及嵌入式设计姓名:班级:信息工程学号:学院:信息科学与技术学院一、题目51秒表二、设计要求我们设计的是一个1602液晶显示的秒表,计时精度达到0.1秒,另外有两个独立的按键对秒表进行控制,一个键控制计时的开始,一个键控制计时的停止。
三、使用的系统平台软件平台:keil51keil51是美国keil software出品的51系列兼容单片机C语言软件开发系统,是众多单片机开发软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真于一体,同时还支持PLM、汇编、和C语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有强大的功能。
硬件平台:STC89C52单片机、1602液晶显示器、按钮、发光二极管 STC89C52单片机:STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8 位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
1602液晶显示器:1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
单片机-设计报告-秒表 2
单片机秒表课程设计前言本设计主要是对51单片机的一个方面的扩展,是能实现一般定时功能的设计。
系统采用单片机AT89C51作为本设计的核心元件,在其基础上外围扩展芯片和外围电路,附加时钟电路,复位电路,键盘接口及LED显示器,键盘采用独立连接式。
外围设备有LED显示驱动器及相应的显示数字电子钟设计与制作可采用数字电路实现,也可以采用单片机来完成。
若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。
若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也有所降低,所以在该设计与制作中采用单片机AT89C51,它是低功耗、高性能的CMOS型8位单片机。
片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。
另外, AT89C51的指令系统和引脚与8051完全兼容,片内有128B 的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。
按键电路设有两个按键:从上往下为k1和k2键。
按下k1键用于启动和暂停秒表;k2键用于复位。
另外还有一个单片机的复位按键,此按键用于总复位,使单片机和LED数码管同时复位。
目录一、设计任务和要求 (2)(一)系统功能任务 (2)(二)系统设计要求 (2)二、方案设计与论证 (2)三、硬件设计 (3)(1)时钟电路 (3)(2)按钮电路 (4)(3)显示电路 (6)(4)动态显示原理 (7)(5)80C51中断的控制 (7)(6)定时/计数器的控制 (7)(7)单片机 (8)(8)MAX7219 (8)四、总原理图及元器件清单 (9)(1)总原理图 (10)(2)元器件清单 (11)五、源程序.......................................................................................................... ........... . (11)六、结论与心得 (15)七、参考文献..................................................................................... 错误!未定义书签。
单片机秒表设计实验报告(1)
本科学生设计性实验报告学号姓名学院物理与电子专业、班级实验课程名称简易秒表设计教师及职称开课学期2013 至2014 学年下学期填报时间2014 年 6 月 5 日云南师范大学教务处编印摘要:单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。
本次设计内容为以 89C51 单片机为核心的秒表,它采用键盘输入,单片机技术控制。
设计内容以硬件电路设计,软件设计和PCB 板制作三部分来设计。
利用单片机的定时器/计数器定时和计数的原理,用集成电路芯片、LED 数码管以及按键来设计计时器。
将软、硬件有机地结合起来,使他拥有正确的计时、暂停、清零、并同时可以用数码管显示,在现实生中应用广泛。
共阳极,共阴极数码管的字符码表2 程序设计此次选用C51来编程,首先要有初始化程序,通过初始化程序,将对主程序所用到的变量、常量以及各个参数和所调用的子函数定义,其次还有显示程序、按键扫描及处理程序、时钟程序。
//返回值:无void delay(unsigned char i) //延时函数,无符号字符型变量i为形式参数{unsigned char j,k; //定义无符号字符型变量j和kfor(k=0;k<i;k++) //双重for循环语句实现软件延时for(j=0;j<255;j++);}3.仿真图如下4.实验设备及材料(1)装有keil软件、下载软件和Proteus仿真软件的电脑一台。
(2)单片机开发板一块。
5.实验方法步骤及注意事项(1)根据题目要求画出流程图,对实验有总体概念;(2)程序的设计;(3)通过仿真图来测试、修改、优化程序;(4)设计电路板,做出实物图;(5)总结分析实验过程中出现的问题,在以后的实验中该如何避免类似的问题在发生,该实验还有那些可以优化的地方。
6.参考文献[1]王东锋陈园园郭向阳,单片机C语言应用100例,电子工业出版社[2]胡汉才.单片机及其接口技术.北京:清华大学出版社,2000。
单片机秒表实训报告
目录一、设计题目 (2)二、方案设计 (2)三、硬件设计 (2)1电路图 (2)2.I/O口的分配 (3)3、电路的工作原理 (3)4原件明细 (3)四、软件设计 (4)1、软件设计的思路 (4)2、程序流程图 (4)3、总体结构框架介绍 (6)4、程序清单 (6)五、制作和调试 (8)六、心得体会 (8)七、参考文献 (9)一、设计题目利用AT89C51单片机设计并制作秒表电路。
要求如下:通过LED显示器(数码管)显示秒的十位和个位;设计一个按键,使按键按下去时秒表开始计时,即秒表开始键;设计一个按键,按键按下去时秒表暂停计时,使秒表停留在原先的计时,即计时停止键;设计一个按键,作为秒表的清零按钮,使秒表计数结束后可以清零。
二、方案设计1、该秒表主要由51系列单片机及开关控制数码显示管的显示情况,此秒表可现实显示两位数从00到99的计数,即开始计数、停止计数和清零三种,由手动控制三个开关K1、K2、K3来实现。
2、当接通电源时数码管显示00,然后按动K1使秒表开始计时,在0秒到99秒之间的任何时间均可;若要定时,如只需计时到32秒则在显示器显示到32时按下定时键K2即可;在计时过程中若需要清零,则需按下K3键。
3、设计过程中除了向老师请教外,还通过上网查阅资料及翻阅书籍。
上单片机课程时我曾做过关于数码显示器的实验,所以在焊接电路板时可参照实验报告书上的连接方式。
要特别注意两数码管引脚的连接及com端和三极管的连接,其决定了共阴极和共阳极,此处涉及到编程中初值的写入,为在焊接电路时简洁,因此我采用下面的com端,即数码管采用共阴极方式。
主要设计思路是编写相应程序后由单片机的P0口输出到数码管上,实现数据的显示。
P2.6口控制个位的显示和P2.7口控制十位的显示,P3.5、P3.6、P3.7口分别控制秒表的开始、停止和清零。
三、硬件设计1电路图使用Proteus工程软件制图,如下图所示:2.I/O口的分配P0口是一个漏极开路8位准双向复用I/O端口,它的P0.0~P0.7口分别接电阻R1~R8,但因为该设计中不需要小数点的显示,即dp端不用接,所以只用接7个阻值为100欧的电阻。
单片机秒表实验报告(一)
单片机秒表实验报告(一)单片机秒表实验报告实验目的通过本次实验,掌握单片机外部中断的使用方法,并实现一个简单的秒表功能。
实验材料•STC89C52单片机开发板•12864液晶屏•面包板、杜邦线若干•USB转串口模块及数据线•电脑实验原理本次实验的主要原理是单片机外部中断。
当按下按键时,引脚的电平会发生变化,从而触发外部中断。
单片机在中断服务程序中可以对计数器进行增加或减少等操作,从而实现秒表的功能。
实验步骤1.将按键连接至单片机的外部中断引脚(如P3.2)。
2.在程序中配置外部中断,使单片机可以正确响应按键。
3.编写程序,在中断服务程序中对计数器进行增加或减少,并将计数值显示在LCD液晶屏上。
程序设计#include <reg52.h>sbit sw = P3 ^2;// 定义按键接口sbit rs = P0 ^0;sbit rw = P0 ^1;sbit en = P0 ^2;void delay(unsigned int i){while(i--);}void write_command(unsigned char tt){P2 = tt;rs =0;rw =0;en =1;delay(5);en =0;delay(100);}void write_data(unsigned char tt){P2 = tt;rs =1;rw =0;en =1;delay(5);en =0;delay(100);}void init(){write_command(0x38);// 8位数据口,双行显示,5x7字符 write_command(0x0c);// 关闭光标显示write_command(0x06);// 清屏后光标移动方向设为右write_command(0x01);// 显示开启}void display(unsigned int num){unsigned int i, j, k;i = num /100;j = num %100/10;k = num %10;write_command(0x80);write_data(i +'0');write_data(j +'0');write_data(k +'0');}void main(){unsigned int num =0;init();display(num);IE =0x88;// 打开中断允许while(1){}}void int0() interrupt 0{if(sw ==0){delay(100);if(sw ==0){num ++;display(num);}while(!sw);}}实验结果经过调试,成功实现了秒表实验功能。
单片机秒表实验报告
单片机秒表实验报告实验目的:本实验旨在通过使用单片机搭建一个简单的秒表,掌握单片机的基本输入输出方法和定时器的使用,提高对单片机的编程能力。
实验器材:1. STC89C52单片机开发板2. 4位共阳数码管3. 74HC595移位寄存器4. 按钮开关5. 连接线实验原理:秒表是一种测量时间的工具,通常用于计时。
在本实验中,我们将使用单片机来实现一个简单的秒表功能。
通过使用定时器中断,每隔一定的时间更新数码管上显示的时间,实现秒表的计时功能。
同时,通过按下按钮开关,可以控制秒表的启动、暂停和复位。
实验步骤:1. 将STC89C52单片机开发板与4位共阳数码管、74HC595移位寄存器和按钮开关连接。
2. 将开发板上的相应引脚与数码管和移位寄存器的引脚连接,确保连接正确。
3. 在单片机的主函数中初始化定时器和外部中断,并设置定时器的中断时间为1秒。
4. 在定时器中断函数中,每隔1秒更新数码管上的显示时间。
可以使用循环方式实现时间的累加和更新。
5. 在外部中断函数中,根据按钮开关的状态,实现秒表的启动、暂停和复位功能。
6. 编译、下载程序到单片机开发板,并将开发板上电。
7. 按下按钮开关开始计时,再次按下暂停计时,再次按下继续计时,再次按下复位计时。
8. 观察数码管上显示的时间是否正确,并测试秒表功能是否正常。
实验结果:经过测试,本实验搭建的单片机秒表功能正常,能够准确计时,并可以通过按钮开关实现启动、暂停和复位功能。
结论:通过本实验,我们成功地使用单片机搭建了一个简单的秒表,并实现了基本的计时功能。
同时,通过掌握单片机的定时器和外部中断的使用,我们提高了对单片机的编程能力。
这对于进一步深入学习和应用单片机具有重要的意义。
单片机秒表实验报告
单片机秒表实验报告单片机秒表实验报告引言在现代科技快速发展的时代背景下,单片机作为一种重要的电子元器件,被广泛应用于各个领域。
秒表作为测量时间的工具,在运动、实验、比赛等场景中起到了至关重要的作用。
本实验旨在通过使用单片机设计和制作一个简单的秒表,探索单片机在时间测量方面的应用。
实验原理秒表的原理基于计时器的工作原理。
计时器通过内部的计数器来记录时间,当计数器达到设定值时,会触发中断,从而实现时间的测量和显示。
在本实验中,我们使用8051系列单片机,通过编程设置计数器的初始值和中断触发条件,实现秒表的功能。
实验步骤1. 硬件设计首先,我们需要准备一个适当的电路板,用于连接单片机、显示器和按键等元件。
在电路板上,我们将单片机与显示器和按键进行连接,以实现数据的输入和输出。
同时,我们需要添加一个晶振电路,以提供单片机的时钟信号。
2. 软件设计在软件设计方面,我们需要使用汇编语言或C语言来编写单片机的程序。
程序的主要功能包括初始化、计时、显示和中断处理等。
在初始化阶段,我们需要设置计数器的初始值和中断触发条件。
在计时阶段,我们需要不断地读取计数器的值,并将其转换为秒、分、时等形式进行显示。
同时,我们还需要编写中断处理函数,以响应中断并更新计时器的值。
3. 实验验证在完成硬件和软件设计后,我们可以进行实验验证。
首先,我们将电路板连接到电源,并确保电路正常工作。
然后,我们可以通过按下按键来启动和停止秒表。
在启动状态下,秒表会不断地更新显示,并实时计算经过的时间。
在停止状态下,秒表会保持显示当前的时间。
实验结果经过实验验证,我们成功地设计和制作了一个简单的秒表。
秒表能够准确地测量时间,并将其以易于理解的形式进行显示。
同时,秒表还具备启动和停止功能,方便用户根据需要进行时间测量。
实验总结通过本次实验,我们深入了解了单片机在时间测量方面的应用。
通过合理的硬件设计和编程,我们成功地实现了一个简单而实用的秒表。
在实验过程中,我们不仅学习了单片机的工作原理和编程技巧,还培养了动手实践和解决问题的能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计题目:秒表计时系统专 业 11电气自动化 班 级 2 班 学 号 2011301020202 姓 名 王 盼 指导教师 唐 文 涛时 间2013 年 6 月 5号JINGCHU UNIVERSITY OF TECHNOLOGY目录引言 (3)第一部分设计任务1.1设计要求及目的 (3)第二部分设计方案2.1 设计思路 (3)2.2 总体设计框图 (4)第三部分电路设计与器件选择3.1硬件设计 (4)3.1.180C51单片机的时钟 (4)3.1.2 硬件电路设计及描述 (7)3.2软件设计 (7)3.2.1 程序流程图: (8)第四部分课程设计总结(心得体会) (8)第五部分参考文献 (8)附录一程序 (9)附录二实验整体电路图 (11)附录三元器件表 (11)引言单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。
本次设计内容为以 8051 单片机为核心的秒表,它采用键盘输入,单片机技术控制。
设计内容以硬件电路设计,软件设计和 PCB 板制作三部分来设计。
利用单片机的定时器/计数器定时和计数的原理,用集成电路芯片、LED 数码管以及按键来设计计时器。
将软、硬件有机地结合起来,使他拥有正确的计时、暂停、清零、并同时可以用数码管显示,在现实生中应用广泛。
1.1设计目的一. 基本功能秒表系统设计——用STC89C52RC 设计一个3位的LED数码显示“秒表” ,显示时间为00.0~99.9 秒,每毫秒自动加一,每十毫秒自动加一秒。
二、增加功能增加一个“暂停”和“开始”按键,一个“复位99.9” 按键(用来99秒倒计时),三、课程设计的难点单片机电子秒表需要解决三个主要问题,一是有关单片机定时器(一个控制顺序计时,一个控制倒计时)的使用;二是如何实现LED 的动态扫描显示;三、课程设计的意义1) 通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。
2) 掌握定时器、外部中断的设置和编程原理。
3) 通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
4) 该课程通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义5)本实验用80c51进行仿真,而实验焊接时用STC89C52RC操作的,因80c51和STC89C52RC内部结构一样,而80c51传程序时复杂所以用STC89C52.2.1设计思路及框图该课程设计要求进行计时并在数码管上显示时间,则可利用MCS-51系列单片机的芯片AT89C51的P3.2,P3.3作为按键的入口;定时器T0 作为每0.1 秒减一的定时器;定时器T1 作为每0.1 秒加一的定时器。
其中“开始”按键当开关由上向下拨时开始计时,此时若再拨“开始”按键则数码管暂停;“清零”按键当开关由上向下拨时数码管清零,此时若再拨“开始”按键则又可重新开始计时。
方框图如下图:3.1硬件设计3.1.1 80C51单片机的时钟(1)振荡器和时钟电路80C51内部有一个高增益反相放大器,用于构成振荡器,但要形成时钟脉冲,外部还需附加电路。
80C51的时钟产生方法有以下两种。
a 内部时钟方式利用芯片内部的振荡器,然后在引脚XTALl和XTAL2两端跨接晶体振荡器(简称晶振),就构成了稳定的自激振荡器,发出的脉冲直接送入内部时钟电路。
外接晶振时,Cl 和C2的值通常选择为30pF左右;Cl、C2对频率有微调作用,晶振或陶瓷谐振器的频率范围可在1.2MHz~12MHz之间选择。
为了减小寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单片机引脚XTALl和XTAL2靠近。
80C51时钟电路接线方法此方式是利用外部振荡脉冲接入XTALl或XTAL2。
HMOS和CHMOS单片机外时钟信号接入方式不同。
MCS-51系统的引脚说明:MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,图二是它们的引脚配置,40个引脚中,正电源和底线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。
8951的抚慰方式可以自动复位,也可以是手动复位,见下图。
除此之外,RESET/Vpd 还是一复用脚,Vcc 掉电其间,此脚可以接上没用电源,以保证单片机内部RAM 的数据不丢失。
3.1.2硬件电路设计及描述基于单片机设计的振荡电路和复位电路,加显示器件构成单片机系统,单片机通过P2.1~P2.6端口及P3.0P3.1端口的第二功能进行数据和信息的传输交换从而实现对外电路的控制3.2软件方案设计此次选用C51来编程,首先要有初始化程序,通过初始化程序,将对主程序所用到的变量、常量以及各个参数和所调用的子函数定义,其次还有显示程序、按键扫描及处理程序、时钟程序和倒计时程序,系统软件流程图如图 2.2 所示:设计体会与总结在学习单片机理论课时候我就感觉到内容很多,知识点很杂,十分繁琐,学起来很困难。
在老师的讲解下及通过自己的努力使得自己更进一步了解了单片机的内部构造和工作原理,以及接外部电路的情况。
当然只知道理论知识那也只是“纸上谈兵”,还需要实际动手去实践。
真正把所学的用到日常生活中,理论联系实际,完成实物模型。
这次单片机实习,我选的是秒表设计,通过这次设计我感觉到要想做成功,必须花时间多准备,查阅资料,认证分析每一步每一个模块要实现的功能,然后分步进行,最后正和一个整体。
在焊接阶段时焊线要认真细心,防止虚焊,漏焊和正负极接反等错误,在通电前一定要确定好正负极,否则会烧毁单片机芯片。
通过这次课程设计,我们要对所做的事情有耐性,在编程的时候会有困难,也可能得不到成功,但我们一定要坚持,多次调试,多次分析,改正,反复去做。
在这次实习中,经历了多次失败的洗礼,我明白在以后学习和实践中,我要努力掌握知识,多动手,多思考,以免在以后的学习工作中犯同样的错误。
参考文献【 1 】李全利《单片机原理及应用技术》第2版;高等教育出版社【 2 】王文杰徐文斌《单片机应用技术》;冶金工业出版社【 3 】《THDPJ-1-2实验指导书》附录一:程序ORG 0000HAJMP MAINORG 0003HAJMP X0_INTORG 000BHAJMP T0_INTORG 0013HAJMP X1_INTMAIN:MOV TMOD,#01H ;T0定时方式1MOV TH0, #0x3C ;50ms@12MHzMOV TL0, #0xB0 ;SETB TR0SETB ET0 ;开启定时中断SETB EX0SETB EX1SETB EA ;开中断MOV R1, #0 ;0~99秒计数MOV R2, #0 ;0.1秒数MOV R7, #1 ;50ms计数MOV P0, #0C0H ;显示00.0MOV P2, #0C0Hmov p1, #0C0HLOOP:SJMP LOOP;-----------------------------------------------------------DELAY: ;延时子程序.MOV R4, #0DJNZ R4, $DJNZ R4, $RET;-----------------------------------------------------------X0_INT: ;启动/停止CPL F0RETI;-----------------------------------------------------------X1_INT: ;清零MOV R1, #0MOV P0, #0C0HMOV P2, #0C0Hmov p1, #0C0HRETI;-----------------------------------------------------------T0_INT: ;50ms中断执行一次.MOV TL0, #0xB0;MOV TH0, #0x3C ;50ms@12MHzDJNZ R7, T0_END ;中断不到20次.MOV R7, #2 ;#20JNB F0, T0_ENDmov a, r2add a, #1da aanl a, #0fhmov r2, ajnz dispMOV A, R1ADD A, #1DA AMOV R1, Adisp:mov a, r2anl a, #0fhmovc a, @a+dptr ;查出段码mov p1, a ;显示0.1秒MOV A, R1ANL A, #0FHMOV DPTR, #TABMOVC A, @A+DPTR ;查出段码MOV P2, A ;显示个位MOV A, R1SWAP AANL A, #0FHMOVC A, @A+DPTR ;查出段码MOV P0, A ;显示十位T0_END:RETI;-----------------------------------------------------------TAB:DB 0c0H,0f9H,0a4H,0b0H,99H,92H,82H,0f8H,80H, 90HEND附录二:实验整体电路图附录三:元器件表11。