keil使用和数码管.docx
《keil使用和数码管.docx》由会员分享,可在线阅读,更多相关《keil使用和数码管.docx(16页珍藏版)》请在冰豆网上搜索。
keil使用和数码管
1、查找USB接口。
2、记下通信COM口,如果不换USB口,COM口不会发生变化。
3、使用Keil软件。
1、新建一个工程文件
2、保存一个工程名称到指定的文件夹下。
3、
4、
5、空的项目文件
6、
7、
8、加源程序到工程
9、
10、
11、编译操作
12、生成一个目标代码*.hex文件
13、
数码管显示
#include"reg51.h"
Delay2ms(unsignedintDTime)
{
unsignedintCnt;
for(Cnt=0;Cnt}
unsignedcharNUM[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0---9段位
main()
{
unsignedintWCnt=0;
unsignedcharMinute=12,Second=24;
while
(1)
{
switch(WCnt++%5)
{
case0:
P0=0x01;
P2=0x5b;
break;
//显示秒
case1:
P0=0x02;
P2=NUM[Second%10];
break;
case2:
P0=0x04;
P2=NUM[Second/10];
break;
//显示分
case3:
P0=0x02;
P2=NUM[Minute%10];
break;
case4:
P0=0x04;
P2=NUM[Minute/10];
break;
}
Delay2ms
(1);
if(WCnt>500)
{
WCnt=0;//记录下一个秒
Second++;
if(Second>59)
{
Second=0;
Minute++;
if(Minute>59)
{
Minute=0;
Hour++;
if(Hour>23)
{
Hour=0;
Day++;
if(Year%400==0)
{
if(Month==2)
{
if(Day>29)
{
Day=1;
Month++;
}
}
}
if(Year%400!
=0)
{
if(Month==2)
{
if(Day>28)
{
Day=1;
Month++;
}
}
}
switch(Month)
{
case12:
if(Day>31)
{
Day=1;
Month=1;
Year++;
break;
}
case10:
if(Day>31)
{
Day=1;
Month++;
break;
}
case8:
if(Day>31)
{
Day=1;
Month++;
break;
}
case7:
if(Day>31)
{
Day=1;
Month++;
break;
}
case5:
if(Day>31)
{
Day=1;
Month++;
break;
}
case3:
if(Day>31)
{
Day=1;
Month++;
break;
}
case1:
if(Day>31)
{
Day=1;
Month++;
break;
}
case11:
if(Day>30)
{
Day=1;
Month++;
break;
}
case9:
if(Day>30)
{
Day=1;
Month++;
break;
}
case6:
if(Day>30)
{
Day=1;
Month++;
break;
}
case4:
if(Day>30)
{
Day=1;
Month++;
break;
}
}
/*加入平年、闰年、大月、小月的判断*/
}
}
}
}
}
}
}
sbitKEY=P1^0;/*P1口的第一个管脚为按键*/
/*P10--Key1
P11--Key2
P12--Key3
P13--Key4
*/
Delay2ms(unsignedintDTime)
{
unsignedintCnt;
for(Cnt=0;Cnt}
if(KEY==0)
{
Delay2ms(5);//延时10ms,跳过按键抖动
while(KEY==0);
Second++;
}