资源简介
自己初学单片机时做的第一个作品。数字钟
keil+proteus
keil+proteus
代码片段和文件信息
#include
unsigned int table1[4]={0x0e0x3e0x770x37};
unsigned int table[10] = {0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};
unsigned int cnt=0;
unsigned int cnt1=0;
unsigned int cnt2=0;
sfr state = 0xa0;
int flag=0;
int flag1=0;
char flag3=0;
char second_1=0second_2=0minute_1=3minute_2=0hour_1=3hour_2=1;
void watch();
void ok();
void display1();
void delay(unsigned int time);
void chang();
void chang2();
void clear();
void clean();
void main(void)
{
TMOD=0x12;
TH0=0x38;
TL0=0x38;
ET0=1;
IT0=0;
EX0=0;
TH1=0x3c;
TL1=0xb0;
ET1=1;
IT1=1;
EX1=1;
EA=1;
TR0=1;
TR1=1;
PT0=1;
PX0=1;
PX1=0;
PT1=0;
P2=0xff;
while(1)
{
watch();
}
}
void does()interrupt 1
{
cnt1+=1;
if(cnt1==3500)
P3_7=0;
if(cnt1==5000)
{ second_1+=1;
cnt1=0;
P3_7=1;
}
if(second_1==10)
{
second_1=0;
second_2+=1;
}
if(second_2==6)
{
second_2=0;
minute_1+=1;
}
if(minute_1==10)
{
minute_1=0;
minute_2+=1;
}
if(minute_2==6)
{
minute_2=0;
hour_1+=1;
}
if(hour_1==10)
{
hour_1=0;
hour_2+=1;
}
if(hour_2==2)
hour_2=0;
}
void hello() interrupt 2
{
delay(100);
if(P3_3==0)
{
flag3+=1;
if(flag3==1)
ok();
else if(flag3==2)
chang();
}
}
void ok()
{unsigned int i;
do
{
for(i=0;i<200;i++);
cnt+=1;
if(cnt==100||cnt==200||cnt==300||cnt==400)
display1();
else if (cnt==501)
{
flag=4;
display1();
}
else if(cnt>550&&cnt<800)
display1();
else if(cnt==801)
{
flag=0;
cnt=0;
P1=0;
}
}
while(P3_3==0);
P2=0xff;
cnt=0;
}
void display1()
{unsigned int i;
switch(flag)
{
case 0: P2=0;
P1=table1[0];
flag=1;
break;
case 1:P1=table1[1];
flag=2;
break;
case 2:P1=table1[2];
flag=3;
break;
case 3:P1=table1[3];
flag=0;
break;
case 4: P1=0;
P2=0xff;
for(i=0;i<500;i++) ;
flag=5;
break;
case 5: P2_5=1;
P1=table1[0];
P2_2=0;
flag=6;
break;
case 6: P2_2=1;
P1=table1[1];
P2_3=0;
flag=7;
break;
case 7: P2_3=1;
P1=table1[2];
P2_4=0;
flag=8;
break;
case 8: P2_4=1;
P1=table1[3];
P2_5=0;
flag=5;
break;
}
}
void watch()
{
switch(flag1)
{
case 0:P2_0=1;
P1=table[second_1];
P2_7=0;
flag1=1;
break;
case 1:P2_7=1;
P1=table[second_2];
P2_6=0;
flag1=2;
break;
case 2:P2_6=1;
P1=table[minute_1];
P2_4=0;
flag1=3;
break;
case 3:P2_4=1;
P1=table[minute_2];
P2_3=0;
flag1=4;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 170104 2009-02-03 13:29 eee\clock.DSN
文件 2008 2009-02-03 13:29 eee\clock.PWI
文件 5021 2009-02-02 18:33 eee\flashled.c
文件 170104 2009-02-03 12:06 eee\Last Loaded clock.DBK
目录 0 2009-02-03 13:29 eee
----------- --------- ---------- ----- ----
347237 5
- 上一篇:php图书管理系统源码
- 下一篇:U盘量产工具 全世界最简单教程
相关资源
- 8251 全双工异步通信
- 8051F040SMBUS多机通信
- DXP单片机常用的元件库
- 单片机控制74ls164程序
- 基于单片机交通灯设计
- 基于PIC单片机的万年历的设计
- PIC单片机延时计算器
- 51单片机频率计(很简单)
- modbus51_c代码
- 9s12单片机SPI功能代码
- 51多机通信(内附Proteus及.hex文件)
- AT89S ISP下载编程软件(串口)
- 基于51单片机的智能温控器
- 基于51单片机的16*16点阵动态显示
- 基于51单片机的模数转换与数模转换
- 解封SHOW 51VV 9158 封机器码类游戏机
- radmin3.51完美破解版(支持win10)
- 51单片机中使用ucos ii的优缺点转
- 51单片机中使用ucos ii的优缺点
- 8051单片机教程第二十七课:单片机几
- 8051单片机教程第二十六课:矩阵式键
- 适用于STC单片机和51单片机的SX1262驱动
- nRF24L01无线模块在单片机与FPGA上的应
- nRF24L01无线模块原理图和与5V单片机的
- 基于89C51计算机锁定加密键盘设计
- 在s = 510 GeV的p + p碰撞中以正向速度测
- 爱普生(EPSON)L3151 3153 3156 3157 3158不
- 基于51单片机的计算器(C51编写,有
- 51单片机大量源码
- 单片机电子琴 数码管显示
评论
共有 条评论