




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
96单片机课程设计报告一、课程设计的目的:这次单片机课程设计布置在暑假到开学初,暑假大多数同学都没有完成,即使完成了程序的初步构想以及编写,但是如果没有仿真机的话还是不能够完成课程设计的。所以在开学初这三周时间,才是96单片机课程设计完成的主体时间。由于暑假的原因,单片机的内容在两个月内忘记了不少,至少我是这样。所以在开学的时候开始写程序都是一直翻书,并且寻找原来的实验参考资料,找回一些记忆,也是为了尽量避免在做课程设计的时候出现过多的错误:这些事情都让我逐渐恢复对MCS-96单片机的了解,这次课程设计期间,我犯过很多错误,但是每一次的发现与改正都让我印象特别深刻;每一步的程序编写、调试过程,都让我对这门课多一点理解,所谓温故而知新。二、课程设计的内容:1、在仿真机的LED上显示自己学号的后8位2、开平方计算器:对199999999范围内的数进行开平方操作,精确到6位有效数据。键盘数据输入,LED显示结果。(每班一组)三、课程设计的原理:等待以及键盘循环扫描程序主体结构框图:按“1”按“0”显示学号,键盘按“1”则跳转进入开方运算开方运算程序,键盘按“0”则跳转进入现实学号。按“0”或“1”按“1”则开始开方 SQRT开方的流程图:延时等待输入数据循环八次,输入数据把输入的数据存储到3000H到300EHXL=0?数码带权求和把被开方数两位两位分开,并存储到30023008,之后五个字节清零90迭代,计算每一位有效数字XX0?BL=0?显示结果是否按“0”ZZ=WW?N YN存储该位有效数字 YNY NY/显示学号课设的主要内容是对199999999范围内的数进行开平方操作,实验原理主要涉及开方算法;当时想到的有迭代法、手算开方的算法,现在比较两种算法的思路:1)迭代法。迭代法首先需要寻找最高位,即通过把被开方数除以100的n次幂,写成X0000的形式,X可以是199,第一次迭代开始,跌代数写成Y00形式,Y从9迭代到0,比较平方,小于跌代数的平方则存储第一位的Y值,求取余数,跳出第一层循环,之后重复操作。其中在个位数时取小数点。2)手算开方法。这种算法首先把被开方数从小数点开始,每两位两位地取数,开方时从最高2位开始,从9迭代到0的XL求出最高位的一位数,存储该数XL,以及一次操作的余数YUSHU,之后每次开方都需要对XX乘以10加上XL,得到新的XX;XX乘以20,再加上XL,乘以XL,得到YY;余数乘以100再加上后两位,得到ZZ ;YY乘以XL得到WW,比较ZZ、WW,WW小则存储XL,推出一次循环迭代;同样小数点需要注意。算法比较:第一种算法比较容易理解,算法简单,即层层迭代;但是在出现小数时就已经计算复杂,由于96单片机的乘法MULU,MUL等都是对整数处理,故需要乘以10的几次幂,转化为整数,另外在取到6位有效数字时,106106=1012240,已经超出了双字的范围,所以数字处理比较困难。第二种算法则不存在第一种算法的困难,但是前期处理啰嗦,结构复杂。 程序设计的主体思路,我想到并且比较的就是这两个,当然我相信还有其他的算法,可以实现课程设计要求。由比较可知,我选择第二种算法。五、程序清单:;-C8255 EQU 0C006H ;8255命令口地址P8255A EQU 0C000H ;8255 PA口地址P8255B EQU 0C002H ;8255 PB口地址P8255C EQU 0C004H ;8255 PC口地址;-AX EQU 20H AL EQU 20H AH EQU 21HBL EQU 22HBHEQU 23HBX EQU 22HCX EQU 24HDX EQU 26HDL EQU 26HEX EQU 28HXL EQU 30HXH EQU 31HXX EQU 34HXXL EQU 34HXXH EQU 36HYY EQU 38HYYL EQU 38HYYH EQU 3AHZZ EQU 3CHZZL EQU 3CHZZH EQU 3EHWW EQU 40HWWL EQU 40HWWH EQU 42HYUSHU EQU 44HYUSHUL EQU 44HYUSHUH EQU 46HTEMP EQU 50H;- ORG 2080H LD SP,#0FCH LDB AL,#82H ;PB口输入,PA,PC口输出 STB AL,C82550 LDB AL,#08H ;使PC3置1STB AL,P8255C RD_KB0:LDB AL,P8255B0XORB AL,#0FFHJBS AL,0,STUNO;扫描键盘按0则跳到输出学号,1则跳转SQRTJBS AL,1,TIAOQU;SJMP RD_KB0TIAOQU:LJMP SQRT;STUNO: LD BX,#00H LDB AL,#0E0HSTB AL,P8255CSCALL DISP0LCALL DELAYLDB AH,#07H LOOP0: SUBB AL,#20HINC BXSTB AL,P8255CLCALL DISP0LCALL DELAYDJNZ AH,LOOP0LDB AL,P8255B0XORB AL,#0FFH JBS AL,1,SQRT;循环扫描按1跳到SQRT,否则顺序执行SJMP STUNO;- DISP0: LDB DL,DL_DAT0BX ;显示键值 STB DL,P8255A RET ;-DL_DAT0:DB 3FH,3FH,7FH,06H,06H,7FH,5BH,3FH;显示学号00811820 ;- DELAY: LD DX,#0ED0H ;延时子程序12MS DELAY1: DEC DX JNE DELAY1 RET;-DELAY2:SCALL DELAYDJNZ BL,DELAY2RET;-RD_KB: LDB BL,#0AH ;键盘扫描第一行 STB BL,P8255C0 SKIP SKIP LDB AL,P8255B0 ;读键值 XORB AL,#0FFH JNE KEYVAL ;判键是否按下 LDB BL,#09H ;扫描第二行 STB BL,P8255C0 SKIP SKIP LDB AL,P8255B0 XORB AL,#0FFH JE NOKEYKEYVAL: ;计算键码 ANDB BL,#01H SHL BL,#03H LDB AH,AL LDB AL,#0FFHSHIFT: INCB AL SHRB AH,#01H JNC SHIFT ORB AL,BL SCALL DELAY SJMP KBEXIT NOKEY: LD AL,#10HKBEXIT: RET;-;-;-SQRT:LDB BL,#100LCALL DELAY2LD CX,#3000HLDB XH,#0E0HLDB XL,#08HLD AX,#00HINPUT:SCALL RD_KBJBS AL,4,INPUTST AX,CX+ ;把输入的数存到3000H至300EHSTB XH,P8255CLD BX,AXSCALL DISPLDB BL,#20LCALL DELAY2;延时SUBB XH,#20HDJNZ XL,INPUT;-LD DX,#0AHLDB XL,#07HLD CX,#3000HCLR XXLCLR XXHLD XXL,CX+SUM: LD AX,XXHMULU XX,DX ;高字被改写?低位乘以10MULU YY,AX,DX ;YY是一个双字,高位乘以10ADD XXL,CX+ADDC XXH,YY;进位时是否已经加1?DJNZ XL,SUM ;XX存储输入数据KF:LD YYL,XXLLD YYH,XXHLD DX,#100DIVU YY,#10000DIVUB YYL,#100DIVUB YYH,#100;两位两位存储在YY开始的四个字节LDB XL,#0AHLD AX,#00H LD CX,#3000HQING0: ;3000H以后10字清零ST AX,CX+DJNZ XL,QING0LD CX,#3002HSTB YYL,CX;把四个2位数存到3002,3004,3006,3008ADD CX,#02HSTB 39H,CXADD CX,#02HSTB 3AH,CXADD CX,#02HSTB 3BH,CXADD CX,#02H:-LD CX,#3000HLD EX,#3200HLDB XH,#00HLDB BL,#0AHLD XXL,#00H;商LD XXH,#00H;LD YYL,#00H;被除数LD YYH,#00H;LDB ZZL,CX;被减数LD ZZH,#00H;LD WWL,#00H;减数LD WWH,#00H;LD YUSHUL,#00H;余数LD YUSHUH,#00HLOOP01:LD AX,CX+;每次大循环,CX自增一个2LCALL DELAYLDB 5AH,#0AHLOOP1: LDB XL,5AHDECB XLLD YYL,XXL;yy的求解LD AX,XXHMULU YY,#14H ;高字被改写?低位乘以20MULU TEMP,AX,#14H ;temp是一个双字,高位乘以20ADDB YYL,XLADDC YYH,TEMP;进位时是否已经加1?YY双字;余数乘以100加CX+,成为ZZ,余数还未处理LD ZZL,YUSHULLD AX,YUSHUHMULU ZZ,#64HMULU TEMP,AX,#64HADD ZZL,CX;3000以后一个字一个字地取ADDC ZZH,TEMP;YY乘以XL得到WWLD WWL,YYLLD AX,YYHMULU WW,XLMULU TEMP,AX,XLADD WWH,TEMP;求XX YUSHUCMP ZZH,WWHJLT THERE;高位小则取消该XLJGTHERE;高位大则取XLLDB 54H,3DHLDB 55H,#00HLDB 56H,41HLDB 57H,#00HCMP 54H,56HJLT THERE;第二字节小则不要XLJGT HERELDB 54H,3CHLDB 55H,#00HLDB 56H,40HLDB 57H,#00HCMP 54H,56HJGE HERE; 高位相等,低位大于等于则HERETHERE:DJNZ 5AH,LOOP1 HERE:;ZZ大于等于WW相减取余数,取XL SUB ZZL,WWL SUBC ZZH,WWH LD YUSHUL,ZZL LD YUSHUH,ZZH;得到每一次的余数;XX乘以10加XL得到XX,LD 48H,XXLLD AX,XXHMULU 48H,#0AHMULU TEMP,AX,#0AHADD 48H,XLADD 4AH,TEMP;进位时是否已经加1?YY双字LD XXL,48HLD XXH,4AH;存数码,判断XX大于0,判断小数点,有效数字CMP XXH,#00H;只要高位或低位大于0则开始存储JNEHERE1;GAO-HERE1CMP XXL,#00H;=0比较低位JE THERE1;仍然=0,则不存储HERE1:;有一个大于零CMPB BL,#07H;第四次加小数点JNE CUNADDB XL,#10HSTB XL,EX+SJMP THERE1CUN: STB XL,EX+;3200以后六个数THERE1:DJNZ BL,TIAO ;SJMP XIANSHITIAO:LJMP LOOP01;-;显示结果XIANSHI: LD EX,#3200H LDB AL,#0A0H LDB BX,EX+STB AL,P8255CSCALL DISPLCALL DELAYLDB AH,#05H LOOP2: SUBB AL,#20HLDB BX,EX+STB AL,P8255CSCALL DISPLCALL DELAYDJNZ AH,LOOP2LDB AL,P8255B0XORB AL,#0FFH JBS AL,0,TIAOHUI;循环扫描按0跳到STUNO,否则顺序执行SJMP XIANSHITIAOHUI:LJMP STUNO;长跳STUNO;-DISP: LDB DL,DL_DATBX ;显示键值 STB DL,P8255A ;P8255AAX RET;-ORG 3100HDL_DAT: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;0,1,2,3,4,5,6,7 DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;8,9,A,B,C,D,E,F DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H ;0.,1.,2.,3.,4.,5.,6.,7. DB 0FFH,0EFH,77H,7CH,39H,5EH,79H,71H ;8.,9.,A,B,C,D,E,F;-;-END六、调试过程错误记录(1)按“1”之后,直接就输出结果,没来得及输入数据。在老师的提示下,在输入存储部分设置断点,发现输入部分已经执行,30023008全部显示0B 00;所以加设输入延时。(2)跳转部分:CMP ZZH,WWHJL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- mac地址协议书是
- ftp协议书端口号
- 被翼支付协议书
- 《第2课 信息新技术-计算机的硬件与软件》说课稿教学反思-2023-2024学年初中信息技术清华大学版2012七年级下册
- 租房协议书范本
- 第4课《孙权劝学》教学设计 2023-2024学年统编版语文七年级下册
- 传输协议书tcp和udp
- 法律协议书包
- 公司租房协议书
- sip协议书端口号
- 2025年合肥市轨道交通集团有限公司第二批次社会招聘12人考试历年参考题附答案详解
- 甘肃电网考试题目及答案
- 2025年专升本医学影像检查技术试题(含参考答案)解析
- 《互联网应用新特征》课件+2025-2026学年人教版(2024)初中信息技术七年级全一册
- 过节前安全培训课件
- 高二生物上学期第一次月考(安徽专用)(全解全析)
- 模具安全操作注意培训课件
- 3.2《参与民主生活 》- 课件 2025-2026学年度道德与法治九年级上册 统编版
- 农产品电子商务运营 教学大纲、教案
- 2025年秋新北师大版数学2年级上册全册同步教学设计
- 抖音短视频签约合同范本
评论
0/150
提交评论