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

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

?? tlc549lcd.c

?? 一些51單片機基礎模塊的程序
?? C
字號:
/********************************************************************
* 文件名  : TLC549LCD.c
* 描述    :  TLC549是一個新型的AD轉換器,具有8位的分辨率,具有控制簡單,體積小的優點。
			 工程當中的AD是要經過多次采集然后再計算出相對準確的值的。
			 這里的電壓值通過液晶1602顯示出來。
* 創建人  : 東流,2009年4月10日
* 版本號  : 2.0
* 技術支持論壇:www.zidh.com/bbs(請進入“贊助商板塊”中的“東流電子工作室”)
* 感謝“中國自動化資訊網”對本工作室的大力支持。
***********************************************************************/
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint  unsigned int 


sbit AD_Out = P3^2;	   //TLC549輸出端
sbit CS = P1^0;		   //TLC549片選信號
sbit AD_In = P1^1;	   //TLC549輸入端

//這三個引腳參考資料
sbit E=P2^7;		//1602使能引腳
sbit RW=P2^6;		//1602讀寫引腳	
sbit RS=P2^5;		//1602數據/命令選擇引腳

/********************************************************************
* 名稱 : delay()
* 功能 : 延時,延時時間大概為140US。
* 輸入 : 無
* 輸出 : 無
***********************************************************************/

void delay()
{
	int i,j;
	for(i=0; i<=10; i++)
	for(j=0; j<=2; j++)
;
}

/********************************************************************
* 名稱 : Convert(uchar In_Date)
* 功能 : 因為電路設計時,P0.0--P0.7接法剛好了資料中的相反,所以設計該函數。
* 輸入 : 1602資料上的值
* 輸出 : 送到1602的值
***********************************************************************/
uchar Convert(uchar In_Date)
{
    uchar i, Out_Date = 0, temp = 0;
    for(i=0; i<8; i++)
    {
        temp = (In_Date >> i) & 0x01;
        Out_Date |= (temp << (7 - i));
    }
    return Out_Date;
}
/********************************************************************
* 名稱 : enable(uchar del)
* 功能 : 1602命令函數
* 輸入 : 輸入的命令值
* 輸出 : 無
***********************************************************************/

void enable(uchar del)
{
	P0 = Convert(del);
	RS = 0;
	RW = 0;
	E = 0;
	delay();
	E = 1;
	delay();
}

/********************************************************************
* 名稱 : write(uchar del)
* 功能 : 1602寫數據函數
* 輸入 : 需要寫入1602的數據
* 輸出 : 無
***********************************************************************/

void write(uchar del)
{
	P0 = Convert(del);
	RS = 1;
	RW = 0;
	E = 0;
	delay();
	E = 1;
	delay();
}

/********************************************************************
* 名稱 : L1602_init()
* 功能 : 1602初始化,請參考1602的資料
* 輸入 : 無
* 輸出 : 無
***********************************************************************/
void L1602_init(void)
{
	enable(0x01);
	enable(0x38);
	enable(0x0c);
	enable(0x06);
	enable(0xd0);
}

/********************************************************************
* 名稱 : L1602_char(uchar hang,uchar lie,char sign)
* 功能 : 改變液晶中某位的值,如果要讓第一行,第五個字符顯示"b" ,調用該函數如下
		 L1602_char(1,5,'b')
* 輸入 : 行,列,需要輸入1602的數據
* 輸出 : 無
***********************************************************************/
void L1602_char(uchar hang,uchar lie,char sign)
{
	uchar a;
	if(hang == 1) a = 0x80;
	if(hang == 2) a = 0xc0;
	a = a + lie - 1;
	enable(a);
	write(sign);
}

