標題: 按下按鍵響30次 [打印本頁]
作者: liuyang 時間: 2012-5-29 18:41
標題: 按下按鍵響30次
/*
必要操作:連接左上角3個跳線
*/
#include <AT89X52.H> //包含頭文件
#define led P0 //定義LED口
#define shuma P0 //定義數碼管數據口
sbit LED_0=P1^0; //定義4個控制腳
sbit LED_1=P1^1;
sbit LED_2=P1^2;
sbit LED_3=P1^3;
sbit buz=P3^4; //定義蜂鳴器所在口
unsigned char flag; //定義測試部分標志
/*=====0-9=====A-G=====*/
unsigned char a[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
//共陽極數碼管的段碼0 1 2 3 4 5 6 7 8 9 A B C D E F
void display(unsigned char d1,unsigned char d2,unsigned char d3,unsigned char d4);
void Delay(unsigned long i) //延時函數
{
while(i--);
}
void delayx(unsigned int x) //延時函數,有效效果為數碼管不閃爍
{
unsigned int i;
for(i=0;i<x;i++);
}
void main(void)
{
unsigned char d; //定義狀態變量d
unsigned int i;
flag=1;
led=0xff; //LED全滅
buz=1;
for(;;)
{
if(flag==1)
{
//蜂鳴器響1次,進入第一測試
Delay(1000);
buz=0;
Delay(1000);
buz=1;
d=0X01; //d的初始值即燈的初試狀態
while(d!=0) //實現8次左移,如果d中唯一的位1移動出范圍,則重新賦值開始
{
led=~d; //反向輸出點亮
Delay(5000); //延時
d<<=1; //左移動一位
Delay(5000); //延時
} //當左移到頭則從for(;;)下面重新開始,循環左移效果
flag++; //LED測試完畢,開始測試數碼管
led=0;
}
if(flag==2)
{
//蜂鳴器響2次,進入第二測試
Delay(1000);
buz=0;
Delay(1000);
buz=1;
Delay(1000);
buz=0;
Delay(1000);
buz=1;
d=0x01;
while(d!=0) //實現8次左移,如果d中唯一的位1移動出范圍,則重新賦值開始
{
LED_0=0;LED_1=1;LED_2=1;LED_3=1;
P0=P2;
P0=~d; //反向輸出點亮
Delay(1500); //延時
d<<=1; //左移動一位
Delay(1500); //延時
}
d=0x01;
while(d!=0) //實現8次左移,如果d中唯一的位1移動出范圍,則重新賦值開始
{
P0=P2;
LED_0=1;LED_1=0;LED_2=1;LED_3=1;
P0=~d; //反向輸出點亮
Delay(1500); //延時
d<<=1; //左移動一位
Delay(1500); //延時
}
d=0x01;
while(d!=0) //實現8次左移,如果d中唯一的位1移動出范圍,則重新賦值開始
{
P0=P2;
LED_0=1;LED_1=1;LED_2=0;LED_3=1;
P0=~d; //反向輸出點亮
Delay(1500); //延時
d<<=1; //左移動一位
Delay(1500); //延時
}
d=0x01;
while(d!=0) //實現8次左移,如果d中唯一的位1移動出范圍,則重新賦值開始
{
P2=P3;
LED_0=1;LED_1=1;LED_2=1;LED_3=0;
P0=~d; //反向輸出點亮
Delay(1500); //延時
d<<=1; //左移動一位
Delay(1500); //延時
}
flag++;
}
if(flag==3)
{
//蜂鳴器響3次,進入第三測試
Delay(1000);
buz=0;
Delay(1000);
buz=1;
Delay(1000);
buz=0;
Delay(1000);
buz=1;
Delay(1000);
buz=0;
Delay(1000);
buz=1;
for(i=0;i<300;i++) //數碼管顯示1234持續一段時間
{
P2=P3;
display(1,2,3,4);
}
flag++;
}
if(flag==4) //蜂鳴器效果
{
buz=0;
Delay(1000);
buz=1;
Delay(3000);
buz=0;
Delay(1000);
buz=1;
Delay(3000);
buz=0;
Delay(1000);
buz=1;
Delay(3000);
buz=0;
Delay(8000);
buz=1;
Delay(1000);
buz=0;
Delay(8000);
buz=1;
Delay(8000);
buz=0;
Delay(1000);
buz=1;
Delay(3000);
buz=0;
Delay(1000);
buz=1;
Delay(3000);
buz=0;
Delay(1000);
buz=1;
Delay(10000);
flag=1;
}
}
}
void display(unsigned char d1,unsigned char d2,unsigned char d3,unsigned char d4)
{
shuma=a[d1]; //選中第一位,發送第一位段碼
LED_0=0; //第一位顯示
delayx(100); //延時顯示
LED_0=1; //第一位關顯示
shuma=a[d2]; //選中第二位,發送第二位段碼,以下原理同上
LED_1=0;
delayx(100);
LED_1=1;
shuma=a[d3]; //選中第三位,發送第三位段碼,以下原理同上
LED_2=0;
delayx(100);
LED_2=1;
shuma=a[d4]; //選中第四位,發送第四位段碼,以下原理同上
LED_3=0;
delayx(100);
LED_3=1;
}
歡迎光臨 (http://m.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
国产午夜精品一区二区三区视频
|
国产一区二区三区精品视频
|
成人欧美一区二区三区黑人免费
|
欧美成人xxx
|
四虎网站在线观看
|
在线网站免费观看18
|
午夜国产一区
|
午夜快播|
日本加勒比在线
|
精品久久国产
|
视频一区二区三区在线观看
|
97视频在线
|
一级毛片黄色
|
精品在线观看视频
|
成人免费视频一区二区
|
性做久久久
|
五月激情综合网
|
日日夜夜精品视频免费
|
2025国产精品|
国产精品免费一区二区三区
|
色中色综合
|
a级片免费观看
|
亚洲日本精品
|
久久亚洲成人
|
国产又黄又爽视频
|
久久精品99久久久久久
|
欧美国产日韩一区
|
午夜精品久久久久久久久久久久
|
国产av毛片|
香蕉视频一区二区
|
日韩免费精品视频
|
亚洲高清毛片一区二区
|
国产三级在线播放
|
秋霞av在线
|
国产成人在线视频
|
欧美一级片免费
|
日韩激情久久
|
www99热
|
久久久久久99精品久久久
|
av毛片在线播放
|
国产精品麻豆
|