17单片机99秒马表设计实验
单片机课程设计-99S秒表

单片机课程设计说明书学院:专业:班级:指导老师:姓名:学号:2012年6月【摘要】:随着电子技术的发展,电子技术在各个领域的运用也越来越广泛,人对它的认识也逐步加深。
秒表计时器秒表计时器常常用于体育竞赛及各种其他要求有较精确时间的各领域中。
其中启/停开关的使用方法与传统的机械计时器相同,即按一下启/停开关,启动计时器开始计时,再按一下启/停开关计时终止。
本设计就是利用所学到的电子元器件将脉冲源用数码管显示出来,以制做简易的秒表。
[关键词]机械计时器启/停开关数码管显示简易目录1.设计任务 (4)2.设计题目 (4)3. 功能分析 (4)4. 总体设计 (4)4.1硬件设计4.1.189C51单片机 (4)4.1.2晶体振荡电路 (5)4.1.3按键电路 (6)4.1.4显示电路 (6)4.2引脚控制 (6)5. 电路原理图 (8)6. 程序设计 (9)7. 程序仿真 (11)8. 实物制作 (11)8.1所需元件 (11)8.2所需工具 (11)8.3焊接 (11)8.4烧录程序并运行 (12)9.心得体会 (12)10.参考文献 (12)单片机原理及应用课程设计说明书1、设计任务以单片机为核心,设计一个0-99S秒表,按键时具有计时功能。
2、设计题目定时器控制8段2位数码LED显示秒表3、功能分析采用2个LED数码管显示时间,计时范围设置为0~99.秒,即精确到1秒,用按键控制秒表的“开始”、“暂停”。
按开关按键,开始计时;再按开关按键,系统暂停计时;4、总体设计本实验利用单片机的定时器/计数器定时和计数的原理,通过采用Proteus仿真软件来模拟实现。
模拟AT89C51单片机、LED数码管以及控件来控制秒表的计数以及计时的开启、暂停、继续。
其中有两个数码管来显示数据,两个数码管显示秒(两位)。
4.1硬件设计4.1.1 89C51单片机MCS-51系列单片机是8位单片机产品,89C51是其中的典型代表,基本模块包括以下几个部分:(1)CPU:89C51的CPU是8位的,另外89C51内部有1个位处理器(2)R0M:4KB的片内程序存储器,存放开发调试完成的应用程序(3)RAM:256B的片内数据存储器,容量小,但作用大(4)I/O口:P0-P3,共4个口32条双向且可位寻址的I/O口线(5)中断系统:共5个中断源,3个内部中断,2个外部中断(6)定时器/计数器:2个16位的可编程定时器/计数器(7)通用串行口:全双工通用异步接收器/发送器(8)振荡器:89C51的外接晶振与内部时钟振荡器为CPU提供时钟信号(9)总线控制:89C51对外提供若干控制总线,便于系统扩展89C51的引脚如下图:89C51单片机引脚图4.1.2晶体振荡电路89C51单片机内部的振荡电路是一个高增益反相放大器,引线XTAL1和XTAL2分别为反相振荡放大器的输入及内部时钟工作电路的输入和来自反相振荡器的输出,该反相放大器可以配置为片内振荡器。
99秒跑马表课程设计

