亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
久久久久国产精品麻豆ai换脸| 亚洲国产日日夜夜| 国产露脸91国语对白| 精品1区2区在线观看| 韩国女主播一区二区三区| 久久视频一区二区| 大白屁股一区二区视频| 中文字幕综合网| 欧美系列亚洲系列| 无码av免费一区二区三区试看 | 亚洲人成网站在线| 国产日韩在线不卡| 亚洲视频免费在线| 亚洲bdsm女犯bdsm网站| 日韩福利视频网| 久久99国内精品| 99精品久久免费看蜜臀剧情介绍| 色婷婷久久综合| 国模少妇一区二区三区| 午夜一区二区三区在线观看| 欧美老年两性高潮| 久久国产精品一区二区| 国产欧美日韩在线观看| 在线视频综合导航| 免费欧美日韩国产三级电影| 久久免费看少妇高潮| 一本色道亚洲精品aⅴ| 午夜精品福利一区二区蜜股av| 日韩精品一区二区三区视频播放| 国产激情一区二区三区桃花岛亚洲| 中文字幕一区二区三区在线不卡 | 日韩精品一区二区三区四区| 国产精品一区二区你懂的| 亚洲色图视频免费播放| 91精品欧美综合在线观看最新 | 91污片在线观看| 午夜国产不卡在线观看视频| 久久久久国色av免费看影院| 欧美视频完全免费看| 国产一区二区视频在线| 亚洲综合清纯丝袜自拍| 国产女主播在线一区二区| 欧美女孩性生活视频| av午夜一区麻豆| 精品亚洲成a人| 亚洲福中文字幕伊人影院| 国产无遮挡一区二区三区毛片日本| 欧美日韩精品高清| www.66久久| 极品美女销魂一区二区三区| 亚洲精品第一国产综合野| 欧美激情综合在线| 欧美哺乳videos| 欧美视频一区二区三区在线观看| 国产美女久久久久| 五月开心婷婷久久| 亚洲国产精品麻豆| 欧美在线制服丝袜| 激情文学综合插| 国产日韩高清在线| 岛国精品在线观看| 亚洲欧洲日韩一区二区三区| fc2成人免费人成在线观看播放| 国产精品毛片久久久久久久| 色哟哟亚洲精品| 亚洲一区二区视频在线观看| 日韩毛片高清在线播放| 亚洲成av人**亚洲成av**| 欧美体内she精高潮| 色综合久久88色综合天天免费| 国产综合色精品一区二区三区| 视频一区在线视频| 五月激情综合婷婷| 石原莉奈在线亚洲二区| 亚洲一区二区三区激情| 一区二区三区精品视频在线| 亚洲欧美色图小说| 亚洲人成在线播放网站岛国| 欧美一区二区免费观在线| 欧美日韩精品一区二区在线播放 | 国产精品888| 激情六月婷婷久久| 国模娜娜一区二区三区| 国产一区二区在线观看免费| 国产精品18久久久久久久久久久久 | 成人激情视频网站| 成人小视频在线观看| proumb性欧美在线观看| 99久久伊人久久99| 色老综合老女人久久久| 色婷婷久久久久swag精品| 91福利资源站| 在线播放91灌醉迷j高跟美女| 欧美视频一区二区| 日韩免费观看2025年上映的电影| 欧美成人a在线| 久久免费电影网| 亚洲欧洲精品一区二区精品久久久| 国产精品久久久久久久久免费相片 | 波多野结衣亚洲| 成人av在线看| 欧美体内she精高潮| 麻豆国产91在线播放| 国产精品欧美久久久久无广告| 不卡的av中国片| 久久亚洲一级片| 亚洲自拍与偷拍| www.爱久久.com| 色综合欧美在线视频区| 欧美午夜不卡视频| 国内一区二区视频| 精品粉嫩aⅴ一区二区三区四区| 久久精品综合网| 国产精品三级久久久久三级| 国产欧美一区二区三区沐欲| 亚洲三级小视频| 国产精品国产三级国产普通话99| 久久久久成人黄色影片| 欧美精品成人一区二区三区四区| 在线播放一区二区三区| 色先锋资源久久综合| 久久九九久久九九| 亚洲品质自拍视频| 国产激情一区二区三区桃花岛亚洲| 日韩一区二区精品在线观看| 国产精品欧美经典| 国产乱码精品一区二区三区忘忧草| av在线综合网| 2024国产精品视频| 中文字幕免费不卡| 亚洲图片欧美视频| 99国产精品久久久| 亚洲激情一二三区| 在线观看网站黄不卡| 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美疯狂性受xxxxx喷水图片| 一区二区三区久久| 国内精品写真在线观看| 成人美女在线视频| 正在播放一区二区| 欧美国产日韩亚洲一区| 日韩高清国产一区在线| 99久久99久久精品免费观看| 久久午夜羞羞影院免费观看| 香蕉加勒比综合久久| 在线中文字幕不卡| 国产精品国产自产拍高清av王其| 久久精品99国产精品| 亚洲日本一区二区| 99久久国产综合精品色伊| 精品福利在线导航| 精品一区中文字幕| 久久精品亚洲麻豆av一区二区 | 久久精品亚洲一区二区三区浴池| 日韩丝袜美女视频| 日韩一区中文字幕| 日韩精品一二三四| 欧美在线综合视频| 日本亚洲免费观看| 精品国内片67194| 一本色道亚洲精品aⅴ| 91在线观看污| 国产女人18水真多18精品一级做| 日本在线不卡视频一二三区| 色香色香欲天天天影视综合网| 久久久精品综合| 韩国一区二区三区| 3atv在线一区二区三区| 亚洲精品国久久99热| 国产白丝精品91爽爽久久| 精品电影一区二区| 精品在线观看视频| 日韩三区在线观看| 麻豆精品精品国产自在97香蕉| 欧美日韩一区视频| 日日夜夜免费精品| 日韩一区和二区| 精品一区二区三区蜜桃| 久久蜜桃av一区精品变态类天堂 | 欧美刺激脚交jootjob| 国产偷国产偷精品高清尤物| 欧美日韩日本视频| 国产精品一区一区| 欧美人成免费网站| 国产99久久久久久免费看农村| 亚洲精品写真福利| 国产精品久久毛片a| 日韩一区二区三| 欧美在线一区二区三区| 国内精品嫩模私拍在线| 视频一区二区三区中文字幕| 国产精品护士白丝一区av| 欧美精品一区二区三区四区 | 成人在线一区二区三区| 欧美久久久久久久久中文字幕| 日韩av高清在线观看| 久久久综合九色合综国产精品| 国产一区二区三区四区五区美女| 精品电影一区二区| 99vv1com这只有精品|