點(diǎn)陣顯示漢字 測(cè)控專(zhuān)業(yè)畢業(yè)論文_第1頁(yè)
點(diǎn)陣顯示漢字 測(cè)控專(zhuān)業(yè)畢業(yè)論文_第2頁(yè)
點(diǎn)陣顯示漢字 測(cè)控專(zhuān)業(yè)畢業(yè)論文_第3頁(yè)
點(diǎn)陣顯示漢字 測(cè)控專(zhuān)業(yè)畢業(yè)論文_第4頁(yè)
點(diǎn)陣顯示漢字 測(cè)控專(zhuān)業(yè)畢業(yè)論文_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、西安郵電學(xué)院測(cè)控儀器課程設(shè)計(jì)報(bào)告書(shū)題目:點(diǎn)陣顯示漢字院部名稱(chēng):自動(dòng)化學(xué)院學(xué)生姓名: 專(zhuān)業(yè)名稱(chēng):測(cè)控技術(shù)與儀器班 級(jí):測(cè)控0802班時(shí)間:2011年5月23日至6月 5日 led點(diǎn)陣顯示漢字的設(shè)計(jì)一、設(shè)計(jì)目的 通過(guò)本次課程設(shè)計(jì)讓我們學(xué)習(xí)單片機(jī),運(yùn)用c語(yǔ)言編寫(xiě)程序?qū)纹瑱C(jī)下層接口進(jìn)行控制。并且通過(guò)自行設(shè)計(jì)硬件電路,并焊接點(diǎn)陣顯示漢字的系統(tǒng)。熟悉單片機(jī)與各種片子之間的協(xié)同工作,并熟悉它們的各個(gè)引腳的功能和應(yīng)用方法。二、設(shè)計(jì)要求設(shè)計(jì)一個(gè)由4片8*8點(diǎn)陣組合成的16*16點(diǎn)陣的圖文led顯示屏,要求能顯示圖文或文字,顯示圖文或文字應(yīng)穩(wěn)定、清晰,圖文或文字顯示,以卷簾形式向上滾動(dòng)顯示“西安郵電大學(xué)”,要求

2、是循環(huán)顯示的。三、設(shè)計(jì)器材at89c51(單片機(jī))1片rp1(排阻)1片74ls1382片matrix-8*8-green(8*8點(diǎn)陣顯示器)4塊33pf電容2個(gè)47uf電解電容5個(gè)max2321個(gè)stc_isp_v4.80 下載軟件1個(gè)9針串口公頭1個(gè)串口下載線1根彈性按鍵2個(gè)開(kāi)關(guān)1個(gè)發(fā)光二極管2個(gè)單排插針3排杜邦線30根單排插座2排四、設(shè)計(jì)方案及分析(包含設(shè)計(jì)電路圖)(1)led的8*8點(diǎn)陣led的8*8點(diǎn)陣顯示屏作為一種新型的顯示器件,是由多個(gè)發(fā)光二極管按矩陣形式排列封裝而成,通常用來(lái)顯示時(shí)間、圖文等信息。本設(shè)計(jì)是基于ats52單片機(jī)的16x16顯示屏,其中包含了硬件電路設(shè)計(jì)并焊接、軟件

