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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ex94.c

?? 單片機(jī)C語言應(yīng)用100例光盤全部C語言源程序
?? C
字號:
//實(shí)例94:基于ADC0832的數(shù)字電壓表
#include<reg51.h>    //包含單片機(jī)寄存器的頭文件
#include<intrins.h>  //包含_nop_()函數(shù)定義的頭文件
sbit CS=P3^4;       //將CS位定義為P3.4引腳
sbit CLK=P1^0;      //將CLK位定義為P1.0引腳
sbit DIO=P1^1;       //將DIO位定義為P1.1引腳
//////////////////////////////////////////////////////////////////
unsigned char code digit[10]={"0123456789"};   //定義字符數(shù)組顯示數(shù)字
unsigned char code Str[]={"Volt="};            //說明顯示的是電壓
/*******************************************************************************
以下是對液晶模塊的操作程序
*******************************************************************************/
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;           //忙碌標(biāo)志位,,將BF位定義為P0.7引腳
/*****************************************************
函數(shù)功能:延時(shí)1ms
(3j+2)*i=(3×33+2)×10=1010(微秒),可以認(rèn)為是1毫秒
***************************************************/
void delay1ms()
{
   unsigned char i,j;	
	 for(i=0;i<10;i++)
	  for(j=0;j<33;j++)
	   ;		 
 }
/*****************************************************
函數(shù)功能:延時(shí)若干毫秒
入口參數(shù):n
***************************************************/
 void delaynms(unsigned char n)
 {
   unsigned char i;
	for(i=0;i<n;i++)
	   delay1ms();
 }
/*****************************************************
函數(shù)功能:判斷液晶模塊的忙碌狀態(tài)
返回值:result。result=1,忙碌;result=0,不忙
***************************************************/
bit BusyTest(void)
  {
    bit result;
	RS=0;       //根據(jù)規(guī)定,RS為低電平,RW為高電平時(shí),可以讀狀態(tài)
    RW=1;
    E=1;        //E=1,才允許讀寫
    _nop_();   //空操作
    _nop_();
    _nop_(); 
    _nop_();   //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間	
    result=BF;  //將忙碌標(biāo)志電平賦給result
   E=0;         //將E恢復(fù)低電平
   return result;
  }
/*****************************************************
函數(shù)功能:將模式設(shè)置指令或顯示地址寫入液晶模塊
入口參數(shù):dictate
***************************************************/
void WriteInstruction (unsigned char dictate)
{   
    while(BusyTest()==1);   //如果忙就等待
	 RS=0;                  //根據(jù)規(guī)定,RS和R/W同時(shí)為低電平時(shí),可以寫入指令
	 RW=0;   
	 E=0;                   //E置低電平(根據(jù)表8-6,寫指令時(shí),E為高脈沖,
                           // 就是讓E從0到1發(fā)生正跳變,所以應(yīng)先置"0"
	 _nop_();
	 _nop_();               //空操作兩個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間
	 P0=dictate;            //將數(shù)據(jù)送入P0口,即寫入指令或地址
	 _nop_();
	 _nop_();
	 _nop_();
	 _nop_();               //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間
	 E=1;                   //E置高電平
	 _nop_();
	 _nop_();
	 _nop_();
	 _nop_();               //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間
	  E=0;                  //當(dāng)E由高電平跳變成低電平時(shí),液晶模塊開始執(zhí)行命令
 }
/*****************************************************
函數(shù)功能:指定字符顯示的實(shí)際地址
入口參數(shù):x
***************************************************/
 void WriteAddress(unsigned char x)
 {
     WriteInstruction(x|0x80); //顯示位置的確定方法規(guī)定為"80H+地址碼x"
 }
/*****************************************************
函數(shù)功能:將數(shù)據(jù)(字符的標(biāo)準(zhǔn)ASCII碼)寫入液晶模塊
入口參數(shù):y(為字符常量)
***************************************************/
 void WriteData(unsigned char y)
 {
    while(BusyTest()==1);  
	  RS=1;           //RS為高電平,RW為低電平時(shí),可以寫入數(shù)據(jù)
	  RW=0;
	  E=0;            //E置低電平(根據(jù)表8-6,寫指令時(shí),E為高脈沖,
                     // 就是讓E從0到1發(fā)生正跳變,所以應(yīng)先置"0"
	  P0=y;           //將數(shù)據(jù)送入P0口,即將數(shù)據(jù)寫入液晶模塊
	  _nop_();
	  _nop_();
 	  _nop_();
     _nop_();       //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間
	  E=1;           //E置高電平
	  _nop_();
	  _nop_();
	  _nop_();
	 _nop_();        //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間
	 E=0;            //當(dāng)E由高電平跳變成低電平時(shí),液晶模塊開始執(zhí)行命令
 }
