基于簡單CPULCD的錄音顯示回放_第1頁
基于簡單CPULCD的錄音顯示回放_第2頁
基于簡單CPULCD的錄音顯示回放_第3頁
基于簡單CPULCD的錄音顯示回放_第4頁
基于簡單CPULCD的錄音顯示回放_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、南京郵電大學實驗題目:基于簡單cpu lcd的錄音顯示回放設(shè)計學院: 專業(yè): 學號: 姓名: 指導(dǎo)老師: 林建中 目錄第一部分 實驗?zāi)康暮鸵?第二部分 實驗工具及實驗器件31.proteus以及keil軟件的介紹32.51單片機at89c5143.lcd/max721954.三態(tài)輸出的8d透明鎖存器74hc37365. dac083266. 74ls3737第三部分 實驗原理圖及程序代碼81.硬件部分電路設(shè)計82.軟件部分設(shè)計10第四部分 仿真測試26第五部分 實驗小結(jié)和體會28第一部分 實驗?zāi)康暮鸵蟊菊n程設(shè)計是在理論課程的基礎(chǔ)上,重點培養(yǎng)學生的動手能力,通過理論計算、實際編程、調(diào)試、測試

2、、分析查找故障,解決在實際設(shè)計中的問題,使設(shè)計好的電路能正常工作,為下一部結(jié)合實際的硬件系統(tǒng)設(shè)計準備條件。1、 錄音機類 實驗中需要錄取的信源,可以用單片機或者信號發(fā)生器產(chǎn)生?;疽螅? 把需要錄取的信號用ad轉(zhuǎn)換器采樣并存儲在sram中。2 在一組數(shù)碼管或lcd上顯示采樣速率和錄音時間(秒),以及信號相關(guān)參數(shù)。3 用d/a轉(zhuǎn)換器回放錄音信號,通過喇叭過模擬示波器顯示。4 在一組數(shù)碼管或lcd上顯示回放的播放時間或信號強度。發(fā)揮部分:1 用功能鍵可分別設(shè)定錄音和放音的采樣速率。2 多段錄音管理。3 任意組合播放。根據(jù)提供的參考工程,在proteus平臺自己重新畫出實驗所需要的電氣原理圖,并在

3、此基礎(chǔ)上編寫相對應(yīng)的程序,實現(xiàn)其功能,學習proteus軟件的使用,其中包括原理圖器件的選取、原理圖的電氣連接、程序的編寫編譯以及運行,并能查出其錯誤等。第二部分 實驗工具及實驗器件1.proteus以及keil軟件的介紹proteus是英國labcenter公司開發(fā)的電路及單片機系統(tǒng)設(shè)計與仿真軟件。proteus可以實現(xiàn)數(shù)字電路、模擬電路及微控制器系統(tǒng)與外設(shè)的混合電路系統(tǒng)的電路仿真、軟件仿真、系統(tǒng)協(xié)同仿真和pcb設(shè)計等功能。proteus是目前唯一能對各種處理器進行實時仿真、調(diào)試與測試的eda工具,真正實現(xiàn)了在沒有目標原型時就可對系統(tǒng)進行調(diào)試、測試和驗證。proteus軟件大大提高了企業(yè)的產(chǎn)

4、品開發(fā)效率,降低了開發(fā)風險。由于proteus軟件逼真、真實的協(xié)同仿真功能,它也特別適合于作為配合單片機課堂教學和實驗的學習工具。proteus軟件提供了30多個元器件庫、7000余種元器件。元器件涉及電阻、電容、二極管、三極管、變壓器、繼電器、各種放大器、各種激勵器、各種微控制器、各種門電路和各種終端等。proteus軟件還提供有交直流電壓表、邏輯分析儀、示波器、定時/計數(shù)器和信號發(fā)生器等測試信號工具用于電路測試。keil c51是美國keil software公司出品的51系列兼容單片機c語言軟件開發(fā)系統(tǒng),與匯編相比,c語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。k

