freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

單片機程序12-18b20和pld與eda講義(編輯修改稿)

2024-09-14 19:37 本頁面
 

【文章內(nèi)容簡介】 ********************************************/void ShowChar(unsigned char pos,unsigned char c){ unsigned char p。 if (pos=0x10) p=pos+0xb0。 //是第二行則命令代碼高4位為0xc else p=pos+0x80。 //是第二行則命令代碼高4位為0x8 WriteCommand (p)。//write mand WriteData (c)。 //write data}/*************************************************************************/void ShowString (unsigned char line,char *ptr){ unsigned char l,i。 l=line4。 for (i=0。i16。i++) ShowChar (l++,*(ptr+i))。//循環(huán)顯示16個字符}/*********************************************************************/void InitLcd(){ DelayMs(15)。 WriteCommand(0x38)。 //display mode WriteCommand(0x38)。 //display mode WriteCommand(0x38)。 //display mode WriteCommand(0x06)。 //顯示光標(biāo)移動位置 WriteCommand(0x0c)。 //顯示開及光標(biāo)設(shè)置 WriteCommand(0x01)。 //顯示清屏}/////////////////////////////////////////////////////////////////void main(void){InitLcd()。//DelayMs(15)。sprintf(Test1, )。//the first lineShowString(0,Test1)。sprintf(TimeNum,LCM1602 Test ok!)。//the first lineShowString(1,TimeNum)。while(1)。}//18B20單線溫度檢測的應(yīng)用樣例程序includeincludeincludedefine uchar unsigned chardefine uint unsigned int。/*****************************************************************************/sbit DQ=P3^5。//ds18b20 端口/**********************************************************************/ unsigned int temp。uchar flag_get。/***********************************************************************/void delay1(uchar MS)。unsigned char ReadTemperature(void)。void Init_DS18B20(void)。unsigned char ReadOneChar(void)。void WriteOneChar(unsigned char dat)。void delay(unsigned int i)。void DelayMs(unsigned char ms)。//delay Msvoid InitLcd()。void lcd_sef_chr()。/************************************************************************/void display(void)。//外部函數(shù)main(){TMOD|=0x01。//定時器設(shè)置TH0=0xef。TL0=0xf0。IE=0x82。TR0=1。 InitLcd()。//DelayMs(15)。lcd_sef_chr()。 //寫入自定義字符號while(1){ if(flag_get==1) //定時讀取當(dāng)前溫度 { temp=ReadTemperature()。 flag_get=0。 display()。//顯示 } }}void tim(void) interrupt 1 using 1//中斷,用于數(shù)碼管掃描和溫度檢測間隔{static unsigned char num。TH0=0xef。//定時器重裝值TL0=0xf0。num++。if (num==50) { num=0。 flag_get=1。//標(biāo)志位有效 }}/*************************************************************************************/void delay(unsigned int i)//延時函數(shù){ while(i)。}/***************************************************************************************///18b20初始化函數(shù)void Init_DS18B20(void){ unsigned char x=0。 DQ = 1。 //DQ復(fù)位 delay(8)。 //稍做延時 DQ = 0。 //單片機將DQ拉低 delay(80)。 //精確延時 大于 480us DQ = 1。 //拉高總線 delay(10)。 x=DQ。 //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗 delay(5)。}//讀一個字節(jié)unsigned char ReadOneChar(void){unsigned char i=0。unsigned char dat = 0。for (i=8。i0。i) { DQ = 0。 // 給脈沖信號 dat=1。 DQ = 1。 // 給脈沖信號 if(DQ) dat|=0x80。 delay(5)。 } return(dat)。}//寫一個字節(jié)void WriteOneChar(unsigned char dat){ unsigned char i=0。 for (i=8。 i0。 i) { DQ = 0。 DQ = datamp。0x01。 delay(5)。 DQ = 1。 dat=1。 }delay(5)。}//讀取溫度unsigned char ReadTemperature(void){unsigned char a=0。unsigned char b=0。unsigned char t=0。//float tt=0。Init_DS18B20()。WriteOneChar(0xCC)。 // 跳過讀序號列號的操作WriteOneChar(0x44)。 // 啟動溫度轉(zhuǎn)換delay(200)。Init_DS18B20()。WriteOneChar(0xCC)。 //跳過讀序號列號的操作 WriteOneChar(0xBE)。 //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度a=ReadOneChar()。b=ReadOneChar()。b=4。b+=(aamp。0xf0)4。t=b。//tt=t*。//t= tt*10+。 //放大10倍輸出并四舍五入return(t)。}//18B20單線溫度檢測的應(yīng)用樣例程序includeincludeincludedefine uchar unsigned chardefine uint unsigned int。/*****************************************************************************/sbit seg1=P2^0。sbit seg2=P2^1。sbit seg3=P2^2。sbit DQ=P3^5。//ds18b20 端口sfr dataled=0x80。//顯示數(shù)據(jù)端口/**********************************************************************/ uchar temp。uchar flag_get,count,num,minute,second。uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。//7段數(shù)碼管段碼表共陽uchar str[3]。/***********************************************************************/void delay1(uchar MS)。unsigned char ReadTemperature(void)。void Init_DS18B20(void)。unsigned char ReadOneChar(void)。void WriteOneChar(unsigned char dat)。void delay(unsigned int i)。/************************************************************************/main(){TMOD|=0x01。//定時器設(shè)置TH0=0xef。TL0=0xf0。IE=0x82。TR0=1。P2=0x00。 count=0。while(1){ str[0]=0xc6。//顯示C符號 str[2]=tab[temp/10]。 //十位溫度 str[1]=tab[temp%10]。 //個位溫度 if(flag_get==1) //定時讀取當(dāng)前溫度 { temp=ReadTemperature()。 flag_get=0。 } }}void tim(void) interrupt 1 using 1//中斷,用于數(shù)碼管掃描和溫度檢測間隔{TH0=0xef。//定時器重裝值TL0=0xf0。num++。if (num==50) {num=0。 flag_get=1。//標(biāo)志位有效 second++。 if(second=60) {second=0。 minute++。 } }count++。if(count==1) {P2=0xf7。 dataled=str[0]。}//數(shù)碼管掃描if(count==2) {P2=0xfb。 dataled=str[1]。}if(count==3) { P2=0xfd。 dataled=str[2]。 count=0。}}/*************************************************************************************/void delay(unsigned int i)//延時函數(shù){ while(i)。}/***************************************************************************************///18b20初始化函數(shù)void Init_DS18B20(void){ unsigned char x=0。 DQ = 1。 //DQ復(fù)位 delay(8)。 //稍做延時 DQ = 0。 //單片機將DQ拉低 delay(80)。 //精確延時 大于 480us DQ = 1。 //拉高總線 delay(10)。 x=DQ。 //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗 delay(5)。}//讀一個字節(jié)unsigned char ReadOneChar(void){unsigned char i=0。unsigned char dat = 0。for (i=8。i0。i) { DQ = 0。 // 給脈沖信號 dat=1。
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1