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

正文內(nèi)容

畢業(yè)設(shè)計-基于單片機的程控放大器設(shè)計-文庫吧資料

2025-06-14 16:02本頁面
  

【正文】 1。 /******************檢測忙標(biāo)志函數(shù)程序 *****************/ bit lcd_busy() //判斷是否忙碌 RS= Low, RW= High, E= High:讀狀態(tài) { bit flag=0。 } 7.檢測 LCD 忙函數(shù) 此函數(shù)主要功能為檢測 LCD1602 液晶忙標(biāo)志函數(shù),當(dāng)要向 LCD1602 內(nèi)傳輸數(shù)據(jù)時,需要先進行忙標(biāo)志檢測。 } } 6.?dāng)?shù)據(jù)轉(zhuǎn)化函數(shù) 此函數(shù)的功能為,將要顯示的數(shù)據(jù)經(jīng)查表后得到的 ASSICII 碼傳送到液晶顯示緩存區(qū)內(nèi),以備顯示函數(shù)調(diào)用直接顯示出正確的字符。pdis[1]+16。 } lcd_moveto(1,0)。pdis[0]+16。 lcd_moveto(0,0)。 lcd_init()。 } 5. LCD1602 液晶輸出函數(shù) 此函數(shù)主要完成將液晶顯示輸出緩沖區(qū)的數(shù)據(jù)輸出到液晶顯示屏上。j0。i0。i0k。 unsigned char i,j。 //輸出到 1602 } 4.延時程序 此程序為液晶顯示函數(shù)和主程序按鍵去抖延時提供毫秒級延時函數(shù)。 lcd_deal(1,6,10)。 //顯示符號“ .” lcd_deal(1,4,(unsigned char)((float)val/256*50)%10)。 //分離個位 lcd_deal(1,2,(unsigned char)((float)val/256*5)%10)。 //分離百位 lcd_deal(0,1,val%100/10)。 /*********************顯示函數(shù)程序 ********************/ void disp(void) { P2=val。 3.顯示子程序 此程序為液晶顯示子程序,首先將要顯示的變量 val 的百位、十位、個位分離。減一鍵類似。顯示屏第一行數(shù)字顯示 val 的大 小,第二行適時顯示轉(zhuǎn)化后的電壓值。 //全局變量 2.主程序 本系統(tǒng)主程初始化并啟動 DAC0832 芯片后,進入按鍵檢測程序。 unsigned char dis[2][16]={{ //液晶初始化數(shù)據(jù) 0x20,0x20,0x20,0x20, //0x20 輸出是空即空格 0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20}, {0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20}}。 unsigned char code shuzi[]={0,1,2,3,4,5,6,7,8,9}。 void lcd_moveto(unsigned char ,unsigned char )。 void _1602(void)。 //以下為函數(shù)聲明 void lcd_delay(unsigned int )。 //定義使能端 sbit lcd_flag=P0^7。 //定義寄存器 sbit lcdrw=P1^6。 //端口定義 sbit dawr=P1^1。 1. 函數(shù)聲明及變量定義 為方便程序的編寫,把部分常用的變量進行偽定義,把實現(xiàn)一定功能的程序編寫 為一個函數(shù),有利于程序的編寫。該程序的主要功能是 : 開機以后負(fù)責(zé)查鍵,即做鍵盤掃描及顯示工作,然后根據(jù)用戶所按的鍵轉(zhuǎn)到相應(yīng)的子程序進行處理,利用程序控制 D/A 電阻網(wǎng)絡(luò)中阻值的變化 ,并利用 LM324N 運算放大器來將其 輸出 轉(zhuǎn)換成電壓形式,以此來輸出放大或者衰減后的正弦波 , 同時在四位數(shù)碼管中顯示出所放大的倍數(shù)。 DAC0832 結(jié)構(gòu)框圖及引腳說明 17 圖 210 DAC0832 的結(jié)構(gòu)框圖和引腳 (2)DAC0832 工作過程 ① CPU 執(zhí)行輸出指令,輸出 8位數(shù)據(jù)給 DAC0832; ② 在 CPU 執(zhí)行輸出指令的同時,使 ILE、 /CS、 /WR1 三個控制信號端都有效, 8 位數(shù)據(jù)鎖存在 8位輸入寄存器中; ③ 當(dāng) /WR /XFER 兩個控制信號端都有效時, 8位數(shù)據(jù)再次被鎖存到 8位 DAC寄存器,這時 8位 D/A 轉(zhuǎn)換器開始工作, 8位數(shù)據(jù)轉(zhuǎn)換為相對應(yīng)的模擬電流,從 Iout1和 Iout2 輸出。 DAC0832 由 8 位輸入鎖存器 、 8 位 DAC 寄存器、 8 位 D/A 轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成。電路如下: 16 圖 29 D/A轉(zhuǎn)換電路采用 DAC0832 來實現(xiàn),首先來介紹下 DAC0832 芯片。 系統(tǒng)電路連接如圖 28所示。同時,模擬開關(guān)的電阻很小,這樣可以減小放大倍數(shù)的誤差。 其內(nèi)部結(jié)構(gòu)如圖 27 所示。 14 EA/VP31X119X218RESET9RD17WR16INT012INT113T014T1151234567839383736353433322122232425262728PSEN29ALE/P30TXD11RXD10U1AT89C5130pFC130pFC212MHz10μFC310kΩR1+5VS1RST+5VD0D1D2D3D4D5D6D7CSDAWR+5VVSS1VDD2VEE3RS4RW5E6D07D18D29D310D411D512D613D7141kΩR0RSRWEERSRW1 2 3 4 5 6 7 816 15 14 13 12 11 10 91kΩR2液晶 1602 圖 26 單片機最小系統(tǒng)和液晶顯示電路 形放大模塊 該部分主要由一片 DAC0832 和一塊 LM324N 運算放大器組成。 表 24 DM162 的內(nèi)部顯示地址 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 40H 41H 42H 43H 44H 45H 46H 47H 48H 49H 4AH 4BH 4CH 4DH 4EH 4FH 比如第二行第一個字符的地址是 40H,那么是否直接寫入 40H 就可以將光標(biāo)定位在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位 D7恒 定 為 高 電 平 1 所 以 實 際 寫 入 的 數(shù) 據(jù) 應(yīng) 該 是 01000000B( 40H)+10000000B(80H)=11000000B(C0H)。 13 指令 10:寫數(shù)據(jù) 指令 11:讀數(shù)據(jù) 表 23 1602 液晶模塊的控制指令 液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。 指令 5:光標(biāo)或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光 R/L: 1向右移動; 0向左移動。高電平表示有效,低電平則無效 指令 4:顯示開關(guān)控制。 它的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)的。 K [ k { ォ サ ヒ ロ x 萬 1100 (5) , L \ l | セ シ フ ヮ ≌ 177。 6 F V f v テ カ ニ ョ Ρ ∑ 12 0111 (8) 39。當(dāng) RS和 RW共同為低電平時可以寫入指令或者顯示地址,當(dāng) RS為低 電平 RW 為高電平時可以讀忙信號,當(dāng) RS 為高電平 RW 為低電平時可以寫入數(shù)據(jù) 6 E 使能端,當(dāng) E 端由高電平跳變成低電平時,液晶模塊執(zhí)行命令 7~ 14 D0~ D7 8位雙向數(shù)據(jù)線 15~ 16 空腳 1602 液晶模塊內(nèi)部的字符發(fā)生存儲器( CGROM)已經(jīng)存儲了 160 個不同的點陣字符圖形,如表 ,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母 “A” 的代碼是 01000001B( 41H),顯示時模塊把地址 41H 中的點陣字符圖形顯示出來 ,我們就能看到字母 “A” 。 LCD1602 液晶簡介及系統(tǒng)的硬件原理圖 1602 采用標(biāo)準(zhǔn)的 16 腳接口, 各引腳功能圖如表 21 所示。 10 圖 23 帶通濾波器 圖 24 上限截至頻率 圖 25 下限截至頻率 本系統(tǒng)采用 AT89C51 單片機最小控制系統(tǒng),顯示部分采用 LCD1602 液晶顯示。其中 U1A 部分是低通濾波器,根據(jù)公式,可以得到其上限截至頻率為 30KHz, U1B 部 分是高通濾波器,根據(jù)公式,可以得到其下限截至頻率為 19Hz,由于 LM324N 帶寬增益積的限制,經(jīng)過實際測量,其上限截至頻率為 20KHz,完全可以實現(xiàn)通帶為 20Hz~20KHz 的基本要求。系統(tǒng)框圖如圖 23 所示。 XTAL2:來自反向振蕩器的輸出。在FLASH 編程期間,此引腳也用于施加 12V 編程電源( VPP)。 /EA/VPP:當(dāng) /EA 保持低電平時,則在此期間外部程序存儲器( 0000HFFFFH),不管是否有內(nèi)部程序存儲器。在由外部程序存儲器取指期間,每個機器周期兩次 /PSEN 有效。如果微處理器在外部執(zhí)行狀態(tài)ALE 禁止,置位無效。此時, ALE 只有在執(zhí)行 MOVX, MOVC 指令是ALE 才起作用。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個 ALE 脈沖。在平時, ALE 端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。 ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。 9 RST:復(fù)位輸入。 : WR:外部數(shù)據(jù)存儲器的寫入信號。 : T0,計時計數(shù)器 0輸入。 : INT0,外部中斷 0輸入。 其引腳分配如下: : RXD,串行通信輸入。如果是使用 8052 或是 8032 的話, 又當(dāng)做定時器 2的外部脈沖輸入腳,而 可以有 T2EX 功能,可以做外部中斷輸入的觸發(fā)腳位。 P2除了當(dāng)做一般 I/O 端口使用外,若是在 AT89S52 擴充外接程序存儲器 或數(shù)據(jù)存儲器時,也提供地址總線的高字節(jié) A8~ A15,這個時候 P2便不能當(dāng)做 I/O 來使用了。設(shè)計者必須外加一鎖存器將端口 0送出的地址栓鎖住成為 A0~ A7,再配合端口 2所送出的 A8~ A15合成一完整的 16位地址總線,而定址到 64K 的外部存儲器空間。其他三個 I/O 端口( P P P3)則不具有此電路組態(tài),而是內(nèi)部有一提升電路, P0 在當(dāng)做 I/O 用時可以推動 8 個LS的 TTL 負(fù)載。 AT89S52 可以利用 PSEN 及 RD 引腳分別啟用存在外部的 RAM 與 EPROM,使得數(shù)據(jù)存儲器與程序存儲器可以合并在一起而共用 64K 的定址范圍。此外在燒錄 8751 程序代碼時,此引腳會被當(dāng)成程序規(guī)劃的特殊功能來使用。AT89S52 可以利用這支引腳來觸發(fā)外部的 8 位鎖存器(如 74LS373),將端口 0 的地址總線( A0~ A7)鎖進鎖存器中,因為 AT89S52 是以多工的方式送出地址及數(shù)據(jù)。此外,在將程序代碼燒錄至 8751 內(nèi)部 EPROM 時,可以利用此引腳來輸入 21V 的燒錄高壓( Vpp)。因此在 8031 及 8032 中, EA 引腳必須接低電平,因為其內(nèi)部無程序存儲器空間。 RESET: AT89S52 的重置引腳,高電平動作,當(dāng)要對晶片重置時,只要對此引腳電平提升至高電平并保持兩個機器周期以上的時間, AT89S51 便能完成系統(tǒng)重置的各項動作,使得內(nèi)部特殊功能寄存器之內(nèi)容均被設(shè)成已知狀態(tài),并且至地址 0000H 處開始讀入程序代碼而執(zhí)行程序。 XTAL1: 單芯片系統(tǒng)時鐘的反相放大器輸入端 。 (一)、 AT89S52 主要功能列舉如下: 擁有靈巧的 8位 CPU 和在系統(tǒng) 可編程 Flash 晶片內(nèi)部具時鐘振蕩器(
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1