单片机0-99计数器 秒表报告

合集下载

基于单片机的00秒-99秒的秒表设计

基于单片机的00秒-99秒的秒表设计

工程技术学院课程设计题目:用单片机AT89C51设计一个2位的LED数码显示作为“秒表”专业:电气工程及其自动化年级: 2009级学号: 20091447 20091414 20091444 姓名:付忠林梁宗林李座指导教师: 杨彦鑫日期: 2012年12月12日云南农业大学工程技术学院目录一、设计题目和要求:................................................................................... 错误!未定义书签。

二、设计目的:ﻩ错误!未定义书签。

三、设计内容:ﻩ错误!未定义书签。

四、课程设计心得体会ﻩ错误!未定义书签。

五、参考文献ﻩ错误!未定义书签。

六、课程设计指导教师评审标准及成绩评定............................................... 错误!未定义书签。

附件1:秒表原理图(实际接线图)............................................................ 错误!未定义书签。

附件2:仿真图1ﻩ错误!未定义书签。

附件3:仿真图2ﻩ错误!未定义书签。

一、设计题目和要求:题目三:秒表应用AT89C51的定时器设计一个2位的LED数码显示作为“秒表”:显示时间为00~99s,每秒自动加1,设计一个“开始”键,按下“开始”键秒表开始计时。

设计一个“复位”键,按下“复位”键后,秒表从0开始计时。

任务安排:李座负责绘制电路原理图;梁宗林负责收集资料及电子版整理;付忠林负责程序和仿真。

二、设计目的:1.进一步掌握AT89C51单片机的结构和工作原理;2.掌握单片机的接口技术及外围芯片的工作原理及控制方法;3.进一步掌握单片机程序编写及程序调试过程,掌握模块化程序设计方法;4.掌握PROTEUS仿真软件的使用方法;5.掌握LED数码管原理及使用方法。

0-99S的秒表计时器程序与调试

0-99S的秒表计时器程序与调试

设计要求:1.设计一个秒表/计时器系统,显示时间为00.00~99.99秒,个位每秒自动加一。

2.设计一个按键,一上电数码管显示四个0,按一下按键秒表开始计时,按第二下秒表停止计时,保持数码管显示的值,按第三下秒表归零。

一.程序代码#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit SB0=P3^0;sbit SB1=P3^1;sbit SB2=P3^2;uchar codesmgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x80};uchar Xian[]={10,10,10,10,10,10,10,10,};uint Time=0;bit ST=0;void delayms(uint x){ uchar i;while(x--)for(i=0;i<125;i++);}void main(){TMOD=0x11;TH0=(65536-2000)>>8;TL0=(65536-2000)&0xff;TH1=(65536-10000)>>8;TL1=(65536-10000)&0xff;TR1=1;ET1=1;TR0=1;ET0=1;EA=1;while(1){if(SB0==0){ST=1;}if(SB1==0){ST=0;}if(SB2==0){ ST=0;Time=0;}}}void ET_1() interrupt 1 {static uchar j=0;static uchar i=7;TH0=(65536-2000)>>8;TL0=(65536-2000)&0xff;P0=0x00;P2=j<<2|0x03;P0=smgduan[Xian[i]];j++;i--;if(j==8){j=0;i=7;}}void ET_3() interrupt 3{TH1=(65536-10000)>>8;TL1=(65536-10000)&0xff;if(ST){Time++;if(Time==9999){ST=0;}}Xian[0]=Time/1000;Xian[1]=Time/100%10;Xian[2]=11;Xian[3]=Time/10%10;Xian[4]=Time%10;}二.仿真调试图1.原理图2.调试图。

单片机控制秒表显示时间为00—99(每秒自动加1),暂停,复位

单片机控制秒表显示时间为00—99(每秒自动加1),暂停,复位

标准文档9创新实践实训报告学院信息电子技术学院专业电子信息工程班级14学籍号姓名指导教师蒋野2017年06月29日单片机控制秒表电路一、电路工作原理1.工作原理用STC89C52设计一个2位的LED数码显示作为“秒表”:显示时间为00—99秒,每秒自动加1,另设计一个“暂停”键S2和一个“继续”键S3。

为使本设计系统更加完善,可以引入一个“复位”键S1,以方便对系统的控制。

如图。

本系统采用STC89C51单片机为中心器件,利用其定时器/计数器定时计数的原理,结合硬件电路如电源电路,晶振电路,复位电路和显示电路,以及一些按键电路等来设计计数器,将软硬件有机结合起来,其中软件系统采用汇编语言编写程序,包括显示程序,计数程序,中断,硬件系统利用Protues强大的功能来实现,简单易于观察,在仿真中就可以观察到实际的工作状态。

