分支程序設(shè)計(jì)實(shí)驗(yàn)_第1頁(yè)
分支程序設(shè)計(jì)實(shí)驗(yàn)_第2頁(yè)
分支程序設(shè)計(jì)實(shí)驗(yàn)_第3頁(yè)
分支程序設(shè)計(jì)實(shí)驗(yàn)_第4頁(yè)
分支程序設(shè)計(jì)實(shí)驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《單片機(jī)實(shí)驗(yàn)》報(bào)告實(shí)驗(yàn)名稱分支程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)教師劉冬生專業(yè)班級(jí)電子1103班姓名XXXXXX學(xué)號(hào)XXXXXXXXXXX聯(lián)系方式XXXXXXXXXXX一、任務(wù)要求熟練掌握KeilC環(huán)境下匯編語(yǔ)言程序的調(diào)試方法,加深對(duì)匯編語(yǔ)言指令、機(jī)器碼、尋址方式等基本內(nèi)容的理解,掌握分支程序和簡(jiǎn)單程序的設(shè)計(jì)與調(diào)試方法,了解并行IO口的使用1.設(shè)有8bits符號(hào)數(shù)X存于外部RAM單元,按以下方式計(jì)算后的結(jié)果Y也存于外部RAM單元,請(qǐng)按要求編寫程序。2.利用51系列單片機(jī)設(shè)計(jì)一個(gè)24小時(shí)制電子時(shí)鐘,電子時(shí)鐘的時(shí)、分、秒數(shù)值分別通過P0、P1、P2端口輸出(以壓縮BCD碼的形式)。P3.0為低電平時(shí)開始計(jì)時(shí),為高電平時(shí)停止計(jì)時(shí)。提高部分(選做):a.實(shí)現(xiàn)4位十進(jìn)制加、減1計(jì)數(shù),千位、百位由P1口輸出;十位、個(gè)位由P2口輸出。利用P3.7狀態(tài)選擇加、減計(jì)數(shù)方式。b.利用P3口低四位狀態(tài)控制開始和停止計(jì)數(shù),控制方式自定。思考題:1.實(shí)現(xiàn)多分支結(jié)構(gòu)程序的主要方法有哪些?舉例說明。2.在編程上,十進(jìn)制加1計(jì)數(shù)器與十六進(jìn)制加1計(jì)數(shù)器的區(qū)別是什么?怎樣用十進(jìn)制加法指令實(shí)現(xiàn)減1計(jì)數(shù)?二、設(shè)計(jì)思路1.分段函數(shù)設(shè)計(jì)

第一個(gè)任務(wù)相當(dāng)于一個(gè)分段函數(shù)程序,根據(jù)變量X的值所處的區(qū)間進(jìn)行相應(yīng)的計(jì)算。可利用比較轉(zhuǎn)移指令CJNE來判斷X是否等于臨界值20、40,若不等,再根據(jù)執(zhí)行CJNE指令后的進(jìn)位位CY的值來判斷X與臨界值的的大小關(guān)系,易知CY=0則X大于臨界值,CY=1則X小于臨界值;如此,再進(jìn)行相應(yīng)的計(jì)算。另外若乘方運(yùn)算結(jié)果大于255,高八位與低八位應(yīng)分開存儲(chǔ);本次除法采用右移一位來處理,未考慮余數(shù)。2.

24小時(shí)制時(shí)鐘程序

首先構(gòu)建一個(gè)三重循環(huán)實(shí)現(xiàn)“一秒延時(shí)”,循環(huán)體利用NOP指令(單字節(jié)指令,1μs)經(jīng)多次循環(huán)達(dá)到延時(shí)一秒的效果。再利用已經(jīng)構(gòu)建好的“一秒延時(shí)”部分,設(shè)計(jì)計(jì)時(shí)系統(tǒng):秒(0-59)、分(0-59)、時(shí)(0-23)。需要注意的是,在小時(shí)、分、秒達(dá)到59時(shí),下一次應(yīng)該為零。程序運(yùn)行時(shí)修改P3.0的值可以實(shí)現(xiàn)暫停和繼續(xù)的功能。三、資源分配1.分段函數(shù)

