微機(jī)原理課程設(shè)計(jì)

微機(jī)原理課程設(shè)計(jì)

ID:15591135

大?。?44.82 KB

頁(yè)數(shù):21頁(yè)

時(shí)間:2018-08-04

上傳者:xinshengwencai
微機(jī)原理課程設(shè)計(jì) _第1頁(yè)
微機(jī)原理課程設(shè)計(jì) _第2頁(yè)
微機(jī)原理課程設(shè)計(jì) _第3頁(yè)
微機(jī)原理課程設(shè)計(jì) _第4頁(yè)
微機(jī)原理課程設(shè)計(jì) _第5頁(yè)
資源描述:

《微機(jī)原理課程設(shè)計(jì) 》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)

微機(jī)原理課程設(shè)計(jì)課題:家用風(fēng)扇控制器設(shè)計(jì)姓名:學(xué)號(hào):專業(yè)班級(jí):指導(dǎo)教師:李志民設(shè)計(jì)時(shí)間:2013-12 目錄一、設(shè)計(jì)目標(biāo)...................................................................................3二、設(shè)計(jì)要求……………………………………………………..3三、總體設(shè)計(jì)...................................................................................3四、硬件設(shè)計(jì)...................................................................................4五、軟件設(shè)計(jì)...................................................................................6六、程序清單...................................................................................10七、遇到的問題及解決方法...........................................................15 八、心得體會(huì)...................................................................................16九、元件清單...................................................................................16十、參考文獻(xiàn)...................................................................................17家用電扇控制實(shí)驗(yàn)與驅(qū)動(dòng)電路設(shè)計(jì)一、設(shè)計(jì)目標(biāo)設(shè)計(jì)并制作一個(gè)模擬家用風(fēng)扇控制器。二、設(shè)計(jì)要求(1)、分別用C語(yǔ)言或匯編語(yǔ)言或VC++編程完成硬件接口功能設(shè)計(jì);(2)、基于80x86微機(jī)接口電路控制器設(shè)計(jì)與調(diào)試;(3)、驅(qū)動(dòng)電路(主回路)設(shè)計(jì);(4)、控制器功能要求:設(shè)置三個(gè)功能分別為風(fēng)速、類型和停止開關(guān),LED指示燈六個(gè),指示風(fēng)速?gòu)?qiáng)、中、弱,類型為睡眠、自然和正常。指標(biāo)如下:a).電扇處于停轉(zhuǎn)狀態(tài)時(shí),所有指示燈不亮,只有按下“風(fēng)速”鍵時(shí),才會(huì)響應(yīng),進(jìn)入起始工作狀態(tài);電扇在任何狀態(tài),只要按停止鍵,則進(jìn)入停轉(zhuǎn)狀態(tài)。b).處于工作狀態(tài)時(shí),有: 初始狀態(tài)為:風(fēng)速-“弱”,類型-“正常”;按“風(fēng)速”鍵,其狀態(tài)由“弱”?“中”?“強(qiáng)”?“弱”……往復(fù)循環(huán)改變,每按一下按鍵改變一次;按“類型”鍵,其狀態(tài)由“正?!?“睡眠”?“自然”?“正?!薄鶑?fù)循環(huán)改變;c).風(fēng)速的弱、中、強(qiáng)對(duì)應(yīng)于電扇的轉(zhuǎn)動(dòng)由慢到快。d).類型的不同選擇,分別為:正常電扇連續(xù)運(yùn)轉(zhuǎn);自然電扇模擬自然風(fēng),即轉(zhuǎn)4s,停8s;睡眠電扇慢轉(zhuǎn),產(chǎn)生輕柔的微風(fēng),運(yùn)轉(zhuǎn)8s停轉(zhuǎn)8s;e).按照風(fēng)速與類型的設(shè)置輸出相應(yīng)的控制信號(hào)。三、總體設(shè)計(jì)本次課程設(shè)計(jì)的主要任務(wù)基于8086以及各種接口芯片結(jié)合匯編語(yǔ)言實(shí)現(xiàn)對(duì)家用電扇的控制器模擬。我主要運(yùn)用了8086CPU結(jié)合匯編語(yǔ)言編寫的軟件實(shí)現(xiàn)各種信號(hào)的處理和轉(zhuǎn)換,得到想要的控制信號(hào),并用接口芯片8255A實(shí)現(xiàn)信號(hào)的輸入輸出。在仿真中通過開關(guān)實(shí)現(xiàn)各種控制信號(hào)的輸入,再通過8255A的端口進(jìn)行讀取,再由8086通過軟件的對(duì)輸入信號(hào)的進(jìn)行辨別進(jìn)而轉(zhuǎn)入到相應(yīng)的功能子程序中以實(shí)現(xiàn)各種功能。在各種功能背后,通過8086驅(qū)動(dòng)相應(yīng)的功能的硬件設(shè)備實(shí)現(xiàn)各種功能的切換。具體設(shè)計(jì),我采用8255A接收開關(guān)信號(hào),輸出LED燈亮滅信號(hào),控制電機(jī)轉(zhuǎn)動(dòng)信號(hào)。8253主要實(shí)現(xiàn)風(fēng)種的控制信號(hào)。DA0832實(shí)現(xiàn)數(shù)模轉(zhuǎn)換。硬件設(shè)計(jì)框圖如圖1所示。DAC0832 8086CPU82538255A信號(hào)信號(hào)讀取控制控制信號(hào)按鍵開關(guān)直流電機(jī)信號(hào)四、硬件設(shè)計(jì)4.1硬件設(shè)計(jì)基本概要 根據(jù)設(shè)計(jì)要求和內(nèi)容,用可編程并行接口芯片8255A低四位接收3個(gè)按鍵(分別表示風(fēng)速、類型、停止)的狀態(tài)以啟動(dòng)電扇或設(shè)置相應(yīng)的工作狀態(tài)。這樣就需要3個(gè)按鍵,因此可以用三個(gè)按鈕接到8255口。這樣可以直接從8255的口讀取按鍵的狀態(tài),從而執(zhí)行相應(yīng)的操作。要通過一個(gè)按鍵來控制2個(gè)以上的狀態(tài),可以通過按鍵的次數(shù)來控制第幾種狀態(tài),比如風(fēng)速有三種狀態(tài)(弱、中、強(qiáng)),可以用按鍵1次控制弱,按鍵2次控制中,按鍵3次控制強(qiáng),這樣就可以實(shí)現(xiàn)一鍵控制多鐘狀態(tài)了??刂破鞯闹甘緹簦蚁胧褂昧鶄€(gè)LED燈進(jìn)行顯示,分別顯示不同風(fēng)速、類型等6個(gè)指示信號(hào)。風(fēng)種時(shí)間控制可由可編程計(jì)數(shù)器/定時(shí)器8253來實(shí)現(xiàn)??蛇x用由8253工作方式3,在這種方式下,當(dāng)CPU輸入控制字后,輸出將為高,在寫入計(jì)數(shù)值后計(jì)數(shù)器將立即自動(dòng)對(duì)輸入時(shí)鐘CLK計(jì)數(shù),計(jì)數(shù)器減為1時(shí),輸出將變低,方式2時(shí)8253不可用重新設(shè)置計(jì)數(shù)值就能連續(xù)工作,保證了定時(shí)的精確。4.28255A設(shè)計(jì)8255A的A端口工作在方式0的基本輸入方式作為控制信號(hào)的輸入,B端工作在方式0的基本輸出方式作為控制信號(hào)輸出,C端工作在方式0的基本輸出方式作為控制信號(hào)的輸出。PA低三位分別接開關(guān),風(fēng)速,類型。PB低三位分別接弱,中,強(qiáng)LED燈。PC低三位分別接正常,自然,睡眠LED燈。4.38253設(shè)計(jì)首先利用通道0對(duì)時(shí)鐘進(jìn)行分頻,已獲得可較好利用的時(shí)鐘,得到周期為四秒的方波為后面能自然和睡眠的狀態(tài)產(chǎn)生八秒高電平四秒低電平以及周期為十六秒的方波做準(zhǔn)備。使用通道2用來產(chǎn)生類型風(fēng)的狀態(tài)信號(hào),在自然風(fēng)類型時(shí),讓其工作在方式2產(chǎn)生八秒高電平四秒低電平,當(dāng)高電平時(shí)驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng),低電平則電機(jī)停止轉(zhuǎn)動(dòng),以實(shí)現(xiàn)自然風(fēng)的模擬;在睡眠的類型時(shí),通道2工作在方式3產(chǎn)生周期為十六秒的方波,當(dāng)高電平時(shí)驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng),低電平則停止轉(zhuǎn)動(dòng),以實(shí)現(xiàn)睡眠風(fēng)的模擬。 4.3DAC0832設(shè)計(jì)通過對(duì)PB低三位分別接DI0,DI3,DI7,使DAC0832產(chǎn)生不同的電壓用來控制電機(jī)的轉(zhuǎn)速。8253的OUT0,OUT1和PB0通過譯碼電路接入DAC0832片選端實(shí)現(xiàn)類型的轉(zhuǎn)換。4.5風(fēng)扇控制器系統(tǒng)硬件原理圖 五、軟件設(shè)計(jì)硬件的設(shè)計(jì)完成后,運(yùn)用匯編語(yǔ)言編寫軟件部分通過8086CPU實(shí)現(xiàn)各種信號(hào)的輸入/輸出以及相關(guān)信號(hào)的處理,從而控制電機(jī)的各種轉(zhuǎn)態(tài)的轉(zhuǎn)換控制。Y開始初始化8255A,8253風(fēng)速鍵是否按下初始化風(fēng)速:弱,類型:正常風(fēng)扇運(yùn)行子模塊風(fēng)速鍵是否按下下類型鍵是否按下停止鍵是否按下風(fēng)扇控制子模塊類型控制子模塊停止子模塊YNYNY 5.1按鍵判斷控制模塊三個(gè)開關(guān)接PA低三位,開關(guān)信號(hào)為01H,風(fēng)速信號(hào)為02H,類型信號(hào)為04H。開關(guān)模塊判斷開關(guān)狀態(tài)2?4?1?風(fēng)速控制模塊類型控制模塊停止模塊返回 5.2風(fēng)速模塊切換流程在風(fēng)速切換中,在主函數(shù)中定義一個(gè)變量KEY1,初始化為0,若按下風(fēng)速鍵,KEY1加1,再除以3,取余,0,1,2分別對(duì)應(yīng)弱,中,強(qiáng)。風(fēng)速模塊KEY1除3取余1?2?弱風(fēng)模塊中風(fēng)模塊強(qiáng)風(fēng)模塊0? 5.3停止控制模塊停止控制模塊PB口清零,燈全滅電機(jī)停止子程序返回主程序開頭start停止?fàn)顟B(tài)主要實(shí)現(xiàn)風(fēng)扇暫時(shí)性的停止運(yùn)行,只有在風(fēng)速鍵按下才能繼續(xù)運(yùn)行。此模塊結(jié)束后返回start,在start會(huì)對(duì)已運(yùn)行的風(fēng)扇停止后所有狀態(tài)進(jìn)行重新賦值,以保證再次運(yùn)行后能按初始狀態(tài)運(yùn)行。六、程序清單DATASEGMENTIOY0EQU0C400HIOY1EQU0C440H MY8255_AEQUIOY0+00H*4MY8255_BEQUIOY0+01H*4MY8255_CEQUIOY0+02H*4MY8255_MODEEQUIOY0+03H*4MY8253_COUNT0EQUIOY1+00H*4MY8253_COUNT1EQUIOY1+01H*4MY8253_COUNT2EQUIOY1+02H*4MY8253_MODEEQUIOY1+03H*4KEY_1DB00HKEY_2DB00HDATAENDSSTACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATAMAINPROCNEARSTART:MOVAX,DATAMOVDS,AXMOVDX,MY8253_MODEMOVAL,00110111BOUTDX,AL MOVDX,MY8253_COUNT0MOVAL,03HOUTDX,ALMOVAL,00HOUTDX,ALMOVDX,MY8253_MODEMOVAL,01110111BOUTDX,ALMOVDX,MY8253_COUNT1MOVAL,40HOUTDX,ALMOVAL,00HOUTDX,ALMOVDX,MY8255_MODEMOVAL,90HOUTDX,ALMOVDX,MY8255_BMOVAL,0FFHOUTDX,ALMOVDX,MY8255_COUTDX,ALSTARTUP:MOVDX,MY8255_A INAL,DXTESTAL,01HJNZSTARTUPANDKEY_1,00HANDKEY_2,00HCT:CALLCHECKMOVDX,MY8255_AINAL,DXTESTAL,01HJZL1JMPCTL1:MOVDX,MY8255_BMOVAL,0FFHOUTDX,ALMOVDX,MY8255_COUTDX,ALCALLKEY_DALLYCALLKEY_DALLYCALLKEY_DALLYJMPSTARTUPQUIT:MOVAX,4C00HINT21H MAINENDPCHECKPROCNEARPUSHDXPUSHAXMOVDX,MY8255_AINAL,DXTESTAL,02HCALLKEY_DALLYCALLKEY_DALLYCALLKEY_DALLYCALLKEY_DALLYJNZL3INCKEY_1L3:CALLSPEEDTESTAL,04HJNZL4CALLKEY_DALLYCALLKEY_DALLYCALLKEY_DALLYINCKEY_2L4:CALLKINDPOPAX POPDXRETCHECKENDPSPEEDPROCNEARPUSHAXPUSHBXPUSHDXMOVAL,KEY_1MOVAH,0MOVBL,3DIVBLCMPAH,0JZSPEED0CMPAH,1JZSPEED1CMPAH,2JZSPEED2SPEED0:MOVDX,MY8255_BMOVAL,0FEHOUTDX,ALJMPCT0SPEED1:MOVDX,MY8255_B MOVAL,0FDHOUTDX,ALJMPCT0SPEED2:MOVDX,MY8255_BMOVAL,0FBHOUTDX,ALJMPCT0CT0:POPDXPOPBXPOPAXRETSPEEDENDPKINDPROCNEARPUSHAXPUSHBXPUSHDXMOVAL,KEY_2MOVAH,0MOVBL,3DIVBLCMPAH,0JZKIND0 CMPAH,1JZKIND1CMPAH,2JZKIND2KIND0:MOVDX,MY8255_CMOVAL,0FEHOUTDX,ALJMPCT1KIND1:MOVDX,MY8255_CMOVAL,0FDHOUTDX,ALJMPCT1KIND2:MOVDX,MY8255_CMOVAL,0FBHOUTDX,ALJMPCT1CT1:POPDXPOPBXPOPAXRETKINDENDPKEY_DALLYPROCNEAR PUSHCXMOVCX,3000HK_NEXT:NOPNOPLOOPK_NEXTPOPCXRETKEY_DALLYENDPCODEENDSENDSTART七、遇到的問題及解決方法在這次課程設(shè)計(jì)中,遇到了各種問題。因?yàn)橐郧暗幕咎∪?,剛開始設(shè)計(jì)寫程序的兩天,遇到問題后往往是瞪著屏幕毫無辦法,常常在一個(gè)小問題上一卡就是三四個(gè)小時(shí),到后來漸漸學(xué)會(huì)了一些解決問題的思路和辦法,節(jié)奏才漸漸加快。邏輯問題。寫類型控制子模塊的時(shí)候,已經(jīng)根據(jù)流程圖把程序?qū)懞?,里面的子模塊也以測(cè)試過沒有問題,流程圖邏輯也應(yīng)該沒問題,但每次運(yùn)行在睡眠風(fēng)狀態(tài)下時(shí),電機(jī)轉(zhuǎn)八秒,停兩秒后自動(dòng)轉(zhuǎn)到自然風(fēng)模塊。想過很多種可能,開關(guān)問題,LED燈問題等等,最后一條一條照著程序?qū)懥鞒虉D的時(shí)候,終于發(fā)現(xiàn)可能是最后RET沒起作用,導(dǎo)致程序執(zhí)行完無法返回check,直接執(zhí)行下一條指令。 還有就是很多新手都會(huì)遇到的問題,我第一次寫的時(shí)候,一開始就寫了一大段程序,然后什么結(jié)果都出不來,調(diào)試的時(shí)候根本無從調(diào)起,經(jīng)過同學(xué)指點(diǎn)才開始從一個(gè)小功能開始寫程序,先寫一個(gè)燈亮然后兩個(gè)然后循環(huán),再往進(jìn)添加其他功能。并且這樣寫會(huì)不停的給自己成就感,讓自己堅(jiān)持做完,否則很容易在遇到無從下手的問題時(shí)放棄。所以再大的程序也是要腦子里先有個(gè)大框架然后一個(gè)個(gè)小功能實(shí)現(xiàn)的。在后來遇到錯(cuò)誤時(shí),我一般都會(huì)先過一遍程序查一下有沒有能看出來的錯(cuò)誤,然后該段程序的開頭開始檢測(cè),通過加LED檢測(cè)程序運(yùn)行到了哪一行,從哪一行開始出錯(cuò),有些直接看不出錯(cuò)誤的地方通過加DELAY使運(yùn)行變慢,方便看到仿真結(jié)果,也可以使用proteus里面的幀進(jìn),一步一步看效果。八、心得體會(huì)通過此次的課程設(shè)計(jì)任務(wù),我加深理解了匯編語(yǔ)言以及各接口芯片的使用方法,在實(shí)踐中體會(huì)到各芯片的工作的狀態(tài)及使用方法。以前學(xué)習(xí)過8255,8253芯片的相關(guān)內(nèi)容,通過這次課程設(shè)計(jì),通過設(shè)計(jì),看書,終于有了比較深刻地了解,并且加深對(duì)匯編程序結(jié)構(gòu),指令,調(diào)用等基礎(chǔ)知識(shí)的認(rèn)識(shí)。在實(shí)踐中充分利用所學(xué)知識(shí)結(jié)合實(shí)際情況作出符合要求的設(shè)計(jì)。在具體的調(diào)試過程中遇到了很多問題,自己通過查找各方面資料解決了這些問題。在這我學(xué)到了部分proteus仿真中及硬件調(diào)試方面常出現(xiàn)的問題及解決方法。而在軟件設(shè)計(jì)方面我也學(xué)到常見邏輯錯(cuò)誤及其解決方法。能在實(shí)踐中磨礪自己的意志以及鍛煉自己的動(dòng)手操作能力,提升自己獨(dú)立完成小型系統(tǒng)的設(shè)計(jì)任務(wù)能力。為以后在大型系統(tǒng)設(shè)計(jì)中能奠定一定的基礎(chǔ)知識(shí)及實(shí)際操作能力,并為自己積累了許多寶貴的經(jīng)驗(yàn)教訓(xùn)。下面簡(jiǎn)要的介紹一下我在這次課程設(shè)計(jì)中主通過這次短暫的課程設(shè)計(jì),不僅使我加深了對(duì)接口程序設(shè)計(jì)的認(rèn)識(shí),對(duì)接口各部件的工作原理也有了進(jìn)一步的了解,也增強(qiáng)了分析故障以及獨(dú)立處理問題的能力.九、元件清單.元件數(shù)量 8255A18253174LS13817411174LS324NOT7LED-RED6RES874LS2733DAC08321MOTOR180861十、參考文獻(xiàn)[1]周荷琴.微型計(jì)算機(jī)原理與接口技術(shù).合肥:中國(guó)科學(xué)技術(shù)大學(xué)出版社,2004.12.

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。
大家都在看
近期熱門
關(guān)閉