2.元器件作用(1)STC89C52单片机在电子行业中有着广泛的应用。

AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,STC89C52可以按照常规方法进行编程,也可以在线编程。

其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。

(2)时钟电路作用是为电路提供唯一的时钟信号。

(3)复位电路外接一个开关,控制电路复位,接通电源电路直接复位,如果没有开关亦可将复位电路引出导线接电源后断开。

(4)本设计要求使用共阳极的数码管,如下是共阳极的数码管的0-9编码:0xc0,0x92,0x82,0xf8,0x80,0x90,0xf9,0xa4,0xb0,0x99.(5)控制电路:S2按下电路停止计时,S3按下电路恢复计时。

二、程序流程图主程序流程图三、检测安装与调试1.元件检测共阳极数码管检测管脚序号利用万用表二极管档红表笔接一个抵住两个管脚,利用另一个接触其他,找出1,2两个管脚,继续分别找出A,D,C,D,E,F,G,Dp管脚。

单片机0-99计数器秒表报告

单片机0-99计数器秒表报告
#inc1
〔ude<reg51、h〉
#defin
e uc har
#defin
sbit
K1=P3A7;
uchar i,count,keyflag;
bit keystate;
//头文件
Coun t=co un t+1
e uintunsignedin
unsigAed数码管显示为00J
按键识别成定义按键
uchar CODE[]={0x3lf,0x06,0x5b,0x4f,0去66,0x6d,Ox7d,0x07,0x7f,0x
3•把“单片机系统"区域中得P3、7/RD端口用导线连接到“独立式键盘"区域中得SP1端口上。
图2十位显示动态数码管(共阳数码管)
图3个位显示静态数码管(共阴数码管)
图1硬件电路连接图
(二)显示电路
两位数码管循环显示00〜99电路
数码管只要就是用于数字得显示•数码管有共阴与共阳得区分,单片机都可以进行驱动,但就 是驱动得方法却不同。两位数码管循环电路就是由电阻、二极管与数码管组成,电源+5V通过
课程设计报告
课程名称 单片机原理及应用课程设计
学 号
姓 名
班 级
指导老师
时 间
信息工程学院
设计题目:秒表得设计 设计内容、目得与要求:
1、 用单片机得定时/计数器实现一个秒表得应用•当按键S1按下时,秒表开始计时,并在 数码管上显示当前得计数知道“99”,然后从“00”开始重新计时,然后按键按下则停止计时, 第三次按下键则清除上一次得计时结果。
560得电阻直接给数码管得7个段位供电,P0、0—P0、7对应了两个接数码管得A,B,C,D,E,F,G与小数点位,P2、6接显示个位数得数码管得3、8引角,P2、7则接十位数得。P2、6与P2、7端口分别控制数码管得十位与个位得供电, 当相应得端口变成低电平时,驱动相应得 三极管会导通,+5V通过二极管与驱动三极管给数码管相应得位供电,这时只要P0口送出数字

单片机倒计时秒表课程设计报告书

单片机倒计时秒表课程设计报告书

课程设计说明书课程名称:单片机技术设计题目:倒计时数字秒表设计院系:学生:三学号: *********专业班级: ***********指导教师:四年月日课程设计任务书倒计时秒表摘要:本次课程设计以AT89S52单片机为核心设计一个倒计时数字秒表,计数初值为59并开始每秒自动减1,当按键1按下时记录当前时间值,当按键2按下时显示当前记录值,显示过之后再次按下按键1时秒表复位为59。

本设计硬件部分包括电源电路、复位电路、按键电路、振荡电路、数码管显示电路五部分电路,软件程序部分有定时中断程序、外部中断程序、显示子程序和延时子程序等。

软件Proteus画出原理图并进行仿真,依照仿真成功的原理图接线,在万能版上把个个器件焊接好从而实现预期的功能。

关键词:倒计时 AT89S52 74LS47 数码管目录1.设计背景 (5)1.1、设计课题的提出 (5)1.2、设计作用与意义 (5)2.设计方案 (6)2.1、可行方案选择 (6)2.2、可行方案比较 (6)3.方案实施 (7)3.1、硬件电路的实施 (7)3.2、软件程序的实施 (11)4.结果与结论 (13)4.1、Proteus仿真运行结果 (13)4.2、结论 (14)5.收获与致 (14)6.参考文献 (14)7.附件 (15)7.1、附件一(整体电路图) (15)7.1、附件二(元件清单图) (16)7.1、附件三(程序) (17)7.1、附件四(运行实物图) (22)1.1设计课题的提出计时器日常生活中随处可见,我们手上的电子表,手机上的时间显示等,这些利用数字电路实现的装置,与机械时钟相比具有更高的准确性与直观性,且无机械装置,具有更长的使用寿命。

其中重要的组成部分就是计数器模块,是单片机中常见的模块,以计时器为基础还可以设计更多对日常生活密切相关的设备,诸如定时报警、按时自动打铃、时间程序自动控制、定时广播、自动启闭路灯、定时开关烘箱、甚至各种定时电器的自动启用等,都是以计时器为基础的。

单片机课程设计报告秒表(WORD档)

单片机课程设计报告秒表(WORD档)

单片机课程设计报告秒表设计电子科学系班级:姓名:学号:指导老师:实用文档2013.12.01实用文档课程设计任务书实用文档实用文档摘要:在生活中我们常常用到秒表作为计时器,为了更深刻理解它的工作原理。

本次课程设计以STC89S51单片机为控制核心,以2位共阴数码管作为显示器。

并用外部中断0控制秒表的清零和用外部中断1控制秒表的开始/暂停。

利用Altium.Designer 10.0设计原理图和PCB。

设计完成后在面包板上搭建电路进行验证和调试。

实验成功后,利用化学方法进行腐蚀刻板。

通过一个个多次实验修改,最后设计出了一个能从00~99秒计时的秒表。

此外后文还对对本次课程设计进行了归纳与总结。

关键词:单片机、数码管、中断、Altium.Designer、腐蚀刻板实用文档目录一、设计要求: (8)二、方案论证: (9)2.1总方案设计方框图: (9)2.2方案选择: (9)2.2.1显示电路: (9)2.2.2按键控制: (10)三、硬件设计: (10)3.1系统主芯片STC89C51单片机介绍: (10)3.2电源电路: (12)3.3时钟电路: (13)3.4复位电路: (13)3.5显示电路: (14)3.6键盘电路: (14)实用文档3.7扩展电路: (15)3.8硬件总电路图设计: (15)四、软件设计 (17)4.1系统主程序设计 (17)4.2定时器T1中断: (17)4.3 外部中断0流程图: (18)4.4 外部中断1流程图: (18)4.5数码管显示程序: (19)五、设计中遇到的问题及解决方法: (20)5.1设计原理图和画PCB遇到问题及解决方法: (20)5.1.1设计原理图: (20)5.1.2 绘制PCB: (20)5.2 在面包板调试时遇到问题及解决方法: (21)5.3在腐蚀刻板时遇到问题及解决方法: (21)5.3.1打印PCB印菲林纸: (21)5.3.2在涂蓝油过程中: (21)5.3.3在显影过程中: (22)实用文档5.4焊接完成后遇到问题及解决方法: (22)结束语 (22)谢辞 (23)参考文献: (24)附录A:秒表设计的源程序 (24)附录B:元件清单: (30)附录C: 秒表的原理图和PCB图: (32)附录D:成绩评定表: (34)附录E:实物图(已通过验证) (36)秒表设计一、设计要求:1.1用89C51设计一个2位的LED数码作为“秒表”。

单片机秒表实训报告

单片机秒表实训报告

目录一、设计题目 (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欧的电阻。

单片机0~99计数器设计报告

单片机0~99计数器设计报告

目录1 单片机概述 (2)2 创新目标 (3)3 创新实践任务和要求.............. . (3)4 创新方案和原理分析 (3)5 硬件原理图设计 (3)5.1 硬件电路设计 (3)6 软件设计 (5)6.1 程序流程图设计 (5)6.2 程序设计 (5)7 Proteus+Keil uV2联合仿真 (7)8 设计说明书 (8)9 样机展示 (11)10 总结 (11)1单片机概述二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。

不过,这种电脑,通常是指个人计算机,简称PC机。

它由主机、键盘、显示器等组成。

还有一类计算机,大多数人却不怎么熟悉。

这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。

顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。

因为它体积小,通常都藏在被控机械的“肚子”里。

单片机是指一个集成在一块芯片上的完整计算机系统。

尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。

同时集成诸如通讯接口、定时器,实时时钟等外围设备。

而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。

单片机也被称为微控制器(Microcontroller),由芯片内仅有CPU的专用处理器发展而来。

最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。

单片机是70年代中期发展起来的一种大规模集成电路芯片,是CPU、RAM、ROM、I/O 接口和中断系统集成于同一硅片的器件。

单片机用于控制有利于实现系统控制的最小化和单片化,简化一些专用接口电路,如编程计数器、锁相环(PLL)、模拟开关、A/D和D/A变换器、电压比较器等组成的专用控制处理功能的单板式微系统。

单片机0-99计数器 秒表报告

单片机0-99计数器 秒表报告

.课程名称单片机原理及应用课程设计学号姓名班级指导老师时间信息工程学院. 设计过程、步骤(可加页):一、设计方案利用STC90C51单片机来制作一个手动计数器,在STC90C51单片机的P3.7 管脚接一个轻触开关,作为手动计数的按钮,用单片机的P2.0-P2.7 接一个共阳数码管,作为00-99 计数的个位数显示,用单片机的P0.0-P0.7 接一个共阴数码管,作为00-99 计数的十位数显示;二、工作原理采用STC90C51单片机为中心器件,利用其定时器/计时器定时和计数的原理,结合硬件电路如电源电路、晶振电路、复位电路、显示电路,以及一些按键电路等来设计计时器,软硬件有机的结合起来,其中软件系统采用c语言编写程序,包括显示程序,快加程序,暂停程序等,硬件系统利用Keil强大的功能来实现,简单且易观察。

(一)开发板上硬件连线(如图1)1.把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8 芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。

2.把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8 芯排线连接到“四路静态数码显示模块”区域中的任一个数码管的a-h 端口上;3.把“单片机系统”区域中的P3.7/RD 端口用导线连接到“独立式键盘”区域中的SP1端口上。

图1 硬件电路连接图(二)显示电路两位数码管循环显示00~99电路数码管只要是用于数字的显示。

数码管有共阴和共阳的区分,单片机都可以进行驱动,但是驱动的方法却不同。

两位数码管循环电路是由电阻、二极管和数码管组成,电源+5V通过560的电阻直接给数码管的7个段位供电,P0.0-P0.7对应了两个接数码管的A,B,C,D,E,F,G和小数点位,P2.6接显示个位数的数码管的3、8引角,P2.7则接十位数的。

P2.6和P2.7端口分别控制数码管的十位和个位的供电,当相应的端口变成低电平时,驱动相应的三极管会导通,+5V通过二极管和驱动三极管给数码管相应的位供电,这时只要P0口送出数字的显示代码,数码管就能正常显示需要的数字。

单片机秒表实训报告

单片机秒表实训报告

目录一、设计题目 (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欧的电阻。

单片机课程设计报告 秒表

单片机课程设计报告 秒表

单片机课程设计报告院系:****班别:****课程名称:****姓名:****学号:****指导老师:****日期:****年**月**日一、设计任务与要求用89C51设计一个2位的LED数码作为“秒表”。

显示时间为00—99秒,每秒自动加1,另设计一个“开始”键和一个“复位”键。

能存储三组计时。

按一次开始键,开始计数,第二次按开始键后,计时停止。

之后再按开始键,则轮流显示存储的三个计时值,直到按复位键后,再按开始键,则开始重新计时。

二、设计思想和设计说明本设计利用AT89C52单片机的定时器/计时器定时和计数的原理,使其能精确计时。

设计中包括硬件电路的设计和系统程序的设计,其硬件电路主要有主控制器、计时与显示电路和复位电路等。

主控制器用AT89C52,显示电路采用共阴极LED数码管显示计时时间。

利用中断系统使其能实现开始暂停的功能。

P3.2,P3.3开口接2个按钮,分别实现开始,暂停,复位的功能。

电路原理图设计最基本得要求是正确性,其次布局合理,最后在正确性和布局合理的前提下力求完美。

三、硬件原理框图四、硬件原理图与其软件配合1、程序存储器2、数据存储器六、程序流程图七、源程序清单====================================================== ORG 0000HAJMP MAINORG 0003HAJMP X0_INTORG 000BHAJMP T0_INTORG 0013HAJMP X1_INTMAIN:MOV TMOD,#01H ;T0定时方式1MOV TH0, #(65536-50000) / 256 ;50ms@12MHzMOV TL0, #(65536-50000) MOD 256;SETB TR0SETB ET0 ;开启定时中断SETB EX0SETB EX1SETB EA ;定时器初始化结束,下面循环显示即可MOV R1, #99H ;0~99计数.MOV R7, #1 ;50ms计数.MOV P0, #3FHMOV P2, #3FHLOOP:SJMP LOOP;-----------------------------------------------------------DELAY: ;延时子程序.AA4: MOV R4, #0DJNZ R4, $DJNZ R4, $RET;-----------------------------------------------------------X0_INT: ;启动/停止CPL F0RETI;-----------------------------------------------------------X1_INT: ;清零MOV R1, #0MOV P0, #3FHMOV P2, #3FHRETI;-----------------------------------------------------------T0_INT: ;50ms中断执行一次.MOV TL0, #(65536-50000) MOD 256;MOV TH0, #(65536-50000) / 256 ;50ms@12MHzDJNZ R7, T0_END ;中断不到20次.MOV R7, #20JNB F0, T0_ENDMOV A, R1ADD A, #1DA AMOV R1, AANL A, #0FHMOV DPTR, #TABMOVC A, @A+DPTR ;查出段码MOV P2, AMOV A, R1SWAP AANL A, #0FHMOVC A, @A+DPTR ;查出段码MOV P0, A ;显示十位数.T0_END:RETI;-----------------------------------------------------------TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH, 6FHEND====================================================== =====八、芯片资料AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。

单片机控制秒表显示时间为00—99(每秒自动加1),暂停,复位

单片机控制秒表显示时间为00—99(每秒自动加1),暂停,复位
(3)二次接通电源,电路依然不工作。
(4)复查电路:重新检测电路,利用万用表电流档,检测电路电流,发现电路无电流,检查40引脚VCC,发现单片机40引脚与插座短路,接触不良导致,陆续检查其他引脚。发现还有部分引脚短路。
(5)继续检查电路,直至数码管显示数字为止。
结果显示,秒表运行正常。按照预期实现了99s计时、暂停以及继续的功能。
附件
1.利用单片机完成一定的任务,你的创意(创新)是什么?
我的创意就是电路的布局,实验操作起来与仿真不同,需要注意很多细节,例如原件检测。我的电路布局既节省空间,又不影响电路结构。
2.程序
#include<reg52.h>
sbit W=P1^4;
sbit H=P1^6;
unsigned char msec,sec;
void delay(unsigned char i)
{
unsigned int j,k;
for(k=0;k<i;k++)
for(j=0;j<255;j++);
}
void To_INT(void) interrupt 1
2.元器件作用
(1)STC89C52单片机在电子行业中有着广泛的应用。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,STC89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。
9
创新实践实训报告
学院
信息电子技术学院
专业
电子信息工程

51单片机秒表程序-00-99秒

51单片机秒表程序-00-99秒

#include <reg52.h>#define uchar unsigned char //宏定义用uchar代替unsigned char#define uint unsigned intsbit START=P1^0; //开始、停止键低电平有效sbit RST=P1^1; //复位键sbit SMGGW=P1^2; //用三极管或驱动芯片驱动数码管高电平有效还是低电平有效由电路决定sbit SMGSW=P1^3;uchar tt;uint time; //此变量为时间uchar code table[]={ //此为数码管字模,对应0--90x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};void Delay(uint ms) //延时子函数{uint i,j;for(i=ms;i>0;i--)for(j=500;j>0;j--);}void Display() //显示子函数{uchar ge,shi;shi=time/10;ge=time%10;P0=table[ge];SMGGW=0;//用三极管或驱动芯片驱动数码管高电平有效还是低电平有效由电路决定本程序为低电平数码管亮SMGSW=1;Delay(2);P0=table[shi];SMGGW=1;SMGSW=0;Delay(2);}void main(){P1=0xff;EA=1;ET0=1;TMOD=0x01;TH0=0x4c; //晶振11.0592Mhz 若用12Mhz晶振则改为TH0=0x3c;Tl0=0xb0;TL0=0x00;while(1){if(START==0) //开始、停止{Delay(8);if(START==0){TR0=!TR0;while(!START) Display();}}if(RST==0) //复位{Delay(8);if(RST==0){time=0;while(!RST)Display();}}if(tt==20)tt=0;time++;if(time==99){time=0;}}Display();}}void timer0() interrupt 1{TH0=0x4c; //晶振11.0592Mhz 若用12Mhz晶振则改为TH0=0x3c;Tl0=0xb0;TL0=0x00;tt++;}Welcome To Download !!!欢迎您的下载,资料仅供参考!。

单片机秒表实验报告(一)

单片机秒表实验报告(一)

单片机秒表实验报告(一)单片机秒表实验报告实验目的通过本次实验,掌握单片机外部中断的使用方法,并实现一个简单的秒表功能。

实验材料•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);}}实验结果经过调试,成功实现了秒表实验功能。