/*****************************************************
函數(shù)功能:對LCD的顯示模式進(jìn)行初始化設(shè)置
***************************************************/
void LcdInitiate(void)
{
    delaynms(15);               //延時(shí)15ms,首次寫指令時(shí)應(yīng)給LCD一段較長的反應(yīng)時(shí)間
    WriteInstruction(0x38);     //顯示模式設(shè)置:16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù)接口
	delaynms(5);                //延時(shí)5ms ,給硬件一點(diǎn)反應(yīng)時(shí)間
    WriteInstruction(0x38);
	delaynms(5);               //延時(shí)5ms ,給硬件一點(diǎn)反應(yīng)時(shí)間
	WriteInstruction(0x38);     //連續(xù)三次,確保初始化成功
	delaynms(5);               //延時(shí)5ms ,給硬件一點(diǎn)反應(yīng)時(shí)間
	WriteInstruction(0x0c);     //顯示模式設(shè)置:顯示開,無光標(biāo),光標(biāo)不閃爍
	delaynms(5);               //延時(shí)5ms ,給硬件一點(diǎn)反應(yīng)時(shí)間
	WriteInstruction(0x06);     //顯示模式設(shè)置:光標(biāo)右移,字符不移
	delaynms(5);                //延時(shí)5ms ,給硬件一點(diǎn)反應(yīng)時(shí)間
	WriteInstruction(0x01);     //清屏幕指令,將以前的顯示內(nèi)容清除
	delaynms(5);             //延時(shí)5ms ,給硬件一點(diǎn)反應(yīng)時(shí)間

 }
/**************************************************************************
以下是電壓顯示的說明
**************************************************************************/
/*****************************************************
函數(shù)功能:顯示電壓符號
***************************************************/   
void display_volt(void)
 {
    unsigned char i;
	 WriteAddress(0x03);    //寫顯示地址,將在第2行第1列開始顯示
	 i = 0;                //從第一個(gè)字符開始顯示
	 while(Str[i] != '\0')  //只要沒有寫到結(jié)束標(biāo)志,就繼續(xù)寫
	  {						
		 WriteData(Str[i]);   //將字符常量寫入LCD
		 i++;                 //指向下一個(gè)字符				
		}	
}

/*****************************************************
函數(shù)功能:顯示電壓的小數(shù)點(diǎn)
***************************************************/   
void 	display_dot(void)
{         
	 WriteAddress(0x09);	  //寫顯示地址,將在第1行第10列開始顯示		   
	 WriteData('.');       //將小數(shù)點(diǎn)的字符常量寫入LCD		
}

/*****************************************************
函數(shù)功能:顯示電壓的單位(V)
***************************************************/   
void 	display_V(void)
{
    WriteAddress(0x0c); //寫顯示地址,將在第2行第13列開始顯示	
	 WriteData('V');     //將字符常量寫入LCD			
			
}
/*****************************************************
函數(shù)功能:顯示電壓的整數(shù)部分
入口參數(shù):x
***************************************************/ 
void display1(unsigned char x)
{

	WriteAddress(0x08);    //寫顯示地址,將在第2行第7列開始顯示
	WriteData(digit[x]);    //將百位數(shù)字的字符常量寫入LCD
 }
