本文目录一览

1,单片机中将每个BCD码转换为2个ASCII码

MOV A,@30HANL A,0FHADD A,30HMOV @40H,AMOV A,@30HANL A,0F0HADD A,30HMOV @41H,A 以下类推

单片机中将每个BCD码转换为2个ASCII码

2,如何用汇编语言将BCD码96H转换成2个字节的ASCII码

一个字节的BCD码就是用一个字节的二进制数表示两位十进制数。如十进制数96表示成压缩BCD码就是96H,转换成ASCII码就是压缩BCD码表示的十进制数的高位和低位分开,以ASCII码表示,即转换成39H和36H。汇编语言(AssemblyLanguage)是面向机器的程序设计语言。在汇编语合中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编。中国著名计算机科学教育家王爽写过一本名叫《汇编语言》的书。

如何用汇编语言将BCD码96H转换成2个字节的ASCII码

3,在2200H220A单元中存有10个压缩BCD码编程将它们转换成

BCD码查表转换为字符,字符再查表转换为ASCII码
非压缩bcd码转换成为ascii码,只要加30h 20h单元转换成为ascii放到片内50h mov a,#30h addc a 20h mov 50h,a 21h单元转换成为ascii放到片内51h mov a,#30h addc a 21h mov 51h,a 你可以用循环10次编

在2200H220A单元中存有10个压缩BCD码编程将它们转换成

4,BCD码转换成ASCII值

BCD码转ASCII码BCD码表示:对于用BCD码怎么表示十进制数29上面已经分析的非常清楚了,这里不赘述了。十进制数29 === BCD码表示为:0010 1001转换过程:可以直接转换。BCD码 0010 转换成ASCII码就直接加上 十六进制数0x30(十进制为48)就可以了,这个差值可以根据ASCII和十进制数换算下。同样的各位上的数也相加下就可以了。C代码表示:#define BCD_TO_ASCCII(val) (((((val) >> 8) + 0x30) << 8) + (((val) & 0xFF) + 0x30))。扩展资料BCD码可分为有权码和无权码两类:有权BCD码有8421码、2421码、5421码,其中8421码是最常用的;无权BCD码有余3码,余3循环码等。bcd码通常是指8421码就是将十进制的数以8421的形式展开成二进制,大家知道十进制是0~9十个数组成,这十个数每个数都有自己的8421码。bcd码是四位二进制码, 也就是将十进制的数字转化为二进制, 但是和普通的转化有一点不同, 每一个十进制的数字0-9都对应着一个四位的二进制码,对应关系如下: 十进制0 对应 二进制0000 ;十进制1 对应二进制0001 ....... 9 1001 ,接下来的10就有两个上述的码来表示 10,表示为00010000 也就是BCD码是遇见1001就产生进位,不象普通的二进制码,到1111才产生进位10000。压缩BCD码与非压缩BCD码的区别—— 压缩BCD码的每一位用4位二进制表示,一个字节表示两位十进制数。例如10010110B表示十进制数96D;非压缩BCD码用1个字节表示一位十进制数,高四位总是0000,低4位的0000~1001表示0~9.例如00001000B表示十进制数8。参考资料:百度百科-BCD码

5,51单片机片内RAM30H中存两个压缩BCD码转成ASCII码值存片外

BCDASC: MOV A,30H ANL A,#0FH ADD A,#30H MOV DPTR,#3000H MOVX @DPTR,A MOV A,30H SWAP A ANL A,#0FH ADD A,#30H INC DPTR MOVX @DPTR,A RET
mov r0,#60hmov dptr,#3000hmov a,@r0movx @dptr,a

6,将一个字节BCD码转换为两个ASCII码

若原数存于R7,结果存于十位存R5、个位存于R6MOV A,R7ANL A,#0FHADD A,#30H;(0的ASCII为30H)MOV R6,AMOV A,R7SWAP AANL A,#0FHADD A,#30HMOV R5,ARET
若原数存于r7,结果存于十位存r5、个位存于r6movnbsp;a,r7anlnbsp;a,#0fhaddnbsp;a,#30h;(0的ascii为30h)movnbsp;r6,amovnbsp;a,r7swapnbsp;aanlnbsp;a,#0fhaddnbsp;a,#30hmovnbsp;r5,aret
若原数存于r7,结果存于十位存r5、个位存于r6movnbsp;a,r7anlnbsp;a,#0fhaddnbsp;a,#30h;(0的ascii为30h)movnbsp;r6,amovnbsp;a,r7swapnbsp;aanlnbsp;a,#0fhaddnbsp;a,#30hmovnbsp;r5,aret

