資源描述:
《單片機原理及應用課程設計-96單片機課程設計報告》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在學術論文-天天文庫。
1、96單片機課程設計報告一、課程設計的目的:這次單片機課程設計布置在暑假到開學初,暑假大多數(shù)同學都沒有完成,即使完成了程序的初步構想以及編寫,但是如果沒有仿真機的話還是不能夠完成課程設計的。所以在開學初這三周時間,才是96單片機課程設計完成的主體時間。由于暑假的原因,單片機的內(nèi)容在兩個月內(nèi)忘記了不少,至少我是這樣。所以在開學的時候開始寫程序都是一直翻書,并且尋找原來的實驗參考資料,找回一些記憶,也是為了盡量避免在做課程設計的時候出現(xiàn)過多的錯誤:這些事情都讓我逐漸恢復對MCS-96單片機的了解,這次課程設計期間,我犯過很多錯誤,但是每一次的發(fā)現(xiàn)與改正都讓我印象特別深刻;每一步的程序編寫、調(diào)試過
2、程,都讓我對這門課多一點理解,所謂溫故而知新。二、課程設計的內(nèi)容:1、在仿真機的LED上顯示自己學號的后8位2、開平方計算器:對1~99999999范圍內(nèi)的數(shù)進行開平方操作,精確到6位有效數(shù)據(jù)。鍵盤數(shù)據(jù)輸入,LED顯示結果。(每班一組)三、課程設計的原理:等待以及鍵盤循環(huán)掃描程序主體結構框圖:按“1”按“0”顯示學號,鍵盤按“1”則跳轉(zhuǎn)進入開方運算開方運算程序,鍵盤按“0”則跳轉(zhuǎn)進入現(xiàn)實學號。按“0”或“1”按“1”則開始開方SQRT開方的流程圖:延時等待輸入數(shù)據(jù)循環(huán)八次,輸入數(shù)據(jù)把輸入的數(shù)據(jù)存儲到3000H到300EHXL=0?數(shù)碼帶權求和把被開方數(shù)兩位兩位分開,并存儲到3002~300
3、8,之后五個字節(jié)清零9~0迭代,計算每一位有效數(shù)字XX>0?BL=0?顯示結果是否按“0”ZZ>=WW?NYN存儲該位有效數(shù)字YNYNY/顯示學號課設的主要內(nèi)容是對1~99999999范圍內(nèi)的數(shù)進行開平方操作,實驗原理主要涉及開方算法;當時想到的有迭代法、手算開方的算法,現(xiàn)在比較兩種算法的思路:1)迭代法。迭代法首先需要尋找最高位,即通過把被開方數(shù)除以100的n次冪,寫成X00…00的形式,X可以是1~99,第一次迭代開始,跌代數(shù)寫成Y0…0形式,Y從9迭代到0,比較平方,小于跌代數(shù)的平方則存儲第一位的Y值,求取余數(shù),跳出第一層循環(huán),之后重復操作。其中在個位數(shù)時取小數(shù)點。2)手算開方法。這
4、種算法首先把被開方數(shù)從小數(shù)點開始,每兩位兩位地取數(shù),開方時從最高2位開始,從9迭代到0的XL求出最高位的一位數(shù),存儲該數(shù)XL,以及一次操作的余數(shù)YUSHU,之后每次開方都需要對XX乘以10加上XL,得到新的XX;XX乘以20,再加上XL,乘以XL,得到YY;余數(shù)乘以100再加上后兩位,得到ZZ;YY乘以XL得到WW,比較ZZ、WW,WW小則存儲XL,推出一次循環(huán)迭代;同樣小數(shù)點需要注意。算法比較:第一種算法比較容易理解,算法簡單,即層層迭代;但是在出現(xiàn)小數(shù)時就已經(jīng)計算復雜,由于96單片機的乘法MULU,MUL等都是對整數(shù)處理,故需要乘以10的幾次冪,轉(zhuǎn)化為整數(shù),另外在取到6位有效數(shù)字時,,
5、已經(jīng)超出了雙字的范圍,所以數(shù)字處理比較困難。第二種算法則不存在第一種算法的困難,但是前期處理啰嗦,結構復雜。程序設計的主體思路,我想到并且比較的就是這兩個,當然我相信還有其他的算法,可以實現(xiàn)課程設計要求。由比較可知,我選擇第二種算法。五、程序清單:;--------------------------------------------------------------C8255EQU0C006H;8255命令口地址P8255AEQU0C000H;8255PA口地址P8255BEQU0C002H;8255PB口地址P8255CEQU0C004H;8255PC口地址;-----------
6、----------------------------------------------------AXEQU20HALEQU20HAHEQU21HBLEQU22HBHEQU23HBXEQU22HCXEQU24HDXEQU26HDLEQU26HEXEQU28HXLEQU30HXHEQU31HXXEQU34HXXLEQU34HXXHEQU36HYYEQU38HYYLEQU38HYYHEQU3AHZZEQU3CHZZLEQU3CHZZHEQU3EHWWEQU40HWWLEQU40HWWHEQU42HYUSHUEQU44HYUSHULEQU44HYUSHUHEQU46HTEMPEQU50H;
7、---------------------------------------------------------------ORG2080HLDSP,#0FCHLDBAL,#82H;PB口輸入,PA,PC口輸出STBAL,C8255[0]LDBAL,#08H;使PC3置1STBAL,P8255CRD_KB0:LDBAL,P8255B[0]XORBAL,#0FFHJBSAL,0,STUNO;掃描鍵盤按0則跳到輸出學號,1