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

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

?? ex100.c

?? 單片機C語言應用100例光盤全部C語言源程序
?? C
字號:
//實例100:電機轉速表設計
#include<reg51.h>    //包含單片機寄存器的頭文件
#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 int v;   //儲存電機轉速
unsigned char count;  //儲存定時器T0中斷次數
bit flag;      //計滿1秒鐘標志位
/*****************************************************
函數功能:延時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 display_sym(void)
{
   WriteAddress(0x00);  //寫顯示地址,將在第1行第1列開始顯示
	WriteData('v');      //將字符常量v寫入LCD
	WriteData('=');      //將字符常量=寫入LCD
 
 } 
 /******************************************************************************
 函數功能:顯示速度數值                        
******************************************************************************/
void display_val(unsigned int x)
{
 unsigned char i,j,k,l;     //j,k,l分別儲存溫度的百位、十位和個位
	i=x/1000;         //取千位
	j=(x%1000)/100;   //取百位 
   k=(x%100)/10;     //取十位 
   l=x%10;           //取個位 
	WriteAddress(0x02);     //寫顯示地址,將在第1行第3列開始顯示
	WriteData(digit[i]);    //將千位數字的字符常量寫入LCD
	WriteData(digit[j]);    //將百位數字的字符常量寫入LCD
	WriteData(digit[k]);    //將十位數字的字符常量寫入LCD
	WriteData(digit[l]);    //將個位數字的字符常量寫入LCD
	 
 } 
/*******************************************************
函數功能:顯示速度單位“r/min”
********************************************************/
void display_unit(void)
{
   WriteAddress(0x06);    //寫顯示地址,將在第2行第7列開始顯示
	WriteData('r');    //將字符常量r寫入LCD
	WriteData('/');    //將字符常量/寫入LCD
	WriteData('m');    //將字符常量m寫入LCD
	WriteData('i');    //將字符常量i寫入LCD
	WriteData('n');    //將字符常量n寫入LCD
 } 