5、eil提供了包括c編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uvision)將這些部分組合在一起。運行keil軟件需要win98、nt、win2000、winxp等操作系統(tǒng)。如果你使用c語言編程,那么keil幾乎就是你的不二之選,即使不使用c語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調(diào)試工具也會令你事半功倍。應(yīng)用keil進行軟件仿真開發(fā)的主要步驟為:編寫源程序并保存建立工程并添加源文件設(shè)置工程編譯/匯編、連接,產(chǎn)生目標文件程序調(diào)試。keil使用“工程”(project)的概念,對工程(而不能對單一的源程序)進行編譯/匯

6、編、連接等操作。工程的建立、設(shè)置、編譯/匯編及連接產(chǎn)生目標文件的方法非常易于掌握。首先選擇菜單file-new,在源程序編輯器中輸入?yún)R編語言或c語言源程序(或選擇file-open,直接打開已用其它編輯器編輯好的源程序文檔)并保存,注意保存時必須在文件名后加上擴展名.asm(.a51)或.c;然后選擇菜單project-new project,建立新工程并保存(保存時無需加擴展名,也可加上擴展名.uv2);工程保存后會立即彈出一個設(shè)備選擇對話框,選擇cpu后點確定返回主界面。這時工程管理窗口的文件頁(files)會出現(xiàn)“target1”,將其前面+號展開,接著選擇source group1,右

7、擊鼠標彈出快捷菜單,選擇“add file to group source group1”,出現(xiàn)一個對話框,要求尋找并加入源文件(在加入一個源文件后,該對話框不會消失,而是等待繼續(xù)加入其它文件)。加入文件后點close返回主界面,展開“source group1”前面+號,就會看到所加入的文件,雙擊文件名,即可打開該源程序文件。緊接著對工程進行設(shè)置,選擇工程管理窗口的target1,再選擇project-option for targettarget1(或點右鍵彈出快捷菜單再選擇該選項),打開工程屬性設(shè)置對話框,共有8個選項卡,主要設(shè)置工作包括在target選項卡中設(shè)置晶振頻率、在debug選

8、項卡中設(shè)置實驗仿真板等,如要寫片,還必須在output選項卡中選中“creat hex fi”;其它選項卡內(nèi)容一般可取默認值。工程設(shè)置后按f7鍵(或點擊編譯工具欄上相應(yīng)圖標)進行編譯/匯編、連接以及產(chǎn)生目標文件。成功編譯/匯編、連接后,選擇菜單debug-start/stop debug session(或按ctrl+f5鍵)進入程序調(diào)試狀態(tài),keil提供對程序的模擬調(diào)試功能,內(nèi)建一個功能強大的仿真cpu以模擬執(zhí)行程序。keil能以單步執(zhí)行(按f11或選擇debug-step)、過程單步執(zhí)行(按f10或選擇debug-step over)、全速執(zhí)行等多種運行方式進行程序調(diào)試。如果發(fā)現(xiàn)程序有錯,

9、可采用在線匯編功能對程序進行在線修改(debug-inline assambly),不必執(zhí)行先退出調(diào)試環(huán)境、修改源程序、對工程重新進行編譯/匯編和連接、然后再次進入調(diào)試狀態(tài)的步驟。對于一些必須滿足一定條件(如按鍵被按下等)才能被執(zhí)行的、難以用單步執(zhí)行方式進行調(diào)試的程序行,可采用斷點設(shè)置的方法處理(debug-insert/remove breakpoint或debug-breakpoints等)。在模擬調(diào)試程序后,還須通過編程器將.hex目標文件燒寫入單片機中才能觀察目標樣機真實的運行狀況。在proteus繪制好原理圖后,調(diào)入已編譯好的目標代碼文件:*.hex,可以在proteus的原理圖中看

10、到模擬的實物運行狀態(tài)和過程。2.51單片機at89c51 51單片機是對目前所有兼容intel 8031指令系統(tǒng)的單片機的統(tǒng)稱。該系列單片機的始祖是intel的8031單片機,后來隨著flash rom技術(shù)的發(fā)展,8031單片機取得了長足的進展,成為目前應(yīng)用最廣泛的8位單片機之一,其代表型號是atmel公司的at89系列,它廣泛應(yīng)用于工業(yè)測控系統(tǒng)之中。目前很多公司都有51系列的兼容機型推出,在目前乃至今后很長的一段時間內(nèi)將占有大量市場。51單片機是基礎(chǔ)入門的一個單片機,還是應(yīng)用最廣泛的一種。需要注意的是52系列的單片機一般不具備自編程能力。當前常用的51系列單片機主要產(chǎn)品有:*intel的:8

