国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

單片機(jī)課程設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目設(shè)計(jì)

2016-03-10 15:31:26明鑫盧丹萍
廣西教育·C版 2016年1期
關(guān)鍵詞:實(shí)驗(yàn)課

明鑫 盧丹萍

【摘 要】針對單片機(jī)課程設(shè)計(jì)這門課程傳統(tǒng)實(shí)驗(yàn)方式的不足之處,設(shè)計(jì)了一種新的實(shí)驗(yàn)項(xiàng)目;圍繞“單片機(jī)系統(tǒng)設(shè)計(jì)方法”這一主線,從計(jì)算器系統(tǒng)電路的構(gòu)成、仿真圖的繪制、程序的編寫、印制電路板的設(shè)計(jì)等方面對新項(xiàng)目的實(shí)施做了詳細(xì)分析。

【關(guān)鍵詞】單片機(jī)課程設(shè)計(jì) 計(jì)算器系統(tǒng) 實(shí)驗(yàn)課

【中圖分類號】G 【文獻(xiàn)標(biāo)識碼】A

【文章編號】0450-9889(2016)01C-0163-03

單片機(jī)課程設(shè)計(jì)作為單片機(jī)原理課程的延伸,是一門以學(xué)生動(dòng)手實(shí)踐為主的實(shí)驗(yàn)課。本課程在傳統(tǒng)的教學(xué)中一般會以單片機(jī)實(shí)驗(yàn)箱作為操作的平臺。教師設(shè)計(jì)一個(gè)綜合的實(shí)驗(yàn)項(xiàng)目,學(xué)生在實(shí)驗(yàn)箱上完成線路的連接程序的調(diào)試運(yùn)行等操作,之后學(xué)生完成設(shè)計(jì)報(bào)告。單片機(jī)實(shí)驗(yàn)箱內(nèi)模塊眾多、接線雜亂,與實(shí)際應(yīng)用不符,不利于學(xué)生理解和掌握單片機(jī)控制系統(tǒng)的設(shè)計(jì)過程及調(diào)試方法。因此在單片機(jī)課程設(shè)計(jì)中有必要引入一種新的實(shí)驗(yàn)形式。該實(shí)驗(yàn)項(xiàng)目作為單片機(jī)課程設(shè)計(jì)的一個(gè)綜合實(shí)驗(yàn)內(nèi)容,既要做到有別于單片機(jī)原理課程的驗(yàn)證性實(shí)驗(yàn),又要做到理論聯(lián)系實(shí)際,具有一定的實(shí)用價(jià)值,還要能夠體現(xiàn)單片機(jī)系統(tǒng)開發(fā)的流程,激發(fā)學(xué)生的學(xué)習(xí)興趣,增強(qiáng)學(xué)生的動(dòng)手能力。

鑒于此,開發(fā)了一個(gè)“計(jì)算器的設(shè)計(jì)”項(xiàng)目作為單片機(jī)課程設(shè)計(jì)的教學(xué)內(nèi)容。本項(xiàng)目的要求如下:設(shè)計(jì)一個(gè)簡易計(jì)算器,能實(shí)現(xiàn)8位數(shù)之內(nèi)的加減乘除運(yùn)算,并要求學(xué)生按照單片機(jī)控制系統(tǒng)的開發(fā)流程,完成電路的仿真、程序的編寫、電路圖繪制、PCB板制作、焊接調(diào)試等工作。

一、計(jì)算器項(xiàng)目總體設(shè)計(jì)

為了實(shí)現(xiàn)計(jì)算器的功能,本系統(tǒng)應(yīng)由單片機(jī)、輸入模塊、顯示模塊、聲光提示模塊和電源模塊幾部分構(gòu)成,其組成框圖如圖1所示。

(一)控制器的選擇

