永发信息网

在51单片机中关于用查表给定时器赋初值的问题

答案:4  悬赏:70  手机版
解决时间 2021-11-24 20:40
在51单片机中关于用查表给定时器赋初值的问题
最佳答案
TABLE: DW 0FA15H,0FA67H,0FB04H,0FB90H(16进制)
……
DW伪指令,把一个字:FA 15,分别存放在两个字节单元中,其它的字,也都是分别存放的。
……
MOV DPTR,#TABLE1
MOVC A,@A+DPTR -- 从一个字中,读出一个字节
……
INC TEMP --加一
MOV A,TEMP
MOVC A,@A+DPTR -- 从同一个字中,读出另一个字节
……
------------------------------------------------
DW伪指令,是存放两个字节的。
从TABLE:开始,
第0、1字节,存放了15 FA;
第2、3字节,存放了67 FA;
第4、5字节,存放了04 FB;
第6、7字节,存放了90 FB;
……。
从中找第N个字,就要从N*2的地址去找,所以前面有个(要×2呢?)。
MOV A,BUFF,假设BUFF=1
×2后,存放到TEMP,再用MOVC A,@A+DPTR,即可从一个字中,读出一个字节,即67H;
INC TEMP --加一后,再用MOVC A,@A+DPTR,即可从一个字中,读出另一个字节,即FAH。
全部回答
汇编不懂,如果用C语言就简单的多了
TH0 = (数组名)【i】/ 256;
TL0 = (数组名)【i】%256;
楼主的这个问题,是查找1个字,共2个字节,有点麻烦。
建议楼主先研究简单的,1个字节的,查表程序。
--
一般数码管显示,需要查出7段码,这就是1个字节的查表程序。
把这个弄清楚了,现在谈的2字节查表,就迎刃而解了。
查表只是一句,MOVC A,@A+DPTR,把DPTR+A里的值取出来放到A中,然后对TL赋值就行了,MOV TL0,A,把A中的数据赋给TL0,因为TL0是8位的,所以传送的时候只会将A的低8位赋给TL0,那个乘2,是因为那个表里的数据是16位的,双字节
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎么样去除啤酒的味道
今年受大戒是在那个寺院?几月开始?几月结速
缺钾的人要打什么针
独自一个人在50米深的水库钓鱼危险不
有幸成为同学,古文怎么译
形容安静美好的词语
托福阅读3到5篇,每篇12到14个选项,按照后面
5个x相加是8.5 列方程式
以我们毕业了为主题的手抄报
花园新村-西门在哪里啊,我有事要去这个地方
s7lol天赋和符文最多提高多少生命偷取
电信宽带2M上行下行是多少?
请问谁知道上海EMS世博园投递部在哪里?
汽车汽油油压正常情况下是多少?
1940年属相和1949的属相相匹配吗
推荐资讯
我的电动车是60伏12安五个小电瓶,800w电机可
海城乐城商务宾馆地址在什么地方,想过去办事
连信被他人举报了被限制用不了应该怎么解除呢
最婉转表白
我爱我家第一季 怎么下不动啊
20钢管和325怎样区分
89x21=?是估算计算
刨腹产12天了,有放屁,但是没有大便,该怎么办
八音九歌音乐工作室我想知道这个在什么地方
y=sin丨x丨的图像为什么会是那个样子????
为什么有时候被溺死的人,尸体会在上游,而不
怎么抑制冲动?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?