文档详情

微机原理 第四章(asm).ppt

发布:2018-01-19约1.83万字共84页下载文档
文本预览下载声明
例4-4-6 如下图所示 2) 二进制到BCD的转换 15H 36H R3 R2 二进制数 3H 8H 4H 5H 43H 42H 41H 40H 非压缩BCD码 1H 44H 如上图所示,双字节二进制数的表示范围为0~65535,因而需要5个BCD码位来表示。从二进制到BCD码,我们采用连减的办法,其原理如下: 待转换的二进制数-104 够减,万位加1,再减 不够减,恢复余数,再减103 以此类推,直到得到个位为止。 104=2710H 103=03E8H 102=0064H 10 =0AH BBCD:MOV R0,#44H ;数据指针 MOV R7,#04H ;计数初值 MOV DPTR,#PWTAB MOV R6,#00H ;偏移量 BBC1: MOV A,R6 MOVC A,@A+DPTR MOV R4,A ;查幂值表低位 INC R6 MOV A,R6 MOVC A,@A+DPTR MOV R5,A ;查幂值高位 INC R6 MOV @R0,#00H MOV A,R2 SUBB A,R4 ;减低位 MOV R2,A MOV A,R3 SUBB A,R5 ;减高位 MOV R3,A JC BBC3 ;不够减则恢复余数 INC @R0 ;够减则结果单元加1 SJMP BBC2 BBC3: MOV A,R2 ADD A,R4 ;恢复余数低位 MOV R2,A MOV A,R3 ADDC A,R5 ;恢复余数高位 MOV R3,A BBC2: CLR C DEC R0 ;指向下一单元 DJNZ R7,BBC1 ;未减完则继续 MOV A,R2 MOV @R0,A ;保存个位 RET PWTAB:DB 10H,27H ;10000 DB 0E8H,03H ;1000 DB 64H,00H ;100 DB 0AH,00H ;10 TABL: DW 050FH,0E89H,0A695H,1EAAH,0D9BH,7F93H DW 0373H,26D7H, 2710H,9E3FH,1A66H,22E3H DW 1174H,16EFH, 33E4H,6CA0H 例4-7:根据16个双字节数的序号查表找出对应数据 表地址 #TABL #TABL+1 #TABL+2 #TABL+3 …… #TABL+30 #TABL+31 数据Y Y0高 Y0低 Y1高 Y1低 …… Y15高 Y15低 序号X 00H 01H …… 0FH 编程思路:以表格首地址(TABL)为基址,以序号(的2倍)为偏移量,查找对应的数据 二、查表程序 ORG 2000H STA1: MOV A,R2 ;取待查数据的序号 X (入口) RL A ;每数占2个单元,序号要乘2 MOV R4,A ;R4 ← 序号 x2 (即偏移量) MOV DPTR,#TABL ;DPTR ← 表格首地址 MOVC A,@A+DPTR ;(A)← 查到数据高8位 XCH A,R4 ;数据高8位存进R4(出口) ;同时取出偏移量到A INC DPTR ;DPTR指向下一个单元 MOVC A,@A+DPTR ;再查到数据低8位 MOV R3,A ;将数据低8位存进R3(出口) RET TABL: DW …………… ;表格数据见前页 END 第四节 数字滤波程序 一、数字滤波 为克服随机干扰引起的误差,硬件上可采用滤波技术; 软件上可采用软件算法实现数字滤波,其算法往往是系统测控算法的一个重要组成部分,实时性强 二、数字滤波的好处 返回 无需硬件,只用一个计算过程,可靠性高 可对频率很高或很低的信号进行滤波,这是模拟滤波器做不到的 用软件算法来实现,因而多输入通道可共用一个滤波程序,降低系统成本 只要适当改变软件滤波器的滤波程序或运算参数,就可方便地改变其滤波特性,这对于低频干扰、随机信号的滤波有较大效果。 高精度、高可靠和高稳定性 三、数字滤波器原理 数字滤波完成的功能是将一组输入数字序列按照一定的算法转化为另一组输出数字序列,经过数字滤波后的输出序列比输入序列更平滑和易于处理 S/H A/D 数字滤波器 D/A X(t) X(n) Y(n) 模拟信号的数字滤波 设输入为X(n),输出为Y(n),则输入与输出之间的关系可以用差分方程表示: ak,bk取不同值,则滤波器性质不同: 低通
显示全部
相似文档