1. 设计要求 用AT89C51设计一个2位的LED数码显示作为“秒表”:显示时间为00—99秒,每秒自动加1,另设计一个“开始”键和一个“复位”键。
2.项目采用定时器T0作为计时器,每10ms发生一次中断,每100次中断加1s。在此期间,如“开始”按键按下,程序方将TR0置为1,从而开启中断,时钟开始走时;如“ 复位”按键按下,程序将TR0置为0,同时将存储时间的变量清零,从而中断停止,并实现复位。
3. Proteus仿真 晶振频率为11.0592MHz。 启动仿真,按下按键1后,可发现led停止闪烁,即时钟停止走时,时钟停在当前时刻,按下按键2和按键3后,可改变时间,按下按键4后,时钟复位到修改后的时间,时钟重新开始运转。
=========================================
orz拜托了
// 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;
}
}
基于51单片机,lcd1602怎么显示倒计时秒表? - 知乎
基于单片机的数字秒表设计,核心使用51系列的STC89C52单片机,结合LCD12864显示模块、语音播报模块及输入模块,实现功能如下:系统中控部分由STC89C52单片机负责,它接收输入信息并处理,控制输出。输入模块包括三个部分:DS1302时钟模块,用于获取时间、实现计时与倒计时;四个独立按键,用于设置时间、倒计时时间、控...
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...
51单片机的秒表计时器设计,求大神帮忙设计电路图和C语言程序!!_百度知...
这个程序可以实现秒的计时,按键控制开始、暂停、清零功能,更多功能自己在看清程序的基础上进行改进。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...
利用51单片机设计一个秒表 (一定要按要求做到0.01秒)
最低位,是0.01s 变化一次,一秒钟,变化 100 次。这么快,人的眼睛,分辨不出来。只能看到一个 8。停止时,才能看到稳定的数字。程序如下:include<reg52.h> sbit P3_5 =P3^5;unsigned char counet, m[4] = {0,0,0,0};void display(){ unsigned char code Tab[] = { 0xc0,0xf9,...
单片机秒表设计
用AT89C51设计一个2位的LED数码显示作为“秒表”,这应该是一个仿真题,可用两位一体的共阴数码管,用定时器T0定时,得到1秒计时。
用51单片机设计一个秒表,计时范围从00:00-59:59.
4];void dischg(){disdat[3]=sec%10;disdat[2]=sec\/10;disdat[1]=min%10;disdat[0]=min\/10;}void ext0() interrupt 0{key++;key%=3;}void t0isr() interrupt 1\/\/秒计时{TH0=0x3c;TL0=0xb0;time++;if(time==20){time=0;sec++;if(sec>59){sec=0;min++;if(min>59)...
用51单片机设计3位led数码显示管作秒表00.0-99.0求设计电路与c语言程 ...
sbit wei1=P3^3;\/\/再有三个管脚接3个三极管驱动数码管的阴极 sbit wei2=P3^4;sbit wei3=P3^5;uint a=0;\/\/中断次数计数,一次50ms,20次为1 秒 \/\/共阴数码管七段码 uchar TABLE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};\/\/延时子程序 void delay1ms(uint t...
51单片机设计一个秒表,用两个数码管(任意相邻的两个)显示。
LJMPT0INT ORG001BH LJMPT1INT LEDDEQU30H LEDCEQU 36H SECCEQU 37H TCNTEQU 3AH ORG 0030H ;--- TABLE: ; 共阴极数码管显示代码表 DB 0FCH;"0"00H DB 60H;"1"01H DB 0DAH;"2"02H DB 0F2H;"3"03H DB 66H;"4"04H DB 0B6H;"5"05H DB 0BEH;"6"06H DB 0E0H;"7"...
单片机怎么设计一个0-9的一位数秒表,用定时器实现 c语言程序及其注释...
include<reg52.h> \/\/ 包含51单片机寄存器定义的头文件 unsigned char code Tab[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};\/\/数码管显示0~9的段码表 unsigned char int_time; \/\/记录中断次数 unsigned char second; \/\/储存秒 \/ 函数功能:快速动态扫描...
求高手为下面的仿真图设计一个51单片机实现秒表的程序,要求:2位数码...
sbit KS=P1^1;sbit KP=P1^2;sbit KC=P1^3;uchar ge,shi;uchar code tab[ ]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,};void delay(uint ms){ uchar a;while(ms--)for(a=123;a>0;a--);} void display();void t0intinit( )\/\/定时器T0初始化 { TMOD=0x01...