/********************************************************************
* 名稱 : L1602_string(uchar hang,uchar lie,uchar *p)
* 功能 : 改變液晶中某位的值,如果要讓第一行,第五個字符開始顯示"ab cd ef" ,調用該函數如下
	 	 L1602_string(1,5,"ab cd ef;")
* 輸入 : 行,列,需要輸入1602的數據
* 輸出 : 無
***********************************************************************/
void L1602_string(uchar hang,uchar lie,uchar *p)
{
	uchar a;
	if(hang == 1) a = 0x80;
	if(hang == 2) a = 0xc0;
	a = a + lie - 1;
	enable(a);
	while(1)
	{
		if(*p == '\0') break;
		write(*p);
		p++;
	}
}


		  
/********************************************************************
* 名稱 : AD_Change(void)
* 功能 : TLC549驅動程序,在“視頻及教程”中有講解。
* 輸入 : 無
* 輸出 : temp (電壓值)
***********************************************************************/
uchar AD_Change(void)
{
	uchar i,temp = 0;
	CS = 0;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	for(i=0; i<8; i++)
	{
		AD_In = 1;
		_nop_();
		_nop_();
		temp = temp << 1;
		if(AD_Out == 1) temp += 1;
		AD_In = 0;
		_nop_();
		_nop_();
	}
	CS = 1;
	return temp;	
}

/********************************************************************
* 名稱 : Main()
* 功能 : 主函數
* 輸入 : 無
* 輸出 : 無
***********************************************************************/
void Test_TLC549(void)
{
	uint i = 0,temp;	
	uint j;
	P2 = 0x00;
	for(i=0; i<100; i++) delay();
	delay();
	L1602_init();
	L1602_string(1,1,"AD(TLC549) TEST ");
	L1602_string(2,1,"     0.00V      ");
	P2 = 0x00;
	P1 = 0xff;	 
	for(i=0; i<500; i++)
	{
		temp = AD_Change();
		j = temp * 2;	//這里取的是一個大概的值。真實電壓應為 temp * 5 / 256, 得出的數為 "x.xx"。
		L1602_char(2,6,j/100%10+48);
		L1602_char(2,8,j/10%10+48);		   
		L1602_char(2,9,j%10+48);
		delay();
	}
	enable(0x01);	
}

#define jump_ROM 0xCC
#define start 0x44
#define read_EEROM 0xBE

sbit DQ = P3^4; 
unsigned char TMPH,TMPL; 


/********************************************************************
* 名稱 : delay()
* 功能 : 延時函數
* 輸入 : 無
* 輸出 : 無
***********************************************************************/
void delay_11(uint N)
{
	int i;
	for(i=0; i<N; i++)
	;
}

/********************************************************************
* 名稱 : Reset()
* 功能 : 復位DS18B20
* 輸入 : 無
* 輸出 : 無
***********************************************************************/
uchar Reset(void)
{
	uchar deceive_ready;
	DQ = 0;
	delay_11(29);
	DQ = 1;
	delay_11(3);
	deceive_ready = DQ;
	delay_11(25);
	return(deceive_ready);
}

/********************************************************************
* 名稱 : read_bit()
* 功能 : 從DS18B20讀一個位值
* 輸入 : 無
* 輸出 : 從DS18B20讀出的一個位值
***********************************************************************/
uchar read_bit(void)
{
	uchar i;
	DQ = 0;
	DQ = 1;
	for(i=0; i<3; i++);
	return(DQ);
}

/********************************************************************
* 名稱 : write_bit()
* 功能 : 向DS18B20寫一位
* 輸入 : bitval(要對DS18B20寫入的位值)
* 輸出 : 無
***********************************************************************/
void write_bit(uchar bitval)
{
DQ=0;if(bitval==1)
DQ=1;
delay_11(5);
DQ=1;
}

/********************************************************************
* 名稱 : read_byte()
* 功能 : 從DS18B20讀一個字節
* 輸入 : 無
* 輸出 : 從DS18B20讀到的值
***********************************************************************/
uchar read_byte(void)
{
	uchar i,m,receive_data;
	m = 1;
	receive_data = 0;
	for(i=0; i<8; i++)
	{
		if(read_bit())
		{
			receive_data = receive_data + (m << i);
		}
		delay_11(6);
	}
	return(receive_data);
}

/********************************************************************
* 名稱 : write_byte()
* 功能 : 向DS18B20寫一個字節
* 輸入 : val(要對DS18B20寫入的命令值)
* 輸出 : 無
***********************************************************************/
void write_byte(uchar val)
{
	uchar i,temp;
	for(i=0; i<8; i++)
	{
		temp = val >> i;
		temp = temp & 0x01;
		write_bit(temp);
		delay_11(5);
	}
}