3、程序編寫(xiě)、調(diào)試電路等方案的設(shè)計(jì)。在使用的8*8點(diǎn)陣中,行標(biāo)是二極管的正極,列標(biāo)是二極管的負(fù)極,所以只要正極的電壓比負(fù)極的電壓大,就能夠通過(guò)電流點(diǎn)亮點(diǎn)陣。 圖文顯示一般有靜態(tài)和動(dòng)態(tài)顯示兩種方案,靜態(tài)方案雖然設(shè)計(jì)簡(jiǎn)單,但其使用的管腳太多,如本設(shè)計(jì)中1616的點(diǎn)陣共有256個(gè)發(fā)光二極管,顯然單片機(jī)沒(méi)有這么多的端口來(lái)單獨(dú)控制。因此在實(shí)際應(yīng)用中的顯示屏幾乎都不采用這種設(shè)計(jì),而采用另外一種稱(chēng)為動(dòng)態(tài)掃描的顯示方法。動(dòng)態(tài)掃描的意思簡(jiǎn)單地說(shuō)就是逐行輪流點(diǎn)亮,這樣掃描驅(qū)動(dòng)電路就可以實(shí)現(xiàn)多行的同名列共用一套驅(qū)動(dòng)器。具體就1616的點(diǎn)陣來(lái)說(shuō),把所有同1行的發(fā)光管的陽(yáng)極連在一起,把所有同1列的發(fā)光管的陰極連在一起(共陽(yáng)

4、極的接法),先送出對(duì)應(yīng)第一行發(fā)光管亮滅的數(shù)據(jù),然后進(jìn)行列的掃描,通過(guò)列產(chǎn)生的低電平進(jìn)行掃描點(diǎn)亮二極管,最后熄滅。以此類(lèi)推,第16行之后,又重新燃亮第1行,反復(fù)輪回。當(dāng)這樣輪回的速度足夠快,由于人眼的視覺(jué)暫留現(xiàn)象,就能夠看到顯示屏上穩(wěn)定的圖形或是漢字了。8*8點(diǎn)陣 引腳圖如下:焊接和連線的時(shí)候一定要看好管腳和proteus isis仿真軟件中的管腳是不同的。(2)單片機(jī)系統(tǒng)及其管腳本實(shí)驗(yàn)采用內(nèi)部時(shí)鐘方式,將xtal1與xtal2之間跨接一個(gè)石英晶振和微調(diào)電容,從而構(gòu)成一個(gè)穩(wěn)定的自激震蕩器。電容值取33pf左右,其大小將影響震蕩頻率的高低、振蕩器的穩(wěn)定性和起振的快速性。為減少線間的寄生電容,晶振和

5、電容應(yīng)盡能安裝得與單片機(jī)靠近,保證晶振穩(wěn)定可靠的工作。 另一部分是復(fù)位部分。上電自動(dòng)復(fù)位電路是最簡(jiǎn)單的復(fù)位電路,只需要一個(gè)1k左右電阻、一個(gè)30pf左右的電容及12mhz的晶振。有時(shí)還需要按鍵手動(dòng)復(fù)位,此時(shí)只要在電容上并聯(lián)一個(gè)按鍵即可。單片機(jī)信號(hào)輸出采用串行輸出,因此在下一模塊的移位寄存器要與該部分的串行口p3.0(rxd)及p3.1(txd)相連連線如圖,下一幅圖是單片機(jī)的引腳圖(3)方案對(duì)比與選取方案一: 該方案以at89c52單片機(jī)作為微處理器,74ls138作為對(duì)點(diǎn)陣掃描芯片。以下為此方案的整體設(shè)計(jì)電路圖。74ls138作為列驅(qū)動(dòng)部分列驅(qū)動(dòng)部分用74ls138控制,74ls138引腳圖

6、和功能如下同樣要控制列需要用到兩片138,因?yàn)橐黄?38不能控制16位,一片138只能控制000111,就是8位,當(dāng)給它000的時(shí)候及會(huì)輸出01111111,使能端接單片機(jī)的p3.4和p3.5端口,控制和行對(duì)應(yīng)的8位。硬件設(shè)計(jì)電路部分截圖:點(diǎn)陣連接設(shè)計(jì)圖: 74ls138與單片機(jī)連接圖:點(diǎn)陣與單片機(jī)連接圖:功能實(shí)現(xiàn)與描述: 該方案的實(shí)現(xiàn)是利用74ls138譯碼器作為點(diǎn)陣的列驅(qū)動(dòng)來(lái)完成。由以上部分電路圖中可以得知,單片機(jī)的p0與p2口為點(diǎn)陣行輸出的控制端,有這16個(gè)引腳對(duì)點(diǎn)陣16個(gè)行進(jìn)行一一對(duì)應(yīng)進(jìn)行驅(qū)動(dòng)。 點(diǎn)陣的列驅(qū)動(dòng)根據(jù)74ls138的真值表進(jìn)行逐列掃描,每變化一次輸入端000111,其輸出端

