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

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

?? lcd.c

?? 用ICCAVR所寫的溫度采集函數
?? C
字號:
//在LCD上顯示的內容
#include "iom128v.h"
#include "MyMacro.h"

extern void Delay(unsigned int);	
extern unsigned char MCUState;	
extern unsigned char TimeScale;	
extern float Temperature;	
extern unsigned int SavedNum;  


//使用SPI發送數據
void SpiWriteByte(unsigned char byte)
{//沒有使用頭文件spi.h,庫函數void SpiWriteByte(unsigned char byte)的實現方法是相同的
 unsigned char i=0;
 SPSR=SPSR&0x7f;   		   //清中斷位
 SPCR=0x51;				   //使能SPI,16分頻
 SPDR=byte;
 //Delay(1);
 while((SPSR&0x80)==0) ;    //等待傳送結束
 }
 

//向LCD發送命令command_data
void SendCommand(unsigned char command_data)
{
 unsigned char i=0xf8;	  
 SpiWriteByte(i);		 
 
 i=command_data&0xf0;
 SpiWriteByte(i);
 
 i=command_data&0x0f;
 SpiWriteByte(i);
}


//向LCD發送數據byte_data
void SendData(unsigned char byte_data)
{
 unsigned char i=0xfa; 	
 SpiWriteByte(i);
 
 i=byte_data&0xf0;
 SpiWriteByte(i);
 
 i=byte_data&0x0f;
 SpiWriteByte(i);
}


//液晶的初始化設置
void LCDInitial()
{
unsigned char command_data; 
//Delay(5); 
command_data=0x30; 
SendCommand(command_data); /*功能設置:一次送8位數據,基本指令集*/ 
command_data=0x06; 
SendCommand(command_data); /*點設定:顯示字符/光標從左到右移位,DDRAM地址加1*/ 
command_data=0x0f; 
SendCommand(command_data); /*顯示設定:開顯示,顯示光標,當前顯示位反白閃動*/ 
command_data=0x01; 
SendCommand(command_data); /*清DDRAM*/ 
Delay(5); 
command_data=0x02; 
SendCommand(command_data); /*DDRAM地址歸位*/ 
Delay(5); 
command_data=0x80; 
SendCommand(command_data); /*把顯示地址設為0X80,即為第一行的首位*/ 
}



//顯示主菜單
void Show_MainMenu(void)		   
{
 unsigned char i=0;
 
 //把要顯示的內容存儲為字符型數組
 unsigned char LCD_Display[12]="LCD Display";
 unsigned char PC_Display[12]="PC  Display";
 unsigned char OTG_Host[9]="OTG Host";

 LCDInitial();
 for(i=0;i<11;i++)
 {
  SendData(LCD_Display[i]);
 }
 i=0x90;				   //換到第2行
 SendCommand(i);
 for(i=0;i<11;i++)
 {
  SendData(PC_Display[i]);
 }
 i=0x88;				   //換到第3行
 SendCommand(i);
 for(i=0;i<8;i++)
 {
  SendData(OTG_Host[i]);
 }
}



//顯示Save Data?
//    Yes
//    No
void Show_Save_Data(void)  
{	 					   
 unsigned char i=0;	
 
 //把要顯示的內容存儲為字符型數組	   
 unsigned char Save_Data[11]="Save Data?";
 unsigned char Yes[4]="Yes";
 unsigned char No[3]="No";
 
 LCDInitial();
 for(i=0;i<11;i++)
 {
  SendData(Save_Data[i]);
 }
 
 i=0x90;				   //換到第2行
 SendCommand(i);
 for(i=0;i<3;i++)
 {
  SendData(Yes[i]);
 }
 
 i=0x88;				   //換到第3行
 SendCommand(i);
 for(i=0;i<2;i++)
 {
  SendData(No[i]);
 }
}