void Test_DS18B20()
{
	float tt, i;
	uint temp;
	P2 = 0x00;
	for(i=0; i<100; i++) delay();
	L1602_init();
	L1602_string(1,1,"  DS18B20 TEST  ");
	L1602_string(2,1,"Temperature:00`C");
	for(i=0; i<300; i++)
	{
		Reset();
		write_byte(jump_ROM);
		write_byte(start);
		Reset();
		write_byte(jump_ROM);
		write_byte(read_EEROM);
		TMPL = read_byte();
		TMPH = read_byte();
		temp = TMPH;
		temp <<= 8;       
		temp = temp | TMPL;
		tt = TMPL * 0.0625;
		temp = TMPL / 16 + TMPH * 16;
		L1602_char(2,13,temp/10%10 + 48);
		L1602_char(2,14,temp%10 + 48);
	}
	enable(0x01);	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人免费视频精品含羞草妖精| 欧美一区二区三区免费视频| 91精品国产综合久久久久久| 欧美激情一区在线| 免费观看日韩电影| 欧美日韩成人在线一区| 亚洲色图制服诱惑 | 成人av在线一区二区三区| 欧美日韩在线电影| 亚洲精品国产高清久久伦理二区| 国产麻豆一精品一av一免费 | 天使萌一区二区三区免费观看| 国产成人精品亚洲午夜麻豆| 欧美电影免费观看高清完整版在线观看| 亚洲美女屁股眼交3| 成人三级伦理片| 精品国产免费视频| 久久99久久精品| 日韩欧美一区电影| 毛片不卡一区二区| 91精品欧美久久久久久动漫| 亚洲不卡av一区二区三区| 日本久久电影网| 亚洲精品乱码久久久久久久久 | 亚洲精品免费一二三区| 9色porny自拍视频一区二区| 国产精品网站在线播放| 国产91丝袜在线播放九色| 国产亚洲一区字幕| 国精品**一区二区三区在线蜜桃| 久久这里只有精品6| 国产成人亚洲综合色影视| 国产喂奶挤奶一区二区三区| 成人在线视频一区二区| 国产精品久久夜| 色综合天天综合在线视频| 亚洲狼人国产精品| 欧美日韩国产小视频| 日韩精品欧美成人高清一区二区| 8x8x8国产精品| 美腿丝袜在线亚洲一区| 国产欧美va欧美不卡在线| 国v精品久久久网| 一区二区三区中文免费| 在线播放中文字幕一区| 国模无码大尺度一区二区三区| 中文字幕第一区第二区| 色综合色狠狠综合色| 亚洲成人自拍网| 91精品国产91综合久久蜜臀| 久久97超碰国产精品超碰| 中文在线资源观看网站视频免费不卡| 99热国产精品| 亚洲第一av色| 国产亚洲精品7777| 在线观看av不卡| 精品午夜一区二区三区在线观看| 欧美激情综合五月色丁香小说| 日本道精品一区二区三区| 国产一区日韩二区欧美三区| 亚洲情趣在线观看| 欧美tickling网站挠脚心| 不卡一区二区三区四区| 日韩精品91亚洲二区在线观看| 国产片一区二区三区| 欧美天堂一区二区三区| 国产黑丝在线一区二区三区| 亚洲一区二区三区自拍| 久久久久久影视| 欧美精品久久久久久久久老牛影院| 国产精品亚洲第一区在线暖暖韩国| 一区二区三区四区av| 久久久久97国产精华液好用吗| 色94色欧美sute亚洲线路一ni| 精品亚洲免费视频| 亚洲国产精品一区二区www在线 | 国产福利一区在线| 亚洲h精品动漫在线观看| 欧美激情艳妇裸体舞| 欧美一级淫片007| 一本久道中文字幕精品亚洲嫩| 久久99精品国产91久久来源| 亚洲午夜久久久久中文字幕久| 国产精品拍天天在线| 欧美成人在线直播| 欧美日韩国产免费一区二区 | 国产成都精品91一区二区三| 日韩国产欧美三级| 亚洲国产精品一区二区www | 欧美日韩一区中文字幕| 不卡一区二区三区四区| 国产制服丝袜一区| 日韩成人一区二区三区在线观看| 亚洲人成精品久久久久| 中文字幕久久午夜不卡| 久久久久久久久久久久久久久99| 3d动漫精品啪啪| 欧美日韩成人综合天天影院 | 99国产精品国产精品毛片| 狠狠色狠狠色综合日日91app| 日本伊人午夜精品| 五月天激情综合网| 亚洲成a人片综合在线| 午夜伊人狠狠久久| 污片在线观看一区二区| 天堂影院一区二区| 青椒成人免费视频| 日本va欧美va瓶| 奇米影视7777精品一区二区| 天天免费综合色| 天天操天天干天天综合网| 亚洲chinese男男1069| 丝袜美腿一区二区三区| 日产精品久久久久久久性色| 舔着乳尖日韩一区| 久久成人麻豆午夜电影| 国产一区二区三区在线观看免费 | 午夜精品福利久久久| 亚洲午夜av在线| 性做久久久久久免费观看欧美| 亚洲一区在线观看免费观看电影高清| 亚洲一区日韩精品中文字幕| 亚洲国产日韩一区二区| 日本中文字幕一区| 裸体一区二区三区| 国产精品原创巨作av| 99久久99久久精品国产片果冻| 一本色道久久综合狠狠躁的推荐 | 中文字幕亚洲欧美在线不卡| 亚洲欧美激情小说另类| 亚洲福利一二三区| 精品一区二区三区在线观看国产| 懂色一区二区三区免费观看| 一本到高清视频免费精品| 欧美绝品在线观看成人午夜影视| 日韩精品在线网站| 国产精品欧美一级免费| 亚洲永久精品大片| 国产在线观看一区二区| 成人av先锋影音| 欧美日韩精品专区| 久久精品日韩一区二区三区| 亚洲最新视频在线观看| 看电影不卡的网站| fc2成人免费人成在线观看播放 | 中文字幕欧美激情| 亚洲国产美女搞黄色| 狠狠色丁香久久婷婷综合_中| 成人高清视频在线观看| 5858s免费视频成人| 国产精品久久久久永久免费观看| 亚洲aⅴ怡春院| 成人免费黄色大片| 欧美精品日韩综合在线| 国产精品久久久99| 免费观看成人鲁鲁鲁鲁鲁视频| 91亚洲大成网污www| 日韩欧美一区二区久久婷婷| 亚洲蜜臀av乱码久久精品蜜桃| 麻豆成人免费电影| 欧美三级三级三级| 亚洲欧洲一区二区在线播放| 久久国产人妖系列| 欧美性大战xxxxx久久久| 国产欧美精品国产国产专区| 久久精品国产一区二区三区免费看 | 午夜一区二区三区在线观看| 粉嫩13p一区二区三区| 日韩三级在线观看| 亚洲综合免费观看高清完整版在线 | 自拍偷拍亚洲激情| 激情久久久久久久久久久久久久久久| 色94色欧美sute亚洲线路一久| 国产片一区二区| 国产精品中文欧美| 欧美电影免费观看高清完整版在线观看 | 欧美在线免费视屏| 中文字幕av在线一区二区三区| 蜜臀av一区二区在线观看 | 国产精品嫩草99a| 国产自产高清不卡| 日韩一区二区精品葵司在线| 亚洲国产成人av好男人在线观看| 91亚洲男人天堂| 最近日韩中文字幕| 成人午夜视频福利| 国产日韩欧美综合在线| 极品少妇xxxx偷拍精品少妇| 7777精品伊人久久久大香线蕉的| 一区二区三区四区不卡视频| 91影院在线观看| 中文字幕中文字幕中文字幕亚洲无线| 国产精品一区二区男女羞羞无遮挡 | 成人精品一区二区三区中文字幕 | 欧美一区二区啪啪| 免费在线观看一区| 欧美疯狂性受xxxxx喷水图片| 日韩和的一区二区| 911精品国产一区二区在线| 日日夜夜免费精品视频|