⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 新建 文本文档.txt

📁 七段数码管 单片机实验中的七段数码管的实验 C 语言程序和汇编程序
💻 TXT
字号:
#include <reg52.h> 
#include <intrins.h> 
#define uchar unsigned char 
#define TURE 1 
#define FALSE 0 
void disp(void); 
void delay(del); 
void bcd(void); 
void shan(void); 
void delay10(dell); 
void tkey(void); 
int temp; 
int f; 
uchar count; 
uchar data clock[3]={23,50,50}; 
uchar data num[6]; 


/************主程序*************/ 
void main(void) 
{ 
temp=0xff; 
f=1; 
P1=0xff; 
count=20; 
SP=0X60; 
TMOD=0X01; 
SCON=0X00; 
TL0=0XB0; 
TH0=0X3C; 
EA=1; 
IT0=1; 
ET0=1; 
TR0=1; 
EX0=1; 


while(TURE) 
{ 
return1:bcd(); 
disp(); 
delay(5000); 
if (temp==0xff) 
goto return1; 
tkey(); 
shan(); 
disp(); 
delay10(4000); 

} 

} 
/**********按键程序************/ 
void tkey(void) 
{ 
uchar judcekey; 
judcekey=P1&0x0f; 
if(judcekey==0x0f) 
goto return2; 
/*******移位键*********/ 
if (judcekey==0x0e) 
f++; 
if (f==4) 
f=1; 
/**********加一键*********/ 
if(judcekey==0x0d) 
{clock[f-1]++;} 

if (f==1) 
{ if (clock[f-1]==24){ 
clock[f-1]=0;} 
} 
else{ if (clock[f-1]==60) 
clock[f-1]=0; 
} 

/******减一键***********/ 
if(judcekey==0x0b) 
{clock[f-1]--;} 

if (f==1) 
{ if (clock[f-1]==0xff){ 
clock[f-1]=23;} 
} 
else 
{ if (clock[f-1]==0xff) 
clock[f-1]=59; 
} 

return2:_nop_(); 

} 





/*******闪烁程序***********/ 
void shan(void) 
{ 
if (f==1) 
{ 
num[0]=10; //时闪 
num[1]=10; 
} 

if (f==2) 
{ 
num[2]=10;//分闪 
num[3]=10; 
} 

if (f==3) 
{ 
num[4]=10;//秒闪 
num[5]=10; 
} 

} 


/*******十位个位转换************/ 
void bcd(void) 
{ 
num[5]=clock[2]-(clock[2]/10)*10 ; 
num[4]=clock[2]/10; 
num[3]=clock[1]-(clock[1]/10)*10 ; 
num[2]=clock[1]/10; 
num[1]=clock[0]-(clock[0]/10)*10 ; 
num[0]=clock[0]/10; 
} 

/********定时程序*************/ 
void timer1() interrupt 1 using 2 
{ 
TL0=0XB0; 
TH0=0X3C; 
count--; 
if(count==0) 
{ 
count=20; 
clock[2]++;//秒// 
} 
else 
goto out; 
if(clock[2]==60) 
{ 
clock[2]=0; 
clock[1]++;//分// 
} 

if(clock[1]==60) 
{ 
clock[1]=0; 
clock[0]++; 
} 

if(clock[0]==24)//时// 
clock[0]=0; 

out:_nop_(); 
} 


/************显示程序*************/ 
void disp(void) 
{uchar code LEDValue[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF}; //0-9 
uchar k; 
for(k=0;k<=5;k++) 
{ 
SBUF=LEDValue[num[5-k]]; 
while(TI==0); 
TI=0; 
} 
} 

/*******外部中断***********/ 
void intr0() interrupt 0 using 2 
{ 

; 
} 



/************延时程序*************/ 
void delay(del) 
{ 
for(del;del>0;del--); 
} 

/*****延时程序***********/ 


void delay10( dell) 
{ 
float i,j; 
for(dell;dell>0;dell--) 
for(i=1000;i<0;i--) 
for(j=5000;j<0;j--); 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -