亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ex84.c

?? 單片機C語言應用100例光盤全部C語言源程序
?? C
字號:
//實例84:液晶時鐘設計
#include<reg51.h>    //包含單片機寄存器的頭文件
#include<stdlib.h>   //包含隨機函數rand()的定義文件
#include<intrins.h>  //包含_nop_()函數定義的頭文件
sbit RS=P2^0;    //寄存器選擇位,將RS位定義為P2.0引腳
sbit RW=P2^1;    //讀寫選擇位,將RW位定義為P2.1引腳
sbit E=P2^2;     //使能信號位,將E位定義為P2.2引腳
sbit BF=P0^7;    //忙碌標志位,,將BF位定義為P0.7引腳
unsigned char code digit[ ]={"0123456789"}; //定義字符數組顯示數字
unsigned char code string[ ]={"BeiJing Time"}; //定義字符數組顯示提示信息
unsigned char count;   //定義變量統計中斷累計次數
unsigned char s,m,h;   //定義變量儲存秒、分鐘和小時
/*****************************************************
函數功能:延時1ms
(3j+2)*i=(3×33+2)×10=1010(微秒),可以認為是1毫秒
***************************************************/
void delay1ms()
{
   unsigned char i,j;	
	 for(i=0;i<10;i++)
	  for(j=0;j<33;j++)
	   ;		 
 }
 /*****************************************************
函數功能:延時若干毫秒
入口參數:n
***************************************************/
 void delay(unsigned char n)
 {
   unsigned char i;
	for(i=0;i<n;i++)
	   delay1ms();
 }
/*****************************************************
函數功能:判斷液晶模塊的忙碌狀態
返回值:result。result=1,忙碌;result=0,不忙
***************************************************/
 unsigned char BusyTest(void)
  {
    bit result;
	RS=0;       //根據規定,RS為低電平,RW為高電平時,可以讀狀態
    RW=1;
    E=1;        //E=1,才允許讀寫
    _nop_();   //空操作
    _nop_();
    _nop_(); 
    _nop_();   //空操作四個機器周期,給硬件反應時間	
    result=BF;  //將忙碌標志電平賦給result
   E=0;         //將E恢復低電平
   return result;
  }
/*****************************************************
函數功能:將模式設置指令或顯示地址寫入液晶模塊
入口參數:dictate
***************************************************/
void WriteInstruction (unsigned char dictate)
{   
    while(BusyTest()==1); //如果忙就等待
	 RS=0;                  //根據規定,RS和R/W同時為低電平時,可以寫入指令
	 RW=0;   
	 E=0;                   //E置低電平(根據表8-6,寫指令時,E為高脈沖,
                          // 就是讓E從0到1發生正跳變,所以應先置"0"
	 _nop_();
	 _nop_();             //空操作兩個機器周期,給硬件反應時間
	 P0=dictate;            //將數據送入P0口,即寫入指令或地址
	 _nop_();
	 _nop_();
	 _nop_();
	 _nop_();               //空操作四個機器周期,給硬件反應時間
	 E=1;                   //E置高電平
	 _nop_();
	 _nop_();
	 _nop_();
	 _nop_();               //空操作四個機器周期,給硬件反應時間
	  E=0;                  //當E由高電平跳變成低電平時,液晶模塊開始執行命令
 }
/*****************************************************
函數功能:指定字符顯示的實際地址
入口參數:x
***************************************************/
 void WriteAddress(unsigned char x)
 {
     WriteInstruction(x|0x80); //顯示位置的確定方法規定為"80H+地址碼x"
 }
/*****************************************************
函數功能:將數據(字符的標準ASCII碼)寫入液晶模塊
入口參數:y(為字符常量)
***************************************************/
 void WriteData(unsigned char y)
 {
    while(BusyTest()==1);  
	  RS=1;           //RS為高電平,RW為低電平時,可以寫入數據
	  RW=0;
	  E=0;            //E置低電平(根據表8-6,寫指令時,E為高脈沖,
                       // 就是讓E從0到1發生正跳變,所以應先置"0"
	  P0=y;           //將數據送入P0口,即將數據寫入液晶模塊
	  _nop_();
	  _nop_();
 	  _nop_();
     _nop_();       //空操作四個機器周期,給硬件反應時間
	  E=1;          //E置高電平
	  _nop_();
	  _nop_();
	  _nop_();
	 _nop_();        //空操作四個機器周期,給硬件反應時間
	 E=0;            //當E由高電平跳變成低電平時,液晶模塊開始執行命令
 }
