• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

基于51單片機(jī)的鬧鐘【整點報時,分秒,數(shù)碼管,獨立按鍵】(仿真)

01/28 08:53
1097
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

有需要資料的可了解一下.docx

共1個文件

1、使用單片機(jī)定時器制作分表;

2、分、秒;

3、可任意調(diào)節(jié)設(shè)置時間;

4、可設(shè)置一個鬧鐘;

5、整點報時功能。

it L4=P2^7;
sbit k1=P3^2;//按鈕
sbit k2=P3^3;
sbit k3=P3^4;
sbit k4=P3^5;
sbit beep=P3^6;//蜂鳴器
uchar code Lduan0[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//無小數(shù)點
uchar code Lduan1[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//有小數(shù)點
uchar time=0,miao=0,fen=0;//正常計時
uchar moshi=0; //系統(tǒng)模式
uchar fen_nao=0,miao_nao=30;//鬧鐘時間
uchar buzzr=0;//蜂鳴器報警時間

//延時函數(shù)
void delay_us(uint i)
{
uchar j=0;
for(j=0;j<i;j++);
}

//主函數(shù)
void main()
{
uchar k=0;
TMOD|=0X01;//設(shè)置定時器0
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
TR0=1;
	while(1)
	{
	if(!k1 &&(k!=1))//設(shè)置
		{
			k=1;
			if(buzzr==0)
			{
				if(moshi<4)
					moshi++;
				else
					moshi=0;
			}
			else
			{
				buzzr=0;
			}
		}
		if(!k4)//OK
		{
			moshi=0;
			buzzr=0;
		}
		if(moshi==1)//設(shè)置當(dāng)前分鐘
		{
			if(!k2 &&(k!=2))//加
			{
				k=2;
				if(fen<59)
					fen++;
				else
					fen=0;
			}
			if(!k3 &&(k!=3))//減
			{
				k=3;
				if(fen>0)
					fen--;
				else
					fen=59;
			}
		}
		if(moshi==2)//設(shè)置當(dāng)前秒
		{
			if(!k2 &&(k!=2))//加
			{
				k=2;
				if(miao<59)
					miao++;
				else
					miao=0;
			}
			if(!k3 &&(k!=3))//減
			{
				k=3;
				if(miao>0)
					miao--;
				else
					miao=59;
			}
		}
		if(moshi==3)//設(shè)置鬧鐘分鐘
		{
			if(!k2 &&(k!=2))//加
			{
				k=2;
				if(fen_nao<59)
					fen_nao++;
				else
					fen_nao=0;
			}
			if(!k3 &&(k!=3))//減
			{
				k=3;
				if(fen_nao>0)
					fen_nao--;
				else

資料借鑒于此紛傳

  • 有需要資料的可了解一下.docx
    下載

相關(guān)推薦

方案定制

去合作
方案開發(fā)定制化,2000+方案商即時響應(yīng)!