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

正文內容

單片機控制的數(shù)字氣壓計的設計與實現(xiàn)_畢業(yè)設計(論文)-資料下載頁

2025-08-19 21:34本頁面

【導讀】導下,獨立進行研究工作所取得的成果,成果不存在知識產(chǎn)權爭議。個人或集體已經(jīng)發(fā)表或撰寫過的作品成果。對本文的研究做出重要貢獻。的個人和集體均已在文中以明確方式標明。本聲明的法律后果由本人承擔。的電流或電壓信號,最后通過顯示器顯示設計。本設計介紹了壓力傳感。器MPX4115氣壓計實時數(shù)字顯示設備。得到的模擬氣壓值再經(jīng)過電壓/. 頻率的換算電路,最終在LCD中顯示出來。

  

【正文】 r T0count。 uchar Timecount。 bit flag。//定義 1s 標志位 unsigned long x。 sbit LCD_RS=P2^0。 sbit LCD_E=P2^1。 sbit LCD_RW=P2^2。 define LCD_DATA P0//定義單片機 P0 口作為 LCD 液晶顯示位選碼 uchar code LcdBuf1[]={wele to use!}。 uchar code LcdBuf2[]={Pressure test!}。//LCD 顯示內容,定義到代碼段 uchar temp[8]。 uchar dispbuf[8]={0,0,0,0,0,0,10,10}。 //函數(shù)聲明 void lcd_init(void)。 void displa_string(uchar x,uchar*)。 void disp_selec(unsigned char bit_sdelec,unsigned char seg)。 void delay(uint z)//延時 1ms { uint x,y。 for(x=z。x0。x) for(y=110。y0。y)。 } /************************************* **函數(shù)名稱 :dellay **入口函數(shù) :h(unsigned int 型 ) **出口參數(shù) :無 **功能描述 :短暫延時,使用 晶體,約 **************************************/ void dellay(uint z) { uint i,j。 for(i=z。i0。i) for(j=110。j0。j)。 } /************************************* 濱州學院本科畢業(yè)設計(論文) 25 **函數(shù)名稱 :WritedataLcd **入口參數(shù) :wdata (unsigned char 型 ) **出口參數(shù) :無 **功能描述 :寫數(shù)據(jù)到 LCD ******************************************/ void WriteDataLcd(unsigned char wdata) { LCD_RS=1。 LCD_DATA=wdata。 dellay(10)。//短暫延時,代替檢測忙狀態(tài) LCD_E=1。 dellay(10)。 //短暫延時,代 替檢測忙狀態(tài) LCD_E=0。 } /*********************************** **函數(shù)名稱 :WriteCommandLcd **入口函數(shù) :wdata(unsigned char 型 ) **出口參數(shù) :無 **功能描述 :寫命令到 LCD *************************************/ void WriteCommandLcd(unsigned char wdata) { LCD_RS=0。 LCD_DATA=wdata。 dellay(10)。//短暫延時,代替檢測忙狀態(tài) LCD_E=1。 dellay(10)。//短暫延時,代替檢測忙狀態(tài) LCD_E=0。 } void lcd_init() { LCD_E=0。 WriteCommandLcd(0x38)。 WriteCommandLcd(0x38)。//顯示模式設置 WriteCommandLcd(0x08)。//關閉顯示 WriteCommandLcd(0x0c)。//顯示開及光標設置 WriteCommandLcd(0x06)。//顯示光標移動設置 WriteCommandLcd(0x01)。//顯示清屏 WriteCommandLcd(0x90)。//顯示開及光標移動設置 } 濱州學院本科畢業(yè)設計(論文) 26 /****************************************************************** **函數(shù)名稱: display_xy **入口參數(shù): x(unsigned char 型 ),y(unsigned char 型 ) **出口參數(shù):無 **功能描述:設置光標位置, x是列號, y是行號 *******************************************************************/ void display_xy(unsigned char x,unsigned char y) { if(y==1) x+=0x40。 x+=0x80。 WriteCommandLcd(x)。 } /**************************************************************************** **函數(shù)名稱: display_char **入口參數(shù): x(unsigned char 型 ), y(unsigned char 型 ), dat(unsigned char型 ) **出口參數(shù):無 **功能描述:在具體位置顯示顯示單個字符, x是列號, y 是行號 ***************************************************************************/ void display_char(unsigned char x,unsigned char y ,unsigned char dat) { display_xy(x,y)。 WriteDataLcd(dat)。 } // While(*s) /************************************************************************** **函數(shù)名稱: display_string **入口參數(shù): x(unsigned char 型 ), y(unsigned char 型 ), s(指針型 ) **出口參數(shù):無 **功能描述:在具體位置顯示 顯示字符串,以 /0 結束, x是列號, y 是行號 ***************************************************************************/ void display_string(unsigned char x,unsigned char y,unsigned char*s) { display_xy(x,y)。 while(*s) { 濱州學院本科畢業(yè)設計(論文) 27 WriteDataLcd(*s)。 s++。 } } void main(void) { unsigned char i。 LCD_RW=0。 delay(10)。 lcd_init()。 display_string(0,0,LcdBuf1)。//顯示第一行,從第三個位置開始 display_string(0,1,LcdBuf2)。//顯示第二行,從第 0 個位置開始 delay(300)。 TMOD=0X15。//初始化定時器工作方式, T1 為定時器,時基為 50MS, T0 為計時器,T0、 T1 均工作于方式 1 TH0=0。 TL0=0。//初始化定時器 0 值 TH1=(6552550000)/256。//初始化定時器 1值 TL1=(6553550000)%256。 TR1=1。//啟動定時器 1 TR0=1。//啟動定時器 0 ET0=1。//定時器 0使能 ET1=1。//定時器 1使能 EA=1。//總中斷允許 WriteCommandLcd(0x01)。//顯示清屏 while(1) { if(flag==1)//1S 標志到 { flag=0。//清 1S標志 x=T0count*65536+TH0*256+TL0。//計算頻 率值 Pa=(20*(float)(x)/K+9)*10。 //計算氣壓值,并將氣壓值乘以 10; for(i=0。i8。i++) //循環(huán)八次 { temp[i]=0。 //降八個顯示緩沖區(qū)清零 { i=0。 while(x/10)//計算每一位數(shù)值緩沖區(qū) { temp[i]=x%10。 x=x/10。 i++。 濱州學院本科畢業(yè)設計(論文) 28 } temp[i]=x。 for(i=0。i6。i++)//循環(huán)六次 { dispbuf[i]=temp[i]。//將數(shù)值緩沖區(qū)中的數(shù)存入顯示緩沖區(qū) } for(i=0。i6。i++) //循環(huán)六次 display_char(i+5,0,dispbuf[5i]+39。039。)。 display_string(12,0,HZ)。 for(i=0。i8。i++)//循環(huán)八次 { temp[i]=0。//將八個顯示緩沖區(qū)清零 } i=0。 while(Pa/10)//計算每一位數(shù)值緩沖區(qū) { temp[i]=Pa%10。 Pa=Pa/10。 i++。 } temp[i]=Pa。 for(i=0。i6。i++)。//循環(huán)六次 } dispbuf[i]=temp[i]。//將數(shù)值緩沖區(qū)中的數(shù)存入顯示緩沖區(qū) } display_string(9,1,PA)。 display_char(6,1,dispbuf[3]+39。039。)。 display_char(7,1,dispbuf[2]+39。039。)。 display_char(8,1,dispbuf[1]+39。039。)。 display_char(9,1,39。.39。)。 display_char(10,1,dispbuf[0]+39。039。)。 Timecount=0。//20 次計數(shù)值清零 T0count=0。//脈沖計數(shù)值清零 TH0=0。//T0 計數(shù)值清零 TL0=0。//T0 計數(shù)值清零 TR0=1。//再次啟動下一次的計數(shù) } } } void t0(void) interrupt 1 using 0 { 濱州學院本科畢業(yè)設計(論文) 29 T0count++。//定時器 0中斷,滿 65536 個脈沖,則 T0count++。 } void t1(void)interrupt 3 using 1 { TH1=50000/256。//重新規(guī)定 TH 計數(shù)初值為 50ms TL1=50000%256。 Timecount++。 if(Timecount==20)//如果滿足 20哥 50MS,即 1S 到 { TR0=0。 //定時器 0停止 Timecount=0。//時間標志 位清零 flag=1。 //1S 標志位置 1 } }
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1