//顯示Time Scale
//    05S 0x12
void Show_Time_Scale(void) 
{	 					   
 unsigned char i=0;
 		
 //把要顯示的內容存儲為字符型數組	 
 unsigned char Time_Scale[11]="Time Scale"; 
 
 LCDInitial();
 
 i=0x90;				   //換到第2行
 SendCommand(i);
 for(i=0;i<10;i++)
 {
  SendData(Time_Scale[i]);
 }
 i=0x88;				   //換到第3行
 SendCommand(i);
 
 i=0x20	;				  //先顯示四個空格
 SendData(i);
 SendData(i);
 SendData(i);
 SendData(i);
 
 SendData(0x30);
 SendData(0x35);
 SendData(0x53);		  //初始值是05S
 
 //后邊補三個空格 	
 i=0x20	;	 		  	 		
 SendData(i);
 SendData(i);
 SendData(i);
 
 //輸出一個上下雙向箭頭
 i=0x12;	 		   
 SendData(i);
}


//刷新當前的TimeScale值
void Refresh_Time_Scale(void)
{
 unsigned char i=0;
 
 SendCommand(0x8A);			 //從0x8A開始刷新數字
 
 //輸出當前設定的TimeScale值
 i=TimeScale/10+0x30;
 SendData(i);
 i=TimeScale%10+0x30;
 SendData(i);
}



//初始化顯示溫度采集界面,顯示 Saved Num:0000和 0.0 K
void Show_Temp(void)
{
 unsigned int i=0;
 unsigned char Temp[7]={' ',' ','0','.','0',' ','K'};//xxx.x K
 unsigned char Saved_Num[16]="Saved Num:0000";
 
 //輸出Saved_Num[]和SavedNum初始值0000,不消零
 LCDInitial();
	
 SendCommand(0x90);	   //換到第2行
 for(i=0;i<=13;i++)
 {
  SendData(Saved_Num[i]);
 }

 //輸出溫度值,絕對溫度 從0x8A到0x8D共7個字符
 SendCommand(0x8A);		 //換到第三行
 for(i=0;i<=6;i++)
 {
  SendData(Temp[i]);
 }
}



//在正常的溫度采集過程中實時刷新溫度值的顯示
void Refresh_Temp(void)
{
 unsigned int i=0;
 unsigned char Temp[7]={' ',' ','0','.','0',' ','K'};//xxx.x K
 unsigned char Saved_Num[15]="Saved Num:0000";
 
 //獲取溫度值Temperature得各位數字,并轉化為ASII碼存入數組
 i=Temperature*10;			  //把浮點數連同第一個小數位,轉化成整數以提取各位數字
 if((Temperature-i)>=0.5)
 	i=i+1;				 	  //四舍五入
 if((i/1000)>0)	Temp[0]=(i/1000+0x30);			//提取百位
 i=i%1000;
 
 if((Temp[0]!=0)||(i/100>0))  Temp[1]=(i/100+0x30);	  //提取十位
 i=i%100;
 
 Temp[2]=(i/10+0x30);				  					  //提取個位
 Temp[4]=(i%10+0x30);									  //提取小數位
 
 //在確定保存數據后,獲取所存數據的個數SavedNum 的各位數字,并轉化為ASII碼存入數組
 if(TimeScale!=0)	
{
 i=SavedNum;
 Saved_Num[10]=SavedNum/1000+0x30;
 i=SavedNum%1000;
 Saved_Num[11]=i/100+0x30;
 i=SavedNum%100;
 Saved_Num[12]=i/10+0x30;
 i=SavedNum%10;
 Saved_Num[13]=i+0x30;
 
 //更新SavedNum的值,不消零
 SendCommand(0x95);	   //換到第2行0x95
 for(i=10;i<=13;i++)
 {
  SendData(Saved_Num[i]);
 }
} 
 
 
 //更新溫度值,絕對溫度 從0x8A到0x8C共5個字符
 SendCommand(0x8A);		 //換到第三行
 for(i=0;i<=4;i++)
 {
  SendData(Temp[i]);
 }
}
 