99秒跑马表课程设计一、课程目标知识目标:1. 学生能理解99秒跑马表的原理,掌握其制作方法。
2. 学生能够运用所学的数学知识,如时间计算、速度与距离关系,解决实际问题。
3. 学生能够理解并运用基本的物理知识,如加速度、力的作用等,分析跑马表中涉及到的运动现象。
技能目标:1. 学生能够独立完成99秒跑马表的制作,培养动手操作能力和解决问题的能力。
2. 学生能够运用所学的数学和物理知识,进行数据计算和分析,提高逻辑思维能力。
3. 学生能够通过团队合作,共同完成任务,提升沟通协作能力。
情感态度价值观目标:1. 学生在学习过程中,培养对科学知识的热爱和探究精神,增强学习兴趣。
2. 学生能够认识到团队合作的重要性,培养团结互助的品质。
3. 学生能够通过课程学习,体会到数学和物理知识与现实生活的紧密联系,提高实践应用意识。
课程性质:本课程为综合实践活动课程,结合数学和物理知识,培养学生的实践操作能力和综合运用知识解决问题的能力。
学生特点:五年级学生对新鲜事物充满好奇,具备一定的数学和物理知识基础,动手能力强,喜欢团队合作。
教学要求:教师应注重引导学生运用所学知识,激发学生的探究欲望,关注学生的实践操作过程,及时给予指导和评价。
同时,关注学生在团队合作中的表现,培养良好的沟通协作能力。
通过本课程的学习,使学生在知识、技能和情感态度价值观方面均取得具体、可衡量的学习成果。
二、教学内容本课程以“99秒跑马表”为主题,结合以下教学内容进行组织:1. 数学知识:- 时间计算:时、分、秒的换算关系,速度与距离的计算。
- 数据分析:通过实际操作,收集数据,运用图表进行数据分析。
2. 物理知识:- 力与运动:力的作用、运动状态、加速度的概念。
- 能量转换:能量的传递与转换,如重力势能与动能的转换。
3. 制作跑马表:- 制作原理:了解跑马表的制作原理,掌握其运行机制。
- 制作步骤:分解制作过程,明确各步骤的要求和注意事项。
单片机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口送出数字的显示代码,数码管就能正常显示需要的数字。
基于单片机的99秒表设计

基于单片机的99秒表设计(一).方案论证及设计说明1.控制器的选择单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。
由于其功耗低、体积小、技术成熟和成本低等优点,各个领域应用广泛。
本实验采用AT89C51单片机。
2.数码管的选择(1)LED显示方式有共阴极和共阳极两种。
由于平时习惯于用共阴极数码管,在本实验中采用共阴极数码管。
1)字形码表的产生以共阴极为例,LED七段数码管的每一段接高电平时亮,不同的2)显示方式: 静态显示在静态显示方式下,每一位显示器的字段控制线是独立的。
当显示某一字时,该位的各字段线和字位线的电平不变,也就是各字段的亮灭状态不变。
静态显示方式下LED 显示器的电路连接方法是:每位LED 的字位控制线门共阴极点或共阳极点连在一起,接地或接 + 5V ;由于显示的是整数,所以小数点那位可以不接,所以其字段控制线 (a ~g )分别接到一个7位口。
动态显示1)利用人眼的视觉暂留效应,通过位选分时显示不同的数码管,这样可以看到正常的显示。
调用延时子程序循环显示各路水压值, 使能清楚的看到八路水压的大小。
2)本实验采用共阴极数码管,动态循环显示各路水压值,并在设置上下限时显示上下限的大小。
显示数码与共阴极断码的对应关系:0 1 2 3 4 5 6 7 8 9 3FH06H 5BH 4FH 66H6DH7DH07H 7FH 6FH静态显示占的的IO 资源多,动态显示可以节省IO 口,本实验中IO 口足够用,所以用静态显示。
3.设计说明99秒表的设计有2个控制键,开始键和复位键,按下开始键则开始计时,再按一下开始键则停止计时,显示计时的秒数,按一下复位键则复位,显示00。
按键通过外部中断来实现,用外部中断0和外部中断1来实现。
按下开始键则进入外部中断0,为了区分是开始计时还是计时停止,给寄存器R1赋初值为0,判断R1为零,给R1赋值1,则启动定时器,进入定时器中断,执行计时,每隔一秒数码管显示的值自动加一,当再次按下开始键时,再次进入中断0,R1的值为1,通过比较指令判断为停止计时指令,则跳转到指令使定时器停止计时,则显示定时的时间,同时把R1的值再设为0。
99秒秒表课程设计