11、0c31、80c51、87c51,80c32、80c52、87c52等;*atmel的:89c51、89c52、89c2051等;89c51單片機的內(nèi)部結(jié)構(gòu)為:單一+5v電源供電;cpu:由運算和控制邏輯組成,同時還包括中斷系統(tǒng)和部分外部特殊功能寄存器;ram:用以存放可以讀寫的數(shù)據(jù),如運算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù);rom:用以存放程序、一些原始數(shù)據(jù)和表格;i/o口:四個8位并行i/o口,既可用作輸入,也可用作輸出;t/c:兩個定時/記數(shù)器,既可以工作在定時模式,也可以工作在記數(shù)模式;五個中斷源的中斷控制系統(tǒng);一對全雙工uart(通用異步接收發(fā)送器)的串行i/o口,用于實現(xiàn)單片機之

12、間或單片機與微機之間的串行通信;片內(nèi)振蕩器和時鐘產(chǎn)生電路,石英晶體和微調(diào)電容需要外接。最高振蕩頻率為12m。3.lcd /max7219max7219/max7221是一種集成化的串行輸入/輸出共陰極顯示驅(qū)動器,它連接微處理器與8位數(shù)字的7段數(shù)字led顯示,也可以連接條線圖顯示器或者64個獨立的led。其上包括一個片上的b型bcd編碼器、多路掃描回路,段字驅(qū)動器,而且還有一個8*8的靜態(tài)ram用來存儲每一個數(shù)據(jù)。 只有一個外部寄存器用來設(shè)置各個led的段電流。 max7221與spi、 qspi以及 microwire相兼容,同時它有限制回轉(zhuǎn)電流的段驅(qū)動來減少emi(電磁干擾)。 一個方便的四

13、線串行接口可以聯(lián)接所有通用的微處理器。 每個數(shù)據(jù)可以尋址在更新時不需要改寫所有的顯示。max7219/max7221同樣允許用戶對每一個數(shù)據(jù)選擇編碼或者不編碼。 整個設(shè)備包含一個150a的低功耗關(guān)閉模式,模擬和數(shù)字亮度控制,一個掃描限制寄存器允許用戶顯示1-8位數(shù)據(jù),還有一個讓所有l(wèi)ed發(fā)光的檢測模式。 在應(yīng)用時要求3v的操作電壓或segment blinking,1 三態(tài)輸出的8d透明鎖存器74hc37374hc373 的輸出端 q0q7可直接與總線相連。 當三態(tài)允許控制端 oe 為低電平時,q0q7為正常邏輯狀態(tài),可用來驅(qū)動負載或總線。當oe為高電平時,q0q7呈高阻態(tài),即不驅(qū)動總線,也不

14、為總線的負載,但鎖存器內(nèi)部的邏輯操作不受影響。 當鎖存允許端 le 為高電平時,q隨數(shù)據(jù)d而變。當 le為低電平時,q被鎖存在已建立的數(shù)據(jù)電平。2.dac0832是8分辨率的d/a轉(zhuǎn)換集成芯片。與微處理器完全兼容。這個da芯片以其價格低廉、接口簡單、轉(zhuǎn)換控制容易等優(yōu)點,在單片機應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。d/a轉(zhuǎn)換器由8位輸入鎖存器、8位dac寄存器、8位d/a轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成。3 lm016l是一個2*16的點陣式字符液晶顯示模塊,每個字符由5*7個點組成的;內(nèi)部帶有hd44780控制器;采用5v電源供電;內(nèi)建有192個字符,8個用戶自建字符。74ls373為三態(tài)輸出的八 d 透明鎖

15、存器,共有 54s373 和 74ls373 兩種線路 結(jié)構(gòu)型式,其主要電器特性的典型值如下(不同廠家具體值有差別): 型號 tpd pd 54s373/74s373 7ns 525mw 引腳圖54ls373/74ls373 17ns 120mw 373 的輸出端 o0o7 可直接與總線相連。 當三態(tài)允許控制端 oe 為低電平時,o0o7 為正常邏輯狀態(tài),可用來驅(qū)動負載或總線。當 oe 為高電平時,o0o7 呈高阻態(tài),即不驅(qū)動總線,也不為總線的負載,但鎖存器內(nèi)部的邏輯操作不受影響。 當鎖存允許端 le 為高電平時,o 隨數(shù)據(jù) d 而變。當 le 為低電平時,o 被鎖存在已建立的數(shù)據(jù)電平。當 l

