单片机的秒表设计的程序

作者&投稿:翟连 (若有异议请与网页底部的电邮联系)
用C语言编写秒表的程序(单片机控制的时钟设计)~

这个程序可以实现秒的计时,按键控制开始、暂停、清零功能,更多功能自己在看清程序的基础上进行改进。
#include
sbit P3_5 =P3^5;
unsigned char code dispcode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,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;
P1=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;
P1=dispcode[second/10];
P2=dispcode[second%10];
break;
}
while(P3_5==0);
}
}
}
}
void t0(void) interrupt 1 using 0
{
tcnt++;
if(tcnt==4000)
{
tcnt=0;
second++;
if(second==100)
{
second=0;
}
P1=dispcode[second/10];
P2=dispcode[second%10];
}
}

#include
#define
uchar
unsigned
char
uchar
distab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
uchar
times,num;
void
t0isr()
interrupt
1
{
TH0=(65536-50000)/256;
//重置初值
TL0=(65536-50000)%256;
times++;
if(times>=20)
//1秒是否到
{
times=0;
num--;
//1秒到后,计数值减1
P0=distab[num];
//显示
if(num==0)num=9;
//到0后再赋值为9
}
}
main()
{
TMOD=0x01;
//定时器0为16为定时
TH0=(65536-50000)/256;
//50毫米中断一次
TL0=(65536-50000)%256;
ET0=1;
EA=1;
num=9;
times=0;
TR0=1;
while(1);
}

这个程序本身思路都已经非常清晰了呀,主要就是再把流程优化下即可了。定时器T0只负责产生秒信号,用两个计数单元来计数需要显示的内容,在低位秒信号满100后清零同时把高位单元加一,还有就是对按键的处理和显示的处理问题上,比如两个键同时按下如何处理,显示是用锁位来实现,还是不停的动态扫描实现等等

#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];
}
}


单片机秒表功能实现的原理?
利用单 片机内定时器,一次定时50ms,定义4 个变量,分别是时、 分、秒和中断次数,每中断一次中断次数变量加1,累积20次,即是1S,然后秒加1,够60秒后秒清0,分加1,60 分后,分清0,时加1,24小时后 ,小时清0,这些都在中断程序中完成,主程序中不断地显示时间,这就是一个时钟。在此...

课程设计数字秒表设计 求高手解答。
数字秒表的工作过程为:初始值为00:00,当启动键按下后,计时开始, 以0.01秒为单位加1计时,当暂停键按下后,计时停止,当前值保持不变,直到清零(复位)键按下后,计数值清零,变为00:00,等待启动键再次按下。当计时到99:99时,再计0.01秒后变为00:00。数字秒表是以0.01S为最小定时单位的定时器,可以利用51单片机...

如何设计电子秒表?
本设计采用555作为振荡电路,由74LSl92、74LS48和七段共阴LED数码管构成计时电路,具有计时器直接复位、启动、暂停、连续计时和报警功能。该电路制作、调试简单,采用普通器件,一装即成。一、电路组成 电路由秒脉冲发生器、计数器、译码器、显示电路、报警电路和辅助控制电路五部分组成,见右图。其整机电...

镜片行业的标准工时计算。车间的工序为:切片,染色,烤片,品检。要制定...
标准工时计算公式为:(MT+PT*机器宽放+NCT)*(1+宽放率)其中MT为进行手工作业的时间(此时机器没有进行加工作业);PT为机器加工作业的时间;机器宽放是一个常数,有的公司是1.25,有的公司是1.33,有的公司没有,看你们公司具体的政策,我公司用的是1.33,取的是从计时制度变为计件制度时人...