单片机秒表实验报告

单片机秒表实验报告

单片机秒表实验报告单片机秒表实验报告引言在现代科技快速发展的时代背景下,单片机作为一种重要的电子元器件,被广泛应用于各个领域。

秒表作为测量时间的工具,在运动、实验、比赛等场景中起到了至关重要的作用。

本实验旨在通过使用单片机设计和制作一个简单的秒表,探索单片机在时间测量方面的应用。

实验原理秒表的原理基于计时器的工作原理。

计时器通过内部的计数器来记录时间,当计数器达到设定值时,会触发中断,从而实现时间的测量和显示。

在本实验中,我们使用8051系列单片机,通过编程设置计数器的初始值和中断触发条件,实现秒表的功能。

实验步骤1. 硬件设计首先,我们需要准备一个适当的电路板,用于连接单片机、显示器和按键等元件。

在电路板上,我们将单片机与显示器和按键进行连接,以实现数据的输入和输出。

同时,我们需要添加一个晶振电路,以提供单片机的时钟信号。

2. 软件设计在软件设计方面,我们需要使用汇编语言或C语言来编写单片机的程序。

程序的主要功能包括初始化、计时、显示和中断处理等。

在初始化阶段,我们需要设置计数器的初始值和中断触发条件。

在计时阶段,我们需要不断地读取计数器的值,并将其转换为秒、分、时等形式进行显示。