/*******************************************************
函數功能:主函數
********************************************************/
 void main(void)
 {
   LcdInitiate();            //調用LCD初始化函數	
   TMOD=0x51;                //定時器T1工作于計數模式1,定時器T0工作于計時模式1;
	TH0=(65536-46083)/256;    //定時器T0的高8位設置初值,每50ms產生一次中斷
	TL0=(65536-46083)%256;    //定時器T0的低8位設置初值,每50ms產生一次中斷
	EA=1;                     //開總中斷
	ET0=1;                    //定時器T0中斷允許
	TR0=1;                    //啟動定時器T0
	count=0;                  //將T0中斷次數初始化為0
	display_sym();            //顯示速度提示符
  display_val(0000);         //顯示器工作正常標志
  display_unit();            //顯示速度單位
	 while(1)                 //無限循環
	  {
   	  TR1=1;            //定時器T1啟動
		  TH1=0;            //定時器T1高8位賦初值0
		  TL1=0;            //定時器T1低8位賦初值0
		  flag=0;           //時間還未滿1分鐘
		  while(flag==0)    //時間未滿等待
		     ;
		 v=(TH1*256+TL1)*60/16; //計算速度,每周產生16個脈沖
		 display_val(v);        //顯示速度
    }			
}
/*******************************************************
函數功能:定時器T0的中斷服務函數
********************************************************/
void Time0(void ) interrupt 1 using 1 //定時器T0的中斷編號為1,使用第1組工作寄存器
  {
    count++;          //T0每中斷1次,count加1
	 if(count==20)     //若累計滿20次,即計滿1秒鐘
	  {
       flag=1;        //計滿1秒鐘標志位置1
		 count=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一区二区三区免费野_久草精品视频
国产成人精品www牛牛影视| 大胆亚洲人体视频| 亚洲素人一区二区| 精品国产露脸精彩对白| 欧美xxxx在线观看| 国产精品免费丝袜| 香蕉久久一区二区不卡无毒影院| 日本欧美久久久久免费播放网| 麻豆精品国产传媒mv男同| 久久激情五月激情| av午夜一区麻豆| 欧美成人欧美edvon| 亚洲色图色小说| 麻豆精品一区二区三区| 色综合久久久久久久| 91精品婷婷国产综合久久性色| 国产欧美日韩视频在线观看| 亚洲午夜免费福利视频| 成人精品一区二区三区中文字幕| 在线影院国内精品| 国产人妖乱国产精品人妖| 亚洲图片一区二区| 91久久一区二区| 国产精品三级久久久久三级| 狠狠色狠狠色综合| 在线综合+亚洲+欧美中文字幕| 国产精品国产三级国产aⅴ无密码| 亚洲福利电影网| 色狠狠色狠狠综合| 亚洲激情欧美激情| 欧美三级午夜理伦三级中视频| 亚洲欧美色一区| 色婷婷久久久亚洲一区二区三区| 国产精品视频一区二区三区不卡| 国内偷窥港台综合视频在线播放| 欧美一区二区三区性视频| 午夜精品久久久久久不卡8050| 日本久久电影网| 午夜亚洲国产au精品一区二区| 欧美色大人视频| 日韩综合一区二区| 欧美va日韩va| 91国产福利在线| 蜜臀av亚洲一区中文字幕| 久久久久久久久久久久久夜| 福利电影一区二区三区| 国产婷婷色一区二区三区四区 | 蜜臀精品久久久久久蜜臀| 久久色中文字幕| 欧美系列一区二区| 懂色av中文一区二区三区| 亚洲国产成人av网| 国产精品美女久久久久aⅴ| 日韩一区二区三区观看| 成人中文字幕在线| 日产国产欧美视频一区精品| 国产精品麻豆网站| 久久综合视频网| 欧美一区二区三区在线视频| 日本高清成人免费播放| 成人免费视频caoporn| 麻豆精品久久精品色综合| 亚洲第一激情av| 亚洲国产日韩一区二区| 一区二区三区日韩在线观看| 国产精品―色哟哟| 国产精品成人午夜| 精品国产sm最大网站免费看| 国产喷白浆一区二区三区| 亚洲图片激情小说| 欧美国产97人人爽人人喊| 欧美精品一卡二卡| 欧美日韩极品在线观看一区| 91国偷自产一区二区开放时间| 成人av在线资源网| 97久久精品人人澡人人爽| 91浏览器在线视频| 欧美日韩国产在线观看| 欧美日韩综合不卡| 91精品国产综合久久久久久久 | 五月天欧美精品| 奇米888四色在线精品| 激情成人综合网| 972aa.com艺术欧美| 欧美日韩精品一区二区在线播放| 777午夜精品免费视频| 久久久综合激的五月天| 亚洲午夜激情av| 国产精品1区2区3区在线观看| 91麻豆高清视频| 精品国产一区二区三区四区四 | 风间由美性色一区二区三区| 色噜噜狠狠成人中文综合| 久久嫩草精品久久久久| 亚洲高清在线视频| 99热99精品| 国产片一区二区| 激情文学综合网| 日韩欧美国产三级| 日韩av不卡一区二区| 欧美在线一区二区| 国产精品美女久久久久久久| 精品一区二区三区欧美| 3d成人动漫网站| 午夜精品成人在线| 欧美视频在线不卡| 一区二区三区四区五区视频在线观看 | 亚洲乱码国产乱码精品精小说| 国产激情偷乱视频一区二区三区| 91麻豆精品国产91久久久久| 亚洲成人激情av| 欧美男女性生活在线直播观看| 亚洲一区二区美女| 欧美老肥妇做.爰bbww| 日本伊人精品一区二区三区观看方式 | 国产乱码字幕精品高清av | 麻豆成人av在线| 精品久久国产字幕高潮| 国产成人夜色高潮福利影视| 日本一二三不卡| 欧美色视频在线| 国产综合成人久久大片91| 国产精品视频一区二区三区不卡| 91蜜桃在线免费视频| 久久国产精品色婷婷| 亚洲国产精品av| 在线电影一区二区三区| 国产在线一区二区| 亚洲国产欧美在线| 亚洲天天做日日做天天谢日日欢 | 波多野结衣精品在线| 日韩不卡在线观看日韩不卡视频| 国产亚洲欧美日韩日本| 欧美日韩大陆在线| 欧洲精品一区二区三区在线观看| 蜜臀a∨国产成人精品| 亚洲最大的成人av| 亚洲婷婷在线视频| 亚洲日本va午夜在线电影| 久久香蕉国产线看观看99| 88在线观看91蜜桃国自产| 一本到一区二区三区| 色美美综合视频| 欧美这里有精品| 91啪在线观看| 欧美亚洲国产一区二区三区| 91免费看`日韩一区二区| av成人老司机| 欧美又粗又大又爽| 欧美日韩黄色一区二区| 欧美日韩一区成人| 欧美一区二区黄色| 久久一区二区视频| 亚洲欧美中日韩| 一区二区三区国产豹纹内裤在线| 亚洲午夜电影网| 人人超碰91尤物精品国产| 精品在线播放免费| 成人丝袜高跟foot| 欧洲一区二区三区免费视频| 欧美欧美午夜aⅴ在线观看| 欧美精品一区二区三区高清aⅴ | 欧美男男青年gay1069videost| 91麻豆精品国产91久久久久久 | 另类小说视频一区二区| 国产精品一区二区果冻传媒| 91麻豆免费视频| 欧美成人艳星乳罩| 亚洲一区在线观看网站| 国产99一区视频免费| 欧美精品色综合| 亚洲日本成人在线观看| 国产成人精品免费视频网站| 欧美三级日韩在线| 亚洲综合男人的天堂| 国产一区二区在线视频| 制服.丝袜.亚洲.另类.中文| 最近日韩中文字幕| 成人黄色在线视频| 国产日产欧美精品一区二区三区| 日本欧美在线看| 在线成人高清不卡| 婷婷激情综合网| 欧美中文一区二区三区| 亚洲综合激情网| 欧美三级电影网| 亚洲123区在线观看| 日韩一级在线观看| 精品在线视频一区| 中文字幕在线观看一区| 91麻豆精品秘密| 亚洲精品国产精品乱码不99| 色香蕉久久蜜桃| 亚洲国产精品嫩草影院| 91麻豆精品国产91久久久资源速度| 丝袜亚洲另类欧美综合| 国产亚洲一区二区三区四区| 不卡av电影在线播放| 亚洲第一成人在线| 欧美成人一区二区|