7、就由y0y7相應(yīng)取非。 點(diǎn)陣行驅(qū)動(dòng)由p0與p2輸出對(duì)應(yīng)行代碼,進(jìn)行選通,當(dāng)列驅(qū)動(dòng)掃描過(guò)程中,就可以在每一個(gè)點(diǎn)的兩端形成壓差,從而點(diǎn)亮點(diǎn)陣顯示漢字或圖案。方案一程序編寫(xiě)部分#include #define uint unsigned int #define uchar unsigned char#define ulong int unsigned long intsbit row = p36;sbit row1 = p37;/*以下三個(gè)是38譯碼器的輸入變量*/sbit a1 = p10;sbit b1 = p11;sbit c1 = p12;/*以下兩個(gè)是38譯碼器的使能端,en1是第一塊13

8、8的使能,en2是第二塊。*/sbit en1 = p34;sbit en2 = p35; unsigned long code table=0x00,0x00,0x04,0x00,0xfe,0xff,0x40,0x04,0x40,0x04,0x44,0x04,0xfe,0x7f,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x34,0x48,0x04,0x50,0x04,0x40,0xfc,0x7f,0x04,0x40, /西 0x00,0x00,/空0x00,0x02,0x00,0x01,0xfe,0x7f,0x02,0x40,0x04,0x82,0x0

9、0,0x02,0x04,0x02,0xfe,0xff,0x20,0x04,0x20,0x08,0x20,0x18,0x40,0x06,0x80,0x01,0x40,0x02,0x30,0x0c,0x10,0x30, /安0x00,0x00,/空0x00,0x08,0x00,0x08,0x7c,0x09,0xc4,0x7f,0x48,0x49,0x48,0x49,0x50,0x49,0x48,0x49,0x44,0x7f,0x42,0x49,0x42,0x49,0x62,0x49,0x54,0x49,0x48,0x7f,0x40,0x41,0x40,0x00, /郵0x00,0x00,/空0x0

10、0,0x02,0x00,0x02,0x10,0x02,0xf8,0x7f,0x10,0x42,0x10,0x42,0xf0,0x7f,0x10,0x42,0x10,0x42,0xf0,0x7f,0x10,0x42,0x00,0x02,0x04,0x02,0x04,0x02,0xfc,0x01,0x00,0x00, /電0x00,0x00,/空0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0x01,0xfe,0xff,0x00,0x01,0x80,0x02,0x80,0x02,0x40,0x02,0x40,0x04,0x20,0x04,0x10,0x0

11、8,0x0e,0x10,0x04,0x60,0x00,0x00,/大0x00,0x00,/空0x08,0x22,0x08,0x11,0x10,0x11,0x20,0x00,0xfe,0x7f,0x02,0x40,0x04,0x80,0xe0,0x1f,0x40,0x00,0x84,0x01,0xfe,0xff,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02, /學(xué) 0x00,0x00,/空0x80,0x00,0x80,0x00,0x80,0xfc,0xfc,0x04,0x04,0x45,0x48,0x46,0x40,0x28,0x40,0x2

12、8,0x40,0x10,0x40,0x28,0xa0,0x24,0xa0,0x44,0x10,0x81,0x08,0x01,0x0e,0x02,0x04,0x0c, /歡0x00,0x00,/空0x00,0x00,0x84,0x41,0x7e,0x26,0x44,0x14,0x44,0x04,0x44,0x04,0x44,0xf4,0xc4,0x14,0x44,0x15,0x54,0x16,0x48,0x14,0x40,0x10,0x40,0x10,0x46,0x28,0xfc,0x47,0x00,0x00, /迎0x00,0x00,/空0x00,0x09,0x00,0x09,0xfc,0x1

13、3,0x04,0x12,0x48,0x34,0x40,0x59,0x50,0x91,0x4c,0x12,0x44,0x14,0x40,0x11,0x80,0x10,0x00,0x02,0x84,0x51,0x92,0x50,0x12,0x90,0xf0,0x0f, /您0x00,0x00,/空0x00,0x00,0x80,0x01,0xc0,0x03,0xc0,0x03,0xc0,0x03,0xc0,0x03,0xc0,0x03,0x80,0x01,0x80,0x01,0x80,0x01,0x00,0x00,0x80,0x01,0xc0,0x03,0x80,0x01,0x00,0x00,0x0

14、0,0x00, / ! 0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x01,0x00,0x00,0x00,0x00,;uint i,shu,change,add; void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=2