本項(xiàng)目中選取STC90C58RD+單片機(jī)作為控制器。STC90C58RD+與AT89C51完全兼容,可直接替換。前者具備高達(dá)1280Btye的SRAM,32K字節(jié)flash存儲器,29K字節(jié)EEPROM,更高的可靠性及更低的功耗,使得它被越來越多的單片機(jī)開發(fā)者選用。

(二)顯示模塊的設(shè)計(jì)

單片機(jī)系統(tǒng)的輸出顯示部分,可以選用液晶屏或者數(shù)碼管。液晶屏價(jià)格相對較貴,驅(qū)動(dòng)程序編寫較復(fù)雜,而數(shù)碼管具有價(jià)格低廉、驅(qū)動(dòng)電路簡單、控制程序容易編寫等特點(diǎn)。而且本設(shè)計(jì)要求完成8位數(shù)范圍內(nèi)的計(jì)算,因此使用8位數(shù)碼管作為顯示器件。

(三)輸入模塊的設(shè)計(jì)

按鍵作為單片機(jī)系統(tǒng)人機(jī)交互的輸入部分,有獨(dú)立式按鍵和行列式按鍵之分。獨(dú)立式按鍵占用單片機(jī)的IO口資源較多,不選用。本計(jì)算器項(xiàng)目中,需要輸入0-9的數(shù)字鍵以及代表各種運(yùn)算操作的按鍵,需要按鍵數(shù)量多,因此選用行列式鍵盤。行列式鍵盤通過對行線和列線的電平狀態(tài)的組合來判斷哪個(gè)鍵被按下,可以用較少的IO口得到較多的按鍵。在本設(shè)計(jì)中采用4×4的行列式按鍵。

(四)聲光提示模塊的設(shè)計(jì)

本設(shè)計(jì)中需要在按鍵按下時(shí)發(fā)出“嘀”提示音,而且在運(yùn)算結(jié)果溢出的時(shí)候發(fā)出聲光提示。溢出選用最常用的蜂鳴器和發(fā)光二極管作為聲光提示模塊。

二、計(jì)算器項(xiàng)目的仿真

在電路實(shí)際制作之前的仿真是單片機(jī)系統(tǒng)開發(fā)過程中一個(gè)非常重要的環(huán)節(jié),通過仿真能夠驗(yàn)證設(shè)計(jì)方案是否可行。本設(shè)計(jì)是一個(gè)單片機(jī)系統(tǒng),既有電路的仿真又有程序的仿真,因此選用Proteus軟件進(jìn)行系統(tǒng)仿真。

仿真軟件Proteus是英國Lab Center Electronics公司研制的EDA軟件。它不但和普通仿真軟件一樣能夠仿真模擬電路,最大的特色是能夠仿真單片機(jī)及外圍器件,能進(jìn)行代碼調(diào)試。

學(xué)生熟練掌握本軟件的使用,對完成單片機(jī)項(xiàng)目的設(shè)計(jì)開發(fā)有較大的促進(jìn)作用。

(一)仿真電路設(shè)計(jì)

1.單片機(jī)最小系統(tǒng)仿真電路設(shè)計(jì)

單片機(jī)的最小系統(tǒng)指單片機(jī)工作的、由最少的電路構(gòu)成的系統(tǒng),包括晶振電路和復(fù)位電路。晶振X1和兩個(gè)瓷片電容C1、C2構(gòu)成了單片機(jī)的時(shí)鐘電路。手動(dòng)復(fù)位按鍵、電解電容C3和電阻R2構(gòu)成單片機(jī)的上電復(fù)位和手動(dòng)復(fù)位電路。

2.顯示模塊仿真電路設(shè)計(jì)

數(shù)碼管的驅(qū)動(dòng)由斷碼驅(qū)動(dòng)和位選端驅(qū)動(dòng)構(gòu)成。單片機(jī)的P0口用于輸出數(shù)碼管的段碼。由于P0口是標(biāo)準(zhǔn)的雙向IO口,內(nèi)部沒有上拉電阻,因此P0口連了一個(gè)1K的排阻RP1。P2口的8個(gè)引腳用于控制8個(gè)數(shù)碼管的位選端,分別經(jīng)過Q2-Q9這8個(gè)三極管驅(qū)動(dòng)8位數(shù)碼管。