16、e 端施密特觸發(fā)器的輸入滯后作用,使交流和直流噪聲抗擾度被改善 400mv。 引出端符號: d0d7 數(shù)據(jù)輸入端 oe 三態(tài)允許控制端(低電平有效) le 鎖存允許端 o0o7 輸出端 真值表: dnleoeonhhlhlhllxllq0xxh高阻態(tài)第三部分 實驗原理圖及程序代碼1. 硬件部分電路設(shè)計 由于本次實驗設(shè)計的是一個單片機的串口通信實驗,所以我們應(yīng)當使用51單片機的通信串口進行數(shù)據(jù)的收發(fā),51單片機的通信串口主要是p3.0和p3.1兩個端口。在實驗要求中提出了使用rs-232標準進行通信,因為單片機的輸出電平為ttl標準,所以我們要使用一個芯片將ttl標準轉(zhuǎn)換成rs-232標準,即m

17、ax232芯片。通過max232芯片的接收端和發(fā)送端相連來構(gòu)成自發(fā)自收電路。因為實驗要求要能夠通信10組數(shù)據(jù),所以我們使用了基于i2c總線的eeprom存儲器24c08b,該存儲器具有1k的存儲空間,我們需要對這種串行存儲器進行讀寫操作,我們采用單片機上的p1.0與p1.1進行讀寫操作,通過程序的編寫,我們在仿真開始時向存儲器中輸入10組預(yù)先設(shè)定好的數(shù)據(jù),然后要傳輸進行通信時從存儲器中按照存儲地址將需要的數(shù)據(jù)串提取出來進行傳輸。對于電路的輸出部分,我們使用了簡單的i/o口 ,即使用74hc373芯片,并將該芯片用作鎖存器,即把該芯片的le口連接到單片機的ale口作為控制口,通過該芯片驅(qū)動總線,

18、來完成該電路的顯示部分。該電路的顯示部分按要求則使用型號為lm016的lcd液晶顯示器,通過p0口傳送數(shù)據(jù)然后由lcd顯示出來。另外,電路中還設(shè)計了兩個按鍵,分別是選擇和發(fā)送鍵,選擇鍵用來選擇要發(fā)送的數(shù)據(jù)串,發(fā)送鍵則用來發(fā)送數(shù)據(jù)?;?255口是指顯示和鍵盤都由8255的i/o口控制,使用8255可編程并行口芯片,設(shè)定為工作方式0, pc口做輸入,pa口做輸出,使得達到控制通過按鍵選擇發(fā)送,顯示正確的數(shù)據(jù)串。完整電路原理圖如下:(補充一下,由于驗收的時候發(fā)現(xiàn)了問題,沒有在8255上設(shè)置按鍵,所以改正了電路圖和程序,已經(jīng)達到了鍵盤的要求。上圖就是改正以后的圖,下面的程序也是改正后的程序。)2.軟

19、件部分設(shè)計在程序中后面注釋了我對程序功能的理解,所以就沒有分塊分析。下面是整個設(shè)計代碼和我對設(shè)計的認識和理解。/*基于cpu的lcd顯示錄音回放機設(shè)計程序*/#include#include/*宏定義*/#define uint unsigned int#define uchar unsigned char/*芯片端口地址定義*/#define dac0832 xbyte0xbfff /dac0832口#define adc0804 xbyte0x77ff /adc0804口 /*系統(tǒng)引腳定義*/sbit rs=p30; /1602的數(shù)據(jù)/命令控制口口sbit rw=p31; /1602的讀寫

20、控制端sbit en=p32; /1602的使能控制端sbit key1=p33; /key1sbit key2=p34; /key2/*定義系統(tǒng)變量*/uchar num=0,second=0,minute=0; /定義時間變量bit flag1=0,flag2=0; /定義狀態(tài)標志位/*延時子程序*/void delayms(uchar x) /ms延時函數(shù)uchar y;for(;x0;x-)for(y=110;y0;y-) ;/*1602液晶驅(qū)動程序*/1602寫命令程序void writecom(uchar com)rs=0;en=0;p0=com;delayms(5);en=1;d

