资源简介
基于51单片机的闹钟
代码片段和文件信息
#include
#include
#define uint unsigned int
#define uchar unsigned char
#define du P0
sbit bell=P1^0;
sbit K1=P1^1;//模式设置
sbit K2=P1^2;//位选择
sbit K3=P1^3;//加
sbit K4=P1^4;//减
sbit K5=P1^5;//确定
uchar num0;
uint secfenhoursec0fen0hour0sec1fen1hour1num2sec2fen2hour2daymonyear;
uint mk1=0k2=0k34=0be=0xz;
uchar code mo[]={0312831303130313130313031};
uchar code table[]={
0x3f0x060x5b0x4f
0x660x6d0x7d0x07
0x7f0x6f0x400xff};
void timeqidong()
{
TH0=(65536-4996)/256;
TL0=(65536-4996)%256;
EA=1;
ET0=1;
TR0=1;
TMOD=0x01;
}
void delay(uint a)
{
uint b;
for(a;a>0;a--)
for(b=10000;b>0;b--);
}
void anjian()//按键子程序
{
uint i;
k34=0;
if(K1==0)
{
delay(2);
if(K1==0)
{
k1++;
if(k1>2) {k1=0;}
while((i<5)&&(K1==0))
{
delay(3);
i++;
}
i=0;
}
}
if(K2==0)
{
delay(1);
if(K2==0)
{
k2++;
if(k2>6) {k2=0;}
while((i<5)&&(K2==0))
{
delay(6);
i++;
}
i=0;
}
}
if(K3==0)
{
delay(4);
if(K3==0)
{
k34=1;
while((i<3)&&(K3==0))
{
delay(1);
i++;
}
i=0;
}
}
if(K4==0)
{
delay(4);
if(K4==0)
{
k34=-1;
while((i<3)&&(K4==0))
{
delay(1);
i++;
}
i=0;
}
}
if(K5==0)
{
delay(1);
if(K5==0)
{
k2=0;
while((i<4)&&(K5==0))
{
delay(2);
i++;
}
i=0;
}
}
}
void shezhi(uint *auint *buint *c)
{
if(k2>0)
{
switch(k2)
{
case 1:*a=(*a/10+k34)*10+*a%10;break;
case 2:*a=*a+k34;break;
case 3:*b=(*b/10+k34)*10+*b%10;break;
case 4:*b=*b+k34;break;
case 5:*c=(*c/10+k34)*10+*c%10;break;
case 6:*c=*c+k34;break;
}
k34=0;
if(k1==0)
{hour2=hour0fen2=fen0sec2=sec0num2=num0;xz=0;}
}
}
void xianshi(uint houruint fenuint sec)//数码管显示子函数
{
uchar itflag;
uint jx;
for(i=0;i<8;i++)
{ switch(i)
{
case (0):P2=~0x01;flag=1;t=hour/10;break;
case (1):P2=~0x02;flag=2;t=hour%10;break;
case (2):P2=~0x00; t=11;break;
case (3):P2=~0x08;flag=3;t=fen/10;break;
case (4):P2=~0x10;flag=4;t=fen%10;break;
case (5):P2=~0x00; t=11;break;
case (6):P2=~0x40;flag=5;t=sec/10;break;
case (7):P2=~0x80;flag=6;t=sec%10;break;
}
if(k2==flag&&num0>140)
{ du=0xff;}
else du=~table[t];
for(x=300;x>0;x--);
for(j=10;j>0;j--);
du=0xff;
}
}
void main()
{ year=15;mon=6;day=6;
hour0=12;fen0=0;sec0=0;
hour1=30;fen1=0;sec1=0;
hour2=hour0fen2=fen0sec2=sec0;
timeqidong();
while(1)
{
anjian();
switch(k1)//设定
{
case 0:shezhi(&hour0&fen0&sec0);break;
c
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 16264 2015-06-25 22:33 shizhong2.OBJ
....... 70495 2015-07-02 18:01 shizhong2.uvgui.Administrator
....... 70495 2015-06-25 22:45 shizhong2.uvgui_Administrator.bak
....... 5334 2015-06-20 16:04 shizhong2.uvopt
....... 14023 2015-06-20 16:04 shizhong2.uvproj
....... 5334 2015-06-20 11:56 shizhong2_uvopt.bak
....... 14019 2015-06-20 11:56 shizhong2_uvproj.bak
文件 13424 2015-06-25 22:33 shizhong2
文件 622 2015-07-03 19:42 shizhong2.build_log.htm
文件 4309 2015-07-02 16:34 shizhong2.c
文件 5902 2015-06-25 22:33 shizhong2.hex
文件 66 2015-06-25 22:33 shizhong2.lnp
文件 9235 2015-06-25 22:33 shizhong2.LST
文件 17397 2015-06-25 22:33 shizhong2.M51
----------- --------- ---------- ----- ----
246919 14
相关资源
- 51单片机 心形花样流水灯程序
- 四位数码管时钟程序
- 数控直流电压源
- QT计算器,画图,闹钟,秒表,倒计时
- BC28+51单片机的原理图
- 12864频谱显示程序
- 51单片机控制电机的转速转向以及启停
- 郭天祥10天学会PIC单片机.
- dxp单片机元件库
- 基于单片机和ds18b20温度传感器的温度
- 基于PID算法的电加热炉温度控制仿真
- STM32F1灭火小车程序-灭火机器人
- STC89C52RC 智能家居设计(GSM+人体红外
- 单片机实现裁判三人表决器的设计程
- 51单片机双机通信
- 单片机课程设计电子时钟
- 基于单片机的功率因数检测电路设计
- 51开发板密码锁
- 单片机控制舵机程序
- 基于单片机的洗衣机控制系统设计
- 关于单片机的超声波测速系统的设计
- stc89c52 蓝牙控制源码
- 基于51单片机的心形流水灯仿真
- 51单片机控制CS5463程序
- 51单片机最小系统原理图.SchDoc
- 51单片机红外遥控器程序
- STM32F103ZET6输出正弦波和三角波
- 遗传算法实现求PID参数控制电压的代
- 基于51单片机的智能窗帘系统全套资料
- CC2530单片机ADXL345的i2C程序
评论
共有 条评论