‘壹’ 合泰单片机汇编语言的DC什么意思
表格数据 定义 符号, 说白点就是 在单片机的ROM 里自己做一个数据表格.
一般这样 用,
org 1F00h ; 表格开始的地址
dc 00Ah
dc 00Bh
dc 00Ch
dc 00Dh
dc 00Eh
dc 00Fh
dc 01Ah
dc 01Bh
读取表格数据的汇编软件:
读取表格指针 低八位tblp 和高八位tbhp , 读取表格命令 tabrd
看看下面的读取表格的例子,就明白的了.
mov a,06h ;
mov tblp,a ; 表格指针低地址=06H
mov a,7fh ;
mov tbhp,a ; 表格指针高地址=7FH
tabrd tempreg1 ; 把表格地址 7F06H 的数字放到tempreg1
dec tblp ;
tabrd tempreg2 ; 把表格地址 7F05的数据放到tempreg2 里
表格读取结果是 tempreg1 = 01AH , tempreg2 = 0FH
‘贰’ 合泰单片机视频教程
合泰单片机大部分是51内核,合泰单片机陈本低但是资料少是目前产品设计使用较多教学用胶少,可以先学习其他有视频教程的51内核单片机再学合泰
‘叁’ 合泰单片机c程序怎么喂狗
使能只需要操作一次就可以,清零操作比照定时器那样理解,就是把看门狗的定时计数清零而已,让它从零开始计数。
‘肆’ 合泰单片机好用吗
低档设备里用的较多,因为便宜,好不好是各人的看法而已
‘伍’ 合泰单片机内置eeprom只能读不能写,要怎么解决
我也遇到这样的问题。没人给出答案,我来说一下吧。(主要是针对V3编译C)
根据Holtek_C_Compiler_V3_FAQ(950).pdf的描述,V3不保证编译后的指令符合EEPROM写入顺序。根据BS86的数据手册,WREN 和 WR一定要符合顺序。
我编译后的指令出现的是LSET WREN以及LSET WR,这个就出问题了。芯片需要的是SET。
解决方法是根据官方FAQ的描述
"5.5 对于写 EEPROM 有限制的 MCU ( 需连续 set wren, wr, flag),如何使用
V3 写 EEPROM?"
下面是代码
//RefertoHoltek_C_Compiler_V3_FAQ(950).pdf
typedefstruct{
unsignedcharbit0:1;
unsignedcharbit1:1;
unsignedcharbit2:1;
unsignedcharbit3:1;
unsignedcharbit4:1;
unsignedcharbit5:1;
unsignedcharbit6:1;
}iar_bits;
DEFINE_SFR(iar_bits,iar1,0x02);
#defineiar1_3 iar1.bit3
#defineiar1_2 iar1.bit2
#defineiar1_1 iar1.bit1
#defineiar1_0 iar1.bit0
...
uint8_tbkup;
_eea=u8Addr;
_eed=u8NewData;
_mp1l=0x40;
bkup=_mp1h;
_mp1h=0x01;
_emi=0;
iar1_3=1;
iar1_2=1;
_emi=1;
while(iar1_2)
{
}
_iar1=0;
_mp1h=bkup;
...
官方的解决方案产生的代码跟数据手册中的一直:
;129 iar1_3=1;
0D0D 3182 set__iar1[0].3《《以前这里是LSETWREN
;130 iar1_2=1;
0D0E 3102 set__iar1[0].2《《以前这里是LSETWR
‘陆’ 合泰单片机汇编问题
data .section 'data' ;数据段 这样的写法是比较标准的整齐的汇编写法,就是告诉你这段就是定义变量 和REGISTER 等.现在好多人定义这些都是放在INC文件里就可以的了.
code .section at 0 'code' 这个就是告诉你下面这段就是单片机的程式了.
子程式里proc 是子程式开始,endp就是子程式的结束,其实现在好多人 直接写子程式名就可以的了. 好像 sub: ret
sdz 是 register 自减1, 如果为0 就是跳过下一条指令,一般的用法是
SDZ R
JMP LOOP
$
‘柒’ 合泰单片机用什么语言
C语言和汇编语言都行。
‘捌’ 合泰单片机中断问题
一般RISC单片机都采用专用的硬件堆栈,跟51单片机的堆栈结构完全不同(51是使用现有RAM来做堆栈),所以使用RISC单片机时要注意嵌套调用深度。
楼主所提芯片:HT48系列Cost-Effective I/O 型单片机只有两层硬件堆栈,你做三层嵌套,当然会出现堆栈溢出了。
解决办法:杜绝>=3层的嵌套(特别注意在中断中调用)
当然如果你的时间实在是充裕的很,而且硬件余量够足,编码水平也过硬,可以根据堆栈的数据结构试试实现一个软堆栈
--------------------------------------------------------------------
尽管你的说法有问题,但是看在分的面子上,我还是说一下吧:
既然用到IIC,堆栈消耗肯定很大,2层堆栈的单片机就别指望了,你需要使用堆栈多些的单片机:HT48R02N(6层),HT48R54A(6层),HT48R50A-1(6层),HT48R502(16层),还有很多,具体看Selection Guide
--------------------------------------------------------------------
HT48R08A-1是2层硬件堆栈,如果你嵌套了5-6层,一定会出问题,分析了下,有三种可能:
1.你不是用的HT48R08A-1
2.你的IIC软件包实际运行时,没有超出2层调用(尽管最高调用是5-6层,超级隐患!)
3.你判断的5-6层嵌套,实际只有2层(只有子程序调用和中断响应才会产生所谓“嵌套”是不是把For循环之类的也算进“嵌套”了呢)
Good luck!
‘玖’ 合泰单片机前景怎么样
合泰单片机的老型号非常稳定,新型号有一部分性价比很高的,例如:SOP8封装的带AD芯片HT46R005才卖0.85/片。
该单片机学习套件不但可以做流水灯、按键检测(AD、IO均可)、蜂鸣器控制、继电器控制、温度检测、24C02读写、红外遥控解码、数码管显示(74HC164、1628驱动)、液晶显示(1621驱动)等实验,还可以做电水壶、消毒柜、电热水器、抽油烟机等小家电项目实验。配套ISP烧写器+FLASH芯片,无需反复拔插IC及连接线,所有实验,轻松搞定!