3.輸入模塊仿真電路設(shè)計(jì)

單片機(jī)的P1口連接一個(gè)4×4的行列式鍵盤。P1口的低4位作為行列式鍵盤的4條列線,高4位作為行列式鍵盤的4條行線。

4.聲光提示模塊仿真電路設(shè)計(jì)

聲光提示電路由一個(gè)發(fā)光二極管和一個(gè)蜂鳴器構(gòu)成。蜂鳴器由NPN型三極管Q1驅(qū)動(dòng)。當(dāng)系統(tǒng)上電時(shí)P3.6引腳為高電平,三極管截止,蜂鳴器不會誤動(dòng)作。當(dāng)需要蜂鳴器發(fā)出聲音時(shí)置P3.6引腳為低電平即可。發(fā)光二極管有P3.3引腳控制,低電平有效。

綜上各個(gè)模塊,此計(jì)算器系統(tǒng)完整的仿真電路如圖2所示:

(二)計(jì)算器程序設(shè)計(jì)

計(jì)算器項(xiàng)目的控制程序在Keil C軟件中完成。Keil 是一款針對51單片機(jī)內(nèi)核的集成編譯環(huán)境,具有很高的編譯效率。

1.程序設(shè)計(jì)思路

本程序主要完成3方面的任務(wù):掃描數(shù)碼管、掃描按鍵、處理按鍵;因此編制了兩個(gè)獨(dú)立的函數(shù)Display( )和KeyBoard( )完成掃描數(shù)碼管和掃描按鍵的功能。為了在按下不同的鍵值的時(shí)候完成不同的功能,使用了switch語句,這樣程序的結(jié)構(gòu)會比較清晰。

在主程序里面定義了以下幾個(gè)變量:

unsigned char Key,InputCnt,LastOpt。

unsigned long Result,InputData。

變量Key用于暫存當(dāng)前按下去的鍵值。

變量InputCnt用于存放輸入數(shù)字的個(gè)數(shù),當(dāng)輸入數(shù)字超過8個(gè)時(shí)就不能接收這個(gè)數(shù)字,并報(bào)警提示;

變量LastOpt用于存放前一次輸入的運(yùn)算類型。因?yàn)榘聪录?、減、乘、除中某種運(yùn)算的時(shí)候,計(jì)算器做的并不是當(dāng)前的這種運(yùn)算類型,而是前一次按下的運(yùn)算類型。

變量Result用于存放運(yùn)算的結(jié)果。由于計(jì)算器可以進(jìn)行連續(xù)的多次運(yùn)算,Result的值是會在每次運(yùn)算之后改變的。

變量InputData用于保存輸入的操作數(shù),并作按下某種運(yùn)算的按鍵后與Result的值進(jìn)行相應(yīng)的運(yùn)算,把結(jié)果保存到Result里面。

2.主程序設(shè)計(jì)

程序的流程圖如圖3所示。

系統(tǒng)上電后首先進(jìn)行系統(tǒng)初始化,對各個(gè)變量賦初值。然后調(diào)用按鍵函數(shù),判斷是否有鍵按下。若無按鍵按下則掃描數(shù)碼管,接下來再次掃描按鍵。

若有按鍵按下,則會出現(xiàn)3種情況。第一種情況,按下的為數(shù)字鍵“0-9”,而且輸入數(shù)字的位數(shù)InputCnt小于8的話,就把按下去的鍵值接收到變量InputData里面,更新一次顯示緩沖區(qū),讓數(shù)碼管顯示輸入的數(shù)字。如果InputCnt大于等于8,說明輸入數(shù)字的位數(shù)已經(jīng)達(dá)到最大不能再輸入了,并發(fā)出報(bào)警提示;第二種情況,按下的鍵為“加、減、乘、除、等于”鍵,則根據(jù)LastOpt的取值把變量Result和InputData的值進(jìn)行運(yùn)算,并把結(jié)果存放到Result里面。同時(shí)更新一次顯示緩沖區(qū),讓數(shù)碼管顯示運(yùn)算的結(jié)果;第三種情況,按下的鍵為清零鍵“C”,則給各個(gè)變量重新賦初值,顯示緩沖區(qū)清零,準(zhǔn)備開始下一次計(jì)算。

