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

正文內(nèi)容

基于單片機的pwm信號輸出系統(tǒng)設(shè)計畢業(yè)論文(編輯修改稿)

2024-08-23 07:05 本頁面
 

【文章內(nèi)容簡介】 復(fù)位、看門狗、電壓監(jiān)視功能。圖 16 MAX706看門狗電路MAX706芯片看門狗工作原理:MAX706的內(nèi)部看門狗定時器定時時間為1.6秒,如果在1.6秒內(nèi),看門狗輸入腳WDI保持為規(guī)定電平(高電平或低電平),看門狗輸出端變?yōu)榈碗娖?二極管D導(dǎo)通,使低電平加到復(fù)位端 ,MAX706產(chǎn)生復(fù)位信號RESET使單片機復(fù)位,直到復(fù)位后看門狗被清零,才變?yōu)楦唠娖?。?dāng)WDI有一個跳變沿(上升沿或下降沿)信號時,看門狗定時器被清零。將WDI端與單片機某I/0輸出端相連,程序只要在小于1.6秒內(nèi)將該I/0端取反一次,使定時器清零而重新計數(shù),不產(chǎn)生超時溢出,程序正常運行當(dāng)程序“跑飛”時,不能執(zhí)行產(chǎn)生跳變指令,到1.6秒時,因超時溢出而變?yōu)榈碗娖?,產(chǎn)生復(fù)位信號使單片機復(fù)位。鍵盤是人與微機系統(tǒng)打交道的主要設(shè)備。鍵盤分編碼鍵盤和非編碼鍵盤。鍵盤上閉合鍵的識別由專用的硬件編碼器實現(xiàn),并產(chǎn)生鍵編碼號或鍵值的稱為編碼鍵盤,;在單片機組成的各種系統(tǒng)中,用的最多的是非編碼鍵盤。也有用到編碼鍵盤的。 在單片機應(yīng)用中鍵盤用的最多的形式是獨立鍵盤及矩陣鍵盤。它們各自有自己的特點,其中獨立鍵盤硬件電路簡單,而且在程序設(shè)計上也不復(fù)雜,一般用在對硬件電路要求不高的簡單電路中。矩陣鍵盤與獨立鍵盤有很大的區(qū)別,首先在硬件電路上它比獨立鍵盤復(fù)雜的多,而且在程序算法上比它要繁瑣,但它在節(jié)省端口資源上有很大的優(yōu)勢,因此它更適合多按鍵電路。本文采用獨立按鍵就能完成設(shè)計的要求,通過檢測有無按鍵按下,按鍵的閉合與否,放應(yīng)在電壓上就是呈現(xiàn)出高電平或低電平,通過檢測高低電平的狀態(tài)就可以確認按鍵的按下與否。主程序中放了一個按鍵的判斷指令,當(dāng)按鍵K1按下的時候,程序就自動的去執(zhí)行按鍵子程序處理。當(dāng)換向開關(guān)撥在上位檔時,按鍵K2按下的時候,占空比就會逐漸的增大。當(dāng)按鍵K3按下的時候,占空比就會逐漸的減小。當(dāng)換向開關(guān)撥在下位檔時,按鍵K2按下的時候,PWM周期就會逐漸的增大。當(dāng)按鍵K3按下的時候,PWM周期就會逐漸的減小。在程序的運行過程中,如果按鍵K1再次按下,則PWM波形停止輸出,按鍵電路圖如下所示:圖 17 按鍵設(shè)置 本文要求能夠輸出PWM波形的占空比和周期,能夠?qū)崿F(xiàn)PWM輸出時間的時鐘計時功能,并能夠顯示出來。本文采用了數(shù)碼管就可以滿足設(shè)計要求,數(shù)碼管擁有結(jié)構(gòu)原理簡單,顯示方便的特點。用六位數(shù)碼管顯示有關(guān)參數(shù),第一二兩位顯示PWM波形的周期,三四兩位顯示PWM波形的占空比,五六兩位顯示PWM波形的輸出時間。數(shù)碼管是一種把多個LED顯示段集成在一起的顯示設(shè)備。通常的數(shù)碼管又分為8段,即8個LED顯示段,這是為工程應(yīng)用方便如設(shè)計的,分別為A、B、C、D、E、F、G、DP,其中DP 是小數(shù)點位段。所謂的八段就是指數(shù)碼管里有八個小LED發(fā)光二極管,通過控制不同的LED的亮滅來顯示出不同的字形。數(shù)碼管又分為共陰極和共陽極兩種類型,其實共陰極就是將八個LED的陰極連在一起,讓其接地,這樣給任何一個LED的另一端高電平,它便能點亮。而共陽極就是將八個LED的陽極連在一起。對于單個數(shù)碼管來說,從它的正面看進去,左下角那個腳為1腳,以逆時針方向依次為1~10腳,左上角那個腳便是10腳了,兩個dp腳是連通的,這兩個都是公共腳。 圖 18 數(shù)碼管內(nèi)部結(jié)構(gòu)圖數(shù)碼管的8段,對應(yīng)一個字節(jié)的8位,a對應(yīng)最低位,dp對應(yīng)最高位。所以如果想讓數(shù)碼管顯示數(shù)字0,那么共陰數(shù)碼管的字符編碼為00111111,即0x3f;共陽數(shù)碼管的字符編碼為11000000,即0xc0??梢钥闯鰞蓚€編碼的各位正好相反。數(shù)碼管顯示方法可分為靜態(tài)顯示和動態(tài)顯示兩種。靜態(tài)顯示就是數(shù)碼管的8段輸入及其公共端電平一直有效。動態(tài)顯示的原理是,各個數(shù)碼管的相同段連接在一起,共同占用8 位段引管線;每位數(shù)碼管的陽極連在一起組成公共端。利用人眼的視覺暫留性,依次給出各個數(shù)碼管公共端加有效信號,在此同時給出該數(shù)碼管加有效的數(shù)據(jù)信號,當(dāng)全段掃描速度大于視覺暫留速度時,顯示就會清晰顯示出來。那么,實際的多位數(shù)碼管,除某一位的公共端會連接在一起,不同位的數(shù)碼管的相同端也會連接在一起。即所有的A段都會連在一起,其它的段也是如此,這是實際最常用的用法。本文要求能夠輸出PWM波形的占空比和周期,能夠?qū)崿F(xiàn)PWM輸出時間的時鐘計時功能,并在數(shù)碼管上顯示出來。按如上要求本文采用了六位數(shù)碼管顯示,第一二兩位顯示PWM波形的周期,三四兩位顯示PWM波形的占空比,五六兩位顯示PWM波形的輸出時間。六位數(shù)碼管連接圖如下所示。圖 19 六位數(shù)碼管連接圖本文通過按鍵K1啟動程序,當(dāng)按鍵K1按下的時候,程序就自動的去執(zhí)行按鍵子程序處。此時單片機自動輸出系統(tǒng)初始PWM值。此時六位數(shù)碼管的第五六兩位開始實現(xiàn)計時功能,一分鐘時間結(jié)束后如果沒有按鍵按下,則PWM波形的周期自動增加。當(dāng)換向開關(guān)撥在上位檔時,按鍵K2按下的時候,占空比就會逐漸的增大。相應(yīng)的。當(dāng)按鍵K3按下的時候,占空比就會逐漸的減小,此時數(shù)碼管的三四兩位隨之變化。當(dāng)換向開關(guān)撥在下位檔時,按鍵K2按下的時候,PWM周期就會逐漸的增大。當(dāng)按鍵K3按下的時候,PWM周期就會逐漸的減小,此時數(shù)碼管的一二兩位數(shù)值隨之變化,在程序運行的過程中,如果按鍵K1再次按下,則PWM波形停止輸出。系統(tǒng)的硬件電路圖如下所示:圖 20 系統(tǒng)硬件電路圖3系統(tǒng)程序設(shè)計圖 21 系統(tǒng)的程序流程框圖本文通過按鍵K1啟動程序,當(dāng)按鍵K1按下的時候,程序就自動的去執(zhí)行按鍵子程序處。此時單片機自動輸出系統(tǒng)初始PWM值。此時六位數(shù)碼管的第五六兩位開始實現(xiàn)計時功能,一分鐘時間結(jié)束后如果沒有按鍵按下,則PWM波形的周期自動增加。當(dāng)換向開關(guān)撥在上位檔時,按鍵K2按下的時候,占空比就會逐漸的增大。相應(yīng)的。當(dāng)按鍵K3按下的時候,占空比就會逐漸的減小,此時數(shù)碼管的三四兩位隨之變化。當(dāng)換向開關(guān)撥在下位檔時,按鍵K2按下的時候,PWM周期就會逐漸的增大。當(dāng)按鍵K3按下的時候,PWM周期就會逐漸的減小,此時數(shù)碼管的一二兩位數(shù)值隨之變化。在程序運行的過程中,如果按鍵K1再次按下,則PWM波形停止輸出。定時器工作時必須給計數(shù)器送計數(shù)器初值,這個值是送到TH和TL中的。他是以加法記數(shù)的,并能從全1到全0時自動產(chǎn)生溢出中斷請求。因此,我們可以把計數(shù)器記滿為零所需的計數(shù)值設(shè)定為C和計數(shù)初值設(shè)定為TC 可得到如下計算通式:TC=M-C式中,M為計數(shù)器模值,該值和計數(shù)器工作方式有關(guān)。在方式0時M為213 ;在方式1時M的值為216;在方式2和3為28 ; 算法公式:T=(M-TC)T計數(shù) 或TC=M-T/T計數(shù)T計數(shù)是單片機時鐘周期TCLK的12倍;TC為定時初值如單片機的主脈沖頻率為TCLK12MHZ ,經(jīng)過12分頻方式0 TMAX=213 1微秒=方式1 TMAX=216 1微秒=顯然1秒鐘已經(jīng)超過了計數(shù)器的最大定時間,所以我們只有采用定時器和軟件相結(jié)合的辦法才能解決這個問題.實現(xiàn)1秒的方法:我們采用在主程序中設(shè)定一個初值為50的軟件計數(shù)器和使T0定時500微秒。這樣每當(dāng)T0到500微秒時CPU就響應(yīng)它的溢出中斷請求,進入他的中斷服務(wù)子程序。下述為單片機的寄存器有關(guān)參數(shù)值的設(shè)定,我們使定時器定時500微秒。void main(void){ P1=0x00。 //初始化p1口,全設(shè)為0; TMOD=0x01。 //time0為定時器,工作方式1; TH0=(65536500)/256。 //預(yù)置計數(shù)初值; TL0=(65536500)%256。 EA=1。 //開總中斷; ET0=1。 //中定時中斷; TR0=1。 //定時器0開始計數(shù);} 在PWM驅(qū)動控制的調(diào)整系統(tǒng)中,按一個固定的頻率來接通和斷開信號,并且根據(jù)需要改變一個周期內(nèi)“接通”和“斷開”時間的長短。通過改變信號電壓的“占空比”來達到改變平均電壓大小的目的,從而來控制電動機的轉(zhuǎn)速。也正因為如此,PWM又被稱為“開關(guān)驅(qū)動裝置”。一般的單片機都可以通過內(nèi)部定時器輸出PWM,輸出PWM為以下過程   設(shè)置提供調(diào)制方波的片上定時器/計數(shù)器的周期    在PWM控制寄存器中設(shè)置接通時間   設(shè)置PWM輸出的方向,這個輸出是一個通用I/O管腳   啟動定時器 使能PWM控制器 單片機通過設(shè)置以下參數(shù)值改變PWM波形。 ?、伲涸O(shè)置PWM定時器周期,該參數(shù)決定PWM波形的頻率。  ?、冢涸O(shè)置PWM定時器比較值,該參數(shù)決定PWM波形的占空比。 本文設(shè)置定時器的中斷時間為500微秒,則每執(zhí)行一次PWM_1程序,時間經(jīng)過500微秒。本文設(shè)置一個控制PWM占空比的變量值p,當(dāng)中斷次數(shù)t小于P時,控制單片機輸出高電平;當(dāng)中斷次數(shù)t大于P時,控制單片機輸出低電平。設(shè)置一個控制PWM周期的變量n,當(dāng)中斷次數(shù)t大于n時,則將t重置為0,相應(yīng)的一個PWM周期結(jié)束。對應(yīng)的PWM波形占空比和周期的設(shè)定如下所示,若p=10,n=20,則輸出PWM波形的周期為10ms,占空比為50%。void time0() interrupt 1 { TH0=(65536500)/256。 TL0=(65536500)%256。if(t=p) //控制PWM輸出高電平的比例 PWM=1。 if(tp) //控制PWM輸出低電平的比例 PWM=0。 t++。 if(t=n) //控制單片機輸出PWM周期 t=0。 } 本文通過按鍵K1啟動程序,當(dāng)按鍵K1按下的時候,程序就自動的去執(zhí)行按鍵子程序處。當(dāng)換向開關(guān)撥在上位檔時,按鍵K2按下的時候,占空比就會逐漸的增大。相應(yīng)的。當(dāng)按鍵K3按下的時候,占空比就會逐漸的減小,此時數(shù)碼管的一二兩位隨之變化。當(dāng)換向開關(guān)撥在下位檔時,按鍵K2按下的時候,PWM周期就會逐漸的增大。當(dāng)按鍵K3按下的時候,PWM周期就會逐漸的減小,此時數(shù)碼管的三四兩位數(shù)值隨之變化。同時對PWM輸出時間進行自動計時,數(shù)碼管的五六兩位顯示出PWM的輸出時間。在程序運行的過程中,如果按鍵K1再次按下,則PWM波形停止輸出。一般的按鍵程序應(yīng)解決以下問題:串鍵保護措施。串鍵是指同時有一個以上的鍵按下,串鍵會引起CPU錯誤響應(yīng)。通常要采取策略令單鍵按下有效,多鍵同時按下無效。處理連擊。連擊是一次按鍵產(chǎn)生多次擊鍵的效果。要有對按鍵釋放的處理,為了消除連擊,使得一次按鍵只產(chǎn)生一次鍵功能的執(zhí)行,否則的話鍵功能的執(zhí)行次數(shù)將不可預(yù)知,主要由按鍵時間決定。消除在按鍵過程中產(chǎn)生的毛刺現(xiàn)象。圖 22 按鍵觸點的機械抖動這里采用最常用的方法,即延時重復(fù)掃描方法,延時法的原理為:因為“毛刺”脈沖一般持續(xù)時間短,約為幾毫秒,而我們按鍵的時間一般遠遠大于這個時間,所以當(dāng)單片機檢測到有按鍵動靜后再延時一段時間(這里我們?nèi)?0毫秒)后再判斷此電平是否保持原狀態(tài),如果是有則為有效按鍵,否則無效。當(dāng)操作完成后要做一個相應(yīng)的按鍵是否斷開的判斷,并進入相應(yīng)的操作。圖 23 按鍵程序流程框圖在這兒選取出按鍵開關(guān)的一段程序如下,在這段程序中換向開關(guān)為上檔位,K2按鍵按下,在進行延遲消除抖動后確定K2鍵按下,從而令PWM輸出占空比增大,并對PWM輸出時間重新計時。void keyscan ( ){ if(P1_0==1) //換向開關(guān)為上檔位{ if(P1_3==1amp。amp。P1_4==0) //按鍵K2按下且K3鍵沒有一起按下{ b++。 //延遲50msif(b=1000){if(P1_3==1amp。amp。P1_4==0) //確認K2鍵按下,消除機械抖動的影響{ p++。 //增大PWM的占空比second=0。 //PWM輸出時間重新計時}else break。}}}}數(shù)碼管是一種把多個LED顯示段集成在一起的顯示設(shè)備。通常的數(shù)碼管又分為8段,分別為A、B、C、D、E、F、G、DP,其中DP 是小數(shù)點位段。所謂的八段就是指數(shù)碼管里有八個小LED發(fā)光二極管,通過控制不同的LED的亮滅來顯示出不同的字形。本文中選用的六位數(shù)碼管為共陰極,數(shù)碼管的字型碼表如下所示:表 2 共陰極數(shù)碼管字型碼對應(yīng)字符表共陰字型碼所顯字符共陰字型碼所顯字符3FH07DH606H107H75BH27FH84FH36FH966H477HA6DH5在數(shù)碼管輸出對應(yīng)的字符串前,首先要對數(shù)碼管的字型碼進行定義uchar code dispcode[ ]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F, 0x77}。本文中的數(shù)碼管的12兩位輸出PWM波形的周期,對應(yīng)的P2端口的12位設(shè)置為0xfe和0xfd,占空比用m值代替。數(shù)碼管的34兩位輸出PWM波形的占空比,對應(yīng)的P2端口設(shè)置為0xfb和oxf7用q值代替。數(shù)碼管的56兩位實現(xiàn)PWM輸出時間的計時功能,將對應(yīng)的P2端口設(shè)置為oxef和oxdf,數(shù)碼管的程序為:void display( ) { P2=0xfe。 //數(shù)碼管第一位輸出 P0=dispcode[m/10]。
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1