標(biāo)題: 求助單片機(jī)程序解釋?zhuān)M可能詳細(xì)點(diǎn)兒, [打印本頁(yè)]
作者: 89c51123 時(shí)間: 2015-6-4 07:27
標(biāo)題: 求助單片機(jī)程序解釋?zhuān)M可能詳細(xì)點(diǎn)兒,
#include<REG52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
/************************變量定義************************************/
sbit sw1=P1^0;
sbit sw2=P1^1;
sbit sw3=P1^2;
sbit sw4=P1^3;
sbit sw5=P1^4;
sbit sw6=P1^5;
sbit sw7=P1^6;
sbit sw8=P1^7;
sbit start_button=P3^0;
sbit props_button=P3^1;
sbit snatch_button=P3^2;
sbit answer_button=P3^3;
sbit push_button=P3^4;
sbit reduce_button=P3^5;
sbit stop_button=P3^6;
sbit BEEP=P3^7;
uint flag=0;
uint snatch_flag=1;
uint answer_flag=0;
uint a,b,c,d,x;
ucharstate[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x71,0x76,0x00,0x79,0x54,0x5e};/**數(shù)據(jù)依次表示數(shù)字0--9和字母F、H,以及 End。**/
/************************函數(shù)聲明***********************************/
void initUart(); //初始化函數(shù)
void time(uint ucMs); //延時(shí)函數(shù)
void Play(); //蜂鳴器發(fā)聲函數(shù)
void Start(); //開(kāi)始函數(shù)
void Stop(); //終止函數(shù)
void Props(); //道具函數(shù)
void Snatch(); //搶答置數(shù)函數(shù)
void Answer(); //回答置數(shù)函數(shù)
void Push(); //時(shí)間加1S函數(shù)
void Reduce(); //時(shí)間減1S函數(shù)
void DisPlay(); //顯示器顯示函數(shù)
void Keyscan(); //選手按鈕掃描函數(shù)
/**************************主函數(shù)**********************************/
void main()
{
x=30;
initUart();
while(1)
{
if(!flag)
{
Keyscan();
}
if(a!=10&&!flag)
{
for(;a!=12;)
{
Play();
}
}
if(!start_button&&a==10)
{
flag=1;
Start();
}
if(!snatch_button)
{
flag=0;
Snatch();
}
if(!answer_button)
{
flag=1;
Answer();
}
if(!push_button)
{
Push();
}
if(!reduce_button)
{
Reduce();
}
DisPlay();
}
}
/**************************初始化程序**********************************/
void initUart()
{
a=10,b=10,c=10,d=10;
BEEP=0;
P2=0xee;
P0=state[10];
time(1);
P2=0xed;
P0=state[10];
time(1);
P2=0xeb;
P0=state[10];
time(1);
P2=0xe7;
P0=state[10];
time(1);
}
/**************************延時(shí)程序**********************************/
/******************delay_5us*********************/
void delay_5us(void) //延時(shí)5us
{
_nop_();
_nop_();
}
/******************delay_50us********************/
void delay_50us(void) //延時(shí)50us
{
unsigned char i;
for(i=0;i<4;i++)
{
delay_5us();
}
}
/******************延時(shí)100us********************/
void delay_100us(void) //延時(shí)100us
{
delay_50us();
delay_50us();
}
/****************延時(shí)單位:ms******************/
voidtime(unsigned int ucMs) //延時(shí)1ms
{
unsigned char j;
while(ucMs>0)
{
for(j=0;j<10;j++)
delay_100us();
ucMs--;
}
}
/********************蜂鳴器發(fā)聲程序**************************/
void Play()
{
uchar i;
for(i=1;i<100;i++)
{
BEEP=~BEEP;
DisPlay();
if(!stop_button)
{
Stop();
}
if(!props_button&&snatch_flag==0&&answer_flag==1)
{
Props();
}
elseif(snatch_flag==1&&answer_flag==0)
{
Keyscan();
}
}
for(i=1;i<150;i++)
{
DisPlay();
if(!stop_button)
{
Stop();
}
if(!props_button&&snatch_flag==0&&answer_flag==1)
{
Props();
}
elseif(snatch_flag==1&&answer_flag==0)
{
Keyscan();
}
}
BEEP=0;
}
/**********************搶答開(kāi)始程序*****************************/
void Start()
{
uint i,j,y=x;
for(i=0;i<=y&&a==10;i++)
{
c=x/10;
d=x%10;
x--;
if(x<5)
{
Play();
}
else
{
for(j=1;j<250&&a==10;j++)
{
DisPlay();
if(!stop_button)
{
Stop();
}
if(!props_button&&snatch_flag==0&&answer_flag==1)
{
Props();
}
elseif(snatch_flag==1&&answer_flag==0)
{
Keyscan();
}
}
}
}
}
/********************************終止程序************************************/
void Stop()
{
a=12;
b=13;
c=14;
d=15;
flag=1;
}
/***************道具使用程序(回答時(shí)可以重置倒計(jì)時(shí)時(shí)間)**********************/
void Props()
{
x=x+16;
c=x/10;
d=x%10;
while(!props_button)
{
DisPlay();
}
}
/**********************搶答置數(shù)程序***************************************/
void Snatch()
{
x=30;
a=10;
b=10;
c=3;
d=0;
snatch_flag=1;
answer_flag=0;
}
/**********************回答置數(shù)程序***************************************/
void Answer()
{
x=60;
a=10;
b=10;
c=6;
d=0;
snatch_flag=0;
answer_flag=1;
}
/**********************時(shí)間加1S程序***************************************/
void Push()
{
uint y;
x++;
y=x;
c=y/10;
d=y%10;
if(x==99)
{
x=0;
}
while(!push_button)
{
DisPlay();
}
}
/**********************時(shí)間減1S程序***************************************/
void Reduce()
{
x=x-1;
time(1);
c=x/10;
d=x%10;
if(x==-1)
{
x=99;
}
while(!reduce_button)
{
DisPlay();
}
}
/**********************按鍵掃描程序***************************************/
void Keyscan()
{
if(sw1==0)
{
a=1;
b=11;
}
if(sw2==0)
{
a=2;
b=11;
}
if(sw3==0)
{
a=3;
b=11;
}
if(sw4==0)
{
a=4;
b=11;
}
if(sw5==0)
{
a=5;
b=11;
}
if(sw6==0)
{
a=6;
b=11;
}
if(sw7==0)
{
a=7;
b=11;
}
if(sw8==0)
{
a=8;
b=11;
}
}
/*************************顯示器顯示程序************************************/
void DisPlay()
{
P2=0xee;
P0=state[a];
time(1);
P2=0xed;
P0=state;
time(1);
P2=0xeb;
P0=state[c];
time(1);
P2=0xe7;
P0=state[d];
time(1);
}
作者: 歡騰智能科技 時(shí)間: 2015-6-6 17:49
哪里看不懂的可以提出來(lái); 看起來(lái)像給人下任務(wù)一樣!
作者: 89c51123 時(shí)間: 2015-6-7 17:25
主要是都不太懂,所以想找人幫個(gè)大忙,好讓答辯能夠過(guò)了。。。初始化程序里a=10,b=10,c=10,d=10有什么用?
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
一区二区成人在线
|
国产乱码精品1区2区3区
|
不卡视频在线
|
国产精品中文字幕在线观看
|
久久久久久久久久一区
|
美国黄色一级片
|
人人种亚洲
|
精品一区二区三区免费毛片
|
国产成人99久久亚洲综合精品
|
成人免费观看视频
|
日韩福利一区
|
成人精品一区二区三区中文字幕
|
久久最新网址
|
日日操夜夜操天天操
|
成人欧美一区二区三区视频xxx
|
99综合|
7777精品伊人久久精品影视
|
久久手机在线视频
|
国产精品久久久久久久午夜片
|
日韩精品一区二区三区
|
在线免费观看a级片
|
av一区二区三区在线观看
|
亚洲午夜av久久乱码
|
欧美国产日韩一区二区三区
|
国产一区二区自拍
|
日韩中文字幕一区二区
|
欧美国产一区二区三区
|
国产二区三区
|
国产剧情一区
|
国产精品久久久久久久久图文区
|
亚洲精品久久久久久久久久久久久
|
久久99精品久久久久久琪琪
|
日韩国产欧美视频
|
这里精品
|
波多野结衣中文视频
|
久久久久久久电影
|
激情的网站
|
久久久www成人免费无遮挡大片
|
亚洲自拍一区在线观看
|
欧美一区视频
|
国产激情91久久精品导航
|