資源描述:
《單片機(jī)原理與接口技術(shù) 應(yīng)用型高等教育計(jì)算機(jī)類(lèi) 李明 畢萬(wàn)新 技能訓(xùn)練技能訓(xùn)練5 2源程序.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、技能訓(xùn)練5-2硬件實(shí)驗(yàn):一、訓(xùn)練題目:中斷計(jì)數(shù)二、訓(xùn)練目的:繼續(xù)鞏固中斷知識(shí),進(jìn)一步熟悉數(shù)碼管和顯示編程。培養(yǎng)動(dòng)手能力。三、訓(xùn)練任務(wù):外中斷一次,計(jì)數(shù)值加1,將結(jié)果在2位數(shù)碼管上顯示出來(lái),以十進(jìn)制的形式顯示。四、訓(xùn)練準(zhǔn)備:設(shè)計(jì)2位數(shù)碼管顯示電路原理圖。設(shè)計(jì)外中斷輸入電路,確定中斷源(參考技能訓(xùn)練5-2圖1)。設(shè)計(jì)中斷、計(jì)數(shù)和顯示程序。參考電路:技能訓(xùn)練5-2圖1參考程序:;中斷計(jì)數(shù),每次中斷,計(jì)數(shù)一次,并以十進(jìn)制形式顯示,2位數(shù);外中斷0中斷,下降沿觸發(fā)CONTEQU28H;計(jì)數(shù)單元DISPHEQUP0;顯示高位DISPLEQUP2;顯示低位BCDHEQU29H;BCD碼高位BCDMEQU2A
2、H;BCD碼中位BCDLEQU2BH;BCD碼低位ORG0000HLJMPSTARTORG0003HLJMPINTS0ORG0100HSTART:MOVSP,#2FH;堆棧從30H開(kāi)始MOVIE,#10000001B;允許外部中斷MOVTCON,#00000001B;下降沿觸發(fā)MOVP0,#0FFH;滅MOVP2,#0FFHMOVCONT,#0;計(jì)數(shù)從0開(kāi)始LCALLB2BCD;調(diào)用轉(zhuǎn)換LCALLDISPLAY;調(diào)用顯示L0:NOPSJMPL0;等待中斷;------------以下外中斷0服務(wù)-------------------------------INTS0:INCCONT;計(jì)數(shù)單元加
3、1LCALLB2BCD;調(diào)用轉(zhuǎn)換LCALLDISPLAY;調(diào)用顯示RETI;中斷返回;------------以下轉(zhuǎn)換子程序--------------------------------B2BCD:MOVA,CONT;取計(jì)數(shù)值MOVB,#100;除數(shù)DIVAB;A/BMOVBCDH,A;保存百位MOVA,#10;除數(shù)XCHA,B;交換DIVAB;A/BMOVBCDM,A;保存十位MOVBCDL,B;保存?zhèn)€位RET;返回;-------------以下顯示子程序-------------------------------DISPLAY:MOVA,BCDM;取十位LCALLSEG7;查表得到字
4、型碼MOVDISPH,A;十位數(shù)送顯示MOVA,BCDL;取個(gè)位數(shù)LCALLSEG7;查表得到字型碼MOVDISPL,A;個(gè)位數(shù)送顯示RET;-----------以下查表子程序---------------------------------SEG7:INCAMOVCA,@A+PCRETDB0C0H,0F9H,0A4H,0B0H,99H;0,1,2,3,4DB92H,82H,0F8H,80H,90H;5,6,7,8,9DB88H,83H,0C6H,0A1H,86H,8EH;A~F的共陽(yáng)極顯示碼END五、訓(xùn)練步驟:參照以前硬件實(shí)驗(yàn)的操作步驟進(jìn)行,相同部分以后不再羅列。強(qiáng)調(diào)以下幾點(diǎn):1、注意安全
5、。2、注意所用的LED數(shù)碼管的極性,如果是共陰極的要修改程序。3、這次實(shí)驗(yàn)主要就是要研究中斷的應(yīng)用,然后就是數(shù)碼管顯示程序的編寫(xiě)方法。試驗(yàn)結(jié)果要能夠按照要求顯示,每一次中斷顯示的數(shù)增加一。4、提交實(shí)驗(yàn)報(bào)告。六、說(shuō)明光盤(pán)提供Proteus仿真文件,運(yùn)行仿真文件夾第5章中斷計(jì)數(shù)中斷計(jì)數(shù).DSN,觀察運(yùn)行結(jié)果,并進(jìn)一步分析源程序。由于只顯示2位數(shù),超過(guò)99最高位就沒(méi)有了,只顯示末2位。思考如下問(wèn)題:1、如果用的是共陽(yáng)極數(shù)碼管,應(yīng)該如何修改程序?2、如果要顯示3位數(shù),應(yīng)該如何修改電路和程序?3、如果中斷采用低電平觸發(fā),會(huì)出現(xiàn)什么問(wèn)題?如果有了答案,要寫(xiě)在實(shí)驗(yàn)報(bào)告中。如果哪一題目還沒(méi)有答案,你就有
6、事情可干了,好好研究一下吧。