同时,我们还需要编写中断处理函数,以响应中断并更新计时器的值。

3. 实验验证在完成硬件和软件设计后,我们可以进行实验验证。

首先,我们将电路板连接到电源,并确保电路正常工作。

然后,我们可以通过按下按键来启动和停止秒表。

在启动状态下,秒表会不断地更新显示,并实时计算经过的时间。

在停止状态下,秒表会保持显示当前的时间。

实验结果经过实验验证,我们成功地设计和制作了一个简单的秒表。

秒表能够准确地测量时间,并将其以易于理解的形式进行显示。

同时,秒表还具备启动和停止功能,方便用户根据需要进行时间测量。

实验总结通过本次实验,我们深入了解了单片机在时间测量方面的应用。

通过合理的硬件设计和编程,我们成功地实现了一个简单而实用的秒表。

在实验过程中,我们不仅学习了单片机的工作原理和编程技巧,还培养了动手实践和解决问题的能力。

单片机c语言秒表显示实验

单片机c语言秒表显示实验

秒表显示实验一.实验目的1. 这个实验是设计一个程序,可以通过单片机让数码管显示从00开始每秒自动加一至99(不熟练的可先设计一个数码管的显示)到99后自动清零,从00开始继续计时。

2. 在做这个实验时要用到更新显缓存这种方法。