假設(shè)該8位無符號(hào)數(shù)的地址2000H分配給它,把片外地址2001H和2002H分配給經(jīng)分段函數(shù)計(jì)算得到的結(jié)果Y。按位取反計(jì)算結(jié)果存于2001H單元,乘方計(jì)算中結(jié)果的高、低八位分開存儲(chǔ)于2001H-2002H單元,除法運(yùn)算結(jié)果放在2001H中。寄存器A,B存放在乘除運(yùn)算中所得的中間結(jié)果。

2.二十四小時(shí)制時(shí)鐘

工作寄存器R0、R1、R2分別用于秒、分、時(shí)循環(huán)次數(shù)的計(jì)數(shù),R5-R7用于“一秒延時(shí)”循環(huán)中的循環(huán)次數(shù)設(shè)定。秒、分、時(shí)數(shù)值分別由P2、P1、P0端口輸出。四、流程圖1.分段函數(shù)開始開始將C置零取出外部數(shù)據(jù)是否大于20取反并存儲(chǔ)結(jié)果是否小于40平方并存儲(chǔ)結(jié)果除以2并存儲(chǔ)結(jié)果結(jié)束否否是是

2.二十四小時(shí)制時(shí)鐘開始開始P3.0=1?等待端口初始化,輸出端口置0;計(jì)數(shù)R0、R1、R2置1延時(shí)1秒,P2←R2,R2加1,并轉(zhuǎn)化為十進(jìn)制R6=60H?R2置1,P2置0,P1←R1R1加1,并轉(zhuǎn)化為十進(jìn)制R1=60H?R2、R1置1,P2、P1置0,P0←R0,R0加1,并轉(zhuǎn)化為十進(jìn)制R0=24H?是否否否否是是是五、源代碼(含文件頭說明、資源使用說明、語(yǔ)句行注釋)1.分段函數(shù)

clrc ; 清零 movdptr,#2000h ; 取外部數(shù)據(jù) movxa,@dptr// mova,#1h cjnea,#14h,cmp20 ; 與20比較大小qufan: cpla ; incdptr movx@dptr,a sjmpjieshucmp20: jcqufan cjnea,#28h,cmp40 ; 與40比較大小sq: movr7,a ; 平方 movb,r7 mulab incdptr movx@dptr,a mova,b incdptr movx@dptr,a sjmpjieshucmp40: jncsqchu2: rra ; 除以2(右移一位) incdptr movx@dptr,a sjmpjieshujieshu: nop end

2.二十四小時(shí)制時(shí)鐘start: movr0,#01h ; 寄存器初始化 movr1,#01h movr2,#01h movp0,#00h ; 端口初始化 movp1,#00h movp2,#00h mova,#0// setbp3.0 ; 設(shè)置、判斷p3.0 clrp3.0 jbp3.0 ,$onesec: movr7,#10 ; 1秒延時(shí)del1: movr6,#200 nopdel2: movr5,#248del3: djnzr5,del3 djnzr6,del2 djnzr7,del1movp2,r2 ; 把秒數(shù)送入p2 mova,r2 adda,#01h daa movr2,a cjner2,#60h,onesec ; 判斷r2是否計(jì)到60,跳轉(zhuǎn)onemin: movr2,#01h ; 把r2,p2初始化,開始分鐘計(jì)數(shù) movp2,#00h movp1,r1 mova,r1 adda,#01h daa movr1,a cjner1,#60h,onesec ; 判斷r1是否計(jì)到60,跳轉(zhuǎn)hour: movr2,#01h ; 把r2,p2,r1,p1初始化,開始小時(shí)計(jì)數(shù) movp2,#00h movr1,#01h movp1,#00h movp0,r0 mova,r0 adda,#01h daa movr0,a cjner0,#24h,onesec ; 判斷r0是否計(jì)到24,跳轉(zhuǎn) sjmpstart end六、程序測(cè)試方法與結(jié)果、軟件性能分析1.分段函數(shù)X=01HX=1EHX=31H功能分析:該程序可正常執(zhí)行要求的3項(xiàng)功能2.二十四小時(shí)制時(shí)鐘功能分析:該程序運(yùn)行后可按正確的二十四小時(shí)制時(shí)鐘進(jìn)行計(jì)時(shí),程序功能完整可靠?!舅伎碱}】