15、0;y0;y-);void main() p0 = 0;p2 = 0;p3 = 0;while(1) en1 = 1; en2 = 0; for(i = 0;i 16; i+) p1 =i/2; p0 = 0; p2 = 0; delay(1);p2 = tablei+add;delay(1);if(en1 = 1) en1=0;en2 =1;else en1=1;en2=0; en1 = 1; en2 = 0; for(i = 0;i 350) add=0; 方案二:該方案使用74ls138譯碼器作為列掃描驅(qū)動(dòng),hcf4094位移位存儲(chǔ)總線寄存器作為行驅(qū)動(dòng)。以下為該方案整體電路設(shè)計(jì)圖:74l

16、s138作為列驅(qū)動(dòng)部分列驅(qū)動(dòng)部分用74ls138控制,74ls138引腳圖和功能如下同樣要控制列需要用到兩片138,因?yàn)橐黄?38不能控制16位,一片138只能控制000111,就是8位,當(dāng)給它000的時(shí)候及會(huì)輸出01111111,使能端接單片機(jī)的p3.4和p3.5端口,控制和行對(duì)應(yīng)的8位。硬件設(shè)計(jì)電路部分截圖:74ls138與單片機(jī)連接圖: 點(diǎn)陣鏈接圖:點(diǎn)陣與單片機(jī)和4094總線寄存器的連接圖: 功能實(shí)現(xiàn)與描述:延續(xù)方案一中繼續(xù)使用74ls138進(jìn)行列驅(qū)動(dòng),行驅(qū)動(dòng)使用了4094移位總線寄存器來(lái)控制。通過(guò)單片機(jī)io口進(jìn)行對(duì)4094芯片的clk,stb,oe,d等端口相應(yīng)控制,再進(jìn)行兩片4094

17、芯片的級(jí)聯(lián),從而實(shí)現(xiàn)對(duì)點(diǎn)陣行驅(qū)動(dòng)的實(shí)現(xiàn)。138譯碼器不停的進(jìn)行列驅(qū)動(dòng)掃描,行驅(qū)動(dòng)由4094的d數(shù)據(jù)端串行輸入數(shù)據(jù),并行從輸出端輸出。在這里實(shí)現(xiàn)了兩片hcf4094的級(jí)聯(lián),則第一片hcf4094的qs端連接著第二片hcf4094的d端,從而實(shí)現(xiàn)了數(shù)據(jù)信息的傳遞。每個(gè)16進(jìn)制代碼都在us級(jí)別時(shí)間內(nèi)傳遞到點(diǎn)陣上,由于傳遞停頓時(shí)間很短,將會(huì)對(duì)人眼睛產(chǎn)生余輝暫留效應(yīng),實(shí)現(xiàn)了動(dòng)態(tài)點(diǎn)陣信息掃描。仿真實(shí)現(xiàn)的電路設(shè)計(jì)演示圖:五、問(wèn)題分析與解決方法方案一: 問(wèn)題1:我們?cè)诘谝淮魏附訒r(shí)由于以前未焊過(guò)單片機(jī),將51芯片焊的過(guò)于靠近邊緣總線,導(dǎo)致晶振無(wú)處可焊。解決方法:我們將晶振焊在了51底座的下邊,并且在焊好后第一次

18、應(yīng)用時(shí),晶振起振良好。問(wèn)題 2: 當(dāng)我們?cè)诤附油觌娐返臅r(shí)候,我們下載完程序后,仿真的是對(duì)的,我們實(shí)體運(yùn)行的時(shí)候出現(xiàn)了不能正確顯示“西安郵電大學(xué)歡迎您!”,這幾個(gè)點(diǎn)陣漢字,出現(xiàn)的是亂碼, 漢字的筆畫(huà)還是能夠看清,只是出現(xiàn)不規(guī)律。第一次,我們懷疑程序出來(lái)問(wèn)題,我們改了程序并不斷通過(guò)我們的仿真軟件去測(cè)試軟件修改后是否正確。一次次的我們的仿真都是正確的,但是實(shí)物展示卻是錯(cuò)誤的。解決方法:我們遇到難題了,4個(gè)8*8組合成一個(gè)16*16點(diǎn)陣的焊接電路很復(fù)雜,小面積的焊接電路問(wèn)題很多,我們懷疑這部分出現(xiàn)了焊接錯(cuò)誤。于是拿來(lái)萬(wàn)用表進(jìn)行沒(méi)個(gè)行、列引腳進(jìn)行檢測(cè)。令我們困惑的是,很細(xì)心的檢查以后還是沒(méi)發(fā)現(xiàn)連線錯(cuò)誤。