3. 让学生更熟悉keil软件的应用,对单片机C语言能更好的应用。

二. 实验过程1.对程序开发环境进行处理(打开软件,建工程,保存工程,建文件,文件加到工程里)。

2编程序,用更新显缓存:#include"AT89X51.H"//************************#define uchar unsigned char#define uint unsigned int//************************uint second;uchar disbuf[4];uchar codeLED[10]={0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x00}void delay_nms(unit nms){}//延时void update_disbuf(void){uint tmp16bit;tmp16bbit = second;disbuf[0] = LED[tmp16bit%10]tmp16bit=tmp16bit/10disbuf[1] = LED[tmp16bit%10]tmp16bit=tmp16bit/10disbuf[2] = LED[tmp16bit%10]tmp16bit=tmp16bit/10disbuf[3] = LED[tmp16bit%10]}void main(void){sp = 0x70;P1_4 = 0;P0 = 0xff;second = 0;update_disbuf();while(1){P0 = disbuf[0];delay nms(1000);second++;update_disbuf();}} //end3.完成整个程序:#include"AT89X51.H"#include"intrins.h"//==============================#define uint unsigned int#define uchar unsigned charuint second;uchar disbuf[4];sbit wei=P2^7;sbit duan=P2^6;uchar codeLED[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f };//============================== void delay_ms(uint nms){uint i,j;for(i=0;i<nms;i++){for(j=0;j<99;j++){_nop_();_nop_();}}}//============================== void update_disbuf(){delay_ms(1000);second++;disbuf[0]=second%10;disbuf[1]=second/10%10;disbuf[2]=second/100%10;disbuf[3]=second/1000%10;}//============================== void main(){second=0;wei=1;P0=0xdf;wei=0;duan=1;P0=LED[0];while(1){update_disbuf();P0=LED[ disbuf[0]];}}4.对程序进行保存编译,无错后,点击target options,在点击OUTPUT后,生成.hex文件,将程序下载到开发板上,观察实验效果。