/*****************************************************
函數(shù)功能:顯示電壓的小數(shù)數(shù)部分
入口參數(shù):x
***************************************************/ 
 void display2(unsigned char x)
{
 	unsigned char i,j;
	i=x/10;            //取十位(小數(shù)點(diǎn)后第一位)
	j=x%10;            //取個(gè)位(小數(shù)點(diǎn)后第二位)
   WriteAddress(0x0a);      //寫顯示地址,將在第1行第11列開始顯示
	WriteData(digit[i]);     //將小數(shù)部分的第一位數(shù)字字符常量寫入LCD
	WriteData(digit[j]);     //將小數(shù)部分的第一位數(shù)字字符常量寫入LCD
}
/*****************************************************
函數(shù)功能:將模擬信號轉(zhuǎn)換成數(shù)字信號
***************************************************/ 
unsigned char  A_D()
{
  unsigned char i,dat;
   CS=1;   //一個(gè)轉(zhuǎn)換周期開始
   CLK=0;  //為第一個(gè)脈沖作準(zhǔn)備
   CS=0;  //CS置0,片選有效

   DIO=1;    //DIO置1,規(guī)定的起始信號  
   CLK=1;   //第一個(gè)脈沖
   CLK=0;   //第一個(gè)脈沖的下降沿,此前DIO必須是高電平
   DIO=1;   //DIO置1, 通道選擇信號  
   CLK=1;   //第二個(gè)脈沖,第2、3個(gè)脈沖下沉之前,DI必須跟別輸入兩位數(shù)據(jù)用于選擇通道,這里選通道CH0 
   CLK=0;   //第二個(gè)脈沖下降沿 
   DIO=0;   //DI置0,選擇通道0
   CLK=1;    //第三個(gè)脈沖
   CLK=0;    //第三個(gè)脈沖下降沿 
   DIO=1;    //第三個(gè)脈沖下沉之后,輸入端DIO失去作用,應(yīng)置1
   CLK=1;    //第四個(gè)脈沖
   for(i=0;i<8;i++)  //高位在前
    {
      CLK=1;         //第四個(gè)脈沖
      CLK=0; 
      dat<<=1;       //將下面儲存的低位數(shù)據(jù)向右移
		dat|=(unsigned char)DIO; 	 //將輸出數(shù)據(jù)DIO通過或運(yùn)算儲存在dat最低位 
    }	  		        
    CS=1;          //片選無效 
	 return dat;	 //將讀書的數(shù)據(jù)返回     
  }
