资源简介
51单片机-数码管时钟秒表,c语言,可实现数码管显示时钟功能
代码片段和文件信息
/*******************************************************************
数码管时钟秒表篇
功能简介:该程序有两个功能:时钟,秒表。key1,key2和key3键用来调节
时钟,根据LED的亮闪状态调节时钟(当八个LED全亮时为时钟显示状态,第一
个LED亮时为调节小时状态,第二个LED亮时为调节分钟状态,第三个LED亮时为
调节秒钟状态),key4键为秒表功能键。
实施步骤:第一步:开启定时器,完成数码管时钟走动功能;第二步:完成
数码管时钟调节功能;第三步:完成数码管秒表显示功能。
操作提示:功能键有四个,第二行第以列按键为调节键,第二行第二列按键
为增加数据键,第二行第三列按键为减少键,第二行第四列按键为秒表功能键。
********************************************************************
********************************************************************/
#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit beep=P2^3;
sbit dula=P2^6;
sbit wela=P2^7;
uchar code table1[]={0xff0xfe0xfd0xfb0xf70xef0xdf}; //数码管位选编码
uchar code table2[]={0x3f0x060x5b0x4f0x660x6d0x7d
0x070x7f0x6f0x770x7c0x390x5e
0x790x710x00};
uchar temp; //temp为按键变量
int lightflag; //flag用来控制数码管显示的状态(显示时钟或者显示秒表),light用来控制时钟和秒表的led显示
uchar shi2ge2shi1ge1; //这四个变量用来分离出实参的十位和个位
uchar numnum1num2num3; //num,num1用来计数,num2用来控制调节的时分秒,num3用来改变秒表状态下的显示状态
int miaofenshi; //时钟变量
uchar mfenmmiaommmiao; //秒表变量
void delay(uint z)
{
uint ij;
for(i=0;i for(j=0;j<110;j++);
}
void timeinit()
{
TMOD=0x11;
TH0=(65536-46080)/256;
TL0=(65536-46080)%256;
TH1=(65536-4608)/256;
TL1=(65536-4608)%256;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=0;
}
void timedisplay0() interrupt 1
{
TH0=(65536-46080)/256;
TL0=(65536-46080)%256;
num++;
if(num==20)
{
num=0;
miao++; //开启时钟功能
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
{
fen=0;
shi++;
if(shi==24)
shi=0;
}
}
}
}
void timedisplay1() interrupt 3
{
TH1=(65536-4608)/256;
TL1=(65536-4608)%256;
num1++;
if(num1==2)
{
num1=0;
mmmiao++;
if(mmmiao==100) //开启秒表功能
{
mmmiao=0;
mmiao++;
if(mmiao==60)
{
mmiao=0;
mfen++;
if(mfen==60)
mfen=0;
}
}
}
}
void display(uchar adduchar date) //数码管显示信息函数(带有小数点)
{
shi2=date/10;
ge2=date%10;
P0=0xff;
wela=1;
P0=table1[add];
wela=0;
P0=0;
dula=1;
P0=table2[shi2];
dula=0;
delay(1);
P0=0xff;
wela=1;
P0=table1[add+1];
wela=0;
P0=0;
dula=1;
P0=table2[ge2]|0x80;
dula=0;
delay(1);
}
void display1(uchar adduchar date) //数码管显示数据(不带有小数点)
{
shi1=date/10;
ge1=date%10;
P0=0xff;
wela=1;
P0=table1[add];
wela=0;
P0=0;
dula=1;
P0=table2[shi1];
dula=0;
delay(1);
P0=0xff;
wela=1;
P0=table1[add+1];
wela=0;
P0=0;
dula=1;
P0=table2[ge1];
dula=0;
delay(1);
}
void keyscan()
{
P3=0xfd;
temp=P3; //第二行功能键
if(temp!=0xfd)
{
delay(5);
if(temp!=0xfd)
{
beep=0;
switch(temp)
{
case 0xed: num2++; //第一个按键用来控制调节时,分,秒
TR0=0;
light=1;
if(num2==4)
{
num2=0;
light=0;
TR0=1;
}
break;
case
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5209 2012-08-30 18:59 综合应用3-数码管时钟秒表\数码管时钟.c
文件 10862 2012-08-20 22:45 综合应用3-数码管时钟秒表\数码管时钟秒表
文件 2918 2012-08-20 22:45 综合应用3-数码管时钟秒表\数码管时钟秒表.hex
文件 58 2012-08-20 22:45 综合应用3-数码管时钟秒表\数码管时钟秒表.lnp
文件 846 2012-08-20 17:35 综合应用3-数码管时钟秒表\数码管时钟秒表.LST
文件 17482 2012-08-20 22:45 综合应用3-数码管时钟秒表\数码管时钟秒表.M51
文件 12973 2012-08-20 17:35 综合应用3-数码管时钟秒表\数码管时钟秒表.OBJ
文件 1004 2012-09-07 18:43 综合应用3-数码管时钟秒表\数码管时钟秒表.Opt
文件 0 2012-09-07 18:43 综合应用3-数码管时钟秒表\数码管时钟秒表.plg
文件 1673 2012-09-06 19:37 综合应用3-数码管时钟秒表\数码管时钟秒表.Uv2
....... 1004 2012-09-06 19:37 综合应用3-数码管时钟秒表\数码管时钟秒表_Opt.Bak
....... 1695 2012-08-20 22:44 综合应用3-数码管时钟秒表\数码管时钟秒表_Uv2.Bak
文件 8804 2012-08-20 22:45 综合应用3-数码管时钟秒表\液晶屏秒表.lst
文件 12973 2012-08-20 22:45 综合应用3-数码管时钟秒表\液晶屏秒表.obj
目录 0 2012-09-07 18:43 综合应用3-数码管时钟秒表
----------- --------- ---------- ----- ----
77501 15
- 上一篇:数据结构课程设计故宫导游咨询系统
- 下一篇:c++版的连连看解释很详细
相关资源
- 国密SM4加密解密51单片机版C源程序.
- 新概念51单片机C语言教程入门、提高
- 51单片机下oled显示ds18b20采集温度
- 电子密码锁设计
- 51单片机超声波测距小车.rar
- 基于51单片机可调电子时钟
- 51单片机测量转速
- 基于51单片机的12864液晶显示C语言源程
- 51单片机做简易计算器
- ADC0809与80C52单片机
- 基于51单片机多节点RS485通信带Protue
- at89c51单片机+矩阵键盘编写的计算器
- 云龙51单片机视频教程,目前国内公认
- 51单片机简易秒表的设计(仿真图、程
- 51单片机超声波测距KEIL+proteus.rar
- STC89C52单片机实用程序30个C语言10个汇
- 基于STC89C51单片机的DS18B20的温度报警
- 基于keil5和protues仿真的智能温度控制
- 郭天祥十天学会C51单片机视频教程地
- MCS-51单片机C语言编程100例
- 单片机原理与应用及C51程序设计 谢维
- 51单片机生成二维码(QR Code)+12864并
- C语言 51单片机4x4矩阵键盘扫描程序
- 51单片机数字时钟—源程序+仿真电
- 51单片机与液晶显示LCD1602接口、C语言
- 智能浇花系统设计说明书+51单片机+详
- 51单片机:信号发生器
- 基于51单片机的spwm波形产生程序
- M26短信猫 发短信(51单片机)
- 51单片机计数器仿真加程序
评论
共有 条评论