99秒计时器

99秒计时器

99秒计时器实验报告学院:年级:专业:班级:姓名:一、实验要求1、用中断程序控制数码管倒计时。

2、用开关控制,使数码管开始和停止计时。

3、用开关阵列控制数码管显示二、流程框图(一)原理图(二)PCB(1)由12个按键组成一组3*4的矩阵式键盘,要注意上拉电阻,不能忘记。

用软件采取行扫描或是线反转法的方式,进行判断哪个按键是否按下,首先由软件设定好每个按键所对应的具体数字,当判断那个按键按下后,输出所对应的数字,己所设定的时间。

其中有两个按键是开始按键和停止按键,当开始按键按下的时候,开始倒计时,按下停止的按键,倒计时停止。

(2)A T89C51通过P1口连接数码管,P0口连接键盘,按下键盘,即把数据输入到单片机中,通过单片机内部的软件控制,显示所要显示的具体数据。

(3)由于51单片机的I/O端口的带载能力不够,所以,在I/O端口和数码管的连接上连接一个74HC373来增加带载能力。

(4)数码管的每一个段都连接在74HC373上,通过软件的控制而决定是哪一个字段亮,从而决定是显示怎么样的数字。

把数码管的COM端连接在反相器上,作为微控,连接在单片机上,反相器采用74LS04的反相器。