3.子程序分析

在程序中調(diào)用了幾個(gè)子函數(shù),這幾個(gè)子函數(shù)的邏輯關(guān)系如圖4所示。

函數(shù)原型: void FillDispBuf(ulong a)

函數(shù)功能: 把ulong a這個(gè)數(shù)處理后存入顯示緩沖區(qū)。若a沒有超過8位十進(jìn)制數(shù)的范圍則把它拆分后直接存入顯示緩沖區(qū)即全局?jǐn)?shù)組DispBuf[8];若a超過這個(gè)范圍則需要在數(shù)碼管顯示“Error”,因此需要把這幾個(gè)字形的段碼存入DispBuf[8]。

函數(shù)原型: uchar KeyBoard(void)

函數(shù)功能: 讀取4×4行列式鍵盤的鍵值。若有按鍵按下則返回0- 15之間的某個(gè)鍵值,若無按鍵按下則返回21。

函數(shù)原型: void Display(void)

函數(shù)功能: 掃描8位數(shù)碼管。全局?jǐn)?shù)組uchar DispBuf[8]為顯示緩沖區(qū)。本函數(shù)把數(shù)組DispBuf[8]里面的8個(gè)元素的數(shù)值在8個(gè)數(shù)碼管上顯示出來。

函數(shù)原型: void DelayMs(uint j)

函數(shù)功能: 延時(shí)N毫秒,參數(shù) j 表示需要延時(shí)的時(shí)間為j毫秒。

在實(shí)驗(yàn)的過程中,只要把幾個(gè)子函數(shù)的代碼及相應(yīng)功能告訴學(xué)生,學(xué)生就能在此基礎(chǔ)上進(jìn)行頂層代碼的編寫調(diào)試。如果學(xué)生時(shí)間充裕,也可自己編寫以上幾個(gè)子函數(shù)的代碼。

三、計(jì)算器實(shí)物的制作及調(diào)試

本項(xiàng)目的設(shè)計(jì)內(nèi)容在仿真軟件中驗(yàn)證通過之后,就是實(shí)物電路的制作。電路圖原理圖和PCB圖的設(shè)計(jì)在PROTEL99SE中完成。

本設(shè)計(jì)所需元件清單如表1所示。實(shí)驗(yàn)室為每個(gè)學(xué)生準(zhǔn)備一套對應(yīng)的元器件。

為了更好的讓學(xué)生掌握單片機(jī)系統(tǒng)開發(fā)的流程,后續(xù)的實(shí)驗(yàn)有3種方式可以進(jìn)行,每個(gè)學(xué)生可根據(jù)自己的實(shí)際情況選擇。

A:學(xué)生可根據(jù)原理圖和元件清單中的元器件,在萬用板上自己焊接這個(gè)電路。直到電路調(diào)試成功,并下載程序運(yùn)行。

B:學(xué)生可根據(jù)電路原理圖繪制PCB電路板,并在實(shí)驗(yàn)中完成電路板的轉(zhuǎn)印、腐蝕、鉆孔等操作,然后焊接元器件并調(diào)試運(yùn)行。

C:實(shí)驗(yàn)室通過專業(yè)的電路板工廠把“計(jì)算器項(xiàng)目”的PCB板加工出來。并且把此電路板及配套的元器件分發(fā)給學(xué)生焊接調(diào)試。統(tǒng)一生產(chǎn)出來的電路板及元器件套件如圖5所示。