/*****************************************************
函數(shù)功能:主函數(shù)
***************************************************/ 
main(void)
{
  unsigned int AD_val;    //儲存A/D轉(zhuǎn)換后的值
  unsigned char Int,Dec;   //分別儲存轉(zhuǎn)換后的整數(shù)部分與小數(shù)部分
   LcdInitiate();         //將液晶初始化
   delaynms(5);           //延時(shí)5ms給硬件一點(diǎn)反應(yīng)時(shí)間	
	display_volt();        //顯示溫度說明
   display_dot();         //顯示溫度的小數(shù)點(diǎn)
   display_V();           //顯示溫度的單位
   while(1)
      {
		  AD_val= A_D();    //進(jìn)行A/D轉(zhuǎn)換
		  Int=(AD_val)/51;  //計(jì)算整數(shù)部分
		  Dec=(AD_val%51)*100/51;    //計(jì)算小數(shù)部分
        display1(Int);     //顯示整數(shù)部分
		  display2(Dec);     //顯示小數(shù)部分
		  delaynms(250);     //延時(shí)250ms
		}
		    
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级二级在线观看| 成人黄色大片在线观看| 亚洲一区二区免费视频| 亚洲丝袜精品丝袜在线| 26uuu国产日韩综合| 婷婷丁香久久五月婷婷| 精品嫩草影院久久| 国产mv日韩mv欧美| 成人精品国产福利| 色诱亚洲精品久久久久久| 91久久国产综合久久| 欧美在线免费视屏| 日韩一区二区三区高清免费看看| 男人的天堂亚洲一区| 韩国理伦片一区二区三区在线播放| 国内一区二区在线| 国产成人精品影视| 色网综合在线观看| 在线不卡一区二区| 久久一二三国产| 亚洲视频香蕉人妖| 日韩国产欧美在线播放| 久久成人免费网站| 97se狠狠狠综合亚洲狠狠| 欧美午夜免费电影| 久久精品人人做| 夜夜亚洲天天久久| 久久99国产精品久久99| 成人免费毛片app| 制服.丝袜.亚洲.中文.综合| 欧美一区二区视频在线观看2020| 久久综合久久综合久久| 国产精品久久精品日日| 日韩精品午夜视频| 亚洲成在人线在线播放| 国内精品久久久久影院薰衣草 | 夜夜嗨av一区二区三区四季av| 一区二区三区精密机械公司| 黑人巨大精品欧美一区| 欧美性视频一区二区三区| 欧美精品一区二区三区一线天视频 | 人禽交欧美网站| 久久九九99视频| 中文久久乱码一区二区| 日韩va亚洲va欧美va久久| 成人一区在线看| 欧美大片一区二区| 一区二区三区久久久| 国产美女精品人人做人人爽| 欧美图区在线视频| 国产精品久久777777| 久久精品国产**网站演员| 91精彩视频在线| 国产日韩欧美精品电影三级在线| 亚洲午夜成aⅴ人片| av电影一区二区| 久久网站热最新地址| 亚洲第一福利一区| 91亚洲国产成人精品一区二区三 | 欧美视频一区在线| 亚洲情趣在线观看| 国产一区二区美女诱惑| 精品三级在线看| 美女视频黄 久久| 7799精品视频| 日韩精品三区四区| 欧美人伦禁忌dvd放荡欲情| 亚洲激情图片小说视频| 色综合色狠狠综合色| 久久精品在线观看| 国产一区二区h| 久久天天做天天爱综合色| 久久黄色级2电影| 欧美哺乳videos| 久久99精品久久久| 久久尤物电影视频在线观看| 极品少妇xxxx精品少妇| 精品99一区二区| 国产精品影音先锋| 国产日产精品一区| www.成人在线| 亚洲一区二区三区视频在线播放| 欧美影片第一页| 亚洲aⅴ怡春院| 91精品国产色综合久久ai换脸| 日韩精品国产欧美| 日韩视频在线你懂得| 美女视频黄 久久| 欧美激情一区二区三区在线| 成人av网站大全| 亚洲精品中文字幕乱码三区| 欧美日本国产视频| 久久99国产精品麻豆| 国产免费成人在线视频| 色婷婷久久综合| 热久久久久久久| 欧美激情一区二区三区| 91久久精品一区二区三| 午夜精品在线看| 久久久久9999亚洲精品| 99久久国产免费看| 首页国产欧美久久| 久久精品免视看| 欧洲一区在线观看| 国产在线视频精品一区| 亚洲男人电影天堂| 日韩欧美中文字幕制服| 成人在线综合网站| 亚洲国产日韩在线一区模特| 欧美r级在线观看| 91浏览器在线视频| 久久99精品久久久久久国产越南 | 欧美日韩国产三级| 国产精品乡下勾搭老头1| 亚洲一卡二卡三卡四卡无卡久久| 日韩女同互慰一区二区| 成人激情午夜影院| 日产欧产美韩系列久久99| 国产欧美精品区一区二区三区| 欧美日韩和欧美的一区二区| 国产成人av自拍| 日本欧美一区二区在线观看| 国产精品欧美一区二区三区| 91精品国产一区二区三区蜜臀| av在线这里只有精品| 麻豆成人91精品二区三区| 亚洲一区二区三区四区中文字幕| 欧美国产精品一区二区三区| 欧美一区在线视频| 欧美日韩三级视频| 99re8在线精品视频免费播放| 蜜桃精品视频在线观看| 亚洲自拍欧美精品| 国产精品二区一区二区aⅴ污介绍| 精品粉嫩aⅴ一区二区三区四区| 欧美日韩不卡一区| 欧美视频在线一区| 色婷婷av一区二区三区大白胸| 粉嫩aⅴ一区二区三区四区五区| 免费高清成人在线| 亚洲视频在线一区二区| 国产欧美精品一区aⅴ影院| 亚洲精品在线观看网站| 日韩女优制服丝袜电影| 日韩午夜电影av| 日韩一区二区三区高清免费看看| 精品视频在线免费看| 欧美私人免费视频| 欧美三级日韩三级| 欧美日韩电影在线| 欧美日韩国产不卡| 91精品在线免费观看| 在线不卡中文字幕| 91精品国产综合久久小美女| 欧美一级夜夜爽| 精品裸体舞一区二区三区| 亚洲精品一线二线三线无人区| 日韩女优av电影在线观看| 久久亚洲一级片| 国产精品美女久久久久久久久| 国产精品久久久久久福利一牛影视| 国产精品视频免费| 亚洲人快播电影网| 性久久久久久久久| 麻豆精品国产传媒mv男同| 国产精品99久久久久| 99久久er热在这里只有精品15| 色天使色偷偷av一区二区| 67194成人在线观看| 精品国产乱码久久久久久老虎| 欧美韩国日本一区| 亚洲男同1069视频| 男男成人高潮片免费网站| 国产精品一区在线| 99久久精品国产一区| 欧美日韩国产美女| 久久午夜色播影院免费高清| 国产精品色噜噜| 午夜精品成人在线| 国产盗摄一区二区三区| 在线一区二区三区| 精品奇米国产一区二区三区| 国产精品欧美一级免费| 丝袜亚洲另类欧美| 成人自拍视频在线观看| 777午夜精品免费视频| 亚洲国产岛国毛片在线| 天堂成人免费av电影一区| 国产精品一区2区| 欧美男女性生活在线直播观看| 久久久亚洲午夜电影| 亚洲综合视频在线观看| 国精品**一区二区三区在线蜜桃| 91视频com| 在线成人午夜影院| 中文字幕中文乱码欧美一区二区| 一区二区三区欧美激情| 久久99热99| 欧美亚洲综合另类| 欧美电视剧免费全集观看|