目录摘要 (2)1 99秒秒表设计背景及目的要求 (2)1.1 99秒秒表设计背景 (2)1.2设计目的 (2)1.3硬件选择 (2)1.4设计内容 (2)2 设计方案及基本原理 (2)2.1 预备知识 (2)2.2 LED显示原理 (3)2.3 元器件选择 (3)2.4 系统设计 (3)2.5硬件工作原理 (4)2.6 硬件连接 (4)3 程序设计 (5)3.1设计步骤 (5)3.2程序代码........................................... 错误!未定义书签。
4 调试结果及分析 (7)4.1 调试结果 (7)4.2 结果分析 (7)5 结论与体会 (8)参考文献 (9)附录 (8)摘要:本设计是设计一个单片机控制的多功能秒表系统。
近年来随着科技的飞速发展,单片机的应用正在不断的走向深入,同时带动着传统控制检测日新月异更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面的知识是不够的,还要根据具体的硬件结构,以及针对具体的应用对象的软件结合,加以完善。
秒表的出现,解决了传统的由于人为因素造成的误差和不公平性。
将软、硬件有机地结合起来,使得系统能够实现两位LED显示,显示时间为00~99秒,每秒自动加1,能正确地进行加、减(倒)计时,快加,快减,可以同时记录4个相对独立的时间,通过上翻下翻来查看这4个不同的计时值,可谓功能强大。
其中软件系统采用汇编语言编写程序,包括显示程序,加减计数程序,快加快减程序,中断,延时程序,按键消抖程序等,并在WAVE中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。
关键词:单片机 AT89C51 99秒【设计题目】99秒秒表设计1 99秒秒表设计背景及目的要求1.1 99秒秒表设计背景目前,单片机正朝着高性能和对品种方向发展,趋势是进一步向着CMO化,低功耗,小体积,大存量,高性能,低价格和外国电路内装化等几个方面发展。
99秒马表课程设计说明书

信息与电气工程学院课程设计说明书(2013/2014 学年第二学期)课程名称:单片机应用课程设计题目:99秒马表专业班级:电气工程及其自动化0000班目录一、课程设计目的 (2)1.1概述 (2)1.2设计要求 (2)二、课程设计正文 (2)2.1整体设计 (2)2.2器件清单 (3)2.3主要器件说明 (4)2.3.1 STC90C52AD的功能参数介绍 (4)2.3.2译码单元 (6)2.3.3共阴极数码管 (7)2.4单元电路设计 (8)2.4.1 时钟模块 (8)2.4.2 复位电路模块 (8)2.4.3控制模块 (8)2.4.4 显示模块 (9)2.5系统调试 (9)2.4系统分析 (10)2.5系统设计 (10)2.5.1程序流程图 (10)2.5.2 T0中断服务程序框图 (11)2.6系统实施 (11)三、总结: (12)四、参考文献 (13)附录一:C语言设计程序代码: (14)附录二:设计原理图及PCB图 (16)附录三、课程设计评语及成绩 (18)99秒马表单片机设计一、课程设计目的1.1.概述单片机原理及应用课程设计是学生综合运用所学知识,全面掌握单片微型计算机及其接口的工作原理、编程和使用方法的重要实践环节。
通过独立或协作提出并论证设计方案,进行软、硬件调试,最后获得正确的运行结果,可以加深和巩固对理论教学和实验教学内容的掌握,进一步建立计算机应用系统整体概念,初步掌握单片机软、硬件开发方法,为以后进行实际单片机软、硬件应用开发奠定良好的基础。
课程设计的主要内容:根据单片机原理及应用课程的要求,主要进行两个方面的设计,即单片机最小系统和接口技术应用设计。
其中,单片机最小系统主要要求学生熟悉单片机的内部结构和引脚功能、引脚的使用、复位电路、时钟电路、4个并行接口和一个串行接口的实际应用,从而可构成最小应用系统,并编程进行简单使用。
接口技术应用设计主要要求学生能综合运用单片机、存储器、常用接口芯片构成单片机应用系统,有针对性地进行软、硬件设计与开发。
单片机0-99计数器秒表报告

〔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口送出数字
99码表设计

