51单片机按键实现00-99加减(自己整理的)
基于单片机的00秒-99秒的秒表设计
工程技术学院
课程设计
题目:用单片机AT89C51设计一个2位的LED数码显示作为“秒表”专业:电气工程及其自动化
年级:2009级
学号:20091447 20091414 20091444
姓名:付忠林梁宗林李座
指导教师:杨彦鑫
日期:2012年12月12日
云南农业大学工程技术学院
目录
一、设计题目和要求: (2)
二、设计目的: (2)
三、设计内容: (3)
四、课程设计心得体会 (24)
五、参考文献 (25)
六、课程设计指导教师评审标准及成绩评定 (27)
附件1:秒表原理图(实际接线图) (28)
附件2:仿真图1 (30)
附件3:仿真图2 (31)
一、设计题目和要求:
题目三:秒表
应用AT89C51的定时器设计一个2位的LED数码显示作为“秒表”:显示时间为00~99s,每秒自动加1,设计一个“开始”键,按下“开始”键秒表开始计时。设计一个“复位”键,按下“复位”键后,秒表从0开始计时。
二、设计目的:
1.进一步掌握AT89C51单片机的结构和工作原理;
2.掌握单片机的接口技术及外围芯片的工作原理及控制方法;
3.进一步掌握单片机程序编写及程序调试过程,掌握模块化程序设计方法;
4.掌握PROTEUS仿真软件的使用方法;
5.掌握LED数码管原理及使用方法。
6.掌握定时器、外部中断的设置和编程原理。
7.通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
8.该课程设计通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、复位功能,并同时可以用数码管显示。
51单片机0~99动态显示
单片机0~99显示设计
设计原理图
设计代码
#include<reg52.h>
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char count;
#define uint unsigned int
#define uchar unsigned char
void delay(uint);
void delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
count=0;
while(1)
{
count++;
delay(1000);
if(count==100)
{
count=0;
}
P0=table[count/10];
P2=table[count%10];
}
}
51单片机数码管显示0到99实验原理
51单片机数码管显示0到99实验原理
51单片机是一种常用的单片机微控制器,它可以用来完成各种控
制任务,包括数码管显示。数码管是一种显示器件,可以用来显示数字、字母或符号等。在本实验中,我们将使用51单片机控制数码管显
示从0到99的数字。
实验原理如下:
1. 51单片机介绍:51单片机是一种基于Intel 8051架构的微控
制器。它是一种具有48KB的程序存储器和52个输入/输出引脚的芯片。单片机通过内部时钟和逻辑电路来执行各种任务。
2.数码管介绍:数码管是一种由LED组成的显示器件。一般用于
显示数字,通过控制LED的亮灭来显示不同的数字。常见的数码管有
共阳极和共阴极两种类型。
3.共阳极数码管原理:共阳极数码管的原理是通过控制不同的引
脚来点亮相应的LED。在显示数字0到9时,需要同时点亮特定的LED。通过控制引脚为高电平来点亮对应的LED,其他引脚保持低电平。
4.共阴极数码管原理:共阴极数码管的原理与共阳极相反,需要使引脚为低电平来点亮相应的LED。其他引脚保持高电平。
5. 51单片机控制数码管原理:通过设置51单片机的输出引脚和电平,可以控制数码管的显示。首先需要将数码管的引脚连接到51单片机的输出引脚上,并设置相应的输出模式和电平。然后通过程序来控制输出引脚的电平,从而控制数码管的亮灭。
实验步骤如下:
1.连接电路:首先将51单片机与数码管进行连接。根据具体的实验条件,选择合适的数码管和电路图。
2.编写程序:使用51单片机的编程软件(如Keil C等),编写控制数码管的程序。程序应该包括初始化引脚、设置输出模式和控制引脚电平等内容。
单片机_两个数码管显示00~99
/按键控制加、减显示00-99(P1接8个独立按键,P10按下为加,P11按下为减,P2接LED数码管的A- -H并加一个560欧的上拉排阻,P0接数码管DS1- -DS8位选) **************************************************************//按键控制加、减显示00-99(P1接8个独立按键,P10按下为加,P11按下为减,P2接LED数码管的A- -H并加一个560欧的上拉排阻,P0接数码管DS1- -DS8位选)//#includesbit P0_0=P0^0; //个位数字sbit P0_1=P0^1; //十位数字void delay(int k); //Tab为数码管显示值,存入一个数组内void key_ccan(void); //声明按键扫描函数unsigned char code Tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71}unsigned char i,shi,ge,num,count=10; //num为被显示的数字void main(){P2=Tab[0];P0_0=0;P0_1=0;//显示00num=0; //被显示的数置0while(1){key_ccan(); //调用按键扫描程序for(i=0;ishi=num/10; //取出十位数ge=num%10; //取出个位数P0_0=1;P0_1=1; //关闭显示P2=Tab[shi]; //P2口送出十位数据显示代码P0_0=0; //打开十位显示delay(10); //延时P0_0=1; //关闭显示P2=Tab[ge]; //P2口送出个位数据显示代码P0_1=0; //打开个位显示delay(10); //延时P0_1=1; //关闭个位显示}}void key_ccan(void){unsigned char ii;P1=0xff;ii=P1;if(ii!=0xff){P1=0xff;delay(50);ii=P1;if(ii!=0xff){switch(ii){case 0xfe: num++;if(num==100) num=0; break;case 0xfd: if(num==0) num=99;else num--;break;default: break;}}}} void delay(int k) //最简单的C延时程序{ unsigned char i;while(k--) //直至K减为0则跳出{for(i=100;i>0;i--);} }
51单片机按键加
51单片机按键加、减、清零实验
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar hour=98;
uchar hour_h,hour_l;
sbit key1=P3^0;
sbit key2=P3^1;
sbit key3=P3^2;
void delay(uint x)
{
uint y,z;
for(z=x;z>0;z--)
for(y=110;y>0;y--);
}
uchar tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//,0x40 void disp()
{ hour_h=hour/10;
hour_l=hour%10;
P2=0xff;
P1=tab[hour_h];
P2=0xfe;
delay(1);
P2=0xff;
P1=tab[hour_l];
P2=0xfd;
delay(1);
}
void Key1()
{
if(key1==0)
{
delay(10);
if(key1==0)
{
while(!key1)
{
while(!key1)
{
disp();
}
hour++;
if(hour==100)hour=0;
}
}
}
if(key2==0)
{
delay(10);
if(key2==0)
{
while(!key2)
{
while(!key2)
{
disp();
}
hour--;
if(hour==-1)hour=99;
}
}
}
if(key3==0)
单片机0-99计数器 秒表报告
姓名
班级
指导老师
时间
信息工程学院
图1 硬件电路连接图
(二)显示电路
两位数码管循环显示00~99电路
数码管只要就是用于数字得显示.数码管有共阴与共阳得区分,单片机都可以进行驱动,但就是驱动得方法却不同。两位数码管循环电路就是由电阻、二极管与数码管组成,电源+5V通过560得电阻直接给数码管得7个段位供电,P0、0—P0、7对应了两个接数码管得A,B,C,
D,E,F,G与小数点位,P2、6接显示个位数得数码管得3、8引角,P2、7
则接十位数得。P2、
6与P2、7端口分别控制数码管得十位与个位得供电,当相应得端口变成低电平时,驱动相应得三极管会导通,+5V通过二极管与驱动三极管给数码管相应得位供电,这时只要P0口送出数字得显示代码,数码管就能正常显示需要得数字。
图2 十位显示动态数码管(共阳数码管)
图3 个位显示静态数码管(共阴数码管)
(三)时钟电路
时钟电路得晶振频率越高,系统得时钟频率越高,单片机得运行速度也越快。晶振频率根据设计需要设为12MHz,又根据谐振性质,电路中得电容应选择为30pF左右。
图4 时钟电路
(四)复位电路
MCS—51单片机得复位就是靠外部电路实现得。MCS—51单片机工作之后,只要在她得RST引线上加载10ms以上得高点平,单片机就能有效地复位。MCS-51单片机通常采用上电自动复位与按键复位两种方式。最简单得复位电路如图5:
图5 复位电路
上电瞬间,RC电路充电,RST引线出现正脉冲,只要RST保持10ms以上得高电平,就能使单
if(i++==100)//如果i=0
单片机0~99加法计数器程序设计51单片机原理及应用大学论文
课程设计
课程名称51单片机原理及应用
单片机“0~99”加法计数器题目名称
程序设计
专业班级
学生姓名
学号
指导教师
蚌埠学院计算机科学与技术系课程设计任务书
课程51单片机原理及应
用
班级班导教师
题目基于单片机“0~99”加法计
数器的设计
完成时间
主要内容问题描述(功能要求):
利用AT89C51单片机来制作一个手动计数器。按一次按钮计数一次,计数的范围是0~99,功能显示1为0~99的显示,另一功能是0~99的数字总和,两者可以同时实现。
设计任务及要求
1) 上电时,数码管显示为00。
2) 利用单片机来制作一个手动计数器,在单片机的管脚上接一个轻触开关,作为手动计数的按钮,用单片机的I/O口接数码管,作为计数器,进行加计数显示。
3)按一次按钮计数一次,计数的范围是0~99,功能显示1为0~99的显示,另一功能是0~99的数字总和,两者可以同时实现。
设计报告要求1.封面:(格式附后)
2.课程设计任务书
3.课程设计报告:
⑴系统总体方案
⑵设计思路和主要步骤
⑶各功能模块和流程图
⑷设计代码
⑸心得体会和参考资料
说明:学生完成课程设计后,提交课程设计报告及软件,要求文字通畅、字迹工整(也可用以打印),文字不少于5000 字,并装订成册。
指导时间地点上机时间,多媒体技术实验室(重型楼0411)
版面要求1.题目用黑体三号,段后距18磅(或1行),居中对齐;2.标题用黑体四号,段前、段后距6磅(或0.3行);3.正文用小四号宋体,行距为1.25倍行距;
4.标题按“一”、“㈠”、“1”、“⑴”顺序编号。
上机时间安排
星期
基于单片机的00秒_99秒的秒表设计说明
课程设计
题目:用单片机AT89C51设计一个2位的LED数码显示作为“秒表”专业: 12自动化(2)班
学号: 3
姓名:华
指导教师:蜀阳
日期: 2015年6月17日
目录
一、设计题目和要求:1
二、设计目的:1
三、设计容:2
四、课程设计心得体会18
五、参考文献18
一、前言
21世纪是一个电子技术和电子元件有更大发展的世纪。回顾百年来电子技术和电子工业发展的成就,举世瞩目。作为一个电气专业的大学生,我们不但要有扎实的基础知识、课本知识,还应该有较强的动手能力。现实也要求我们既精通电子技术理论,更要掌握电子电路设计、实验研究和调试技术。课程设计就是一个理论联系实际的机会。本次设计主要完成具备基本功能的电子秒表的理论设计,电子秒表是重要的记时工具,广泛运用于各行各业中。作为一种测量工具,电子秒表相对其它一般的记时工具具有便捷、准确、可比性高等优点,不仅可以提高精确度,而且可以大大减轻操作人员的负担,降低错误率。在设计中应用到数码管,数码管主要用于楼体墙面,广告招牌、高档的DISCO、酒吧、夜总会、会所的门头广告牌等。特别适合应用于广告牌背景、立交桥、河、湖护栏、建筑物轮廓等大型动感光带之中,可产生彩虹般绚丽的效果。用护栏管装饰建筑物的轮廓,可以起到突出美彩亮化建筑物的效果。事实证明,它已经成为照明产品中的一只奇葩,绽放在动感都市。
二、设计题目和要求:
秒表
应用AT89C51的定时器设计一个2位的LED数码显示作为“秒表”:显示时间为00~99s,每秒自动加1,设计一个“开始”键,按下“开始”键秒表开始计时。设计一个“复位”键,按下“复位”键后,秒表从0开始计时。
51单片机按键实现00-99加减(自己整理的)
51单片机按键实现00-99加减(自己整理的)
上面一个按键加,下面一个减
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar code d_c[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; uchar i=0,j=0,k=0;
/*void delay_ms(uint x)
{
uchar t;
while(x--)
for(t=0;t<240;t++)
;
}*/
void EX_INT0() interrupt 0
{
i++;
if(i==10)
{
i=0;
k=1;
}
}
void main() {
P0=0x00;
P1=0x00;
EA=1;
EX0=1;
IT0=1;
while(1)
{
P0=~d_c[i];
P2=~d_c[j];
//i=(i+1)%10;
if(i==0&&k==1) {
j++;
k=0;
if(j==10)
j=0;
}
//delay_ms(450); }
}
基于单片机的00秒-99秒的秒表设计讲解
工程技术学院
课程设计
题目:用单片机AT89C51设计一个2位的LED数码显示作为“秒表”专业:电气工程及其自动化
年级: 2009级
学号: 20091447 20091414 20091444 姓名:付忠林梁宗林李座
指导教师:杨彦鑫
日期: 2012年12月12日
云南农业大学工程技术学院
目录
一、设计题目和要求: (2)
二、设计目的: (3)
三、设计内容: (4)
四、课程设计心得体会 (21)
五、参考文献 (22)
六、课程设计指导教师评审标准及成绩评定 (23)
附件1:秒表原理图(实际接线图) (24)
附件2:仿真图1 (25)
附件3:仿真图2 (26)
一、设计题目和要求:
题目三:秒表
应用AT89C51的定时器设计一个2位的LED数码显示作为“秒表”:显示时间为00~99s,每秒自动加1,设计一个“开始”键,按下“开始”键秒表开始计时。设计一个“复位”键,按下“复位”键后,秒表从0开始计时。
任务安排:李座负责绘制电路原理图;梁宗林负责收集资料及电子版整理;付忠林负责程序和仿真。
二、设计目的:
1.进一步掌握AT89C51单片机的结构和工作原理;
2.掌握单片机的接口技术及外围芯片的工作原理及控制方法;
3.进一步掌握单片机程序编写及程序调试过程,掌握模块化程序设计方法;
4.掌握PROTEUS仿真软件的使用方法;
5.掌握LED数码管原理及使用方法。
6.掌握定时器、外部中断的设置和编程原理。
7.通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
8.该课程设计通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、复位功能,并同时可以用数码管显示。
2位数码管显示00-99的89c51单片机电子秒表设计 的程序和电路图
/*应该是2位数码管显示00-99的89c51单片机电子秒表设计的程序和电路图*/ P0段选,P2.0个位位选,P2.1十位位选。共阳数码管16M晶振。STRT EQU P2.5
STP EQU P2.6
CLRR EQU P2.7
ORG 00H
AJMP MAIN
ORG 0BH
AJMP T0INT
ORG 30H
MAIN: MOV R0,#20
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
MOV DPTR,#TABLE
SETB EA
SETB ET0
k1: LCALL DISP
JB STRT,K2
LCALL DISP
JNB STRT,$-3
AJMP START
k2: JB STP,K3
LCALL DISP
JNB STP,STOP
K3: JB CLRR,K1
LCALL DISP
JNB CLRR,CLEAR
AJMP K3
START: SETB TR0
AJMP K1
STOP: CLR TR0
AJMP K2
CLEAR: CLR TR0
MOV 40H,#0
AJMP K1
T0INT: MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ R0,RTI
MOV R0,#20
MOV A,40H
CJNE A,#99,ADD1
MOV 40H,#00H
CLR TR0
AJMP RTI
ADD1: ADD A,#01H
MOV 40H,A
RTI: RETI
DISP: MOV A,40H
MOV B,#10
DIV AB ;//当前值除以10
MOV 20H,A ;//得出的商送给十位MOV 21H,B ;//得出的余数送给个位
单片机控制秒表显示时间为00—99(每秒自动加1),暂停,复位
(4)复查电路:重新检测电路,利用万用表电流档,检测电路电流,发现电路无电流,检查40引脚VCC,发现单片机40引脚与插座短路,接触不良导致,陆续检查其他引脚。发现还有部分引脚短路。
(5)继续检查电路,直至数码管显示数字为止。
结果显示,秒表运行正常。按照预期实现了99s计时、暂停以及继续的功能。
2.元器件作用
(1)STC89C52单片机在电子行业中有着广泛的应用。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,STC89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。
附件
1.利用单片机完成一定的任务,你的创意(创新)是什么?
我的创意就是电路的布局,实验操作起来与仿真不同,需要注意很多细节,例如原件检测。我的电路布局既节省空间,又不影响电路结构。
2.程序
#include<reg52.h>
sbit W=P1^4;
sbit H=P1^6;
unsigned char msec,sec;
9
创新实践实训报告
学院
信息电子技术学院
wenku.baidu.com专业
单片机0~99加法计数器程序设计51单片机原理及应用大学论文
课程设计
课程名称51单片机原理及应用
单片机“0~99”加法计数器题目名称
程序设计
专业班级
学生姓名
学号
指导教师
蚌埠学院计算机科学与技术系课程设计任务书
课程51单片机原理及应
用
班级班导教师
题目基于单片机“0~99”加法计
数器的设计
完成时间
主要内容问题描述(功能要求):
利用AT89C51单片机来制作一个手动计数器。按一次按钮计数一次,计数的范围是0~99,功能显示1为0~99的显示,另一功能是0~99的数字总和,两者可以同时实现。
设计任务及要求
1) 上电时,数码管显示为00。
2) 利用单片机来制作一个手动计数器,在单片机的管脚上接一个轻触开关,作为手动计数的按钮,用单片机的I/O口接数码管,作为计数器,进行加计数显示。
3)按一次按钮计数一次,计数的范围是0~99,功能显示1为0~99的显示,另一功能是0~99的数字总和,两者可以同时实现。
设计报告要求1.封面:(格式附后)
2.课程设计任务书
3.课程设计报告:
⑴系统总体方案
⑵设计思路和主要步骤
⑶各功能模块和流程图
⑷设计代码
⑸心得体会和参考资料
说明:学生完成课程设计后,提交课程设计报告及软件,要求文字通畅、字迹工整(也可用以打印),文字不少于5000 字,并装订成册。
指导时间地点上机时间,多媒体技术实验室(重型楼0411)
版面要求1.题目用黑体三号,段后距18磅(或1行),居中对齐;2.标题用黑体四号,段前、段后距6磅(或0.3行);3.正文用小四号宋体,行距为1.25倍行距;
4.标题按“一”、“㈠”、“1”、“⑴”顺序编号。
上机时间安排
星期
51单片机秒表程序-00-99秒
#include
#define uchar unsigned char //宏定义用uchar代替unsigned char
#define uint unsigned int
sbit START=P1^0; //开始、停止键低电平有效
sbit RST=P1^1; //复位键
sbit SMGGW=P1^2; //用三极管或驱动芯片驱动数码管高电平有效还是低电平有效由电路决定
sbit SMGSW=P1^3;
uchar tt;
uint time; //此变量为时间
uchar code table[]={ //此为数码管字模,对应0--9
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x40};
void Delay(uint ms) //延时子函数
{
uint i,j;
for(i=ms;i>0;i--)
for(j=500;j>0;j--);
}
void Display() //显示子函数
{
uchar ge,shi;
shi=time/10;
ge=time%10;
P0=table[ge];
SMGGW=0;//用三极管或驱动芯片驱动数码管高电平有效还是低电平有效由电路决定本程序为低电平数码管亮
SMGSW=1;
Delay(2);
P0=table[shi];
SMGGW=1;
SMGSW=0;
Delay(2);
}
void main()
{
P1=0xff;
EA=1;
ET0=1;
TMOD=0x01;
TH0=0x4c; //晶振11.0592Mhz 若用12Mhz晶振则改为TH0=0x3c;Tl0=0xb0;
如何利用51单片机实现加减法计算
如何利用51单片机实现加减法计算
开发工具:keil
仿真工具:proteus
代码如下:
头文件:inc_all.h
1 #ifndef INC_ALL_H_
2 #define INC_ALL_H_
3
4 volatile unsigned char keyValue;
5 volaTIle unsigned char sign;
6 volaTIle long int opr1;
7 volaTIle long int opr2;
8 volaTIle long int SysValue=0;
9 volatile int keyCounter;
10 volatile int cnt50ms=0;
11 volatile bit StartFlag;
12
13 void Init_Timer0();
14 void Init_Timer1();
15 void delayms(int t);
16 unsigned char KeyScan(void);
17 void showNumber(long int num);
18 void keyAnalyzing(unsigned char keyval);
19
20 #endif
源文件如下:main.c
1 #include
2 #include “inc_all.h”
3 //=======================================================
单片机课程设计--00~99计数器的设计
单片机课程设计题目00~99计数器的设计
1 课程设计的目的
(1) 利用单片机定时器/计数器中断设计秒表,从而实现秒、十分之一秒的计时。
(2) 综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。
(3) 通过本次课程设计加深对单片机掌握定时器、外部中断的设置和编程原理的全面认识复习和掌握,对单片机实际的应用作进一步的了解。
(4) 通过本次试验,增强自己的动手能力。认识单片机在日常生活中的应用的广泛性,实用性。明确学习目的,端正学习态度,提高对课程设计重要性的认识,以积极认真的态度参加课程设计工作,按要求完成规定的设计任务。
2 设计思路
本实验利用单片机的定时器/计数器定时和计数的原理,通过采用仿真软件来模拟实现。模拟利用AT89C2052单片机、LED数码管以及各种控制器件来控制表的计数以及计数的开启/暂停/继续与复位等。利用单片机AT89S51单片机来制作一个手动计数器,在AT89S51单片机的P1.7管脚接一个轻触开关,作为手动计数的按钮,用单片机的P2.0-P2.7接一个共阴数码管,作为00-99计数的个位数显示,用单片机的P0.0-P0.7接一个共阴数码管,作为00-99计数的十位数显示。
3 设计过程
3.1 方案论证
3.1.1 用单片机技术来实现多功能定时计数器的控制
多功能定时计数器控制系统的原理。它主要由单片机、发光二极管、晶振和双位数码管等部分组成。
1、总体描述
(1)单片机采用STC89C52型。
(2)数据显示电路:七段四位共阴极数码管,P1口控制八位段码,P3.4到P3.7控制四位码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上面一个按键加,下面一个减
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar code d_c[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; uchar i=0,j=0,k=0;
/*void delay_ms(uint x)
{
uchar t;
while(x--)
for(t=0;t<240;t++)
;
}*/
void EX_INT0() interrupt 0
{
i++;
if(i==10)
{
i=0;
k=1;
}
}
void main()
{
P0=0x00;
P1=0x00;
EA=1;
EX0=1;
IT0=1;
while(1)
{
P0=~d_c[i];
P2=~d_c[j];
//i=(i+1)%10;
if(i==0&&k==1)
{
j++;
k=0;
if(j==10)
j=0;
}
//delay_ms(450);
}
}