21、elayms(5);en=0;/1602寫數(shù)據(jù)程序void writedata(uchar x,uchar y,uchar data)if(x=1)writecom(0x80+y-1);if(x=2)writecom(0x80+0x40+y-1); /向1602寫坐標信息rs=1;en=0;p0=data;delayms(5);en=1;delayms(5);en=0;/*鍵盤掃描程序*/void keyscan() if(key1=0)/判斷key1是否被按下delayms(20); /延時消抖if(key1=0)/判斷key2是否被按下flag1=1; /key1被按下,進入采樣狀態(tài)tr0

22、=tr0; /開始/暫停計時if(flag2=1) /判斷上一個狀態(tài)是否為回放狀態(tài)flag2=0;num=0;second=0;minute=0; /時間信息清零while(!key1);/等待key1松開if(key2=0)/判斷key2是否被按下delayms(20); /延時消抖if(key2=0) /判斷key2是否被按下flag2=1; /key2被按下,進入回放狀態(tài)tr0=tr0; /開始/暫停計時if(flag1=1) /判斷上一個狀態(tài)是否為采樣狀態(tài)flag1=0; /采樣狀態(tài)標志位清零num=0;second=0;minute=0; /時間信息清零while(!key2); /

23、等待key2松開/*1602液晶顯示時間程序*/void display()writedata(1,6,minute/10+0);writedata(1,7,minute%10+0); /向1602寫分鐘信息writedata(1,8,:);writedata(1,9,second/10+0);writedata(1,10,second%10+0); /向1602寫秒鐘信息writedata(1,11,:);writedata(1,12,num/10+0);writedata(1,13,num%10+0); /向1602寫ms信息/*系統(tǒng)初始化程序*/void initial() tmod=0

24、x01; /定義定時器工作方式et0=1; /開定時器0的中斷ea=1;/開總中斷th0=(65536-50000)/256;tl0=(65536-50000)%256;/給定時器0裝初值tr0=0;/關(guān)定時器0rw=0;/1602液晶讀寫端清零writecom(0x38);writecom(0x0c);writecom(0x06);writecom(0x01);/清屏writedata(1,1,t); /在1602上顯示字符“t”writedata(1,2,i); /在1602上顯示字符“i”writedata(1,3,m); /在1602上顯示字符“m”writedata(1,4,e);

25、/在1602上顯示字符“e”writedata(1,5,:); /在1602上顯示字符“:”writedata(2,1,s); /在1602上顯示字符“s”writedata(2,2,p); /在1602上顯示字符“p”writedata(2,3,e); /在1602上顯示字符“e”writedata(2,4,e); /在1602上顯示字符“e”writedata(2,5,d); /在1602上顯示字符“d”writedata(2,6,:); /在1602上顯示字符“:”writedata(2,11,k); /在1602上顯示字符“k”writedata(2,12,b); /在1602上顯示字

26、符“b”writedata(2,13,/); /在1602上顯示字符“/”writedata(2,14,s); /在1602上顯示字符“s”/*主程序*/void main()uint x=0xe000; /定義sram地址變量uint max;uchar temp; /定義系統(tǒng)臨時變量initial(); /系統(tǒng)初始化while(1)keyscan();display();x=0xe000; /將地址清零 while(flag1=1)/采樣循環(huán) if(tr0=1)/判斷是否正在進行采樣adc0804=0xff;/將口置1,啟動addelayms(1);/延時temp=adc0804;/讀取ad轉(zhuǎn)換的數(shù)據(jù)xbytex=temp; /將ad轉(zhuǎn)換的數(shù)據(jù)存入sram中x+;max=x; /地址加1if(x=0xffff) /判斷sram的地址范圍x=0xe000;writedata(2,7,1);writedata(2,8,.);writedata(2,9,0);writedata(2,10,0); /顯示采樣率keyscan(); /鍵盤掃描display(); /顯示時間x=0xe000; /將地址清零writedata(2,7, );writedata(2,8, );writ

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論