19、重新安裝點(diǎn)陣并測(cè)試顯示,更大的麻煩來(lái)了!不知哪個(gè)地方出了問(wèn)題,74hc573芯片被擊穿了,vcc和gnd擊穿了,電路不工作了。這個(gè)打擊很大,一時(shí)間眼看后天(星期四)就要驗(yàn)收,今晚(星期二)馬上就過(guò)去了,現(xiàn)在燒了芯片,電路還存在問(wèn)題,恐怕第二天焊接電路來(lái)不及了。并且51芯片周?chē)娐泛附訌?fù)雜,在外的線頭較多,不安全,于是我們決定將51移至其它板子。在這十分緊張的時(shí)刻,呂海斌同學(xué)冷靜的思考了問(wèn)題,提出了幾個(gè)補(bǔ)救方法。方法1:沒(méi)有了74hc573芯片,也不向老師要了,為了省時(shí)間,我們可以不要74hc573來(lái)驅(qū)動(dòng),直接驅(qū)動(dòng),對(duì)電路進(jìn)行部分改動(dòng)。方法2:換用4094芯片進(jìn)行串入并出的方式,修改電路設(shè)計(jì)。方

20、法3:在沒(méi)有檢查是問(wèn)題是什么之前,耗時(shí)間太多不行,爭(zhēng)取分秒只能馬上焊接新的電路板,但是元器件不夠了。 經(jīng)過(guò)大家半個(gè)小時(shí)的思考和討論,最終決定選用方案一。很快,完成了新電路的改造和焊接完成,現(xiàn)在電路問(wèn)題解決了,剩下的就是針對(duì)這時(shí)候的電路設(shè)計(jì)來(lái)編寫(xiě)相應(yīng)的控制程序了。問(wèn)題3 :針對(duì)方案一進(jìn)行程序修改以后,發(fā)現(xiàn)新問(wèn)題了。問(wèn)題就是,點(diǎn)陣顯示的過(guò)程中,有半屏顯示出來(lái)的結(jié)果很讓人懷疑是不是其中一片74ls138沒(méi)有工作,或是燒壞了。 解決辦法:這時(shí)候,修改程序,用單片機(jī)直接對(duì)74ls138控制輸入和輸出。 根據(jù)74ls138的特性,輸入從000111變化,輸出逐位為0。用萬(wàn)能表直接對(duì)所控制的檢查是否為高低電

21、平。例如:令輸入為001,則輸出的2號(hào)引腳肯定輸出為低電平(小于0.2v)。實(shí)際檢查后,發(fā)現(xiàn)的確是我們想要的結(jié)果,從而排除了74ls138不工作的可能性。問(wèn)題4 : 因?yàn)閱?wèn)題3已經(jīng)檢查出來(lái),可還是不能夠好好顯示點(diǎn)陣信息啊。 這一次,我們懷疑是程序運(yùn)行方式和硬件的連線掃描方式不一樣,導(dǎo)致每次讀取信息都會(huì)發(fā)生順序錯(cuò)誤。解決辦法:編寫(xiě)程序?qū)c(diǎn)陣進(jìn)行控制。給我們?nèi)藶榈亩ㄒ粋€(gè)行、列標(biāo)準(zhǔn)。我們運(yùn)行的程序必須按我們的行列標(biāo)準(zhǔn)進(jìn)行工作。于是,通過(guò)程序控制74ls138進(jìn)行某列選中,行線就人為的調(diào)動(dòng),觀察亮燈的情況。最后我們發(fā)現(xiàn)問(wèn)題所在了,原來(lái)仿真情況下即使標(biāo)了行和列電氣連接,實(shí)際中也不能一一對(duì)應(yīng)上。 現(xiàn)在硬件