/*****************************************************
函數功能:對LCD的顯示模式進行初始化設置
***************************************************/
void LcdInitiate(void)
{
   delay(15);             //延時15ms,首次寫指令時應給LCD一段較長的反應時間
   WriteInstruction(0x38);  //顯示模式設置:16×2顯示,5×7點陣,8位數據接口
	delay(5);               //延時5ms ,給硬件一點反應時間
   WriteInstruction(0x38);
	delay(5);
	WriteInstruction(0x38); //連續三次,確保初始化成功
	delay(5);
	WriteInstruction(0x0c);  //顯示模式設置:顯示開,無光標,光標不閃爍
	delay(5);
	WriteInstruction(0x06);  //顯示模式設置:光標右移,字符不移
	delay(5);
	WriteInstruction(0x01);  //清屏幕指令,將以前的顯示內容清除
	delay(5);

 }
 /******************************************************************************
 函數功能:顯示小時                          
******************************************************************************/
void DisplayHour()
{
   unsigned char i,j;
	i=h/10;                //取整運算,求得十位數字
	j=h%10;                //取余運算,求得各位數字
   WriteAddress(0x44);   //寫顯示地址,將十位數字顯示在第2行第5列
	WriteData(digit[i]);  //將十位數字的字符常量寫入LCD
	WriteData(digit[j]);  //將個位數字的字符常量寫入LCD
     
 }
/******************************************************************************
 函數功能:顯示分鐘                          
 ******************************************************************************/
void DisplayMinute()
{
  unsigned char i,j;
   i=m/10;                //取整運算,求得十位數字
	j=m%10;                //取余運算,求得各位數字
   WriteAddress(0x47);   //寫顯示地址,將十位數字顯示在第2行第8列
	WriteData(digit[i]);  //將十位數字的字符常量寫入LCD
	WriteData(digit[j]);  //將個位數字的字符常量寫入LCD
     
 }
 /******************************************************************************
 函數功能:顯示秒                        
  ******************************************************************************/
void DisplaySecond()
{
   unsigned char i,j;
  	i=s/10;                //取整運算,求得十位數字
	j=s%10;                //取余運算,求得各位數字
   WriteAddress(0x4a);   //寫顯示地址,將十位數字顯示在第2行第11列
	WriteData(digit[i]);  //將十位數字的字符常量寫入LCD
	WriteData(digit[j]);  //將個位數字的字符常量寫入LCD
 }

