『壹』 合泰單片機匯編語言的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及連接線,所有實驗,輕松搞定!