最終學(xué)生都能制作出一個(gè)調(diào)試成功的實(shí)物計(jì)算器。

通過對單片機(jī)課程設(shè)計(jì)新實(shí)驗(yàn)項(xiàng)目的實(shí)施,改變了本課程的教學(xué)組織形式,激發(fā)了學(xué)生的興趣,增強(qiáng)了學(xué)生的動(dòng)手能力。學(xué)生在完成“計(jì)算器設(shè)計(jì)”項(xiàng)目的過程中掌握了單片機(jī)系統(tǒng)的設(shè)計(jì)方法以及調(diào)試技巧。實(shí)踐表明這樣的方式收到了良好的效果,具有較大推廣價(jià)值。

【參考文獻(xiàn)】

[1]代芬,王衛(wèi)星,鄧小玲,等.單片機(jī)綜合實(shí)驗(yàn)開發(fā)板設(shè)計(jì)[J].實(shí)驗(yàn)室研究與探索2010,29(8)

[2]林祥果.高職單片機(jī)課程設(shè)計(jì)與教學(xué)實(shí)踐[J].寧波職業(yè)技術(shù)學(xué)院學(xué)報(bào),2014,18(01)

[3]潘談.基于STC89C58芯片的小型GPS船舶航跡儀的設(shè)計(jì)[J].船舶科學(xué)技術(shù),20=14,36(12)

[4]袁芳,江偉,陳冬等.籃球比賽場地計(jì)時(shí)計(jì)分系統(tǒng)的設(shè)計(jì)[J].實(shí)驗(yàn)室研究與探索,2014,33(11)

[5]王海燕,楊艷華.Proteus和Keil軟件在單片機(jī)實(shí)驗(yàn)教學(xué)中的應(yīng)用[J].實(shí)驗(yàn)室研究與探索,201,31(5)

[6]包建華,張興奎,丁啟勝.模塊化單片機(jī)實(shí)驗(yàn)系統(tǒng)的研制[J].電氣電子教學(xué)學(xué)報(bào),2010,32(6)

[7]丁春霞.基于51單片機(jī)的LCD數(shù)字鐘設(shè)計(jì)與制作[J].中國科技信息,2013(18)

猜你喜歡
實(shí)驗(yàn)課
密林深處——“從寫生到創(chuàng)作”的水墨實(shí)驗(yàn)課
有趣的實(shí)驗(yàn)
高中化學(xué)實(shí)驗(yàn)課常見氣體的制備與實(shí)驗(yàn)設(shè)計(jì)
“自由”的實(shí)驗(yàn)課
上實(shí)驗(yàn)課
高中化學(xué)實(shí)驗(yàn)課改進(jìn)和實(shí)踐及其效果評價(jià)
在解析幾何教學(xué)中引入數(shù)學(xué)實(shí)驗(yàn)課的理論探討
創(chuàng)新策略在高中生物實(shí)驗(yàn)課中的應(yīng)用
散文百家(2014年11期)2014-08-21 07:17:12
關(guān)于病理學(xué)多媒體及實(shí)驗(yàn)課教學(xué)的實(shí)踐與思考
提高微生物學(xué)實(shí)驗(yàn)課教學(xué)效果的探索與分析
河南科技(2014年14期)2014-02-27 14:12:22
仁寿县| 梅州市| 满洲里市| 琼结县| 吉木乃县| 如皋市| 乌拉特后旗| 梓潼县| 凤城市| 武功县| 桦甸市| 龙陵县| 连城县| 共和县| 修水县| 阿拉尔市| 古丈县| 水富县| 商都县| 衡阳县| 当雄县| 张掖市| 宝鸡市| 乐都县| 和硕县| 资讯 | 辽阳县| 祁门县| 资溪县| 乌兰察布市| 永定县| 双辽市| 临沧市| 乐平市| 清苑县| 巫溪县| 吉安县| 漾濞| 丰镇市| 陵川县| 明溪县|