导航:首页 > 操作系统 > 秒表单片机

秒表单片机

发布时间:2022-01-13 08:46:32

‘壹’ 51单片机做的秒表

if(c==0)
{TR1=1;c++;}
else if(c==2)
{TR1=0;c++;}
else if(c==3)

怎么直接判断c==2 了?

如下修改?
if(c==0)
{TR1=1;c++;}
else if(c==1)
{TR1=0;c++;}
else if(c==2)

‘贰’ 单片机秒表设计!!

题目:秒表(9999秒)
(1)采用定时器...,利用开发板上的按钮,...
--------
楼主应该给出你的开发板上的显示电路和按键电路。

‘叁’ 51单片机完成简易秒表的设计

硬件电路简单,我说下软件部分
用一个定时器定时中断做键盘扫描,数码管用动态扫描的方法,数码管显示和按键处理都放在主程序中进行

‘肆’ 单片机秒表

用定时器加数码管做就可以了吧

‘伍’ 单片机 秒表

下面是我写的时钟程序,你看看,再修改修改就可以了,希望对你有所帮助!
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P3^4;
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;
sbit la=P2^6;
sbit wela=P2^7;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar num,num1,num2,num3,bq,bb,qian,,shi,ge;

void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}

void display() //显示六个数码管,每两个分别表示时,分,秒。
{

bq=num3/10;
bb=num3%10;
qian=num2/10;
=num2%10;
shi=num1/10;
ge=num1%10;
la=1;
P0=table[bq];
la=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delayms(1);

la=1;
P0=table[bb];
la=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delayms(1);

la=1;
P0=0x80;
la=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delayms(1);

la=1;
P0=table[qian];
la=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delayms(1);

la=1;
P0=table[];
la=0;
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
delayms(1);

la=1;
P0=0x80;
la=0;
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
delayms(1);

la=1;
P0=table[shi];
la=0;
P0=0xff;
wela=1;
P0=0xef;
wela=0;
delayms(1);

la=1;
P0=table[ge];
la=0;
P0=0xff;
wela=1;
P0=0xdf;
wela=0;
delayms(1);
}

void keyscan() //四个独立建盘控制调时
{
if(key1==0)
{
delayms(10);
num3++;
if(num3==24)
num3=0;
while(!key1) ;

}
if(key2==0)
{
delayms(10);
num2++;
if(num2==60)
num2=0;
while(!key2);
}
if(key3==0)
{
delayms(10);
if(num2==0)
num2=60;
num2--;
while(!key3);
}
if(key4==0)
{
delayms(10);
num1=0;num2=0;num3=0;
while(!key4);
}
}
void main()
{
TMOD=0X01;
EA=1;
ET0=1;
TR0=1;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
while(1)
{ keyscan();
display();
}
}

void T0_time() interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
num++;
if(num==20)
{
num=0;
num1++;
if(num1==60)
{
num1=0;
num2++;
if(num2==60)
{
num2=0;
num3++;
if(num3==24)
num3=0;

}

}

}
}

‘陆’ 设计一个秒表(十秒或者三十秒)单片机编程

这是一个秒表,有按键实现 启动、暂停核清零功能。
#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;
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];
}
}

‘柒’ 单片机秒表

……
if (Key2 == 0) {
TR0 = 0;
while(Key2 == 0) Display();//不间断显示
}
TR0 = 1;
……

‘捌’ 用51单片机做秒表设计

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

‘玖’ 单片机 简易秒表

#include<REG51.H>
#define uchar unsigned char
#define uint unsigned int
sbit k1=P2^0;
sbit k2=P2^1;
uchar a=0;//计中断次数
uchar second=0,minute=0;
void delayms(uint i) //1ms延时程序
{
uint j;
for(;i>0;i--)
{
for(j=0;j<125;j++)
{;}
}
}
主程序:
void main(void)
{
TMOD=0X01;
TH0=(65536-50000)/256;//定时50ms
TL0=(65536-50000)%256;
ET0=1; EA=1;
TR0=1;
while(1)
{
if(K1==0)
{
delayms(10);
if(K1==0) { TR0=!TR0;while(K1==0);}//暂停/启动
}
if(K2==0)
{
delayms(10);
if(K2==0) { a=0;second=0;minute=0;}//清0
}
display();//显示函数,与硬件有关
}
}
中断程序
void timer0 ()inretrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
if(a==20)
{
a=0;
second++;
if(second==60){second=0;minute++;}
}
}

‘拾’ 单片机(秒表制作)

这样的程序和这样的电路在仿真上面绝对没问题,但我保证你这么照着焊接个实物出来绝对跑不起来,你再设计下晶振电路。89S51里面没有晶振,你不外接它就跑不起来我建议你在加个复位电路。像你用这个数码管的话共阴的我觉得最好不要用三极管放大(第一,成本变高,我买过,一个三极管2毛左右如果你买的不多还更贵。第二,电路连接变复杂了,容易出错),所以推荐你在段选端接上拉电阻(1K左右即可),整好8个引脚接你的八个段选口,去掉为选端的三级管然后直接与单片机相连(还有的你位选端最好不要接P3口,你看你P2口不是还留有好多吗,接到那里,P3主要用第二功能)还有一个就看你个人兴趣了,就是电源设计,很简单的,加一个三端稳压管,这样然你的工作电压稳定在5V。哦,最后还有你的按钮设计,干嘛接P0口,P3口现成的外中断就可以用啊,而且效果要更好程序就不看了,反正我汇编很烂,搞不好你对的我还说成错的,呵呵

阅读全文

与秒表单片机相关的资料

热点内容
微商授权查询系统源码 浏览:980
安卓什么情况没法建立新工程 浏览:219
气球解压社区活动 浏览:924
话费会员充值源码 浏览:319
邮件接收服务器叫什么 浏览:529
代理服务器被限制怎么办 浏览:234
atompython环境变量 浏览:911
记录程序员 浏览:996
javabbs源代码 浏览:231
文件夹命名带什么符 浏览:966
黑马程序员全栈 浏览:225
萍乡溯源码鱼胶零售 浏览:440
幸存者pdf 浏览:556
中国人寿保险app怎么变更银行卡号 浏览:118
node服务启动命令 浏览:548
自编宝塔线源码 浏览:139
电脑桌面解压视频教程 浏览:846
安卓手机玩三国战略为什么会卡 浏览:536
浪潮服务器怎么进入启动项 浏览:156
华为当前手机壁纸放在哪个文件夹 浏览:446