资源简介
51单片机做得倒计时牌,数码管显示,动态扫描
代码片段和文件信息
#include
#include
void timer0_init(); //定时器0初始化
void delay(int); //延时程序
void trans_led(intintintint); //数码管显示传送函数
sbit P10=0x90; //管脚定义
sbit P30=0xB0;
sbit P20=0xA0;
int day=0hour=0min=0sec=0; //定义时间变量
unsigned int state=0; //运行状态标志
unsigned int asec=0; //记录定时器0中断次数,当asec=20时计时为1s
unsigned int check_b=0check_s=0check_g=0; //记录set键的按下次数
char table[10]={0xC00xF90xA40xB00x990x920x820xF80x800x90}; //定义表格
main(){
timer0_init();
EX0=1;
EX1=1;
IT0=1;
IT1=1;
EA=1;
TR0=1;
while(1){
switch(state){
case(1):trans_led(10051010); //“天“的百位闪烁
break;
case(2):trans_led(10100510); //“天“的十位闪烁
break;
case(3):trans_led(10101005); //“天“的个位闪烁
break;
default:trans_led(0202020); //正常运行
break;
}
}
}
void timer0_init(){
TMOD=0x21;
TH0=0x3C;
TL0=0xB0;
ET0=1;
TF0=0;
}
void Timer0_overflow() interrupt 1 using 0{
TH0=0x3C;
TL0=0xB0;
asec++;
if(asec==20){ //定时一秒
asec=0;
if(sec==0){
sec+=60;
min--;
}
if(min<0){
min+=60;
hour--;
}
if(hour<0){
hour+=24;
day--;
}
if(day>=0){ //计时时间未完,秒减一
sec--;
}
else{
day=hour=min=sec=0; //计时结束
TR0=0;
}
}
}
void Int0() interrupt 0 using 0{ //set键
if(state>4)
state=1;
else
state++;
if(state==4){
state=0;
TR0=1;
}
}
void Int1() interrupt 2 using 0{ //select/start键
if(state>=1&&state<=3){
TR0=0;
hour=min=sec=0;
timer0_init();
}
switch(state){
case(1):day+=100;
check_b++;
break;
case(2):day+=10;
check_s++;
break;
case(3):day++;
check_g++;
break;
default:break;
}
if(check_b>9) //计时范围限制
day-=1000;
if(check_s>9){
day-=100;
}
if(check_g>9){
day-=10;
}
}
void delay(int time){
int ij;
for(i=0;i<=time;i++){
for(j=0;j<=10;j++);
}
}
void trans_led(int aint bint cint d){
//显示秒
P2=0xFE;
P1=table[sec%10];
delay(20);
P2=0xFF;
P2=0xFD;
P1=table[sec/10];
delay(20);
P2=0xFF;
//显示分
P2=0xFB;
P1=table[min%10];
delay(20);
P2=0xFF;
P2=0xF7;
P1=table[min/10];
delay(20);
P2=0xFF;
//显示时
P2=0xEF;
P1=table[hour%10];
delay(20);
P2=0xFF;
P2=0xDF;
P1=table[hour/10];
delay(20);
//显示天
delay(a);
P2=0xFF;
P30=0;
check_b=day/100;
P1=table[check_b];
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 22495 2008-07-20 21:35 彼岸之光\Backup of BACKUP~1.SCH
文件 22495 2008-06-12 12:01 彼岸之光\Backup of bazg.Sch
文件 286720 2008-07-20 21:35 彼岸之光\BACKUP~1.DDB
文件 9235 2008-06-16 13:56 彼岸之光\bazg
文件 3344 2008-06-14 16:37 彼岸之光\bazg.c
文件 268288 2008-06-12 12:17 彼岸之光\bazg.ddb
文件 121914 2008-06-14 16:37 彼岸之光\bazg.DSN
文件 3483 2008-06-16 13:56 彼岸之光\bazg.hex
文件 526676 2008-06-08 22:39 彼岸之光\bazg.jpg
文件 6922 2008-06-16 13:56 彼岸之光\bazg.LST
文件 12603 2008-06-16 13:56 彼岸之光\bazg.M51
文件 10517 2008-06-16 13:56 彼岸之光\bazg.OBJ
文件 1283 2008-06-16 13:52 彼岸之光\bazg.Opt
文件 367 2008-06-16 13:57 彼岸之光\bazg.plg
文件 840 2008-07-20 21:35 彼岸之光\bazg.PWI
文件 15011 2008-06-07 12:46 彼岸之光\bazg.SRC
文件 2076 2008-06-09 17:18 彼岸之光\bazg.Uv2
....... 1293 2008-06-14 17:48 彼岸之光\bazg_Opt.Bak
....... 2123 2008-06-09 17:11 彼岸之光\bazg_Uv2.Bak
文件 108714 2008-06-10 16:33 彼岸之光\Last Loaded bazg.DBK
文件 4154 2008-06-09 17:12 彼岸之光\mfm.lst
文件 22495 2008-06-12 12:06 彼岸之光\Previous Backup of BACKUP~1.SCH
文件 22495 2008-06-12 11:54 彼岸之光\Previous Backup of bazg.Sch
文件 5115 2002-04-16 15:32 彼岸之光\STARTUP.A51
文件 11784 2008-06-16 13:56 彼岸之光\STARTUP.lst
文件 866 2008-06-16 13:56 彼岸之光\STARTUP.obj
文件 122368 2008-06-16 13:43 彼岸之光\彼岸之光设计文档.doc
目录 0 2008-07-20 21:36 彼岸之光
----------- --------- ---------- ----- ----
1615676 28
............此处省略1个文件信息
- 上一篇:线性秘密共享方案LSSS
- 下一篇:钽电容PCB封装
相关资源
- MCU生成PDF文件
- NRF905无线收发芯片原理及设计实现1
- 51+ad9833信号发生器程序
- 1602 基于89C51单片机的DS18B20恒温控制系
- STC系列单片机原理原理图库Altium Des
- 51-LTC2440参考例程
- 51单片机 的交通灯仿真与原理图
- 基于C51单片机的交通灯开发
- 基于单片机的dac0832阶梯波的proteus仿真
- 51单片机+CS5460+12864液晶的单相电能表
- 51单片机12864坦克大战游戏(仿真+程序
- 89C52单片机通过LCD1602显示任意长度字
- 基于单片机的体温呼吸检测系统设计
- 单片机实现触摸控制开关源程序
- 基于51单片机蓝牙遥控小车程序
- DS18B20数码管显示温度
- 用proteus设计仿真硬件电路图:用808
- 用proteus设计仿真硬件电路图:利用
- DS18B20 STC1T系列单片机驱动程序
- MC9S08DZ60资料包.zip
- VCLZipPro v4.51.1.zip
- 51单片机彩灯控制器的设计(仿真图、
- DMX512协议代码
-
IAR em
bedded Workbench for 8051 7.60 破解 - intel hex 校验和计算工具
- DAC0832产生三种波形DDS信号产生(测试
- DHT11的51单片机驱动
- TEXTQOL 封装
- 51单片机多功能电压-电流表测量系统
- 无线电遥控器遥控信号 单片机 发射
评论
共有 条评论