单片机课程设计电梯程序设计汇编语言
3、计时器电原理图 (三)软件总体设计 1、程序设计内容 (1.在设计过程中我们用一个存储单元作为秒计数单元,当一秒钟到来时,就让秒计数单元加1,当秒计数达到60时,就自动返回到0,从新秒计数。 (2.对于秒计数单元中的数据要把它十位数和个数分开,方法仍采用对10整除和对10求余。 (3.在数码上显示,仍通过...

利用51单片机,4个数码管设计一个计时器,要求在数码管上显示的数据从0开...
define uchar unsigned char uchar code table[]= { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};uint num,a;uchar bai,shi,ge;void init();void delay(uint);void display(ucharbai,ucharshi,ucharge);uint fb();uint fs();uint fg(...

《单片机C语言程序设计实训100例——基于8051+Proteus仿真》 第03...
实例65:数码秒表设计 实例66:数码时钟设计 实例67:用LED数码管显示计数器T0的计数值 实例68:静态显示数字“59”单片机c语言编程100个实例目录3 键盘控制*键盘控制* *键盘控制 *键盘控制 *\/ 实例69:无软件消抖的独立式键盘输入实验 实例70:软件消抖的独立式键盘输入实验 实例71:CPU控制的独立式...

秒表3.24是多少秒?
秒表所表示的3.24,所指的是3分钟24秒,所以在平时不同的钟表计算过程当中,一定要熟悉掌握计算方法,才能够达到更好的准确查看效果,也能够让时间的表示更精准。

计时器怎么使用
1、时钟功能板块。打开时钟,在标题栏可以看到它分为四个功能板块,分别是:闹钟、时钟、秒表、计时;2、计时器。计时,指的是倒计时,在这里设置一段时间比如30分钟,点击开始后它便从30分钟开始倒计时,30分钟结束后发出声响提醒倒计时已结束;3、时钟。在这里可以看到世界各地在同一时刻的当地时间,...

如何用74LS161芯片构成60进制计数器
5、用两片74LS160芯片设计一个同步六十进制计数器可使用同步级联、异步清零方式实现。其中个位计数为十进制形式。用74161设计一个60进制数字秒表并将结果用共阴极数码管显示的实验方案...用74161设计一个60进制数字秒表并将结果用共阴极数码管显示的实验方案...1、数字钟要完成显示需要6个数码管,八段的...

吴中区15657014027: 单片机的秒表设计的程序 -
宫仲乙水: 这个程序本身思路都已经非常清晰了呀,主要就是再把流程优化下即可了.定时器T0只负责产生秒信号,用两个计数单元来计数需要显示的内容,在低位秒信号满100后清零同时把高位单元加一,还有就是对按键的处理和显示的处理问题上,比如两个键同时按下如何处理,显示是用锁位来实现,还是不停的动态扫描实现等等

吴中区15657014027: 求单片机秒表程序、 -
宫仲乙水: 秒表1/100秒显示单位,也就是10毫秒,用单片机的话你用定时器10毫秒中断一次就OK了,以下是部分程序,显示部分没做.second equ 30h ;存秒 sec100 equ 31h ;存1/100秒部分 org 0000h ljmp start org 000bh ljmp timer0 org 0100h start:...

吴中区15657014027: 单片机秒表程序 -
宫仲乙水:以下程序使用定时器1计数,定时10ms,60H为妙计数单元,4FH单元为秒标示位,一秒时间到,置位4FH ***********************************************************************************************************************ORG 0000H ;程序从0地址开始 ...

吴中区15657014027: 用单片机的汇编语言编写一个(十秒秒表 的编程) -
宫仲乙水: ;功能:0~9,数码管显示计时;共阳接法;P1口接数码管 ORG 0000H LJMP MAIN ORG 001BH ;定时器T1,中断入口 LJMP T1_ISR ORG 0030H;主程序MAIN: MOV TMOD,...

吴中区15657014027: 求一个单片机多功能秒表程序C语言的? -
宫仲乙水: #include <reg52.h>#define uint unsigned int#define uchar unsigned char uint h; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar duan1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; uchar wei[]={0xfe,0xfd,0xfb,0xf7,...

吴中区15657014027: 帮帮忙吧,谁有单片机秒表的程序设计!急有!要求计时精度为百分之一秒,5键操作,难度很大,必有重谢! -
宫仲乙水: 用89C51,外接晶振,复位电路,二个数码管,二个按键,做一个电子秒表,具体要求为用按键起停电子表,可用按键设计倒计时时间(如10S,20S,60S),并启动倒计时功能.能用按键选择以上两功能之一. 三、程序代码: A_BIT EQU 20H ...

吴中区15657014027: 如何设计这个单片机数字秒表程序? -
宫仲乙水: 根据以下程序稍做修改,就可以了 下面程序启动和暂停共用一个按键 #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit key1=P1^0; sbit key2=P1^1; sbit wei1=P1^2;//四个个数码管的位驱动(阳极) sbit wei2=P1^3; ...

吴中区15657014027: 以下是基于单片机的电子秒表的C语言程序 球高手详细翻译 谢谢 越快越好 // -
宫仲乙水: //12M晶振.4位共阴数码管,P0 段码,P2.1~P2.3 位控 //显示 00.00~99.99 //2011 07 07 E:\DPJ_C\00.00\00.00.c //感觉你的程序不合适 #include #define uchar unsigned char sbit P20=P2^0; sbit P21=P2^1; sbit P22=P2^2; //sbit P23=P...

吴中区15657014027: 单片机秒表,求大神设计个秒表....C语言程序 -
宫仲乙水: 其实四位一体数码管显示电路的位控可直接用P2口控制,不必用锁存器74HC573,仿真图简单,写程序也简单.如下仿真图.

吴中区15657014027: 设计一个秒表(十秒或者三十秒)单片机编程 -
宫仲乙水: 这是一个秒表,有按键实现 启动、暂停核清零功能.#include <reg51.H>sbit P3_5 =P3^5;unsigned char code dispcode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0x00};unsigned char second;...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网