51单片机 秒表设计

作者&投稿:濯河 (若有异议请与网页底部的电邮联系)
基于51单片机的电子秒表设计~



// 51单片机 秒表,显示时间为0000—9999秒,启动、停止,(停止后再次启动复位)

#include<reg52.h>

#define uint unsigned int

#define uchar unsigned char

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

uchar bai,shi;

uint a1,a2;

sbit D1=P3^0;

sbit D2=P3^1;

sbit D3=P3^2;

sbit D4=P3^3;

sbit key=P3^5;

sbit key1=P3^7;

bit   j ;

uint  y ;

void main()

{

TMOD=0x01;

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

EA=1;

ET0=1;

TR0=1;

bai=0;

shi=0;

while(1)

{

if(key==0)

{

j=0;

}

if(key1==0) 

{

j=1; a2=0;

}

}

}

void timer0()interrupt 1

{

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

a1++;

y++;

if(a1==100) 

{

a1=0;

if(j==1)  a2++;

if(a2>=10000) a2=0; 

}

D1 = 1; D2 = 1; D3 = 1; D4 = 1;

if(y==1)

{

P1=table[a2%10000/1000];  

D4=0;

}

if(y==2)

{

P1=table[a2%1000/100];   

D3=0;

}

if(y==3)

{

P1=table[a2%100/10];   

D2=0;

}

if(y==4)

{

P1=table[a2%10];      

D1=0;

y=0;

}

}



遇到懒学生了,这个不就是一个定时器加显示吗,有什么难的,自己翻翻微机原理书就可以做 了,也就四五十行汇编语言就行了,用C就更加简单,具体的方法:用定时器定时0.2ms,定时到了就给固定的一个变量加1,然后判断这个变量是不是到了500,到了就清零然后把秒的变量加1,就是1s了,(分和时也是如此,秒为60,秒清零,分加1);主程序就只管显示和按键,按键随便用中断还是查询,我建议你查询,因为程序简单,显示程序就是查个表,自己把数码显示的断码表编好就可以了,把秒的数值查表对应显示,完了就查询按键,按键累加,值为0是没按,1是按1次,2是按2次,3是按3次,同时清零,很简单的



找我可以


墨竹工卡县15030302616: 51单片机完成简易秒表的设计 -
捷迹赛乐: 设计思路:1.定时器计时 设置秒表最小单位(如ms)设置定时器的寄存器初始值,定时器溢出显示等.2.键盘扫描 可设置中断也可直接键盘扫描,因键较少可以不必接成矩阵.可以只用三个键来实现. 键1:功能选择,包括功能设置、准备计时等 键2:计时开始,向上调整时间 键3:计时停止,向下调整时间3.显示 看单片机引脚多少,可以直接静态显示,可以用移位寄存器增加管脚功能.

墨竹工卡县15030302616: 用51单片机做秒表设计 -
捷迹赛乐: 遇到懒学生了,这个不就是一个定时器加显示吗,有什么难的,自己翻翻微机原理书就可以做 了,也就四五十行汇编语言就行了,用C就更加简单,具体的方法:用定时器定时0.2ms,定时到了就给固定的一个变量加1,然后判断这个变量是不是到了500,到了就清零然后把秒的变量加1,就是1s了,(分和时也是如此,秒为60,秒清零,分加1);主程序就只管显示和按键,按键随便用中断还是查询,我建议你查询,因为程序简单,显示程序就是查个表,自己把数码显示的断码表编好就可以了,把秒的数值查表对应显示,完了就查询按键,按键累加,值为0是没按,1是按1次,2是按2次,3是按3次,同时清零,很简单的

墨竹工卡县15030302616: 51单片机秒表设计,高手请进 -
捷迹赛乐: 用89C51,外接晶振,复位电路,二个数码管,二个按键,做一个电子秒表,具体要求为用按键起停电子表,可用按键设计倒计时时间(如10S,20S,60S),并启动倒计时功能.能用按键选择以上两功能之一.nbsp;三、程序代码:nbsp;A_...

墨竹工卡县15030302616: 用51单片机设计一个秒表,计时范围从00:00 - 59:59. -
捷迹赛乐: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 ...

墨竹工卡县15030302616: 基于51单片机的电子秒表设计 -
捷迹赛乐: 这个是 数码管显示计数器程序.稍加更改 既满足要求 要精确定时,必须使用自装载方式.这里我们使用T2定时器,让它工作在16bit自动装载方式,这时,有另一个位置专门装着16位预装载值,T2溢出时,预装载值立即被置入.这就保证了精...

墨竹工卡县15030302616: 用51单片机制作倒计时秒表需要什么元件,麻烦列个清单.新手刚刚开始学 -
捷迹赛乐: 至少需要: 1、单片机--1 2、30p电容--2 3、12M晶振--1 4、10u电容--1 5、8.2K电阻--1 6、按钮开关--1 7、数码管组--1(4个数码管) 8、8电阻排--1 9、辅料(导线、焊锡等)

墨竹工卡县15030302616: AT89C51单片机设计一个简易秒表? -
捷迹赛乐: 定时器10ms中断 检测按键且10ms位加一 若10ms=10,100ms位加一 若10ms=10,1000ms位加一 以此内推 显示最好用LCD的 用数码管的也行 有疑问mail:290765583@163.com

墨竹工卡县15030302616: 51单片机设计一个秒表,用两个数码管(任意相邻的两个)显示. -
捷迹赛乐: ORG 0000H JMP BEGIN ORG 000BH LJMP T0INT ORG 001BH LJMP T1INT LEDD EQU 30H LEDC EQU 36H SECC EQU 37H TCNT EQU 3AH ORG 0030H;--------------------------------------- TABLE: ; 共阴极数码管显示代码表 DB 0FCH ;"0" ...

墨竹工卡县15030302616: 单片机秒表功能设计 -
捷迹赛乐: 采用51的单片机即可实现.用定时器计时,每秒进位,输出到LED数码管上显示即可.利用一个外部中断,按键决定何时显示秒和分(也可在LED上同时显示分和秒).

墨竹工卡县15030302616: 51单片机编程秒表问题 -
捷迹赛乐: 循环过程大致如下 void main() { //假设AB按钮为导通低电平 int num=0; int flag=1; while(1)//主循环 等待A按下 { while(flag)//等待A按下 { if(A连接的IO口为低电平) //A按下 { flag=0; } } if(B连接的IO口为低电平) //B按下 { flag=1; } if(num<100) { 显示num值; } else { num=0; 显示num值; } num++; } }

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