微机原理及应用 上机实验报告3 数码转化
微机原理与接口技术实验报告3-动态数码管

{
while(t--);
//通过执行“t”条空语句达到延时
}
void main()
{
int i,light[8]={0xee,0xfe,0x9c,0xfc,0x60,0xda,0xf2,0x66};//i 为循环变量,light 数组包含了
“ABCD1234”对应的二进制数
while(1)
//制造死循环让数码管维持常亮
五:算法分析:
通过控制 J16 不同位为低电平的顺序使数码管依次点亮,通过对数码管“a、b、c、d、
e、f、g”赋值 0 或者 1 实现显示“ABCD1234”的功能。
六:实验程序:
#include<reg52.h>
void delay(int t)
//延时函数,用于使每一个数码管显示都能维持一段时间
位的二进制数加 4
}
}
}
七:实验结果:
数码管最终能从左至右依次显示“ABCD1234”,且肉眼可见维持全部常亮状态。
ห้องสมุดไป่ตู้八:结果分析:
在依次点亮数码管时候选择合适的延时很重要,如果延时太久,则会导致肉眼可见数码
管显示的字符是一个一个的向右移动。另外,编程应该分步骤进行,先测试一下 P0 口不同
赋值对数码管显示图形的影响,搞清楚每一位对应数码管哪一个发光二极管。还要测试一下
{
P2=0x00;
//给 P2 赋初值,选择第一个数码管先亮
for(i=0;i<8;i++) //循环,让数码管从左到右依次点亮
{
P0=light[i]; //让 P0 按数组输出恰当的八位二进制数使数码管显示对应字符
delay(100); //延时,让数码管点亮后维持一段时间
微机原理及应用实验(题目)

微机原理及应用实验实验一开发环境的使用一、实验目的掌握伟福开发环境的使用方法,包括源程序的输入、汇编、修改;工作寄存器内容的查看、修改;内部、外部RAM内容的查看、修改;PSW中个状态位的查看;机器码的查看;程序的各种运行方式,如单步执行、连续执行,断点的设置。
二、实验内容在伟福开发环境中编辑、汇编、执行一段汇编语言程序,把单片机片内的30H~7FH 单元清零。
三、实验设备PC机一台。
四、实验步骤用连续或者单步的方式运行程序,检查30H-7FH 执行前后的内容变化。
五、实验思考1.如果需把30H-7FH 的内容改为55H,如何修改程序?2.如何把128B的用户RAM全部清零?六、程序清单文件名称:CLEAR.ASMORG 0000HCLEAR: MOV R0,#30H ;30H 送R0寄存器MOV R6,#50H ;50H 送R6寄存器(用作计数器)CLR1: MOV A,#00H ;00 送累加器AMOV @R0,A ;00 送到30H-7FH 单元INC R0 ;R0 加1DJNZ R6,CLR1 ;不到50H个字节,继续WAIT: LJMP WAITEND实验二数据传送一、实验目的掌握MCS-51指令系统中的数据传送类指令的应用,通过实验,切实掌握数据传送类指令的各种不同的寻址方式的应用。
二、实验内容1.编制一段程序,要求程序中包含7中不同寻址方式。
2.编制一段程序,将片内RAM30H~32H中的数据传送到片内RAM38H~3AH中。
3.编制一段程序,将片内RAM30H~32H中的数据传送到片外RAM1000H~1002H 中。
4.编制一段程序,将片内RAM40H~42H中的数据与片外RAM2000H~2002H中的数据互换。
三、实验设备PC机一台。
四、实验步骤逐段编制程序,汇编无误后,用连续或者单步的方式运行程序,检查程序的运行结果,看是否达到预期的效果。
五、实验思考1.如何把片外RAM中1000H~100FH单元中的数传送到片外RAM中2000H~200FH单元中?2.如何把ROM中0200H~0207H单元的数传送至片外RAM0000H~0007H单元中?实验三数码转换一、实验目的掌握采用软件方法进行不同形式数据之间的转换,如十进制数与二进制数的转换、十六进制数与BCD码的转换、BCD数与ASCII码之间的转换、非压缩BCD码与压缩BCD码之间的转换。
微机原理-数码转换实验报告

微机原理-数码转换实验报告-CAL-FENGHAI.-(YICAI)-Company One1实验九数码转换一、实验目的1、掌握计算机常用数据编码之间的相互转换方法。
2、进一步熟悉DEBUG软件的使用方法。
二、实验内容1、ACSII码转换为非压缩型BCD码2、BCD码转换为二进制码3、十六进制数转换为ASCII码三、实验1、ACSII码转换为非压缩型BCD码DATA SEGMENT PARA 'DATA'DATA1 DB 8 DUP()DATA2 DB 8 DUP()DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX,SEG DATA1MOV DS,AXMOV DX,DATAMOV AH,0AHINT 21HLEA SI,DATA1MOV CL,[SI+1]LEA DI,DATA2ADD SI, 2CHK: MOV AL,[SI+2]CMP AL, '0'JB L01CMP AL, '9'JA L01SUB AL,30HMOV BL,ALMOV [DI], BLINC SIINC DIDEC CXJNZ CHKL01: MOV BL, 0FFHLOOP CHKMOV AH,4CH INT 21H CODE ENDSEND START2、BCD码转换为二进制码DATA SEGMENTBCD DB 1,2,3,4,5A DWDATA ENDSSTACK SEGMENT PARA STACK''STACK''STAPN DW 50 DUP()STACK ENDSCODE SEGMENTMAIN PROC FARASSUME DS:DATA,CS:CODE,SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXCALL CONVERTMOV A,BXRETMAIN ENDPCONVERT PROC NEARPUSH SIPUSH CXPUSH AXMOV SI,4L1:MOV AL,BCD[SI]CBWXCHG AX, BXMOV CX,10DMUL CXXCHG AX,BXADD BX,AXDEC SIJNZ L1POP AXPOP CXPOP SIEXIT:MOV AH,4CH INT 21H CONVERT ENDP CODE ENDSEND START3、十六进制数转换为ASCII码DATA SEGMENTDATA1 DW 2010HDATA2 DB 4 DUP()DATA ENDSSTACKS SEGMENT PARA STACK 'STACK'STACKS ENDSCODES SEGMENTASSUME SS:STACKS,CS:CODESASSUME DS:DATASSTART: MOV AX, DATAMOV DS, AXLEA SI, DATA1MOV AX, [SI]MOV CL, 12SHR AX, CLMOV BL, ALCALL ASCMOV DATA2, BLCALL XSMOV AX, [SI]MOV CL, 8SHR AX, CLAND AX, 000FHMOV BL, ALCALL ASCMOV DATA2+1, BLCALL XSMOV AX, [SI]MOV CL, 4SHR AX, CLAND AX, 000FHMOV BL, ALCALL ASCMOV DATA2+2, BLCALL XSMOV AX, [SI]AND AX, 000FHMOV BL, ALCALL ASCMOV DATA2+3, BLCALL XSMOV AH, 4CHINT 21HASC PROCCMP BL, 0AH JC LPADD BL, 07H LP: ADD BL, 30H RETASC ENDPXS PROCMOV DL, BL MOV AH, 02H INT 21HRETXS ENDPCODE ENDSEND START4、六进制数转换为十进制DATAS SEGMENTSTRING1 DB 0DH,0AH,'$'STRING2 DB 0DH,0AH,'$'DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV DX,OFFSET STRING1MOV AH,9INT 21HMOV CL,10HMOV BX,0NEWCHAR:MOV AH,1INT 21HSUB AL,30HJB DISPCBWXCHG AX,BXMOV CH,0MUL CXXCHG AX,BXADD BX,AXJNC NEWCHARDISP:MOV DX,OFFSET STRING2MOV AH,9INT 21HMOV CX,10000AGAIN:MOV DX,0MOV AX,BXDIV CXMOV BX,DXMOV DL,ALADD DL,30HCMP DL,39HJLE NEXTADD DL,7H NEXT:MOV AH,2INT 21HMOV DX,0MOV AX,CXMOV CX,10DIV CXMOV CX,AXCMP CX,0JNZ AGAINMOV AH,4CH INT 21H CODES ENDS END START5、十进制转换成七段码DATA SEGMENTDATA1 DB 3,4TABLE DB 23H,56H,42H,75H,00H,24H,67H,39H,20H DATA2 DB 2 DUP()DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA ST: MOV DI, OFFSET BUFDAMOV CL, 80HMOV BX, OFFSET TABLE DISI: MOV BL, [DI+0]MOV AX, BXXLATMOV DX, PORTSEGOUT DX, ALMOV AL, CLMOV DX, PORTBITOUT DX, ALPUSH CXMOV CX, 30HDELAY: LOOP DELAYPOP CXCMP CL, 20HJZ QUITINC DISHR CL, 1JMP DISIQUITCODE ENDSEND ST。
微机原理数制转换报告

《微型计算机原理实验》报告学院:华工电子与信息学院专业班级:信息工程2班学号:姓名:实验名称:实验日期:2013/4/16一、实验内容:将ASCII码表示的十进制数转换为二进制数二、实验步骤1、从键盘输入五位的十进制数,保存在地址为3500H的存储单元2、把这个十进制数转换为十六进制数,所得结果保存在地址为3510H的存储单元中3、把这个十六进制的结果的每位取出来,转换为ACSII码值,存储在地址为3514H的存储单元中4、把以3514H为起始地址的字符串输出到屏幕,即可得到5位十进制数转换为二进制数的结果三、代码运算过程四、程序代码:DATA SEGMENT ORG 34FEH BUF DB 10 DB ?DB 10 DUP (?)ORG 3510HBBF DB 20 DUP (?),0DH,0AH,'$'IBF DB 'Please input one number:',0DH,0AH,'$'ICF DB 0DH,0AH,'The result is:',0DH,0AH,'$' DATA ENDSSTACK SEGMENT STACK 'STACK' STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START :MOV AX,DATA MOV DS,AX MOV DX,OFFSET IBF MOV AH,9 INT 21H MOV DX,0 MOV AH,0AH LEA DX,BUF INT 21H MOV SI,3500H MOV DX,0 MOV CX,04H MOV BX,000AH MOV AH,00HLOOP CIRCLEMOV AL,[SI] SUB AL,30H ADD AX,DX LEA SI,BBFMOV [SI],AX MOV DX,AX MOV CH,04H MOV CL,04H MOV BX,3514H NEXT:ROL AX,CL MOV DL,AL AND DL,0FH CMP DL,09H JBE PLADD DL,07H PL: ADD DL,30H MOV [BX],DL INC BX DEC CH JNZ NEXTMOV DX,OFFSET ICF MOV AH,9 INT 21H MOV AH,09HCIRCLE:MOV AL,[SI] SUB AL,30H ADD AX,DX MUL BX MOV DX,AX INC SI MOV AH,0五:实验2-5实验2:将从键盘输入的五位十进制数的ASCII 码已存在3500起始的内存单元中。
北航微机 原理 数模转换

微机原理实验报告数模转换一、实验名称数/模转换二、实验目的了解数/模转换的原理,学习数/模转换芯片的使用方法,掌握利用数/模转换芯片产生方波及正弦波的方法。
三、实验内容在数据段中存放好对应于方波和正弦波的数字量,正弦波要求20个值。
编写程序将数据段中的数字量送到DAC0832的输出端产生方波和正弦波。
四、程序流程图及波形图:(见末页)五、实验结论:符合预期,输出端输出的数据加载到虚拟示波器后显示方波和正弦波。
六、实验心得这次实验无论是从程序编写到硬件连线,都是比较容易的。
在实验过程中,我也进行得十分顺利,很快就得到了实验结果。
但实验过程中的一个环节还是给了我一些启示。
实验过程中有一个步骤是要在输出端测输出电压。
刚开始我测试数据的时候发现万用表测出的数据跳动非常大,无法获得稳定的电压值。
我开始认为是连线接触不良导致的这种情况,于是重新连了一次线,但发现问题仍然存在。
我又重新检查了一下程序,并回忆老师上课讲过的一些实验中会遇到的问题,我突然想到是因为程序中少了一段延时程序才导致输出电压无法测出。
再加入了一个延时子程序后果然顺利的得到了稳定的电压值。
这次实验我最大的收获就是明白了理论如何转化成正确的实践成果。
老师课堂上并没有讲过输出要延时一段时间,但是具体实践却要求我们必须这样做才能获得正确的结果。
这就需要我们自己具备这种分析问题,并结合实际情况改进理论指导的能力。
七、实验程序:方波:inadress equ 0EF00H-280H+290HSTACK SEGMENT STACKDB 100 DUP (?)STACK ENDSDATA SEGMENTDATA ENDSCODE SEGMENTASSUME CS:CODE, DS: DATA, SS:STACKDELAY PROCMOV CX, 0MOV BX, 8000 NEXT: LOOP NEXTDEC BXJNZ NEXTRETDELAY ENDPMAIN PROCAGN: MOV AX, DATAMOV DS, AXMOV AL, 0MOV DX, inadressOUT DX, ALCALL DELAYMOV AL, 0FFHOUT DX, ALCALL DELAYMOV DL, 0FFHMOV AH, 6INT 21HJZ AGNMOV AH, 4CHINT 21HMAIN ENDPCODE ENDSEND MAIN正弦波:inadress equ 0EF00H-280H+290HSTACK SEGMENT stackDB 100 DUP (?)STACK ENDSDATA SEGMENTSTR DB 128, 168, 203, 232, 250, 255, 250, 232, 203, 168, 128, 88, 53, 24, 6, 0, 6, 24, 53, 88DATA ENDSCODE SEGMENTASSUME CS:CODE, DS: DATA, SS:STACKDELAY PROCMOV CX, 0MOV BX, 8000NEXT: LOOP NEXTDEC BXJNZ NEXTRETDELAY ENDPMAIN PROCMOV AX, DATAMOV DS, AXMOV DX, inadressNEXT1: MOV SI, OFFSET STRMOV BX, 0NEXT2: MOV AL, [SI]OUT DX, ALCALL DELAYINC SIINC BXCMP BX, 20JE NEXT1MOV DL, 0FFHMOV AH, 6INT 21HJZ NEXT2MOV AH, 4CHINT 21H MAIN ENDPCODE ENDSEND MAIN流程图:方波开始将方波数字量存入数据段将I/O 端口地址送入DX 寄存器 将该数字量输出至I/O 端口,并调用延时子程序 将数据段中第二个方波数字量放入AL 寄存器中 初始化N 返回DOS将数据段中第一个方波数字量放入AL 寄存器中 将第一位数字量偏移地址存入SI 寄存器 检查是否有键按下 将该数字量输出至I/O 端口,并调用延时子程序Y正弦波:开始将正弦波数字量存入数据段 将I/O 端口地址送入DX 寄存器 将该数字量输出至I/O 端口,并调用延时子程序 SI 和BX 寄存器的值自加初始化N检查是否有键按下返回DOSY 将数据段中第一个正弦波数字量放入AL 寄存器中将第一位数字量偏移地址存入SI 寄存器,BX 寄存器置零 BX 和20是否相等比较BX 和20的大小Y N方波:正弦波:。
微机实验数码转换

微机原理实验报告实验九:数码转换电子信息工程150210班金峥15021005一、实验题目实验九——数码转换二、实验目的1、掌握计算机常用数据编码之间的相互转换方法。
2、进一步熟悉DEBUG软件的使用方法。
三、实验步骤1、编辑源文件,经汇编连接产生EXE文件。
2、用DEBUG调试、检查、修改程序。
四、实验流程图实验9——1流程图五、实验源代码实验(一)ASCⅡ码转换为非压缩型BCD码编写并调试正确的汇编语言源程序,使之实现:设从键盘输入一串十进制数,存入DATA1单元中,按回车停止键盘输入。
将其转换成非压缩型(非组合型) BCD 码后,再存入DATA2开始的单元中。
若输入的不是十进制数,则相应单元中存放FFH。
调试程序,用D命令检查执行结果。
代码DATA SEGMENT PARA 'DATA' ;定义数据段DATA1 DB 16 DUP(0) ;输入的ACSII码DATA2 DB 16 DUP(0) ;转换后输出的BCD码DATA ENDSSTACK SEGMENT PARA STACK 'STACK' ;定义堆栈段STACK1 DB 256 DUP(0) ;为堆栈准备256字节STACK ENDSCODE SEGMENT ;定义代码段ASSUME SS:STACK,CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXLEA SI,DATA1 ;DATA1首地址存入SILEA DI,DATA2 ;DATA2首地址存入DIMOV CX,16 ;循环次数STEP1: MOV AH,01H ;输入字符,AL=输入的ASCII码INT 21HMOV [SI],ALCMP AL,0DH ;与回车作比较JE STEP3 ;若为回车则跳转到STEP3CMP AL,'0' ;比较AL与0的大小JB STEP2 ;若AL<0,跳转到STEP2CMP AL,'9' ;比较AL与9的大小JA STEP2 ;若AL>9,跳转到STEP2SUB AL,30H ;将输入字符的ASCII码转换为十进制数MOV [DI],AL ;将结果存入DATA2中INC SIINC DI ;为下一次数码转换做准备LOOP STEP1 ;跳转到STEP1,进行循环STEP2: MOV [DI],0FFH ;若输入的不是十进制数,相应单元存入0FFH INC SIINC DILOOP STEP1 ;跳转到STEP1,进行循环STEP3: MOV AH,4CH ;带返回码的结束INT 21HCODE ENDSEND START代码截图实验(二)BCD码转换为二进制数编写并调试正确的汇编语言源程序,使之将一个16位存储单元中存放的4位BCD码DATA1,转换成二进制数存入DATA2字单元中调试程序,用D命令检查执行结果。
微机原理实验报告(数码显示)

实验三8255并行接口实验一、实验目的1、学习并掌握8255的工作方式及其应用。
2、学习在系统接口实验单元上构造实验电路。
二、实验设备TDN86/51或TND86/88教学实验系统。
三、实验内容与实验步骤1、基本输入输出实验。
编写程序,使8255的A口为输入,B口为输出,完成波动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就发生相应改变。
实验原理:并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。
8255的内部结构及引脚如图3-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图3-2所示。
图3-1 8255的内部结构和外部引脚(a)工作方式控制字(b)c口按位置位/复位控制字图3-2 8255控制字格式8255实验单元电路图如下图所示:图3-3 8255实验单元电路图实验步骤1. 基本输入输出实验本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。
用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。
(1)按图连接实验线路图;8255基本输入/输出实验接线图SSTACK SEGMENT STACKDW 64 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV AL,82HOUT 63H, ALA1: IN AL, 61HOUT60H, ALJMPA1CODE ENDSEND START(2)编写实验程序,经编译、连接无误后装入系统;(3)运行程序,改变拨动开关,同时观察LED显示,验证程序功能。
(4)点机“调试”下拉菜单中的“固定程序”项,将程序固化到系统存储器中。
微机实验三-进制转换实验报告

计算机科学与技术系实验报告专业名称计算机科学与技术课程名称微机原理与接口技术项目名称进制转换实验班级学号姓名同组人员无实验日期 2016/06/28一、实验目的与要求1、熟悉二进制、十进制、十六进制转换规则。
2、熟悉算术运算指令及移位指令的运用。
二、实验逻辑原理图与分析(汇编—流程图)2.1 画实验逻辑原理图三、程序分析1、十进制转二进制(此处时代码,但是由于上传问题,学生可以自己添加)将存放转换后的二进制数值,并通过移位的方式将寄存器中的每一位转换成对应的字符显示出来就成了对应的二进制。
2、二进制转十进制(此处也是代码,只要把代码复制进去就行。
也可以私聊我,我分享代码给你们。
)用系统功能调用将上面程序除出来的每一位转换成字符输出到显示器上来,从而完成2进制向10进制的转黄。
四、实验数据和结果分析4.1 实验结果数据二进制转十进制实验结果: 00001111B=15D;十进制转二进制实验结果:27D=00011011B;十六进制转十进制的实验结果:0011H=17D4.2 结果数据分析二进制转十进制结果分析:((0*2+1)*2+1)*2+1)*2+1=15;十进制转二进制结果分析:该数在计算机是以二进制形式存储的,即0,1,每次输出时,根据最高位判断一下是1还是0;十六进制转十进制结果分析:(0*16+1)*16+1=17五、实验问题分析、思考题与小结在实验过程中,我们发现对于16位的10转2中,其高位会出错通过检测盘查发现,错误出在对于寄存器的界限上以及高低位的使用上有问题。
本次实验过程中,我们进一步了解的系统功能调用,如从键盘上输入字符以及从显示器上显示对应的字符。
了解了在汇编语言中如何实现子函数调用,利用call 指令调用对应的函数,从而减少程序的重复性以及方便程序的可读性。
在整体实验中熟悉了移位指令,算术指令以及堆栈相关的指令,对于这些指令的用法进一步了解了。
并通过在编写程序中出现的错误加深了自身的编程习惯。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程名称:_________微机原理及应用___________指导老师:_____钟崴_______成绩:__________________ 实验名称:_______数码转换__________实验类型:________________同组学生姓名:__________
一、实验目的和要求(必填)二、实验内容和原理(必填)
三、主要仪器设备(必填)四、操作方法和实验步骤
五、实验数据记录和处理六、实验结果与分析(必填)
七、讨论、心得
一、实验目的和要求(必填)
掌握采用软件方法进行不同形式数据之间的转换,如十进制数与二进制数的转换、十六进制数与BCD码的转换、BCD数与ASCII码之间的转换、非压缩BCD码与压缩BCD码之间的转换。
二、实验内容和原理(必填)
1.编制一段程序,将31H单元中的无符号数转换成BCD码,存入32H~34H单元中。
2.编制一段程序,将片内RAM40H,41H中的BCD数转换成十六进制数,存入42H单元中。
3.编制一段程序,将片内RAM30H~32H中的BCD数转换成ASCII码,结果存入片内RAM40H~42H中。
4.编制一段程序,将片内RAM40H~4FH中的BCD码转换成压缩BCD码,结果存入片外RAM0800H~0807H中。
三、主要仪器设备(必填)
PC机一台。
四、操作方法和实验步骤
逐段编制程序,汇编无误后,用连续或者单步的方式运行程序,检查程序的运行结果,看是否达到预期的效果。
六、程序清单
1. MOV A,31H
MOV B,#100
DIV AB
MOV 32H,A
MOV A,B
MOV B,#10
DIV AB
MOV 31H,A
MOV 32H,B
SJMP $
实验名称:_______数码转换________姓名:_____许川______学号:____3120103533____
2. MOV A,40H
MOV B,#10
MUL AB
ADD A,41H
MOV 42H,A
3.MOV R0,#30H
MOV R1,#40H
MOV R7,#3
L1:
MOV A,@R0
ADD A,#30H
MOV @R1,A
DJNZ R7,L1
4.MOV R0,#40H
MOV DPTR,#0800H
MOV R7,#8
L1:
MOV A,@R0
MOV R6,A
INC R0
MOV A,@R0
SWAP A
ADD A,R6
MOVX @DPTR,A
INC R0
INC DPTR
DJNZ R7,L1
六、实验思考
1.如何把一个2字节无符号数转换成BCD码?
2.如何把一个3字节十六进制数转换成ASCII码?
1第一步将2字节无符号数除以10000,得到商和余数,这个商就是BCD码的首位;第二步将余数除以1000,得到商和余数,把商作为BCD码的第二位;第三步将余数除以100,得到商和余数,把商作为第三位;第四步将余数除以10,将商作为第四位,余数作为第五位。
2. 将一个字节的16进制数转化为ASCII码程序如下所示:
MOV A,R0
ANL A,#0FH
PUSH ACC
CLR C
SUBB A,#0AH
POP ACC
JC LOOP
ADD A,#07H
LOOP:ADD A,#30H
MOV R2,A
RET
转化三字节可以依次将三个字节进行转化。