久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1902|回復: 0
打印 上一主題 下一主題
收起左側

(分享文件)51單片機數字時鐘設計

[復制鏈接]
跳轉到指定樓層
樓主
ID:422741 發表于 2018-11-8 08:54 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit LCD_RS=P2^0;
sbit LCD_RW=P2^1;
sbit LCD_EN=P2^2;

sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
uchar Display_Buffer[8];
uchar Count,hour=12,min=12,sec=12;
bit flag,H_or_M;

void _delay_ms(unsigned int x)
{
unsigned char i;
while(x--)
{
  for(i=0;i<120;i++);
}
}
uchar LCD_Busy(void)//測忙
{
uchar LCD_Status;//返回值變量
LCD_RS=0;//讀取狀態
LCD_RW=1;
LCD_EN=1;
_nop_();_nop_();_nop_();_nop_();
LCD_Status=P0;
LCD_EN=0;
return LCD_Status;
}
void LCD_Write_Command(uchar cmd)//寫指令
{
while((LCD_Busy()&0x80)==0x80);//測忙
LCD_RS=0;//
LCD_RW=0;
LCD_EN=0;
P0=cmd;
LCD_EN=1;
_nop_();_nop_();
LCD_EN=0;
_nop_();_nop_();
}
void LCD_Write_Data(uchar dat)//寫數據
{
while((LCD_Busy()&0x80)==0x80);
LCD_RS=1;
LCD_RW=0;
LCD_EN=0;
P0=dat;
LCD_EN=1;
_nop_();_nop_();
LCD_EN=0;
_nop_();_nop_();
}
void Init_LCD(void)//液晶初始化
{
_delay_ms(15);
LCD_Write_Command(0x38);
_delay_ms(5);
LCD_Write_Command(0x06);
_delay_ms(5);
LCD_Write_Command(0x0c);
_delay_ms(5);
LCD_Write_Command(0x01);
_delay_ms(5);

}
void LCD_POS(uchar pos)//字符顯示位置
{
LCD_Write_Command(0x80|pos);
}
void Show_String(uchar *str)//顯示字符串
{
while(*str!='\0')
LCD_Write_Data(*str++);
}
/////lcd1602液晶顯示//////
void Display_Time(uchar Hour,uchar Min,uchar Sec)
{
Display_Buffer[0]=Hour/10+'0';//小時十位
Display_Buffer[1]=Hour%10+'0';//小時個位
Display_Buffer[2]=':';//顯示:號
Display_Buffer[3]=Min/10+'0';//顯示分鐘十位
Display_Buffer[4]=Min%10+'0';//顯示分鐘個位
Display_Buffer[5]=':';//顯示:號
Display_Buffer[6]=Sec/10+'0';//顯示秒十位
Display_Buffer[7]=Sec%10+'0';//顯示秒個位
LCD_POS(0x40);//顯示在液晶第1行第0列
Show_String(Display_Buffer);
}
/////按鍵處理//////
void Set_time(void)
{
flag=0;
if(key1==0||key2==0||key3==0)//若key1,key2,key3其中有鍵按下,則為真
{
  TR0=0;//定時器0停止
  flag=1;//按鍵標志位為真
}
while(flag)//判斷那一個按鍵按下
{
  if(key1==0)//判斷key1是否按下
  {
   while(!key1);//等待釋放
   H_or_M=!H_or_M;//選擇是修改時還是分鐘
  }
  else if(key2==0)//判斷key2是否被按下
  {
   while(!key2);//等待釋放
   if(H_or_M)//若H_OR_M為真,則修改小時
   {
    if(++hour==24)//若小時=24,則小時=0
     hour=0;//小時加1
   }
   else//否則修改分鐘
   {
    if(++min==60)//若分鐘等于60,則分鐘等于0
     min=0;//分鐘加1
   }
  }
  else if(key3==0)//判斷key3是否被按下
  {
   while(!key3);//等待釋放
   if(H_or_M)//若H_OR_M為真,則修改小時
   {
    if(--hour==0xff) //小時減1,若小時等于-1,則小時等于23
     hour=23;
   }
   else//否則修改分鐘
   {
    if(--min==0xff)//分鐘減1,若分鐘等于-1,則分鐘等于59
     min=59;
   }
  }
  else if(key4==0)//判斷key4是否被按下
  {
   while(!key4);//等待釋放
   flag=0;//按鍵標志清零
   TR0=1;//定時器0啟動
  }
  Display_Time(hour,min,sec);//傳H,M,S值顯示到液晶
}
}
void timer0_init(void)//定時器0初始化
{
TMOD=0x01;//定時器0,方式1
ET0=1;//
EA=1;//總中斷允許
TR0=1;//啟動定時器0
TH0=(65535-50000)/256;//裝高8位初值
TL0=(65535-50000)%256;//裝低8位初值
}
void main(void)//主函數
{
P1=0xff;//端口初始化
P3=0xff;
Init_LCD();//液晶初始化
timer0_init();//定時器0初始化
while(1)//無限循環
{
  Display_Time(hour,min,sec);//液晶顯示時間
  //_delay_ms(500);//延時
  Set_time();//時間調整
}
}
void timer0() interrupt 1//定時器0中斷
{
TH0=(65535-50000)/256;//重裝定時器0高8位
TL0=(65535-50000)%256;//重裝定時器0低8位
Count++;//計數加1
if(Count==20)//如果COUNT等于20
{
  Count=0;//計數清零
  sec++;//秒加1
  if(sec==60)//判斷秒是否等于60
  {
   sec=0;//秒清零
   min++;//分鐘加1
   if(min==60)//判斷分鐘是否等于60
   {
    min=0;//若等于60,則清零分鐘
    hour++;//小時加1
    if(hour==24)//判斷小時是否等于24
    {
     hour=0;//若小時等于24,則清零小時,分鐘,秒
     min=0;
     sec=0;
    }
   }
  }
}
}
原理圖如下:


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 蜜桃传媒一区二区 | 欧美日韩一区二区在线 | 久久久久久综合 | 国产精品久久久久久久久久 | 日日夜夜精品免费视频 | 免费观看的av毛片的网站 | 国产成人精品一区二区三 | 欧洲精品码一区二区三区免费看 | 亚洲在线一区二区 | 欧美日本一区 | www.日韩av.com| 久久久高清 | 人干人人 | 日韩国产欧美一区 | 亚洲韩国精品 | 一级特黄色毛片 | 精品一区二区三区在线观看国产 | 中文在线a在线 | 夜夜爽夜夜操 | 成人一区二区三区 | 久久电影一区 | 999www视频免费观看 | 日韩精品免费播放 | 亚洲人成人一区二区在线观看 | 日本亚洲欧美 | 91精品国产综合久久久久久 | 免费看av大片| 成人国产精品久久久 | 午夜专区 | 欧美精品一区二区三区在线 | 91久久夜色 | jizz在线免费观看 | 成人免费视频网站在线看 | 成人综合视频在线观看 | 国产精品久久久久久久久久久久久久 | 久久6视频| 亚洲欧美日韩精品 | 狠狠婷婷综合久久久久久妖精 | 亚洲视频在线播放 | 中文字幕精品一区二区三区在线 | 中文字幕国产一区 |