22、已經(jīng)定型,程序上得想辦法進(jìn)行改變。我們花了一些時(shí)間對(duì)硬件電路去編寫(xiě)程序,弄清楚掃描板塊的順序,一步步來(lái),先對(duì)某個(gè)字模進(jìn)行程序運(yùn)行,我們成功了!硬件電路上實(shí)現(xiàn)了第一個(gè)“西” 字的顯示成功,接下來(lái)修改程序代碼,實(shí)現(xiàn)了所有漢字的循環(huán)移位顯示。方案二: 方案二無(wú)論從硬件設(shè)計(jì)電路還是編程序的思想上,都沿用了方案一的思想。這為我們方案二的實(shí)現(xiàn)奠定了基礎(chǔ)。 方案二中我們遇到的第一個(gè)困難是:如何看懂hcf4094英文資料的功能表。我們從對(duì)芯片資料最初理解來(lái)一步一步編程序模擬實(shí)現(xiàn),用發(fā)光二極管來(lái)測(cè)驗(yàn)。輸出二極管顯示不是我們想要的值,則我們理解資料功能表錯(cuò)誤。第一天弄到很晚,也僅僅是弄明白芯片的一個(gè)鎖存功能而已,

23、知道我們?cè)撚贸绦蛉タ刂扑T诮鉀Q這個(gè)難題過(guò)程中,一改最初我們用單片機(jī)定時(shí)器產(chǎn)生clock來(lái)控制芯片不停產(chǎn)生pwm波,明白一點(diǎn):在適合時(shí)候io口直接控制clock的高低即可產(chǎn)生不同的跳變沿。 遇到的第二個(gè)難題是:想要讓兩個(gè)hcf4094實(shí)現(xiàn)級(jí)聯(lián),但無(wú)從下手。在這時(shí)候,我們知道我們第一天并沒(méi)有搞明白芯片資料內(nèi)容。于是不斷的通過(guò)自己理解的想法,來(lái)編寫(xiě)程序,看芯片輸出的結(jié)果來(lái)判斷理解對(duì)錯(cuò)與否。忙了很久才弄明白了qs端可以用來(lái)對(duì)下一片hcf409的輸入端產(chǎn)生級(jí)聯(lián)。這回,我們理解了原來(lái)hcf4094級(jí)聯(lián)以后,輸出值傳遞能夠一直傳遞到最后一片hcf4094并輸出到該芯片控制的點(diǎn)陣列中去。這時(shí)候產(chǎn)生了一個(gè)疑問(wèn)

24、,當(dāng)掃描很快的時(shí)候,真的會(huì)顯示出我們想要的漢字顯示結(jié)果嗎?這種感覺(jué)不如方案一認(rèn)同感強(qiáng)烈。這時(shí),我們抱著試一試的心態(tài),寫(xiě)程序再說(shuō)。 遇到的第三個(gè)難題是:我們?nèi)绾巫屳敵龅慕Y(jié)果暫停住,能夠?qū)敵鼋Y(jié)果進(jìn)行觀察并檢驗(yàn)。畢竟最終點(diǎn)陣顯示需要讓人眼分辨出來(lái)。這一個(gè)難題困了我們好久一個(gè)日夜,已經(jīng)是第三天下午了,大家都有些灰心了。漸漸的,我們發(fā)現(xiàn)了一個(gè)細(xì)節(jié),就是鎖存時(shí)間過(guò)短了,在clock過(guò)了以后,代碼已經(jīng)有效,可是測(cè)試結(jié)果沒(méi)有讓我們觀察到。可是結(jié)果似乎給我們開(kāi)玩笑,測(cè)試一個(gè)數(shù)組,總是在最后一兩個(gè)就發(fā)生順序的變化,錯(cuò)了!但是我們看到一點(diǎn)兒希望,就是我們檢查數(shù)組輸出的前部分結(jié)果都是正確的,這時(shí)候問(wèn)題一定在程序里面

