作者在开发‘带拼读的语音示教仪’时,遇到了这样一个要求:根据3个自变量(声母的键值、韵母的键值、四声键的键值)确定一个函数值(根据这三者拼出的读音的代号),其中自变量的值,函数的值都是已知的,但它们之间没有明确的对应关系,另外要求判断自变量是否有对应的函数值,一般常规的查表法不能使用,经过一番研究,作者自编了一个查表程序,解决了这个问题。
一、查表要求:
输入变量:1)声母的键值,2)韵母的键值,3)四声键的键值(在47-50间变化)。
输出结果:对应的读音的代号。
查表要求:根据输入判断是否有对应值,如有,则输出对应代号,如没有,则给出没有找到的标记。
二、查表程序:
;***************************************
;双拼拼读处理
;入口:2EH和2DH中分别存入拼读的声母和韵母,2CH中存放拼读的四声键值,
;出口:找到则返回声音信号的序号值50H中,且06H置1
;如未找到,则06H清\'0\'
;R6作拼读总数计数器
;************************************************
J_XH2:
PUSH PSW
MOV R6,#0
MOV DPTR,#J_X2
J2_LP0:
INC R6
CLR A
MOVC A,@A+DPTR
CJNE A,2EH,J2_NOTEQH ;取声母,比较,不等则转
INC DPTR
MOVC A,@A+DPTR
CJNE A,2DH,J2_NOTEQL ;若声母等,则韵母,不等转
MOV A,2CH
SUBB A,#47 ;减去47(基数,使键值从\'0\'开始,0到3)
MOV R7,A ;R7作四声键值记数器
J2_LOOP:
CJNE R7,#0,J2_LOOP1 ;R7中的值不为0,则转去循环
AJMP J2_DONE
J2_LOOP1:
INC DPTR
DEC R7
AJMP J2_LOOP
J2_DONE: ;取数
INC DPTR
CLR A[page]
MOVC A,@A+DPTR
MOV 50H,A ;存数
SETB 06H
AJMP J2_RET
J2_NOTEQH:
INC DPTR
J2_NOTEQL:
INC DPTR
INC DPTR
INC DPTR
INC DPTR
CJNE R6,#SPZS,J2_LP0 ;不等于双拼总数,则继续循环
CLR 06H
J2_RET:
POP PSW
RET
J_X2: DB 18 26 100 101 102 103 ;zi
DB 19 26 104 105 106 107 ;ci
DB 20 26 108 109 110 111 ;si
.
.
.
三、说明
使用本程序前,必须确切地知道表中共有多少个数据,并将定义一个常量:SPZS,即在程序的头部作如下定义(设表中共有100个数据):
SPZS EQU 100
根据这个程序,不难得到三拼的查表程序。以上程序已通过验证,证明运行无误。
这是我很早以前作的工作,请各位莫要见笑。
上一篇:单片机和 FIFO 的接口汇编程序
下一篇:基于单片机的电子琴的电路设计
设计资源 培训 开发板 精华推荐
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况
- Intel有奖接力 白皮书下载进行到底
- Microchip直播:单片机编程不再难, 利用MPLAB®代码配置器(MCC)实现快速开发
- TE智能工厂解决方案,助力工业数字化转型
- 免费申请英飞凌FMCW雷达解决方案Position2Go,角度,距离,速度,运动方向检测一板搞定!
- 从终端到架构,TE Connectivity(TE)助你连接5G高速未来 看视频答题赢好礼!
- 收藏英飞凌天猫店 或 下单都有礼、打折满减同享!
- 【有奖直播】 聚焦语音识别核心技术,走进Microchip Timberwolf™音频处理器研讨会
- 邀你参加2018年论坛体验问卷调查
- 995美元Spartan6开发板,花落谁家?
- 下资料赢京东卡|泰克“软硬”兼施 打造超值示波器