合泰单片机汇编问题

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

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

code .section at 0 'code'  这个就是告诉你下面这段就是单片机的碧册巧程式姿散了.

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

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

SDZ R

JMP  LOOP

$

1. 下载合泰单片机编译烧录软碧仿件:STVP;

2. 将单片机插入STVP烧录软件安装的 USB 接口,连接电脑;

3. 启动 STVP 烧录软件,在烧录软件工具栏中打开对应的单片机类型,选择单片机型号;

4. 将用编译器编译生成的 .hex 文件导入到烧录软件,点击烧录按钮;

5. 等待烧录完成,烧录完成悔物纤后,拔出合泰单蚂御片机,即可完成烧录。

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//在绝对地址定义变量


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

原文地址: http://outofmemory.cn/yw/12549109.html

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

发表评论

登录后才能评论

评论列表(0条)

保存