/*********************************************************************
               main function
***********************************************************************/
 void main(void)
 {
  unsigned char i;
    LcdInitiate();  //調用LCD初始化函數

   TMOD=0x01;                //使用定時器T0的模式1
	TH0=(65536-46083)/256;    //定時器T0的高8位設置初值
	TL0=(65536-46083)%256;    //定時器T0的低8位設置初值
	EA=1;                     //開總中斷
	ET0=1;                    //定時器T0中斷允許
	TR0=1;                    //啟動定時器T0

	count=0;              //中斷次數初始化為0
	s=0;                  //秒初始化為0
	m=0;                  //分鐘初始化為0
	h=0;                  //小時初始化為0

   WriteAddress(0x03); 	 //寫地址,從第1行第4列開始顯示
	 i=0;              //從字符數組的第1個元素開始顯示
	 while(string[i]!='\0')   //只要沒有顯示到字符串的結束標志'\0',就繼續
	 {
		 WriteData(string[i]); //將第i個字符數組元素寫入LCD
		 i++;                 //指向下一個數組元素
	 }
 	WriteAddress(0x46);     //寫地址,將第二個分號顯示在第2行第7列
	WriteData(':');         //將分號的字符常量寫入LCD
	WriteAddress(0x49);     //寫地址,將第二個分號顯示在第2行第10列
	WriteData(':');         //將分號的字符常量寫入LCD  
    while(1)            //無限循環
      {
        	DisplayHour();	    //顯示小時
			 delay(5);         //給硬件一點反應時間
			DisplayMinute();   //顯示分鐘
			 delay(5);         //給硬件一點反應時間
			DisplaySecond();   //顯示秒	
            delay(5);	    //給硬件一點反應時間
	   }
}
/*******************************************************
函數功能:定時器T0的中斷服務函數
********************************************************/
 void Time0(void ) interrupt 1 using 1 //定時器T0的中斷編號為1,使用第1組工作寄存器
  {
     count++;  //每產生1次中斷,中斷累計次數加1
		 if(count==20)  //如果中斷次數計滿20次
		    {
              count=0;  //中斷累計次數清0
		        s++;      //秒加1				 
		 	}
		  if(s==60)   //如果計滿60秒
			 {
			  s=0;     //秒清0
			  m++;     //分鐘加1
		    }
	  	if(m==60)    //如果計滿60分
		   {
			   m=0;   //分鐘清0 
			   h++;    //小時加1
		    }
	     if(h==24)  //如果計滿24小時
		   {
			   h=0;   //小時清0
		   }
	   TH0=(65536-46083)/256;   //定時器T0高8位重新賦初值
		TL0=(65536-46083)%256;   //定時器T0低8位重新賦初值		
  }  


	     

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人成网站在线| 亚洲精品高清视频在线观看| 欧美在线观看你懂的| 成人免费毛片嘿嘿连载视频| 99热这里都是精品| 欧美岛国在线观看| 欧美一区二区精品在线| 欧美一区二区视频在线观看2020| 91精品婷婷国产综合久久| 91国在线观看| 日韩欧美色电影| 久久久久久久久99精品| 亚洲人成在线观看一区二区| 亚洲视频资源在线| 青青青爽久久午夜综合久久午夜 | 午夜欧美电影在线观看| 午夜精品一区二区三区电影天堂| 午夜天堂影视香蕉久久| 激情综合色综合久久| 99热在这里有精品免费| 欧美性感一类影片在线播放| 久久久久久久久久久黄色| 精品国产一区二区三区久久久蜜月| 日韩免费高清av| 亚洲激情图片小说视频| 成人美女视频在线看| 久久综合色天天久久综合图片| 亚洲天堂福利av| 国产精品污网站| 久久先锋影音av鲁色资源网| 国产亚洲一区字幕| 日本欧美大码aⅴ在线播放| 韩国精品免费视频| 欧美精品三级日韩久久| 一区av在线播放| 色综合久久久久| 亚洲久本草在线中文字幕| 亚洲一区在线观看免费观看电影高清 | 欧美tickling挠脚心丨vk| 亚洲精品成人悠悠色影视| 成人黄色小视频| 国产精品夫妻自拍| 91在线视频播放地址| 亚洲视频一二三| 欧洲一区在线观看| 日韩 欧美一区二区三区| 5月丁香婷婷综合| 国产麻豆精品theporn| 国产精品伦理在线| 色婷婷一区二区| 麻豆精品一区二区av白丝在线| 日韩一级大片在线观看| 国产高清不卡一区| 亚洲欧美偷拍卡通变态| 亚洲成人免费av| 26uuu另类欧美亚洲曰本| 成人性视频免费网站| 一区二区三区中文字幕精品精品 | 成人欧美一区二区三区| 欧美三级乱人伦电影| 激情都市一区二区| 肉色丝袜一区二区| 99精品久久只有精品| 日本欧美加勒比视频| 国产精品麻豆欧美日韩ww| 91视视频在线观看入口直接观看www| 欧美色偷偷大香| 韩国一区二区在线观看| 亚洲免费观看高清完整版在线观看 | 成人丝袜18视频在线观看| 一区二区三区四区av| 亚洲欧洲制服丝袜| 日本va欧美va欧美va精品| 国产精品不卡在线观看| 555夜色666亚洲国产免| 91福利精品视频| 成人综合婷婷国产精品久久蜜臀 | 91精品婷婷国产综合久久竹菊| av在线播放一区二区三区| 午夜日韩在线观看| 亚洲一级二级三级在线免费观看| 国产亚洲成aⅴ人片在线观看| 精品国产乱码久久久久久闺蜜| 在线亚洲人成电影网站色www| 日韩av一区二区三区四区| 99久久国产综合精品色伊| 精品一区二区三区在线观看国产| 国产91在线看| 婷婷开心久久网| 日韩国产成人精品| 奇米精品一区二区三区在线观看一| 亚洲欧洲国产专区| 亚洲精品国产视频| 午夜精品久久一牛影视| 日本特黄久久久高潮| 国内精品视频一区二区三区八戒| 国产精品影视网| 99精品久久久久久| 91黄色小视频| 麻豆视频观看网址久久| 欧美色图激情小说| 精品日韩99亚洲| 亚洲国产精品黑人久久久| 国产精品电影院| 日本亚洲视频在线| 播五月开心婷婷综合| 91麻豆精品国产91久久久久| 久久九九全国免费| 婷婷丁香激情综合| www.av精品| 337p粉嫩大胆噜噜噜噜噜91av | 成人自拍视频在线| 777a∨成人精品桃花网| 亚洲成人av一区二区| 国产欧美视频一区二区| 亚洲国产欧美一区二区三区丁香婷| 男女视频一区二区| 欧美乱妇15p| 亚洲女子a中天字幕| 激情久久久久久久久久久久久久久久| 日韩福利电影在线观看| 久久狠狠亚洲综合| 91久久国产最好的精华液| 欧美一区二区不卡视频| 综合亚洲深深色噜噜狠狠网站| 精品一区二区综合| 日韩免费在线观看| 麻豆久久久久久| 成人美女视频在线看| 成人av在线资源网| 久久精品亚洲麻豆av一区二区| 蜜臀av一区二区三区| 欧美日本一区二区| 日本不卡1234视频| 久久综合九色综合欧美就去吻| 久久99久久精品| 精品国产三级电影在线观看| 激情久久久久久久久久久久久久久久| 日韩欧美一级在线播放| 国产成人综合亚洲网站| 中文一区在线播放| 91天堂素人约啪| 亚洲电影一区二区三区| 宅男噜噜噜66一区二区66| 国产在线视频不卡二| 国产精品欧美经典| 欧美伊人久久久久久久久影院| 婷婷成人激情在线网| 久久久99精品久久| 色94色欧美sute亚洲线路一ni| 午夜影院久久久| 精品国产一区久久| 欧美色综合天天久久综合精品| 日日夜夜免费精品视频| ...xxx性欧美| 欧美不卡一二三| 欧美精品v国产精品v日韩精品| 国产成人无遮挡在线视频| 亚洲第四色夜色| 亚洲天堂免费在线观看视频| 51久久夜色精品国产麻豆| 亚洲va欧美va国产va天堂影院| 久久亚洲捆绑美女| 欧美在线不卡视频| 成人va在线观看| 国产美女一区二区三区| 无吗不卡中文字幕| 亚洲精品亚洲人成人网在线播放| 国产日产欧美一区| 久久中文字幕电影| 精品国产a毛片| 2021中文字幕一区亚洲| 久久这里只有精品首页| 日韩美女天天操| 久久综合久色欧美综合狠狠| 日韩精品一区二区三区四区视频| 欧美高清视频在线高清观看mv色露露十八 | 9久草视频在线视频精品| 国产精品一区三区| 成人av片在线观看| 成人黄色av电影| 色婷婷精品久久二区二区蜜臀av| 91免费看片在线观看| 在线观看日韩电影| 日韩精品中文字幕一区二区三区| 精品国产网站在线观看| 欧美韩国日本一区| 亚洲国产视频a| 国内精品自线一区二区三区视频| 国产精品中文有码| 欧美曰成人黄网| 日韩精品中文字幕一区| 国产精品久久久久一区| 亚洲综合成人网| 国产一区二区三区日韩| 色综合久久88色综合天天免费| 91精品在线免费| 1024精品合集| 韩国成人福利片在线播放| 91极品美女在线|