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

正文內(nèi)容

課程設(shè)計-基于at89c51單片機(jī)的簡易函數(shù)發(fā)生器設(shè)計-文庫吧

2025-05-18 08:05 本頁面


【正文】 口和 B口可以工作在方式 1,此時 C 口的某些線被規(guī)定為 A口或 B 口與外圍設(shè)備的聯(lián)絡(luò)信號,余下的線只有基本的 I/O 功能,即只工作在方式 0. 方式 2: 雙向 I/O 方式,只有 A 口可以工作在這種方式,該 I/O 線即可輸入又可輸出,此時 C 口有 5 條線被規(guī)定為 A 口和外圍設(shè)備的雙向聯(lián)絡(luò)線, C 口剩下的三條線可作為 B口方式 1 的聯(lián)絡(luò)線,也可以和 B 口一起方式0 的 I/O 線。 8255A 是一個并行輸入、輸出器件,具有 24個可編程設(shè)置的 I/O 口,包括 3 組 8位的 I/O 為 PA 口、 PB口、 PC口,又可分為 2組 12位的 I/O 口:A 組包括 A 口及 C 口高 4 位, B 組包括 B 口及 C 組的低 4 位。 武漢理工大學(xué) 單片機(jī)課程設(shè)計說明書 11 A 口可以設(shè)置為方式 0、方式 方式 2, B 口與 C 口只能設(shè)置為方式 0或方式 1. 其他元器件說明 晶振電路使用 12MHZ 的晶體振蕩器, 30PF 的電容。復(fù)位電路采用 10UF 的電容, 10K 的電阻。 波形指示區(qū)采用四個綠色 LED 燈。頻率 顯示器電路中除 3個 7段 數(shù)碼管 外還使用了 3 個三極管 。 波形信號的放大電路上采用了兩個放大器。 主要元器件列表: 原件名稱 備注 元件名稱 備注 單片機(jī) AT89C51 LED 燈 數(shù)模轉(zhuǎn)換器 DAC0832 運(yùn)算放大器 鎖存器 74LS373 三極管 NPN 并行接口芯片 8255A 晶振 12MH 示波器 7 段數(shù)碼管 共陰極 第四章 硬件設(shè)計 工作原理 本系統(tǒng)由單片機(jī) AT89C51對不同的模塊進(jìn)行統(tǒng)一調(diào)配控制以達(dá)到設(shè)計目的。首先是輸入模塊,為節(jié)省引腳,此處設(shè)計為44矩陣鍵盤。軟件選用反轉(zhuǎn)法掃描。此功能由 P1口控制。數(shù)據(jù)讀入后,經(jīng)單片機(jī)程序分析,分別控制三個輸出部分: ○ 1 .四個 LED 燈,通過其亮滅顯示當(dāng)前輸出的波形類型,此功能由 、 、 四個引腳控制; ○ 2.三個共陰極數(shù)碼顯示管,用以顯示當(dāng)前波形的頻率,此功能由 P0 口輸出數(shù)據(jù), 8255A 擴(kuò)展接口實現(xiàn); ○ 3.示波器。 P0口分時復(fù)用,控制數(shù)碼管顯示后對數(shù)模轉(zhuǎn)換器 DAC0832 輸出波形數(shù)據(jù),信號經(jīng)放大電路放大,然后送至示波器顯示。 武漢理工大學(xué) 單片機(jī)課程設(shè)計說明書 12 外圍原件此處省略不講,軟件部分見下章。 單片機(jī)及外圍電路設(shè)計 如圖所示,單片機(jī) P 口采用總線的連接形式。晶振頻率為 12MHz,電容 CC2 均為 10uF。復(fù)位電路中,電容 C3 的作用是在按鈕按下時儲存電能,電阻 R11用作在按鈕斷開時保護(hù)電路。 口接高電平和按鈕,用來實現(xiàn)外部中斷的下降沿觸發(fā)。 輸入模塊設(shè)計 武漢理工大學(xué) 單片機(jī)課程設(shè)計說明書 13 為節(jié)省接口,鍵盤設(shè)計為 4*4矩陣鍵盤,通過 P1口的高四位和低四位分別對鍵盤的行和列進(jìn)行掃描,從而檢測出按下的鍵。具體工作情況詳見軟件部分。 接口擴(kuò)展 為了解決接口不足的問題,本設(shè)計中使用 8255A 芯片對 P0口進(jìn)行擴(kuò)展,它采用工作方式 0即最基本的輸入輸出方式。用鎖存器進(jìn)行地址鎖存,將 P0 口輸出的數(shù)據(jù)依次存放在 A、 B、 C口,控制所接的三個數(shù)碼管持續(xù)顯示。 顯示模塊設(shè)計 頻率顯示 武漢理工大學(xué) 單片機(jī)課程設(shè)計說明書 14 此處采用 3 個共陰極的數(shù)碼管顯示波形頻率,顯示方式為靜態(tài)顯示。提供數(shù)據(jù)的 8255A 芯片具有鎖存功能,故數(shù)據(jù)只需輸入一次便可持續(xù)顯示。次設(shè)計結(jié)構(gòu)簡單又能實現(xiàn)所要求的功能,同時也是設(shè)計要求外的創(chuàng)新點。 波形選擇 此處為設(shè)計要求外的第二處創(chuàng)新點,為了告訴操作者示波器當(dāng) 前顯示波的波形,我采用了四個 LED 燈對相應(yīng)的波形進(jìn)行指示,通過觀察燈的亮滅就能加以區(qū)分。圖示狀態(tài)為:三角波正在顯示 。 波形顯示 此處是整個系統(tǒng)的第二核心,當(dāng) P0 口對頻率顯示信號輸出完畢后,數(shù)模轉(zhuǎn)武漢理工大學(xué) 單片機(jī)課程設(shè)計說明書 15 換器開關(guān)打開, P0 開始為其輸送波形信號。輸入的信號經(jīng)功率放大器放大后送至示波器顯示 系統(tǒng)硬件設(shè)計圖 武漢理工大學(xué) 單片機(jī)課程設(shè)計說明書 16 第五章 軟件設(shè)計 程序分析 本設(shè)計采用簡單方便的 C 語言編寫程序。為了使編程時思路清晰,采用模塊化的編寫方式,即分功能編寫子程序,再由主函數(shù)根據(jù)需要依次調(diào)用。按照思路,程序進(jìn)入主函數(shù)后需先對要用到的外部中斷和定時計數(shù)器進(jìn)行初始化,然后進(jìn)入波形輸出的無限循環(huán)中,在此過程中由中斷系統(tǒng)對輸出進(jìn)行控制,首先程序控制 P1 口掃描鍵盤,重新輸入波形和頻率的信息,輸入的數(shù)據(jù)經(jīng)程序處理后輸出數(shù)據(jù)送至 LED 波形指示燈和數(shù)碼管頻率顯示器對輸入信息進(jìn)行顯示。之后P0 口為數(shù)模轉(zhuǎn)換器輸送波形數(shù)據(jù),使示波器顯示波形。 程序流程圖 開始 初始化 調(diào)用 顯示 程序 顯示波形、頻率 中斷 掃描鍵盤 程序分析 LED 指示燈顯示 數(shù)碼管頻率顯示 周期計算,定時計數(shù)器賦初值 武漢理工大學(xué) 單片機(jī)課程設(shè)計說明書 17 程序設(shè)計 主函數(shù) void main() { chushihua()。//調(diào)用初始化程序,對中斷和定時計數(shù)器初始化 while(1) { {switch(old) { case 33:fang()。 break。//檢查按鍵的返回值并選擇輸出波形 case 44:tran()。 break。 case 55:jvchi()。break。 case 66:sin()。 break。 } } } } 初始化程序: void chushihua() {sled=0x80。//8255A 控制寄存器初始化 IT0=1。//外部中斷 0下降沿觸發(fā) EX0=1。//外部中斷 0中斷允許 EA=1。//CPU 中斷允許打開 PX0=1。//外部中斷 0優(yōu)先 TMOD=0x20。// TR1=1。// } 延時程序: 因為 C語言編寫的程序必須經(jīng)過編譯才能應(yīng)用于單片機(jī),而不同的語句編譯武漢理工大學(xué) 單片機(jī)課程設(shè)計說明書 18 后指令的周期不確定,故延時函數(shù)不宜使用簡單的 for 語句或 while 語句。本處使用單片機(jī)的定時計數(shù)器計時,在很大程度上提高了延時時間的精準(zhǔn)性。 void delay()//延時 { while(!TF1)。 TF1=0。 } void delayms(uint j)// {uchar mm。 while(j) {for(mm=0。mm216。mm++)。} } 顯示程序: 此處的顯示程序為數(shù)碼管頻率顯示提供數(shù)據(jù)。為了便于編程,顯示程序由顯示子程序和總顯示程序兩部分組成。顯示子程序設(shè)置了三個不同的參數(shù),通過總程序的調(diào)用及賦值,在數(shù)組中調(diào)用不用的數(shù)字對應(yīng)的代碼進(jìn)行顯示。 void xshz(uchar h,uchar m,uchar p)//顯示子程序 {sled1=smg[h]。 sled2=smg[m]。 sled3=smg[p]。 } void xsh()//總顯示 { if(k==3) xshz(a[0],a[1],a[2])。 if(k==2) xshz(12,a[0],a[1])。 if(k==1) xshz(12,12,a[0])。 if(k==0) xshz(10,0,11)。 } 武漢理工大學(xué) 單片機(jī)課程設(shè)計說明書 19 鍵盤輸入程序: 本處使用鍵盤的掃描方法為反轉(zhuǎn)法,其原理是給端口賦值兩次,通過檢測兩次的結(jié)果而得到按鍵的信息。例如: P1口賦值 0x0f,即 00001111,假設(shè)第一個鍵按下了,則這時 P1口的實際值為 00001110; P1口再賦值 0xf0,即 11110000,如果第一個鍵按下了,則這時 P1口的實際值為 11100000; P1口的實際值相加得 11101110,即 0xee。 由此我們便得到了按下第一個鍵時所對應(yīng)的數(shù)值 0xee,以此類推可得出其他15個按鍵對應(yīng)的數(shù)值,有了這種對應(yīng)關(guān)系,矩陣鍵盤編程問題也就解決了,也就是程序的算法已經(jīng)有了。 uchar input() //輸入 { uchar hang,lie,rr。 rr=0。 P1=0xf0。 if((P1amp。0xf0)!=0xf0)//軟件消抖 {delayms(20)。 if((P1amp。0xf0)!=0xf0) { hang=P1amp。0xf0。 P1=0x0f。 lie=P1amp。0x0f。 rr=hang+lie。 } } if(rr==table[0]) return(33)。//對不同掃描結(jié)果返回不同的值 else if(rr==table[1]) return(44)。 武漢理工大學(xué) 單片機(jī)課程設(shè)計說明書 20 else if(rr==table[4]) return(1)。 else if(rr==table[5]) return(2)。 else if(rr==table[2]) return(55)。 else if(rr==table[3]) return(66)。 else if(rr==table[6]) return(3)。 else if(rr==table[7]) return(0)。 else if(rr==table[8]) return(4)。 else if(rr==table[9]) return(5)。 else if(rr==table[10]) return(6)。 else if(rr==table[11]) return(11)。 else if(rr==table[12]) return(7)。 else if(rr==table[13]) return(8)。 else if(rr==table[14]) return(9)。 else if(rr==table[15]) return(22)。 else return(12)。 } 波形函數(shù) : 方波 void fang() { uchar i。 DAC0832=0。 for(i=0。i128。i++) delay()。 DAC0832=0xff。 for(i=0。i128。i++) delay()。 } 武漢理工大學(xué) 單片機(jī)課程設(shè)計說明書 21 鋸齒波 void jvchi() { unsigned char x。 for(x=0。x255。x++) {DAC0832=x。 delay()。} } 三角波
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1