7,ascii码到十进制BCD的转换

其实ascII码是很容易得到的,书上一般都会有那个表格,对应的你可以读出你所需的字符所对应的二进制代码,当你把8位二进制代码写出时,我们就可以转换为BCD码了,具体方法是:8,4,2,1。比如我的二进制码为:01001101则BCD码为一位一位的转换:0000 0001 0000 0000 0001 0001 0000 0001 一般我们都是将十进制代码转成BCD码的:0=0000 1=0001 2=0010 3=0011 4=0100 5=0101 6=0110 7=0111 8=1000 9=1001 至于你要程序:给你个思路吧,你可以做个顺序结构,对比你输入的ascII码,当对到相同的0或1时,直接进行查表(tab ),表格很简单,因为只有01,所以就写两个就好了,就是DW 0000,0001 ,然后返回。要是还不明白可以继续提问。
晕哦,bcd一个字节表示能表示从0~99任意一个数字.mov ah,al shr ah,1 shr ah,1 shr ah,1 shr ah,1 and al,0fh 这是把一个字节的bcd转换成2个字节的十进制,

8,51单片机 BCD转换ASCII

首先51单片机是8位的,BCD转换ASCII是不是把16进制数转成字符,如0X23变成"23",ASCII的0-9是0X30-0x39,先把高位4位取出加上0x30就转成ASCII,然后是低4位,ASCII的A-F是0X65-0x70,如果数是字母,取出数加上0x65-10;
这个自己写个模块以后备用吧
这个程序的效果是 电压值逐渐上升 然后逐渐下降 吗? 说下我的理解。 p0=0 // 初值呀, 这样转化到0v。flag 是一个标志 当数字量(val)为255(最大转化值)时置1. 为0时清零。val是一个待转化的数字量 。把val的值给p0口 ,再通过p0与数模转化芯片转化为模拟量。注释如下:p0=0; //p0付初值。也就是让val为0;while(1) //大循环开始 if(flag==0) //当flag为0时 。val+=5; // val=val+5;p0=val; //把val送给p0口;if(val==255) //如果 val=255;flag=1; //flag=1beep=0; // 蜂鸣器 汪汪叫 (0是叫还是不叫?)delayms(100);beep=1; // 跟前个状态相反。}delayms(50);}else //如果flag==1; (val=255)val-=5; // 待转化的数字量-5; p0=val; // val送给p0;if(val==0) // 待转化val=0; flag=0; // 标记flag =0;beep=0; // 蜂鸣器不叫delayms(100);beep=1; /蜂鸣器叫}delayms(50)}}} 以上是我的理解 。 不知道你用protues仿真了没有 。

9,bcd码和ascii码什么时候要转换

Code Segment Assume CS:Code,DS:Code BCD_Number db 45h,32h,56h,98h dw 6 dup(?) Start: push cs pop ds push cs pop es ;使数据段、附加段与代码段同段 cld lea si,BCD_Number lea di,BCD_Number[8] mov cx,2 rep movsw ;把这4个字节的压缩BCD码保存到与其相距8个字节的后续单元 lea si,BCD_Number[8] lea di,BCD_Number mov cx,4 BCD_ASCII: lodsb push cx mov cx,4 xor ah,ah shl ax,cl shr al,cl or ax,3030h xchg ah,al stosw pop cx loop BCD_ASCII Exit_Proc: mov ah,4ch ;结束程序 int 21h Code ENDS END Start
; 本程序通过编译,运行正确。 code segment assume cs:code,ds:code bcd_number db 45h,32h,56h,98h dw 6 dup(?) start: push cs pop ds push cs pop es ;使数据段、附加段与代码段同段 cld lea si,bcd_number lea di,bcd_number[8] mov cx,2 rep movsw ;把这4个字节的压缩bcd码保存到与其相距8个字节的后续单元 lea si,bcd_number[8] lea di,bcd_number mov cx,4 bcd_ascii: lodsb push cx mov cx,4 xor ah,ah shl ax,cl shr al,cl or ax,3030h xchg ah,al stosw pop cx loop bcd_ascii exit_proc: mov ah,4ch ;结束程序 int 21h code ends end start ;编译到此结束

文章TAG:bcd码转多少ascii多少  ascii  单片机  
下一篇