合泰单片机汇编问题

合泰单片机汇编问题,第1张

data section 'data' ;数据段   这样的写法是比较标准的整齐的汇编写法,就是告诉你这段就是定义变量 和REGISTER 等现在好多人定义这些都是放在INC文件里就可以的了

code section at 0 'code'  这个就是告诉你下面这段就是单片机的程式了

子程式里proc 是子程式开始,endp就是子程式的结束,其实现在好多人 直接写子程式名就可以的了 好像  sub:   ret

sdz 是 register 自减1, 如果为0 就是跳过下一条指令,一般的用法是

SDZ R

JMP  LOOP

$

1怎样用软件设置:CMOSE输出,带或不带上拉电阻的斯密特触发输入,A/D输入????

输出就是输出,什么"CMOS输出"是Holtek官方术语,"斯密特触发输入"也是官方术语,带不带上拉电阻是在IDE掩膜选项中设置的

引脚是AD输入还是数字IO靠ADCR中的控制位来定义

2怎样理解ADCR中的前六位设置???当设置好模义输入通道,为什么还要定义PB呢????

这是HT46R52的ADCR 参考(估计HT46R22是一样的):

0 ACS0 选择模拟输入通道

1 ACS1 选择模拟输入通道

2 ACS2 选择模拟输入通道

3 PCR0 为0 则关闭,减小功耗

4 PCR1 为0 则关闭,减小功耗

5 PCR2 为0 则关闭,减小功耗

6 EOC A/D 转换结束标志(0:A/D 转换结束)

每次bit3-5 状态的改变后都必须通过START 信号来初始化A/D 转换器,

否则EOC可能会处于不确定状态

7 START 0→1→0:开始; 0→1:A/D 转换复位并且置EOC为“1”

“当设置好模义输入通道,为什么还要定义PB呢????”

前面0-2只是个通道选择(多选1模拟开关),并不能决定PB口是模拟口还是数字IO

就像有一块内存空间,你选中了一个字节来用,但里面的内容到底什么不知道,设置一下就知道了。

3端口问题:

1控制寄存器:设定IO口是输入还是输出,数据寄存器(端口寄存器)读取/设置端口电平

2设_pac=0b00000000;意思是pa口全部输出;设_pa= 0b00000000;则pa全部输出0

3初始化端口的步骤示例:_pac=0x00; _pa=0x00;

4其他问题:

#pragma vector isr_time @ 0x08 //中断服务程序定义

#pragma vector isr_ad @ 0x0c //中断服务程序定义

uchar sign0 @ 0x40; //在绝对地址定义变量

uchar sign1 @ 0x41; //在绝对地址定义变量

12位的寄存器,怎么可能大于4095! 假如你用的是双字节的变量Value来存储结果,那么读寄存器取值出来后需要屏蔽掉13位之后的数据,即: Value= Value & 0xFFF 。至少不会出现4300的情况。

以上就是关于合泰单片机汇编问题全部的内容,包括:合泰单片机汇编问题、敬爱的合泰单片机高手!!!!!!!、合泰单片机我编写了个采ad值的程序,ad值是采出来了,可是ad值范围整体偏移,AD12位精度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10069633.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存