❶ 合泰单片机触控按键模块的参考振荡器频率怎么设置请求各位高手指点一下,感谢
个人理解是TKMNC1的MNTSS控制参考频率选择,8bit 时隙计数器TKTMR决定REF OSC,刚好最近我想不用官方库试试合泰的触摸寄存器怎么用,不过暂时都不成功
❷ 合泰单片机汇编问题
sdz
的意思
如果(COUNT1-1)等于0,那么跳过紧跟着下面的那条指令.不等于0,则正常执行下一条,指令数据手册里面有介绍的.
数据段,表示是变量,程序段表示是常量rom,程序代码存在里面.
proc是定义子程序的伪指令,它和endp
分别表示子程序定义的开始和结束两者必须成对出现。
❸ 合泰单片机 unsigned char _pac @ 0x13; unsigned char _pa @ 0x12; #define _pa7 _12_7 是什么意思呀
@ 可以通知编译器将定义的变量放在指定的地址空间。不同的编译器有不同的定义方式和参数。在用之前,可以参考一下编译器的手册,一般就在安装目录下。
❹ 合泰ht46f49e单片机
1、51单片机计数器的脉冲输入脚。主要的脉冲输入脚有Px,y, 也指对应T0的P3.4和对应T1的P3.5,主要用来检测片外来的脉冲。而引脚18和19则对应着晶振的输入脉冲,脉冲的频率和周期为
F = f/12 = 11.0592M/12 = 0.9216MHZ T = 1/F = 1.085us
2、定时器有两种工作模式,分别为计数模式和定时模式。对Px,y的输入脉冲进行计数为计数模式。定时模式,则是对MCU的主时钟经过12分频后计数。因为主时钟是相对稳定的,所以可以通过计数值推算出计数所经过的时间。
3、51计数器的计数值存放于特殊功能寄存器中。T0(TL0-0x8A, TH0-0x8C), T1(TL1-0x8B, TH1-0x8D)
4、TLx与THx之间的搭配关系
1)、TLx与THx之间32进制。即当TLx计到32个脉冲时,TLx归0同时THx进1。这也称为方式0。
2)、TLx与THx之间256进制。即当TLx计到256个脉冲时,TLx归0同时THx进1。这也称为方式1。在方式1时,最多计65536个脉冲产生溢出。在主频为11.0592M时,每计一个脉冲为1.085us,所以溢出一次的时间为1.085usx65536=71.1ms。
3)、THx用于存放TLx溢出后,TLx下次计数的起点。这也称为方式2。
4)、THx与TLx分别独立对自己的输入脉冲计数。这也称为方式3。
5、定时器初始化
1)、确定定时器的计数模式。
2)、确定TLx与THx之间的搭配关系。
3)、确定计数起点值。即TLx与THx的初值。
❺ 合泰单片机汇编问题
data .section 'data' ;数据段 这样的写法是比较标准的整齐的汇编写法,就是告诉你这段就是定义变量 和REGISTER 等.现在好多人定义这些都是放在INC文件里就可以的了.
code .section at 0 'code' 这个就是告诉你下面这段就是单片机的程式了.
子程式里proc 是子程式开始,endp就是子程式的结束,其实现在好多人 直接写子程式名就可以的了. 好像 sub: ret
sdz 是 register 自减1, 如果为0 就是跳过下一条指令,一般的用法是
SDZ R
JMP LOOP
$
❻ 学什么单片机好学单片机怎么样能赚钱吗有前途吗
先学51单片机,可以看看学习视频,对于每个人来说,多学习一种技能 可以拓宽 就业渠道,
单片机学习可以先学习一些仿真示例,如
#include<reg51.h>
#define uchar unsigned char
uchar temp;
int key1,key,disbuf;// 此表为 LED 的字模 0 1 2 3 4 5 6 7 8 9 a b c d e f
unsigned char code LED7Code[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
unsigned char ledx[8];
uchar t,j,i;
bit s0,s1;
void scan() //要是按键了,扫描键盘编码值
{
P1=0xF0;
for(j=0;j<250;j++);
temp=P1;
switch(temp)
{
case 0xe0: key1=0; //
break;
case 0xd0: key1=1; //
break;
case 0xb0: key1=2; //
break;
case 0x70: key1=3; //
break;
}
P1=0x0f;
for(j=0;j<250;j++)
temp=P1;
switch(temp)
{
case 0x0E: key=key1+0;
break;
case 0x0D: key=key1+4;
break;
case 0x0B: key=key1+8;
break;
case 0x07: key=key1+12;
break;
default : key=-1;
}
if((key1+1)&&(key+1)) disbuf=key;
}
void ejjc() //判断是否按键
{
P1=0xF0;
if(P1!=0xF0) { scan();s0=1;}
else { s0=0; s1=1;}
}
void main()
{
TMOD=0x51; // T1 外部计数
TH0=(65535-2000)/256;
TL0=(65535-2000)%256;
EA=1;
ET0=1; //开定时器0中断
ET1=1; //开定时器1中断
TR0=1; //启动定时器0
TR1=1; //启动定时器1
while(1)
{
ejjc();
if(s0==1 && s1==1)
{
s0=0;s1=0;
for(i=0;i<8;i++)
{ ledx[i]=ledx[i+1]; ledx[8]=disbuf; }
}
}
}
void timer0() interrupt 1
{
TH0=(65535-2000)/256;
TL0=(65535-2000)%256;
P0=0xff;
switch(t)
{
case 0: P2=LED7Code[ledx[0]]; P0=0xfe;break;
case 1: P2=LED7Code[ledx[1]]; P0=0xfd;break;
case 2: P2=LED7Code[ledx[2]]; P0=0xfb;break;
case 3: P2=LED7Code[ledx[3]]; P0=0xf7;break;
case 4: P2=LED7Code[ledx[4]]; P0=0xef;break;
case 5: P2=LED7Code[ledx[5]]; P0=0xdf;break;
case 6: P2=LED7Code[ledx[6]]; P0=0xbf;break;
case 7: P2=LED7Code[ledx[7]]; P0=0x7f;break;
}
t++;
if(t==8) t=0;
}
❼ 合泰单片机汇编问题
sdz
的意思
如果(COUNT1-1)等于0,那么跳过紧跟着下面的那条指令.不等于0,则正常执行下一条,指令数据手册里面有介绍的.
数据段,表示是变量,程序段表示是常量rom,程序代码存在里面.
proc是定义子程序的伪指令,它和endp
分别表示子程序定义的开始和结束两者必须成对出现。
❽ 合泰单片机引脚定义,如图,这是什么鬼定义方式为嘛不直接用 这种PA^0格式定义呢
这是宏定义,只是一种别名而已,用前面的名字代替后面的名字,也可以用你说的方式定义的
❾ 合泰单片机内置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
❿ 合泰单片机HT67F系列的使用问题
1,寄存器名与手册对不上号是很正常的,不光合泰的单片机有这种情况,其它的单片机也有这种情况,出现这种情况程序编译是通不过的。所以有时候要关心一下头文件,以头文件的器存器命名为准,或自己更改头文件。
2,关于管脚复用问题。一般情况下不对管脚进行配置默认都是普通IO,但是如果要使用管脚的其它功能,在使用前就要先对相关寄存器进行配置,比如要使用AN1就要先配置好AD转换相关的寄存器,如:ADR、ADRL、ADRH、ADCR、ACSR寄存器。