(5)显示倒计时采取判断的方式,当判断出按下哪个按键后,显示搜对应的数字,按下“开始”按键,通过软件的控制,是倒计时开始。

五、收获对于单片机的学习,理论与实践同等重要。

在实验中,可以弄清楚书本上的知识。

老师在实验中讲诉的一些经验更是重要,这个在书本上是没有,例如在复位电路上是要用乙醇擦拭干净的。

应用软件,拷片子,调试,这些过程锻炼了我们的实践能力,为我们就业奠定了基础。

亲手做过设计,调试过电路板,在这个过程中积累的知识相对看书本所学到的是不一样的。

在做双面板的时候,应尽可能确保双面对正,防止穿孔打偏。

在一些细节上,我们应该更加注意。

谢谢老师指导我们,并且把经验告诉我们。

99.9秒表设计

99.9秒表设计

计算机与信息技术学院综合性(设计性)实验报告一、实验目的1.掌握定时/计数器的工作方式及定时/计数初值的计算2.掌握定时/计数器程序设计方法3.利用定时器,产生秒表计数器,使数码管从00.0计时到99.9。

具有启动、暂停、复位键二、实验仪器或设备装WAVE软件、Proteus软件的微机一台三、总体设计(设计原理、设计方案及流程等)(一)设计原理1.89C51单片机片内有两个16位定时器/计数器(T0、T1),它们都有定时和事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。

2.当89C51采用12MHZ晶振时,一个机器周期为1us3.在模式1中,寄存器TH0和TL0是以全部16位参与操作。

计数长度是655364.对单片机内部定时器T0进行初始化化,定时50ms一次中断,计数2次即为0.1秒(二)设计方案及流程1.利用89C51单片机模式一的工作原理进行设计,定时50ms一次中断,中断一次在30H单元中计数一次,当计数够2次时,小数(HMIAO)计1,当HMIAO计够10次时,整数(MIAO)计1,当MIAO计够100次时,重新开始。

2.当程序开始运行时,应检查是否有键按下,当启动键按下时,中断服务程序开始工作,并同时检测是否有其它键按下,当暂停键按下时,中断服务程序停止工作,并进行判断,直到暂停键断开后继续工作;当复位键按下时,转向开始,一切赋初值,重新开始。

3.运用除法来实现16进制向10进制的转换,商为十位,余数为个位。

4.考虑到带小数点的编码与不带小数点的编码不同,在进行显示的时候,可以让各位进行分别查表。

5.根据实验要求,所设计的硬件电路如附录中电路图所示,该硬件电路主要有由89C51单片机、八位共阳数码管以及其它元器件组成。

89C51单片机通过并行I/O扩展芯片8155的P0口和P2口输出控制八位共阳数码管,其中,P2口控制位选端,P0口控制字符码。

P1口接控制的按键。

图1 流程图四、实验步骤(包括主要步骤、代码分析等)(一)主要步骤1.打开WA VE6000集成调试软件2.单击“文件”——“新建文件”,在文件中按照流程图写入程序,并给该程序的文件命名为“MB.ASM”3.单击“项目”——“编译”4.打开Proteus软件,在ISIS Professional环境中按照电路原理图连接电路5.双击AT89C51芯片,在Program File中添加MB的.HEX文件,单击OK即可6.点下开始按钮,分别按下“启动”、“暂停”和“复位”按键,观察实验结果(二)主要代码分析JNB P1.1,FH1 如果暂停键按下,执行FH1函数INC 30H 30H单元加1MOV A,30H 将30H 给A CJNE A,#2,JIXU A=2,继续往下执行;A 不等于2,执行JIXU MOV 30H,#0 给30H 单元赋值0 INC HMIAO 小数点后面的数加1 MOV A,HMIAO 将HMIAO 给A CJNE A,#0AH,JIXU A =10继续执行;A 不等于10时,执行JIXU MOV HMIAO,#0 将HMIAO 赋值0 INC MIAO MIAO 加1 MOV A,MIAO 将MIAO 给A CJNE A,#64H,JIXU A =100往下执行,A 不等于100时执行JIXU MOV MIAO,#0 将MIAO 赋值0 五、结果分析与总结通过本次实验,我掌握了定时/计数器的工作方式,以及定时/计数初值的计算,并掌握了定时/计数器程序设计方法利用定时器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

