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

正文內容

單片機實現(xiàn)數字式穩(wěn)壓電源(編輯修改稿)

2025-07-23 12:41 本頁面
 

【文章內容簡介】            ()U2=Ur   ()Uo=(1/C1*R1)∫(UrU1)dt+Ur   () Uo=(UrU1)*t/(C1*R1)+Ur   (),其中用電位器R3和微調電阻Rf作為校準電壓值硬件補償;用達林管TIP127作為調整管,由于其工作時發(fā)熱量較大,須外加散熱裝置。  輸出電壓控制單元電路第4 章 數字式可調穩(wěn)壓電源軟件設計本系統(tǒng)軟件設計要實現(xiàn)的功能是:鍵盤對單片機輸入數據,單片機對獲得的數據進行處理,處理后的數據送4位共陽數碼管,再送到8位數模轉換芯片(DAC0832),以實現(xiàn)數字量對電壓的控制。系統(tǒng)中的主程序主要完成鍵盤掃描、判斷、處理和數碼顯示。而電壓值輸出顯示和輸出音響提示在中斷處理程序中完成。, 程序一開始對硬件進行初始化,例如系統(tǒng)對AT89S52單片機端口進行定義;對定時器0,定時器1置初值及開中斷等。然后進入鍵盤判斷處理程序,首先通過鍵盤掃描判斷是否有鍵盤按下:按下,進入鍵盤服務程序,否則繼續(xù)讀鍵盤狀態(tài)。初始化硬件有鍵按下?鍵盤服務程序主程序流程:是否 系統(tǒng)主程序流程圖   44矩陣鍵盤功能表,軟件設計部分中鍵盤實現(xiàn)的功能如下:  按“設定”鍵開始設定電壓,超過0~24V視為無效操作,十位、個位、十分位循環(huán)輸入,設定完十分位后LED數碼開始閃動,按“確認”鍵確認,音響提示,電壓輸出。在正常情況下,按“儲存”鍵,當前數碼開始閃動,提示準備存入當前數值到EEPROM中保存,再按數字鍵,音響提示,表示存到該鍵中。在正常情況下,按數字鍵,讀取該鍵存儲數值,閃動,按“確認”鍵確認,音響提示,電壓輸出。按“-”,按“+”。因此,鍵盤服務程序根據鍵盤的不同輸入,通過鍵值散轉方式轉入相應的處理程序,執(zhí)行。例如:  鍵盤服務程序若用戶按下S4(復位鍵),鍵盤服務程序通過鍵值散轉方式進入看門狗復位程序,輸出為“0”,返回初始狀態(tài),等待下一次按鍵。去抖動,確有按鍵按下判斷鍵值讀EEPROM送DA寫EEPROM設定數值置位設定標志位,清顯示清所有標志位開音響,送數值至DA加減數值送DA置位存儲標志位死循環(huán),看門狗復位是數字鍵嗎?是設定鍵嗎?是確認鍵嗎?是-+嗎?有鍵按下嗎?是存儲鍵嗎?是復位鍵嗎?鍵盤服務程序:注:所有未加標注的判斷框均是下行為“否”,側向為“是”是否是存儲鍵按了?設定鍵按了? 系統(tǒng)程序介紹C語言在單片機的應用中,由于其邏輯性強,可讀性好,比匯編語言靈活,簡練,目前越來越多的人從普遍使用匯編語言到逐漸使用C語言開發(fā),市場上幾種常見的單片機均有其C 語言開發(fā)環(huán)境。因此,在本系統(tǒng)中,考慮到匯編語言的這些缺點,采用了C語言作為軟件設計語言。在本文前面各章節(jié)介紹了系統(tǒng)原理圖及硬件設計的基礎上,進行軟件部分的設計。系統(tǒng)編程分為主程序和鍵盤處理程序兩個部分,每個部分由若干模塊組成,下面就如何通過C語言編程實現(xiàn)數控調壓作簡要的說明。 輸入、控制、轉換顯示模塊的編程。系統(tǒng)采用44矩陣鍵盤作為輸入模塊,因此在編程中必須通過掃描鍵盤的行和列,讀出其值,然后通過AT89S52單片機控制鍵盤值散轉,給各個鍵盤編寫相應的處理程序實現(xiàn)其相應的功能,在此過程中用AT89S52單片機/定時器TR0作為中斷處理顯示,用定時器TR1作為中斷處理提醒,開音響。(1)初始化硬件。例如對P3口作為鍵盤輸入口的定義:define key_point P3;對標志位的定義:static bit select=0,即在開始還沒按下“設定鍵”時,標志位select為“0”;在主程序中,初始化部分程序如下:void main(void){  speaker=1。              //蜂鳴器不響   WDTRST=0x1E。   WDTRST=0xE1。             //初始化看門狗   TMOD=0x11。             //初始化定時器 TH0=(655365000)/256?!             ?//T0置初值   TL0=(655365000)%256。   TH1=(6553650000)/256?!             ?/T1置初值   TL1=(6553650000)%256。   EA=1。                      //開總中斷   ET0=1。                     //開T0中斷   ET1=1?!                    ?/開T1中斷   TR0=1?!                    ?/啟動T0TR1=0。 //關閉T1   DA=0。            //初始化DA轉化當中用到了看門狗定時器(WDT)、定時器0和定時器1。為了激活WDT,用戶必須向WDTRST寄存器(地址為0A6H的SFR)依次寫入01EH和0E1H。當WDT激活后,用戶必須一定時間內周期性地向WDTRST寫入01EH和0E1H喂狗來避免WDT溢出。因為當計數達到8191(1FFFH)時,13 位計數器將會溢出,這將會復位器件。定時器0計時滿5毫秒時產生定時中斷,進入中斷處理顯示子程序;同理定時器1計時滿50毫秒產生定時中斷,進入相應的中斷處理程序。定時器0中斷處理程序如下:      void disp(void) interrupt 1{ TH0=(655365000)/256?!         ?/對T0重置初值         TL0=(655365000)%256。         dispbuf[0]=num1。         //數碼值送顯示緩沖區(qū)    dispbuf[1]=num2。         dispbuf[2]=num3。         ledwork()?!               ?/顯示函數} 顯然,進入中斷處理程序時,須對定時器0重置初值,然后數碼值送輸出顯示緩沖區(qū),最后通過顯示程序部分將數碼轉換成數碼代碼輸出顯示。(2)單片機執(zhí)行控制功能,判斷鍵盤值,轉入鍵盤處理程序。其中判斷有鍵按下后須緊跟著延時程序,以去掉鍵盤的機械抖動,鍵盤延時時間約10毫秒:void delay10ms(void)                   //延時程序{ unsigned char i,j。  for(i=10。i0。i)    for(j=248。j0。j)。}  具體的鍵盤判斷處理程序在這里就不做一一介紹了,詳情可以參考附錄程序清單。(3)輸出顯示并將數字量送DA。數碼的輸出顯示部分程序主要圍繞著十位、個位、十分位何時選通,送數字代碼顯示來進行編程(程序可參考附錄程序清單)。將數字量送DA顯示是通過按“確定鍵來最終實現(xiàn)的,其“確定”部分程序如下:    case 0x7b: { select=0。    //確定鍵    read_bit=0。    if(num13)    if(num1!=2||num25)    {temp=num1。     num=temp*100。     temp=num2。     num+=temp*10。     temp=num3。     num+=temp。    temp=num。    DA=buchang(temp)。    //整體數碼值送DA    speaker=0。      fengmin=1。}       cancel()。}break。 其中DA=buchang(temp)指令即數字量送DA。 存儲模塊編程。在本系統(tǒng)中實現(xiàn)一個存儲電壓值,掉電永久保存的功能,需要一個外部存儲芯片(24C01),因此在編程中運用到了I2C總線技術。I2C總線是一種用于IC(Integrated Circuit)器件之間連接的二進制總線。它通過SDA(串行數據線)及SCL(串行時鐘線)在連至總線的器件之間傳送信息,并根據地址識別每個器件。,SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數據;SCL為高電平時,SDA由低電平向高電平跳變,結束傳送數據。SDA 線上的數據必須在時鐘的高電平周期保持穩(wěn)定數據線的高或低電平狀態(tài)(數據有效),只有在SCL 線的時鐘信號是低電平時才能改變[14],。系統(tǒng)先通過發(fā)送開始信號開始數據轉送,然后傳送寫從地址信號,最后從外部存儲器地址讀數據到單片機或寫數據到外部存儲器。系統(tǒng)對SCL時鐘的編程如下: void clock() //I2C總線時鐘{unsigned char i=0。 scl=1。 somenop()。 while ((sda==1)amp。amp。(i255))i++。 scl=0。 somenop()。}其中somenop()函數為延時函數,其余部分的程序可以參照附錄程序清單?!         ? 開始/結束定時信號  數據線的變化示意圖軟件補償編程。系統(tǒng)如果通過ADC0809進行模數轉換,間接用單片機實時對輸出電壓進行采樣,然后進行數據處理及顯示,可以讓實際輸出電壓值與輸出顯示值一致。由于系統(tǒng)中沒有用到ADC0809模數轉換,并且DAC0832的線性穩(wěn)定度不夠好,因此系統(tǒng)實際輸出電壓值與輸出顯示值存在誤差,必須用軟件補償的辦法來消除誤差。為此通過測試多組實際輸出電壓值與輸出顯示值對比,然后進行軟件補償。程序中軟件補償函數為:unsigned char buchang(unsigned char caozuoshu),當按下“確認”鍵、“+”鍵、“-”鍵時,程序通過調用補償函數來實現(xiàn)對輸出電壓值的補償,從而消除誤差,具體補償程序可參考附錄程序清單。結 論此次畢業(yè)設計,從一開始接到任務書到最后完成整個系統(tǒng)的設計,總體上按要求完成了畢業(yè)設計的工作。盡管設計的過程是十分繁瑣、枯燥的,但當領悟到一個個知識點,將問題一一解決時,有無比的成就感,讓自己更加有信心堅持下去。在這方面,我認識到要想做成一件事是不容易的,當中必定有很多的阻力,但是一定要有恒心,細心地認真地找出問題的所在,再一點一點去解決它,這樣,到達成功的彼岸也就僅僅是時間的問題了。這次設計的題目是單片機實現(xiàn)數字式可調穩(wěn)壓電源,在參考了很多書籍的情況下,嘗試增加了一些功能,盡管沒有達到所期望的最完善的目的,但也有了一定的突破。數字式可調穩(wěn)壓電源所牽涉的范圍可以是很大的,它不僅僅具備準確的電壓輸出、顯示功能,我們還可以嘗試更多的擴展。例如:這次設計中,數字式可調穩(wěn)壓電源不僅能夠輸出和顯示0V-24V電壓范圍,而且還能夠存儲電壓值,實現(xiàn)掉電永久保存功能及輸出音響提示功能,這只是其中的一個例子。只要我們勤于思考,刻苦鉆研,就會得到更多的收獲與創(chuàng)新。本系統(tǒng)的不足之處就是不能對輸出電壓進行實時采樣,為了能夠使系統(tǒng)具備檢測實際輸出電壓值的大小,系統(tǒng)可通過加入模數轉換模塊(ADC0809芯片)進行
點擊復制文檔內容
醫(yī)療健康相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1