//顯示選擇光標 ,0x11
void Show_Cursor(void)
{
 unsigned char i=0;
 unsigned char j=0;
 unsigned char k=0;
 
 //根據單片機的當前工作狀態,確定光標顯示在哪一行
 switch(MCUState)
 {
  case LCD_DISPLAY:	 i=1; //光標顯示在第1行 87H
  case PC_DISPLAY :
  case TIME_SCALE :
  case SAVE_DATA_YES:i=3; //光標顯示在第2行 97H
  case OTG_HOST	  :
  case SAVE_DATA_NO: i=2; //光標顯示在第3行 8FH
  default		  :  ;
  }
  
 for(k=0;k<=3;k++)
 {
 //先把倒數第二列全部用空格填充
 j=0x87+k*0x08;	  	  	  
 SendCommand(j); 		  
 
 j=0x20;				 
 SendData(j);
 }
 //在適當的位置顯示一個箭頭
 j=0x87+(i-1)*0x08;
 SendCommand(j); 		  
 
 j=0x11;				 
 SendData(j);
}



 //根據單片機的運行狀態決定液晶的顯示內容 
void Show_LCD(void)
{
 switch(MCUState)
 {
  case WORKING 	 		 : Refresh_Temp();
  case LCD_DISPLAY		 : 
  case PC_DISPLAY		 : 
  case OTG_HOST			 : Show_MainMenu();
  
  case SAVE_DATA_YES	 : 
  case SAVE_DATA_NO		 : Show_Save_Data();
  case TIME_SCALE		 : Refresh_Time_Scale();
  }
 
 //最后必須顯示選擇光標
 Show_Cursor();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美人妖巨大在线| 色婷婷国产精品| 全国精品久久少妇| 亚洲免费资源在线播放| 国产精品美女久久久久高潮| 中文字幕乱码久久午夜不卡| 国产嫩草影院久久久久| 国产婷婷一区二区| 国产精品久久久久影院亚瑟| 国产精品久久久久久久午夜片| 亚洲国产精品黑人久久久| 中日韩免费视频中文字幕| 国产女同互慰高潮91漫画| 国产精品超碰97尤物18| 亚洲精品你懂的| 亚洲成人午夜电影| 日本女人一区二区三区| 精品制服美女久久| 国产成人在线网站| 欧美中文字幕亚洲一区二区va在线| 91国内精品野花午夜精品| 在线播放欧美女士性生活| 91精品国产色综合久久不卡蜜臀| 日韩视频一区在线观看| 国产欧美日韩激情| 一区二区视频免费在线观看| 免费成人在线视频观看| 国产91清纯白嫩初高中在线观看| 色婷婷综合久久久中文一区二区| 欧美日韩国产经典色站一区二区三区| 日韩丝袜情趣美女图片| 国产精品伦理一区二区| 亚洲成av人在线观看| 韩国女主播成人在线观看| 色8久久人人97超碰香蕉987| 91精品国产一区二区三区蜜臀 | 亚洲成人自拍一区| 裸体在线国模精品偷拍| 成人av电影在线观看| 欧美网站大全在线观看| 久久久久久久久久久99999| 亚洲精品视频一区| 国产在线不卡一卡二卡三卡四卡| 92国产精品观看| 精品久久久影院| 亚洲男人的天堂网| 国产一区二区三区视频在线播放| 在线观看一区二区视频| 国产视频911| 免费观看成人鲁鲁鲁鲁鲁视频| 成人网在线播放| 欧美刺激脚交jootjob| 1024成人网| 国产精品白丝jk白祙喷水网站| 欧美午夜视频网站| 国产精品人人做人人爽人人添| 免费日韩伦理电影| 欧美精品在线观看播放| 亚洲狼人国产精品| 成人国产精品免费网站| 精品欧美久久久| 蜜桃视频一区二区三区在线观看| 91久久免费观看| 国产精品久久久久久妇女6080| 国产一区二区调教| 日韩一区二区三区四区| 日韩精品一区第一页| 欧美午夜理伦三级在线观看| 亚洲视频综合在线| 国产成人h网站| 国产欧美日韩卡一| 风间由美中文字幕在线看视频国产欧美 | 成人免费毛片嘿嘿连载视频| 久久九九全国免费| 国产91在线|亚洲| 国产免费成人在线视频| 风流少妇一区二区| 国产精品国产a级| www.亚洲精品| 成人欧美一区二区三区白人| 不卡高清视频专区| 18成人在线视频| 欧美综合视频在线观看| 亚洲综合一区二区三区| 欧美性感一区二区三区| 日韩精品视频网| 日韩丝袜情趣美女图片| 国产精品一区二区黑丝| 国产精品色哟哟| 色狠狠色狠狠综合| 亚洲一线二线三线视频| 欧美一区日本一区韩国一区| 日本不卡123| 久久精品亚洲一区二区三区浴池 | 制服丝袜成人动漫| 老司机午夜精品99久久| 欧美高清在线视频| 91福利社在线观看| 免费欧美日韩国产三级电影| 26uuu国产一区二区三区| 成人精品一区二区三区四区 | 成人免费毛片app| 亚洲美女免费在线| 日韩网站在线看片你懂的| 国产高清精品久久久久| 亚洲欧美一区二区三区久本道91| 欧美日韩精品福利| 国产成人日日夜夜| 亚洲一区二区三区小说| 精品国产sm最大网站免费看| 成人白浆超碰人人人人| 日韩不卡一二三区| 综合激情成人伊人| 日韩亚洲欧美综合| 91麻豆视频网站| 激情五月激情综合网| 亚洲男人的天堂在线aⅴ视频| 欧美一卡2卡3卡4卡| 99视频国产精品| 麻豆成人在线观看| 亚洲精品va在线观看| 欧美精品一区二区三| 欧美在线观看你懂的| 国产凹凸在线观看一区二区| 日韩福利电影在线| 亚洲综合在线第一页| 国产精品区一区二区三区| 欧美日韩不卡视频| 91蜜桃在线免费视频| 国产精品亚洲专一区二区三区| 亚洲国产精品一区二区www在线| 欧美激情一区二区三区在线| 91精品蜜臀在线一区尤物| 在线中文字幕不卡| 99视频精品在线| 国产乱码一区二区三区| 青青草国产精品亚洲专区无| 亚洲综合在线五月| 亚洲欧洲日韩一区二区三区| 精品国产乱码久久久久久蜜臀 | 成人av手机在线观看| 韩国视频一区二区| 欧美aⅴ一区二区三区视频| 亚洲综合在线五月| 一区二区三区欧美久久| 亚洲你懂的在线视频| 中文字幕欧美一| 国产精品你懂的| 中文字幕精品综合| 国产精品私人自拍| 欧美日韩国产综合久久| 国产传媒日韩欧美成人| 色婷婷av一区二区三区大白胸| 亚洲成人资源网| 亚洲激情中文1区| 一区二区三区精品视频| 欧美一区二区网站| 欧美三区免费完整视频在线观看| 91浏览器打开| 日本精品一级二级| 色播五月激情综合网| 色一情一乱一乱一91av| 91免费版在线看| 欧美日韩一区在线| 欧美日韩国产一级片| 91精品国产一区二区人妖| 欧美一区二区三区四区高清| 日韩三级在线观看| 久久夜色精品一区| 亚洲国产精品t66y| 亚洲精品视频一区| 亚洲不卡在线观看| 蜜臀av一区二区在线观看| 国产麻豆精品视频| 成人性生交大合| 日本丰满少妇一区二区三区| 在线不卡欧美精品一区二区三区| 欧美一区二区在线免费播放| 久久众筹精品私拍模特| 国产精品的网站| 五月天精品一区二区三区| 九九**精品视频免费播放| 不卡av在线免费观看| 日本伦理一区二区| 日韩免费观看2025年上映的电影| 久久久久久电影| 一区二区三区视频在线观看| 日韩国产精品91| 成人黄色网址在线观看| 欧美日韩国产成人在线免费| 精品sm在线观看| 亚洲欧美日韩国产手机在线| 日本v片在线高清不卡在线观看| 国产成人鲁色资源国产91色综 | 精品视频一区二区不卡| 欧美精品一区二区三区高清aⅴ| 中文字幕永久在线不卡| 裸体一区二区三区| 色老头久久综合| 日本一区二区三区国色天香 |