资源简介
在单片机的数码管上显示999秒倒计时,用的是c语言编写的。欢迎大家下载
代码片段和文件信息
#include
sbit Key_UP=P1^0;
sbit Key_DOWN=P1^1;
unsigned char KeyVTempKeyV;
sbit P35=P3^5;//数码管第5位
sbit P36=P3^6;//数码管第6位
sbit P37=P3^7;//数码管第7位
sbit JDQ=P2^0;//继电器
sbit beep=P2^1;//蜂鸣器
unsigned int js;
unsigned int ds;//倒计时初始时间
unsigned char jsflag;
//static unsigned int i;
unsigned char code LEDDis[]={0xC00xF90xA40xB00x990x920x820xF80x800x900xFF0xBF};
void Delay(unsigned int ii)
{
unsigned int jj;
for(;ii>0;ii--)
for(jj=0;jj<125;jj++)
{;}
}
void Delay500(unsigned int iii)
{
unsigned int jjj;
for(;iii>0;iii--)
for(jjj=0;jjj<60;jjj++)
{;}
}
void main()
{
EA = 1; //允许CPU中断
ET0 = 1; //定时器0中断打开
TMOD = 0x1; //设定时器0为模式1,16位模式
TH0=0xB1;
TL0=0xDF; //设定时值为20000us(20ms)
TR0 = 1;
ds=9;
KeyV = 0;
TempKeyV = 0;
jsflag=0;
while(1);
}
//定时器0中断外理中键扫描和显示
void KeyAndDis_Time0(void) interrupt 1 using 2
{
TH0=0xB1;
TL0=0xDF; //设定时值为20000us(20ms)
if (!Key_UP)
KeyV = 1;
if (!Key_DOWN)
KeyV = 2;
if (KeyV!= 0) //有键按下
{
Delay(10); //延时防抖 按下10ms再测
if (!Key_UP)
TempKeyV = 1;
if (!Key_DOWN)
TempKeyV = 2;
if (KeyV == TempKeyV) //两次值相等为确定接下了键
{
if (KeyV == 1){
jsflag=0;
if(ds==0){
ds=600;
}
js=js+1;
JDQ=0; //继电器吸合
if(js==45){
beep=0;}
if(js==50){
js=0;
ds=ds-1;
beep=1;
}
}
if(KeyV==2){
jsflag=1;
}
}
}
if(jsflag==1){
JDQ=1;
}
if(ds==0){
JDQ=1;
jsflag=1;
KeyV=0;
}
P0=LEDDis[ds/100];
P35=0;
Delay500(5);
P35=1;
P0=LEDDis[(ds-(ds/100)*100)/10];
P36=0;
Delay500(5);
P36=1;
P0=LEDDis[(ds-(ds/100)*100)-((ds-(ds/100)*100)/10)*10];
P37=0;
Delay500(5);
P37=1;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2009-10-22 22:04 999秒倒计时程序\
文件 4887 2009-10-22 22:01 999秒倒计时程序\daojishi
文件 1706 2009-10-22 22:01 999秒倒计时程序\daojishi.hex
文件 43 2009-10-22 22:01 999秒倒计时程序\daojishi.lnp
文件 7772 2009-10-22 22:01 999秒倒计时程序\daojishi.M51
文件 967 2009-10-22 22:04 999秒倒计时程序\daojishi.Opt
文件 369 2009-10-22 22:04 999秒倒计时程序\daojishi.plg
文件 2118 2009-10-22 21:54 999秒倒计时程序\daojishi.Uv2
文件 965 2009-10-22 21:54 999秒倒计时程序\daojishi_Opt.Bak
文件 2147 2008-07-08 11:12 999秒倒计时程序\daojishi_Uv2.Bak
文件 2040 2009-10-22 22:01 999秒倒计时程序\djs.c
文件 5827 2009-10-22 22:01 999秒倒计时程序\djs.LST
文件 5646 2009-10-22 22:01 999秒倒计时程序\djs.OBJ
文件 123392 2008-07-10 15:51 999秒倒计时程序\实验说明文档.doc
相关资源
- 六个8X8点阵.zip
- 用C8051F单片机写的中断控制程序C语言
- 单片机计时器/计数器产生方波
- C利用循环左移函数流水灯
- 单片机C语言关键语句
- VS2010调用Keil实现单片机c语言编程
- 51单片机c语言电子钟(已加入调时、
- 基于AT89C52单片机的语音录放系统的
- C语言实现PID控制直流电机调速含pro
- MSP430单片机实现FFT(全国大学生电子
- MAX485两个单片机半双工通信
- c51单片机24C01-24C16读写程序含PROTEUS仿
- pic18系列单片机C语言程序例程
- 基于8051单片机的数字电压表设计
- 基于51单片机的电子琴程序 protues仿真
- 单片机课程设计教程
- 51单片机做红外遥控
- 51单片机GPS程序
- 51单片机C语言电流电压测量代码
- 基于STM32单片机的多路数据采集系统设
- labview与单片机rs232串口通信
- 基于51单片机的c语言编写的计算器程
- 基于C语言STC89C52单片机电子密码锁的
- 基于51单片机的DDS信号发生器AD9833程序
- 一个基于单片机的温湿度程序
- GSM发短信 GPS 单片机C语言实现
- 基于单片机的温度智能控制系统
- 基于 51 单片机 多进程 多任务 纯 C语
- 单片机简易计算器的设计包含设计报
- 51单片机控制PS2键盘的程序KEIL环境C
评论
共有 条评论