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

正文內(nèi)容

基于單片機(jī)的數(shù)字電壓表(編輯修改稿)

2025-02-14 14:51 本頁面
 

【文章內(nèi)容簡介】 顯示閃動,而且亮度不均勻。解決:首先對調(diào)用的延時進(jìn)行逐漸修改,可以解決顯示閃動問題。其次,由于本作品使作動態(tài)掃描方式顯示的數(shù)字,動態(tài)掃描很快,人的肉眼是無法看出,但是調(diào)用的顯示程序時,如果不在反回時屏蔽掉最后的附值,則會出現(xiàn)很亮的現(xiàn)象,所以在顯示的后面加了屏蔽子令,最后解決了此問題。2.當(dāng)用戶按下按鍵的時候,單片機(jī)讀取的數(shù)值跟設(shè)定的數(shù)值不對。解決:重新檢查矩陣鍵盤電路的連接,重新建立一個新的對應(yīng)關(guān)系。(1)在測試中遇到LCD液晶為不顯示時,首先使用試測儀對電路進(jìn)行測試,觀察是否存在漏焊,虛焊,或者元件損壞.經(jīng)過一系列的問題查找后系統(tǒng)最終能正常工作,并完成所有的功能。ChanelVoltageCh1Ch2Ch3Ch4Ch5Ch6Ch7通過這次畢業(yè)設(shè)計,我學(xué)到了不少課本上沒有的知識,也鍛煉了自己的動手能力,將以前學(xué)過的零散的知識串到一起。經(jīng)過我長時間的設(shè)計及調(diào)試,本系統(tǒng)基本能實現(xiàn)單片機(jī)的多路電壓采集系統(tǒng)的所有功能。不足之處有:。我的綜合設(shè)計主要涉及硬件和軟件兩方面的內(nèi)容,通過這些我的硬件和軟件開發(fā)能力都獲得了提高。首先硬件方面,基本了解了電子產(chǎn)品的開發(fā)流程和所要做的工作?;菊莆樟薖rotel99SE原理圖的方法,并設(shè)計了一個單片機(jī)最小系統(tǒng)。通過開發(fā)板的設(shè)計和硬件搭建的過程,使我對51系單片機(jī)的接口有了更深層次的理解,熟悉了一些單片機(jī)常用的外圍電路引腳和連接方法,如LCD液晶,鍵盤等。并且我學(xué)會了分析問題解決問題的能力,加深了對所學(xué)理論知識的理解和運(yùn)用。我的動手能力得到了很大的提高,創(chuàng)新意識得到了鍛煉。 參考文獻(xiàn)[1] ,1[2] [3] ,16[4] 余永權(quán) [5] 宋鳳娟 [6] 楊栓科 [7] 胡大可 [8] 和衛(wèi)星 李長杰 汪少華 [9] ATMEL Data [10] ,. Amplitude digital and Experimental Techniques,1975,114117[11] 李建忠.單片機(jī)原理及應(yīng)用.西安:西安電子科技大學(xué),2002年[12] [M].機(jī)械工業(yè)出版社,2004[13] 周潤景等. Proteus在MCS51amp。ARM7系統(tǒng)中的應(yīng)用百例[M].電子工業(yè)出版社,2006[14] [M].北京航空航天大學(xué)出版社,2006[15] 劉樹中,孫書膺,[J].微計算機(jī)信息,2007附錄系統(tǒng)整體原理圖系統(tǒng)PCB設(shè)計圖系統(tǒng)源程序include includeunsigned char dispbuf[8]={0}。float AD_res[8] = {0}。unsigned int count_time = 0。sbit ST=P3^0。sbit OE=P3^2。sbit EOC=P3^1。sbit ADDA = P1^5。sbit ADDB = P1^6。sbit ADDC = P1^7。sbit key_1 = P1^3。sbit key_2 = P1^4。bit flag = 0。unsigned char getdata。unsigned int ax = 0。void sel_Ax(unsigned char Ax){ if((Ax amp。 0x01) == 0x01) ADDA = 0。 else ADDA = 1。 if((Ax amp。 0x02) == 0x02) ADDB = 0。 else ADDB = 10。 if((Ax amp。 0x04) == 0x04) ADDC = 0。 else ADDC = 1。 }void cov2V(unsigned char res,unsigned char Ax){ float temp。 temp = (double)res/255*。 AD_res[Ax] = temp255。}void divite_num(unsigned char Ax){ dispbuf[0]=(int)AD_res[Ax]%10+48。 dispbuf[1]=39。.39。 dispbuf[2]=(int)(AD_res[Ax]*10)%10+48。 dispbuf[3]=(int)(AD_res[Ax]*100)%10+48。 }void delayms(unsigned int z) //延時函數(shù),z為多少就延時多少毫秒 { unsigned int x,y。 for(x = z。 x 0 。 x) for(y = 110 。 y 0 。 y)。}void dep_key_scan(void) //獨(dú)立鍵盤掃描子函數(shù) { // P1 |= 0x18。 //每次掃描前,先將接鍵盤的引腳口拉高 if(key_1 == 0) //如果檢測到有鍵按下 { delayms(10)。 //延時10ms if(key_1 == 0) //再次判斷是否確實按下按鍵,進(jìn)行消抖操作。 { flag = ~flag。 } } if(key_2 == 0) //同上,判斷第二個按鍵情況 { delayms(10)。 if(key_2 == 0) { ax++。 } } }void main(void){ LCDInit()。 LCDDispString(2,1,CH voltage)。 LCDDispString(9,2,V)。 TMOD=0x01。 TH0=(6553650000)/256。 TL0=(6553650000)%256。 TR0=1。 ET0=1。 EA=1。 while(1) { if(ax==8) ax=0。 sel_Ax(ax)。 //選擇通道 ST=0。 ST=1。 ST=0。 while(EOC==0)。 OE=1。 getdata=P2。 //獲取電壓值 cov2V(getdata,ax)。 divite_num(ax)。 OE=0。 dep_key_scan()。 if(count_time = 40) { if(flag == 0 )//輪換顯示 { LCDDispNum(4,1,ax+1)。 LCDDispString(5,2,dispbuf)。 ax++。 } if(flag == 1) { LCDDispNum(4,1,ax+1)。 LCDDispString(5,2,dispbuf)。 } count_time = 0。 } }}void t0(void) interrupt 1 using 0{ TH0=(6553650000)/256。 TL0=(6553650000)%256。 count_time ++。}includeinclude/********************************************************* Function: void DelayN40us(unsigned int n) Description: 延時函數(shù),延時40us的整數(shù)倍,傳入值n代表延時 時間到n *40us,不能實現(xiàn)準(zhǔn)確延時,只能實現(xiàn)大 概時間的延時,利用的是指令實現(xiàn)延時功能。 Calls: 沒有調(diào)用其它函數(shù) Called By: void LCDWriteCommand(unsigned char dat)。 void LCDWriteData(unsigned char dat)。 Input: unsigned int n 用于延時時間的確定,取值、 為1~65535 Output: 無 Return: 無***********************************************************/void DelayN40us(unsigned int n){ unsigned int i。 unsigned char j。 for(i=n。i0。i) for(j=0。j2。j++)。 }/********************************************************* Function: void LCDInit(void)。 Description: 液晶初始化函數(shù),對LCD1602進(jìn)行初始化操作, 在每一次實用液晶前必須用到的,外部可調(diào)用 函數(shù)。 Calls: void LCDWriteCommand(unsigned char dat)。 DelayN40us(unsigned int n)。 Called By: main()?;蚱渌? Input: 無 Output: 無 Return: 無***********************************************************/void LCDInit(void) { LCDWriteCommand(0x38)。/*設(shè)置8位格式,2行,5x7*/ LCDWriteCommand(0x38)。/*設(shè)置8位格式,2行,5x7*/ LCDWriteCommand(0x38)。/*設(shè)置8位格式,2行,5x7,有的液晶做的不好,寫三遍保險?。。?!*/ LCDWriteCommand(0x0c)。/*整體顯示,關(guān)光標(biāo),不閃爍*/ LCDWriteCommand(0x06)。/*設(shè)定輸入方式,增量不移位*/ LCDWriteCommand(0x01)。/*清除屏幕顯示*/ DelayN40us(100)。 /*清屏延時*/ }/********************************************************* Function: void LCDWriteCommand(unsigned char dat)。 Description: 寫命令函數(shù),對LCD1602內(nèi)部寄存器進(jìn)行操作。 Calls: DelayN40us(unsigned int n)。 Called By: void LCDInit(void)。 void LCDDispChar(unsigned char x,unsigned char y,unsigned char dat)。 void LCDDispNum(unsigned char x,unsigned char y,unsigned char dat)。 Input: unsigned char dat 寫入的命令 Output: 無 Return: 無***********************************************************/void LCDWriteCommand(unsigned char dat){ LCD_DB=dat。 LCD_RS=0。/*選擇寫指令*/ LCD_RW=0。/*寫入指令值*/ LCD_E=1。 /*使能LCD1602*/ LCD_E=0。 DelayN40us(1)。/*寫命令延時*/ }/********************************************************* Function: void LCDWriteData(unsigned char dat)。 Description: 寫數(shù)據(jù)函數(shù),將數(shù)據(jù)寫入LCD1602中。 Calls: DelayN40us(unsigned int n)。 Called By: void LCDInit(void)。 void LCDDispChar(unsigned char x,unsigned char y,unsigned char dat)。 void LCDDispNum(unsigned char x,unsigned char y,unsigned char dat)。 Input: un
點擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1