久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
單片機(jī)籃球計(jì)分器設(shè)計(jì)
[打印本頁(yè)]
作者:
kernelcc
時(shí)間:
2018-12-23 13:51
標(biāo)題:
單片機(jī)籃球計(jì)分器設(shè)計(jì)
33.jpg
(259.61 KB, 下載次數(shù): 18)
下載附件
2018-12-23 13:51 上傳
#include <reg51.h>
#include "intrins.h" //_nop_();延時(shí)函數(shù)用
#define uchar unsigned char
#define uint unsigned int
#define Lcd_Port P3 //定義數(shù)據(jù)端口
#define KEY_IO P0 //鍵盤接口
sbit RS = P2^1; //定義和LCM的連接端口
sbit RW = P2^2;
sbit E = P2^5;
sbit Busy = P3^7;
sbit speaker=P1^0;
uchar data keytemp,key;
uchar L=0;
uchar k=0;
uchar c = 0;
uchar b=0;
uchar j=0;
uchar e=1;
uchar d = 0;
uchar hour =24;
uchar hour1=0;
uchar min = 11;
uchar sec = 59; //賦初值
uchar data flag=0x00;
bit flag_key=0;
uchar code Lcddata[] ={"0123456789:"};
//uchar codeLcddata[12]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf};
/******************************************************************************************
* 函數(shù)名稱 :Timer0Init
* 功能描述 :定時(shí)器0初始化
******************************************************************************************/
void Timer0Init(void)
{
TMOD=0x11;
TH0 = 0x3c;
TL0 = 0xb0;
TH1=-10300/256;
TL1=-10300%256; //25MS定時(shí)初值(T1計(jì)時(shí)用)
ET0=1;
ET1=1;
TR0=1;
TR1=1;
EA=1;
}
/******************************************************************************************
* 函數(shù)名稱 :IsrTimer0
* 功能描述 :T0 50mS中斷程序
******************************************************************************************/
void IsrTimer0(void) interrupt 1 using 1//T0 50mS中斷程序
{
static uchar count = 0;
TH0 = 0x3c;
TL0 = 0xb0;
count++;
if(count ==20) //定時(shí)1s時(shí)間到
{
count = 0;
sec--;
if(sec == 0) //1分鐘時(shí)間到
{
if(min == 0) //1小時(shí)時(shí)間到
{
min = 0;
EA=0;
speaker=~speaker;
}
else
{
sec= 59;
min--;
}
}
}
}
void IsrTimer1(void) interrupt 3 using3//T1 50mS中斷程序
{uchar i=0,m=0,a=0;
static uchar ta20ms= 0;
TH1=-10300/256;
TL1=-10300%256;
ta20ms++;
if(ta20ms== 1 ) //定時(shí)1s時(shí)間到
{
ta20ms=0;
hour1--;
if(hour1 ==-1) //1分鐘時(shí)間到
{
hour--;hour1 =99;
if(hour==0)
{
hour=24;hour1=0;
k=1;
//EA=0;
L=1;
speaker=~speaker;
while(a<=2){
while(m<=225){for(i=0;i<=225;i++)
a++;m++;}}
speaker=1;}
}
}
}
/******************************************************************************************
* 函數(shù)名稱 :Delay
* 功能描述 :延時(shí)子程序,延時(shí) (1MS*t) S
******************************************************************************************/
void Delay(uchar t)
{
uchar a;
while(t-- != 0)
{
for(a = 0; a < 125; a++);
}
}
/******************************************************************************************
* 函數(shù)名稱 :Read_Busy
* 功能描述 :讀忙信號(hào)判斷
******************************************************************************************/
void Read_Busy(void)
{
uchar i=50;
Lcd_Port=0xff;
RS= 0;
RW= 1;
E= 1;
while((i--)&&Busy);
E=0;
}
/******************************************************************************************
* 函數(shù)名稱 :Write_Comm
* 功能描述 :寫指令函數(shù) ok
******************************************************************************************/
void Write_Comm(uchar lcdcomm)
{
Read_Busy();
RS = 0;
RW = 0;
E = 1;
Lcd_Port=lcdcomm;
E = 0;
}
/******************************************************************************************
* 函數(shù)名稱 :Write_Char
* 功能描述 :寫字符函數(shù) ok
******************************************************************************************/
void Write_Char(uint num)//寫字符函數(shù)
{
Read_Busy();
RS = 1;
RW = 0;
E = 1;
Lcd_Port = Lcddata[num];
E = 0;
}
/******************************************************************************************
* 函數(shù)名稱 :Write_Data
* 功能描述 :寫數(shù)據(jù)函數(shù) ok
******************************************************************************************/
void Write_Data(uchar lcddata)
{
Read_Busy();
RS = 1;
RW = 0;
E = 1;
Lcd_Port = lcddata;
E = 0;
}
/******************************************************************************************
* 函數(shù)名稱 :Init_LCD
* 功能描述 :初始化LCD
******************************************************************************************/
void Init_LCD(void)
{
//Delay(400); //稍微延時(shí),等待LCM進(jìn)入工作狀態(tài)
Write_Comm(0x38); //8位2行5*8
Write_Comm(0x0c); //顯示開/關(guān),光標(biāo)開閃爍開
Write_Comm(0x01); //清顯示
Write_Comm(0x06); //文字不動(dòng),光標(biāo)右移
Write_Comm(0x02); //光標(biāo)歸位
}
/******************************************************************************************
* 函數(shù)名稱 :Show_Time
* 功能描述 :LCD上顯示當(dāng)前時(shí)間
******************************************************************************************/
void Show_Time(void)
{
Write_Comm(0x80+0x08); //顯示首地址
Write_Char( hour / 10 );//顯示小時(shí)
Write_Char( hour % 10 );
Write_Char( 10 ); //顯示:
Write_Char( hour1 / 10 );//顯示小時(shí)
Write_Char( hour1 % 10 );
Write_Comm(0x80+0x4b);
Write_Char( min / 10 ); //顯示分鐘
Write_Char( min % 10 );
Write_Char( 10 ); //顯示:
Write_Char( sec / 10 ); //顯示秒
Write_Char( sec % 10 );
Write_Comm(0x80+0x45);
Write_Char( c / 10 );
Write_Char( c % 10 );
Write_Comm(0x85);
Write_Char(d / 10 );
Write_Char(d % 10 );
}
//***************按鍵掃描函數(shù)/*************
void keyscan()
{
uchar i,t=0xef,temp=0; //1110 1111
KEY_IO=0x0f;
keytemp=(~KEY_IO)&0x0e;
if(keytemp!=0) //0000 0000 ;0000 1000; 00000100; 0000 0010; 0000 0001;
{
Delay(20);
for(i=0;i<4;i++)
{
KEY_IO=t;
keytemp=(~KEY_IO)&0x0e;
if(keytemp!=0&flag_key==0)
{
flag_key=1;
switch(keytemp)
{
case 0x08:key=0*3+i;break;
case 0x04:key=1*4+i;break;
case 0x02:key=2*4+i;break;
default:break;
}
switch(key)
{
case0:{c++; j=1;if(c>=99){ Write_Comm(0x84);Write_Data('1');d=0;}b=0;}break;
case 1:{c++;c++; j=1;if(c>=99){Write_Comm(0x84);Write_Data('1');d=0;}b=0;}break;
case 2:{c++;c++;c++;if(c>=99){Write_Comm(0x84);Write_Data('1');d=0;} j=1;b=0;}break;
case 4:{d++;if(d>=99){Write_Comm(0x80+0x44);Write_Data('1');c=0;};b=1;j=0;}break;
case 5:{d++;d++;if(d>=99){Write_Comm(0x80+0x44);Write_Data('1');c=0;}b=1;j=0;}break;
case 6:{d++;d++;d++;if(d>=99){Write_Comm(0x80+0x44);Write_Data('1');c=0;}b=1;j=0;}break;
case 8:{if(b==1){d--;if (d==0)d=0;};if(j==1) c--;}break;
case 9:if(k==1)hour=24;EA=~EA;speaker=1;L=0;k=0;break;
case 10: e++;if(e==5)e=1;Write_Comm(0x80+0x0d);Write_Char(e%10); break;
case 3:{ Write_Comm(0x80);
Write_Data('C');
Write_Data('B');
Write_Data('A');
Write_Data(':');
Write_Comm(0x80+0x0d);
Write_Char(e%10);
Write_Data('S');
Write_Data('t');
Write_Comm(0x80+0x40);
Write_Data('N');
Write_Data('B');
Write_Data('A');
Write_Data(':');
temp=c;
c=d;
d=temp;
}break;
case 7:{ Write_Comm(0x80);
Write_Data('N');
Write_Data('B');
Write_Data('A');
Write_Data(':');
Write_Comm(0x80+0x0d);
Write_Char(e%10);
Write_Data('S');
Write_Data('t');
Write_Comm(0x80+0x40);
Write_Data('C');
Write_Data('B');
Write_Data('A');
Write_Data(':');
temp=c;
c=d;
d=temp;}break;
default:break;
}
}
t=(t<<1)|0x01;
}
}
else flag_key=0;
}
/******************************************************************************************
* 函數(shù)名稱 :main
* 功能描述 :主函數(shù)
******************************************************************************************/
void main(void)
{
Init_LCD(); //初始化 LCM
Timer0Init(); //初始化定時(shí)器
Write_Comm(0x80);
Write_Data('N');
Write_Data('B');
Write_Data('A');
Write_Data(':');
Write_Comm(0x80+0x0d);
Write_Char(e%10);
Write_Data('S');
Write_Data('t');
Write_Comm(0x80+0x40);
Write_Data('C');
Write_Data('B');
Write_Data('A');
Write_Data(':');
while(1)
{
Show_Time(); //顯示時(shí)間
keyscan();
}
}
復(fù)制代碼
作者:
Ginger001
時(shí)間:
2019-7-3 19:46
有沒有源程序和原理圖的打包阿,急求,有的大兄弟回復(fù)下,最近作業(yè)要用,急
作者:
chenlang12
時(shí)間:
2020-1-9 18:11
這代碼運(yùn)行有誤啊
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
天天影视亚洲综合网
|
欧美日韩精品久久久免费观看
|
成人精品视频99在线观看免费
|
自拍偷拍第一页
|
欧美激情综合
|
国产一区中文字幕
|
日日干日日色
|
干干干操操操
|
成人av鲁丝片一区二区小说
|
久久免费精品
|
婷婷二区
|
午夜精品一区二区三区三上悠亚
|
久久69精品久久久久久久电影好
|
午夜精品久久久
|
www.久
|
中文一区二区
|
久久午夜国产精品www忘忧草
|
二区成人
|
国产福利在线播放麻豆
|
精品一区二区av
|
免费激情网站
|
亚洲综合色视频在线观看
|
日韩视频在线播放
|
91美女在线观看
|
国产精品亚洲片在线播放
|
99精品免费久久久久久久久日本
|
免费精品国产
|
国产精品欧美精品
|
久久国产精品免费一区二区三区
|
浮生影院免费观看中文版
|
www.日本精品
|
最新超碰
|
免费看日韩视频
|
久久99久久
|
久久亚洲视频网
|
久久综合狠狠综合久久综合88
|
天天综合久久
|
黄网站色大毛片
|
范冰冰一级做a爰片久久毛片
|
亚洲精品第一
|
欧美一区二区免费
|