.
课程名称单片机原理及应用课程设计
学号
姓名
班级
指导老师
时间
信息工程学院
. 设计过程、步骤(可加页):
一、设计方案
利用STC90C51单片机来制作一个手动计数器,在STC90C51单片机的P3.7 管脚接一个
轻触开关,作为手动计数的按钮,用单片机的P2.0-P2.7 接一个共阳数码管,作为00-99 计
数的个位数显示,用单片机的P0.0-P0.7 接一个共阴数码管,作为00-99 计数的十位数显示;
二、工作原理
采用STC90C51单片机为中心器件,利用其定时器/计时器定时和计数的原理,结合硬件电
路如电源电路、晶振电路、复位电路、显示电路,以及一些按键电路等来设计计时器,软硬件
有机的结合起来,其中软件系统采用c语言编写程序,包括显示程序,快加程序,暂停程序等,
硬件系统利用Keil强大的功能来实现,简单且易观察。

(一)开发板上硬件连线(如图1)
1.把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8 芯排线连接到“四路静态
数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着
b,……,P0.7/AD7对应着h。

2.把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8 芯排线连接到“四路静态数
码显示模块”区域中的任一个数码管的a-h 端口上;
3.把“单片机系统”区域中的P3.7/RD 端口用导线连接到“独立式键盘”区域中的SP1端
口上。

图1 硬件电路连接图
(二)显示电路
两位数码管循环显示00~99电路
数码管只要是用于数字的显示。

数码管有共阴和共阳的区分,单片机都可以进行驱动,但
是驱动的方法却不同。

两位数码管循环电路是由电阻、二极管和数码管组成,电源+5V通过560
的电阻直接给数码管的7个段位供电,P0.0-P0.7对应了两个接数码管的A,B,C,D,E,F,G和小数
点位,P2.6接显示个位数的数码管的3、8引角,P2.7则接十位数的。

P2.6和P2.7端口分别控
制数码管的十位和个位的供电,当相应的端口变成低电平时,驱动相应的三极管会导通,+5V
通过二极管和驱动三极管给数码管相应的位供电,这时只要P0口送出数字的显示代码,数码
管就能正常显示需要的数字。

图2 十位显示动态数码管(共阳数码管)
图3 个位显示静态数码管(共阴数码管)
.
(三)时钟电路
时钟电路的晶振频率越高,系统的时钟频率越高,单片机的运行速度也越快。

晶振频率根据设计需要设为12MHz,又根据谐振性质,电路中的电容应选择为30pF左右。

图4 时钟电路
(四)复位电路
MCS-51单片机的复位是靠外部电路实现的。

MCS-51单片机工作之后,只要在他的RST 引线上加载10ms以上的高点平,单片机就能有效地复位。

MCS-51单片机通常采用上电自动复位和按键复位两种方式。

最简单的复位电路如图5:
图5 复位电路
上电瞬间,RC电路充电,RST引线出现正脉冲,只要RST保持10ms以上的高电平,就能使单片机有效的复位。

在系统中,有些外围芯片也需要复位。

如果这些芯片复位端的复位电平与单片机的复位电平的要求一致,则可以将复位信号与之相连。

三、软件设计
(一)主程序及流程图
图6 程序流程图
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int //头文件
sbit K1=P3^7; //定义按键引脚
uchar i,count,keyflag;
bit keystate;
uchar CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //数码管编码void delayMS(uint ms) //ms延时函数
{
uchar t;
开始
Count初始为0
数码管显示为00
按键识别成功
Count=count+1
Count<100
显示count数值
.
结果与分析(可以加页):
(一)调试结果
1.初始状态
图7:初始状态结果图2.开始计时后按下按键暂停
图8:中间状态图示(二)问题分析及解决措施
1.一开始时没有分清楚数码管是共阴数码管还是共阳数码管,C语言程序中默认数码管是共阴,所以两个P接口的值都是按照共阴去写的,导致数码管选段及位显有问题,后来经过老师的指点,将共阳数码管P2的接口改成了共阴。

2.用到Keil软件时,生成的文件不能烧录,与单片机的开发板连机。

后来经过学习教程并和同学讨论,掌握了用Keil软件生成hex文件并被烧录程序识别的方法。

3.第一次差点出了实验结果,但结果与实验要求不符。

要求99秒,但是我的结果是有两位数显,但是时间跳转得太快。

后来想到可能是程序有问题,通过自己的摸索,和网络检索修改了C语言程序中的时间定时和count循环赋值。

设计体会与建议:
课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.。

回顾起此次单片机课程设计,仍感慨颇多。

从理论到实践,在这一个星期里,我学到很多很多的的东西,巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂keil中hex文件生成方法,对单片机汇编语言掌握得不好等等。

通过这次课程设计之后,一定把以前所学过的知识重新温故。

指导老师评语。

相关文档
最新文档