標(biāo)題: 按下按鍵響30次 [打印本頁(yè)]
作者: liuyang 時(shí)間: 2012-5-29 18:41
標(biāo)題: 按下按鍵響30次
/*
必要操作:連接左上角3個(gè)跳線
*/
#include <AT89X52.H> //包含頭文件
#define led P0 //定義LED口
#define shuma P0 //定義數(shù)碼管數(shù)據(jù)口
sbit LED_0=P1^0; //定義4個(gè)控制腳
sbit LED_1=P1^1;
sbit LED_2=P1^2;
sbit LED_3=P1^3;
sbit buz=P3^4; //定義蜂鳴器所在口
unsigned char flag; //定義測(cè)試部分標(biāo)志
/*=====0-9=====A-G=====*/
unsigned char a[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
//共陽(yáng)極數(shù)碼管的段碼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) //延時(shí)函數(shù)
{
while(i--);
}
void delayx(unsigned int x) //延時(shí)函數(shù),有效效果為數(shù)碼管不閃爍
{
unsigned int i;
for(i=0;i<x;i++);
}
void main(void)
{
unsigned char d; //定義狀態(tài)變量d
unsigned int i;
flag=1;
led=0xff; //LED全滅
buz=1;
for(;;)
{
if(flag==1)
{
//蜂鳴器響1次,進(jìn)入第一測(cè)試
Delay(1000);
buz=0;
Delay(1000);
buz=1;
d=0X01; //d的初始值即燈的初試狀態(tài)
while(d!=0) //實(shí)現(xiàn)8次左移,如果d中唯一的位1移動(dòng)出范圍,則重新賦值開(kāi)始
{
led=~d; //反向輸出點(diǎn)亮
Delay(5000); //延時(shí)
d<<=1; //左移動(dòng)一位
Delay(5000); //延時(shí)
} //當(dāng)左移到頭則從for(;;)下面重新開(kāi)始,循環(huán)左移效果
flag++; //LED測(cè)試完畢,開(kāi)始測(cè)試數(shù)碼管
led=0;
}
if(flag==2)
{
//蜂鳴器響2次,進(jìn)入第二測(cè)試
Delay(1000);
buz=0;
Delay(1000);
buz=1;
Delay(1000);
buz=0;
Delay(1000);
buz=1;
d=0x01;
while(d!=0) //實(shí)現(xiàn)8次左移,如果d中唯一的位1移動(dòng)出范圍,則重新賦值開(kāi)始
{
LED_0=0;LED_1=1;LED_2=1;LED_3=1;
P0=P2;
P0=~d; //反向輸出點(diǎn)亮
Delay(1500); //延時(shí)
d<<=1; //左移動(dòng)一位
Delay(1500); //延時(shí)
}
d=0x01;
while(d!=0) //實(shí)現(xiàn)8次左移,如果d中唯一的位1移動(dòng)出范圍,則重新賦值開(kāi)始
{
P0=P2;
LED_0=1;LED_1=0;LED_2=1;LED_3=1;
P0=~d; //反向輸出點(diǎn)亮
Delay(1500); //延時(shí)
d<<=1; //左移動(dòng)一位
Delay(1500); //延時(shí)
}
d=0x01;
while(d!=0) //實(shí)現(xiàn)8次左移,如果d中唯一的位1移動(dòng)出范圍,則重新賦值開(kāi)始
{
P0=P2;
LED_0=1;LED_1=1;LED_2=0;LED_3=1;
P0=~d; //反向輸出點(diǎn)亮
Delay(1500); //延時(shí)
d<<=1; //左移動(dòng)一位
Delay(1500); //延時(shí)
}
d=0x01;
while(d!=0) //實(shí)現(xiàn)8次左移,如果d中唯一的位1移動(dòng)出范圍,則重新賦值開(kāi)始
{
P2=P3;
LED_0=1;LED_1=1;LED_2=1;LED_3=0;
P0=~d; //反向輸出點(diǎn)亮
Delay(1500); //延時(shí)
d<<=1; //左移動(dòng)一位
Delay(1500); //延時(shí)
}
flag++;
}
if(flag==3)
{
//蜂鳴器響3次,進(jìn)入第三測(cè)試
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++) //數(shù)碼管顯示1234持續(xù)一段時(shí)間
{
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]; //選中第一位,發(fā)送第一位段碼
LED_0=0; //第一位顯示
delayx(100); //延時(shí)顯示
LED_0=1; //第一位關(guān)顯示
shuma=a[d2]; //選中第二位,發(fā)送第二位段碼,以下原理同上
LED_1=0;
delayx(100);
LED_1=1;
shuma=a[d3]; //選中第三位,發(fā)送第三位段碼,以下原理同上
LED_2=0;
delayx(100);
LED_2=1;
shuma=a[d4]; //選中第四位,發(fā)送第四位段碼,以下原理同上
LED_3=0;
delayx(100);
LED_3=1;
}
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
高清国产一区二区
|
亚洲一本|
www久|
亚洲精品一区二三区不卡
|
久久精品一区
|
中文字幕一区二区三区精彩视频
|
精品福利视频一区二区三区
|
精品欧美一区二区中文字幕视频
|
欧美成人一级视频
|
久久国产精品久久久久久
|
欧美日韩大片
|
动漫www.被爆羞羞av44
|
久久亚洲精品视频
|
91麻豆精品国产91久久久更新资源速度超快
|
第四色播日韩第一页
|
欧美一级二级在线观看
|
日韩精品极品视频在线观看免费
|
男女啪啪高潮无遮挡免费动态
|
成人免费毛片在线观看
|
亚洲伊人精品酒店
|
av福利网
|
国产精品国产三级国产aⅴ入口
|
色视频在线观看
|
日韩国产三区
|
国产一区二区日韩
|
日韩欧美精品一区
|
一区二区三区精品
|
免费在线观看黄色av
|
午夜欧美一区二区三区在线播放
|
国产精品久久久久久久久久久久久久
|
精品欧美一区二区三区久久久
|
青草福利
|
在线观看午夜视频
|
国产高清久久
|
成人精品一区二区户外勾搭野战
|
色播久久
|
国产精品电影在线观看
|
免费观看成人性生生活片
|
欧美白人做受xxxx视频
|
www.日韩
|
久久成
|