25、。一定出在最后變量歸零(按程序走,要返回到數(shù)組第二個(gè)元素,讀程序即可明白)。再次拿出紙和筆進(jìn)行變量跟蹤,經(jīng)過(guò)兩次變量跟蹤我們發(fā)現(xiàn)錯(cuò)誤了,經(jīng)過(guò)程序修改并在led燈上進(jìn)行程序跟蹤,我們成功了!實(shí)現(xiàn)了數(shù)據(jù)傳遞并正確顯示輸出。只剩下最后一步了,就是連接點(diǎn)陣電路圖和下載程序。當(dāng)然,這后面我們也沒(méi)有遇到麻煩和困難了,因?yàn)檫B接點(diǎn)陣的麻煩和困難在方案一時(shí)候已經(jīng)遇到了解決了。 方案對(duì)比:從節(jié)省資源角度看,方案二比方案一要好。 理由1: 方案二使用了hcf4094進(jìn)行串入并出控制點(diǎn)陣,輸入端只需要一根數(shù)據(jù)線,一個(gè)微控制器的io口。方案一實(shí)現(xiàn)一樣的功能卻需要16個(gè)微控制器的io引腳,在芯片功能的使用利用率上來(lái)看,方

26、案二要比方案一節(jié)省資源更加實(shí)現(xiàn)低碳理念。 理由2: 方案二使用了hcf4094以后,實(shí)現(xiàn)串入并出大大節(jié)省了微控制器io口的使用,這就為了在此系統(tǒng)中進(jìn)行對(duì)擴(kuò)展功能的實(shí)現(xiàn)帶來(lái)了極大的便利,無(wú)需過(guò)多的布置微控制器系統(tǒng)而使得系統(tǒng)復(fù)雜程度上升,也降低了系統(tǒng)的不穩(wěn)定性等負(fù)面因素。 最終決定,方案二比方案一更理想,更適合在現(xiàn)實(shí)中使用!方案二程序編寫(xiě): #include #define uchar unsigned char#define uint unsigned intsbit clock = p21;sbit data = p20;sbit hold =p30;sbit stop =p31;/sbit

27、stop2 =p24;sbit a = p10;sbit b = p11;sbit c = p12;sbit e1 = p36;sbit e2 = p37;/程序掃描順序遵從郵字代碼順序讀取并顯示uchar code temp = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/空0x00,0x01,0x00,0x01,0x

28、04,0x01,0xfe,0x7f,0x04,0x41,0x04,0x41,0x04,0x41,0x04,0x41,0xfc,0x7f,0x04,0x41,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,/中0x04,0x00,0xfe,0x7f,0x24,0x40,0xf4,0x5f,0x04,0x41,0x04,0x41,0x44,0x41,0xe4,0x4f,0x04,0x41,0x44,0x41,0x24,0x41,0x04,0x41,0xf4,0x5f,0x04,0x40,0xfc,0x7f,0x04,0x40,

29、 /國(guó) 0x00,0x00,0x04,0x00, 0xfe,0xff,0x40,0x04, 0x40,0x04,0x44,0x04, 0xfe,0x7f,0x44,0x44, 0x44,0x44,0x44,0x44, 0x44,0x44,0x34,0x48, 0x04,0x50,0x04,0x40, 0xfc,0x7f,0x04,0x40,/西0x00,0x00,/空0x00,0x02,0x00,0x01,0xfe,0x7f,0x02,0x40,0x04,0x82,0x00,0x02,0x04,0x02,0xfe,0xff,0x20,0x04,0x20,0x08,0x20,0x18,0x40,

30、0x06,0x80,0x01,0x40,0x02,0x30,0x0c,0x10,0x30, /安0x00,0x00,/空待添加的隱藏文字內(nèi)容10x00,0x08,0x00,0x08,0x7c,0x09,0xc4,0x7f,0x48,0x49,0x48,0x49,0x50,0x49,0x48,0x49,0x44,0x7f,0x42,0x49,0x42,0x49,0x62,0x49,0x54,0x49,0x48,0x7f,0x40,0x41,0x40,0x00, /郵0x00,0x00,/空0x00,0x02,0x00,0x02,0x10,0x02,0xf8,0x7f,0x10,0x42,0x10

31、,0x42,0xf0,0x7f,0x10,0x42,0x10,0x42,0xf0,0x7f,0x10,0x42,0x00,0x02,0x04,0x02,0x04,0x02,0xfc,0x01,0x00,0x00,/電0x00,0x00,/空0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0x01,0xfe,0xff,0x00,0x01,0x80,0x02,0x80,0x02,0x40,0x02,0x40,0x04,0x20,0x04,0x10,0x08,0x0e,0x10,0x04,0x60,0x00,0x00,/大0x00,0x00,/空0x08,0