●實(shí)現(xiàn)多分支結(jié)構(gòu)程序的主要方法有哪些?舉例說明。

答:一是利用條件轉(zhuǎn)移指令實(shí)現(xiàn),如DJNZ,JNC等等,二是利用分支表來實(shí)現(xiàn),如分支地址表、轉(zhuǎn)移指令表、地址偏移量表。

●在編程上,十進(jìn)制加1計(jì)數(shù)器與十六進(jìn)制加1計(jì)數(shù)器的區(qū)別是什么?怎樣用十進(jìn)制加法指令實(shí)現(xiàn)減1計(jì)數(shù)?答:十進(jìn)制加一后需要在計(jì)算結(jié)果的基礎(chǔ)上進(jìn)行修正,運(yùn)用DA指令,而十六進(jìn)制加一指令所得結(jié)果即為最終結(jié)果,無需進(jìn)行修正。

用十進(jìn)制加法指令實(shí)現(xiàn)減1計(jì)數(shù),可通過以下代碼實(shí)現(xiàn):

ADD

A

,

#63H

DA

A

其中專業(yè)理論知識(shí)內(nèi)容包括:保安理論知識(shí)、消防業(yè)務(wù)知識(shí)、職業(yè)道德、法律常識(shí)、保安禮儀、救護(hù)知識(shí)。作技能訓(xùn)練內(nèi)容包括:崗位操作指引、勤務(wù)技能、消防技能、軍事技能。二.培訓(xùn)的及要求培訓(xùn)目的安全生產(chǎn)目標(biāo)責(zé)任書為了進(jìn)一步落實(shí)安全生產(chǎn)責(zé)任制,做到“責(zé)、權(quán)、利”相結(jié)合,根據(jù)我公司2015年度安全生產(chǎn)目標(biāo)的內(nèi)容,現(xiàn)與財(cái)務(wù)部簽訂如下安全生產(chǎn)目標(biāo):一、目標(biāo)值:1、全年人身死亡事故為零,重傷事故為零,輕傷人數(shù)為零。2、現(xiàn)金安全保管,不發(fā)生盜竊事故。3、每月足額提取安全生產(chǎn)費(fèi)用,保障安全生產(chǎn)投入資金的到位。4、安全培訓(xùn)合格率為100%。二、本單位安全工作上必須做到以下內(nèi)容:1、對(duì)本單位的安全生產(chǎn)負(fù)直接領(lǐng)導(dǎo)責(zé)任,必須模范遵守公司的各項(xiàng)安全管理制度,不發(fā)布與公司安全管理制度相抵觸的指令,嚴(yán)格履行本人的安全職責(zé),確保安全責(zé)任制在本單位全面落實(shí),并全力支持安全工作。2、保證公司各項(xiàng)安全管理制度和管理辦法在本單位內(nèi)全面實(shí)施,并自覺接受公司安全部門的監(jiān)督和管理。3、在確保安全的前提下組織生產(chǎn),始終把安全工作放在首位,當(dāng)“安全與交貨期、質(zhì)量”發(fā)生矛盾時(shí),堅(jiān)持安全第一的原則。4、參加生產(chǎn)碰頭會(huì)時(shí),首先匯報(bào)本單位的安全生產(chǎn)情況和安全問題落實(shí)情況;在安排本單位生產(chǎn)任務(wù)時(shí),必須安排安全工作內(nèi)容,并寫入記錄。5、在公司及政府的安全檢查中杜絕各類違章現(xiàn)象。6、組織本部門積極參加安全檢查,做到有檢查、有整改,記錄全。7、以身作則,不違章指揮、不違章操作。對(duì)發(fā)現(xiàn)的各類違章現(xiàn)象負(fù)有查禁的責(zé)任,同時(shí)要予以查處。8、虛心接受員工提出的問題,杜絕不接受或盲目指揮;9、發(fā)生事故,應(yīng)立即報(bào)告主管領(lǐng)導(dǎo),按照“四不放過”的原則召開事故分析會(huì),

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論