//=====99秒马表设计程序========////1.开机显示00,按下按键后开始计时。
//2.第2次按按键后,计时停止。
//3.第3次按按键后,计时归零。
#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charuchar code leddu[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar a,temp,t,num,shi,ge,flag_key,flag;sbit K1=P0^0; //声明按键K1void init();void delay(uint z);void display(uchar shi,uchar ge);void main(){init();while(1){if(flag==1){shi=num/10; //取出马表的十位ge=num%10; //取出马表的各位}display(shi,ge); //开机显示00if(K1==0){delay(10);if(K1==0) flag_key++; //设下按键标志位while(!K1) display(shi,ge); //按键松手显示}if(flag_key==1) TR0=1; //第一次按下时,开始计时if(flag_key==2) TR0=0; //第二次按下时,计时停止if(flag_key==3) num=0; //第三次按下时,计时归零if(flag_key==4) flag_key=0;}}void delay(uint z) //------延时子函数-------{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void init() //------初始化程序---------{TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=0;t=0;a=0;temp=0xfe;num=0;}void display(uchar shi,uchar ge) //------显示子程序------- {for(a=0;a<8;a++){switch(a){case 6:P3=leddu[shi];break;case 7:P3=leddu[ge];break;}P2=temp|0x3f; //屏蔽低6位temp=_crol_(temp,1);delay(3);}}void time() interrupt 1 //--定时器子程序--------{TH0=(65536-50000)/256;TL0=(65536-50000)%256;t++;if(t==20){t=0;num++;flag=1; //每过1s,num加一次,设下标志位}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
17.99秒马表设计
1.实验任务
(1.开始时,显示“00”,第1次按下SP1后就开始计时。
(2.第2次按SP1后,计时停止。
(3.第3次按SP1后,计时归零。
2.电路原理图
图4.17.1
3.系统板上硬件连线
(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端口上;要
求:P2.0/A8对应着a,P2.1/A9对应着b,……,P2.7/A15对应
着h。
(3.把“单片机系统“区域中的P3.5/T1用导线连接到”独立式键盘“区域中的SP1端口上;
4.程序框
T0中断服务程序框
图4.17.2 5.汇编源程序
TCNTA EQU 30H
TCNTB EQU 31H
SEC EQU 32H
KEYCNT EQU 33H
SP1 BIT P3.5
ORG 00H
LJMP START
ORG 0BH
LJMP INT_T0
START: MOV KEYCNT,#00H
MOV SEC,#00H
MOV A,SEC
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOV DPTR,#TABLE
MOV P2,A
MOV TMOD,#02H
SETB ET0
SETB EA
WT: JB SP1,WT
LCALL DELY10MS JB SP1,WT
INC KEYCNT
MOV A,KEYCNT
CJNE A,#01H,KN1
SETB TR0
MOV TH0,#06H
MOV TL0,#06H
MOV TCNTA,#00H
MOV TCNTB,#00H
LJMP DKN
KN1: CJNE A,#02H,KN2 CLR TR0
LJMP DKN
KN2: CJNE A,#03H,DKN MOV SEC,#00H
MOV A,SEC
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR MOV P0,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
MOV KEYCNT,#00H DKN: JNB SP1,$
LJMP WT
DELY10MS:
MOV R6,#20
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
INT_T0:
INC TCNTA
MOV A,TCNTA
CJNE A,#100,NEXT
MOV TCNTA,#00H
INC TCNTB
MOV A,TCNTB
CJNE A,#4,NEXT
MOV TCNTB,#00H
INC SEC
MOV A,SEC
CJNE A,#100,DONE
MOV SEC,#00H DONE: MOV A,SEC
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOV P0,A
MOV A,B
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,A
NEXT: RETI
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END
6.C语言源程序
#include <AT89X51.H>
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0x00}; unsigned char second;
unsigned char keycnt;
unsigned int tcnt;
void main(void)
{
unsigned char i,j;
TMOD=0x02;
ET0=1;
EA=1;
second=0;
P0=dispcode[second/10];
P2=dispcode[second%10];
while(1)
{
if(P3_5==0)
{
for(i=20;i>0;i--)
for(j=248;j>0;j--);
if(P3_5==0)
{
keycnt++;
switch(keycnt)
{
case 1:
TH0=0x06;
TL0=0x06;
TR0=1;
break;
case 2:
TR0=0;
break;
case 3:
keycnt=0;
second=0;
P0=dispcode[second/10]; P2=dispcode[second%10];
break;
}
while(P3_5==0);
}
}
}
}
void t0(void) interrupt 1 using 0 {
tcnt++;
if(tcnt==400)
{
tcnt=0;
second++;
if(second==100)
{
second=0;
}
P0=dispcode[second/10];
P2=dispcode[second%10];
}
}。