32、x22,0x08,0x11,0x10,0x11,0x20,0x00,0xfe,0x7f,0x02,0x40,0x04,0x80,0xe0,0x1f,0x40,0x00,0x84,0x01,0xfe,0xff,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,/學(xué)0x00,0x00,/空0x80,0x00,0x80,0x00,0x80,0xfc,0xfc,0x04,0x04,0x45,0x48,0x46,0x40,0x28,0x40,0x28,0x40,0x10,0x40,0x28,0xa0,0x24,0xa0,0x44,0x10,0x81,0x

33、08,0x01,0x0e,0x02,0x04,0x0c,/歡0x00,0x00,/空0x00,0x00,0x84,0x41,0x7e,0x26,0x44,0x14,0x44,0x04,0x44,0x04,0x44,0xf4,0xc4,0x14,0x44,0x15,0x54,0x16,0x48,0x14,0x40,0x10,0x40,0x10,0x46,0x28,0xfc,0x47,0x00,0x00,/迎0x00,0x00,/空0x00,0x09,0x00,0x09,0xfc,0x13,0x04,0x12,0x48,0x34,0x40,0x59,0x50,0x91,0x4c,0x12,0x44

34、,0x14,0x40,0x11,0x80,0x10,0x00,0x02,0x84,0x51,0x92,0x50,0x12,0x90,0xf0,0x0f,/您0x00,0x00,/空0x00,0x00,0x80,0x01,0xc0,0x03,0xc0,0x03,0xc0,0x03,0xc0,0x03,0xc0,0x03,0x80,0x01,0x80,0x01,0x80,0x01,0x00,0x00,0x80,0x01,0xc0,0x03,0x80,0x01,0x00,0x00,0x00,0x00,/!0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0

35、0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,;void delay(uint t) uint i,j;for(j=t;j0;j-) for(i=5;i0;i-);void main(void)uchar i,cf,xian,col,change;uint signal=0,shu=0;stop=0;e1=1;e2=0;dofor(change=0;change6;change+)for(col=0;col16;)p1

36、=col/2;xian = tempsignal+shu;for(i =0;i8;i+) clock= 0;cf = xian%2;if(cf=0)data = 0;elsedata = 1;clock = 1;xian/=2;if(signal/2=8)stop=0;hold=1;elsestop=1;hold=0;delay(20);col+;if(col=16)stop=1;delay(20);break;if(signal=16)signal=1;if(signal=17)signal=0;e2=e1; e1=e1;shu+=2;if(shu420)shu=0; while(1);六、

37、設(shè)計(jì)結(jié)果 下面是仿真的結(jié)果截圖下面是實(shí)物圖:?jiǎn)纹瑱C(jī)最小系統(tǒng):點(diǎn)陣顯示漢字模塊:max232 串口下載模塊:七、設(shè)計(jì)心得組員呂海斌(06082042):在本次實(shí)驗(yàn)中,我學(xué)到即不僅僅是有關(guān)仿真、電路布局、焊板子、編程序、檢查電路、軟硬件聯(lián)調(diào)等等多方面的知識(shí)。還學(xué)到了其他一些為人做事方面的道理,有以下幾方面: 我學(xué)會(huì)了應(yīng)用keil軟件進(jìn)行c語(yǔ)言的編程以及用它與proteus 7 進(jìn)行聯(lián)調(diào)仿真。 學(xué)回了51單片機(jī)片機(jī)進(jìn)行電路布局一些基本注意點(diǎn),以及電路布局連線的一些注意事項(xiàng),如:可以?xún)擅娌季€,減少布線復(fù)雜度。兩點(diǎn)之間怎樣連線可以使電路既美觀又實(shí)用。 學(xué)回了聯(lián)調(diào)中,充分運(yùn)用程序和各種硬件電路,使電路的連接顯示更美觀。并且只有軟硬件進(jìn)行聯(lián)調(diào)才能發(fā)現(xiàn)具體硬件的運(yùn)行過(guò)程,我們?cè)谶M(jìn)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論