CXMC33129是一款基于RISC架构的8位微控制器,工作电压范围宽达2.5V至3.6V,适合电池供电和低功耗应用。芯片内置高速(4.9MHz)和低速(32kHz)RC振荡器,支持多种工作模式,包括正常模式、休眠模式、空闲模式0和空闲模式1,能显著降低系统功耗。
其程序存储器为8K×16位OTP,数据存储器为256字节SRAM,支持61条指令,所有指令均可在1或2个周期内完成,执行效率高

-
[ CXMC33129 ]
CXMC33129:一款高性能低功耗的8位RISC微控制器
在当今物联网和智能设备蓬勃发展的时代,微控制器(MCU)作为核心控制单元,其性能、功耗和集成度成为开发者选型的关键因素。CXMC33129正是一款在这样的背景下诞生的8位RISC架构微控制器,以其低功耗、高集成度和丰富的外设资源,广泛应用于智能传感器、便携设备、工业控制等领域。
一、芯片概述与核心特性
CXMC33129是一款基于RISC架构的8位微控制器,工作电压范围宽达2.5V至3.6V,适合电池供电和低功耗应用。芯片内置高速(4.9MHz)和低速(32kHz)RC振荡器,支持多种工作模式,包括正常模式、休眠模式、空闲模式0和空闲模式1,能显著降低系统功耗。
其程序存储器为8K×16位OTP,数据存储器为256字节SRAM,支持61条指令,所有指令均可在1或2个周期内完成,执行效率高。此外,芯片还集成了多种外设模块,包括:
◆ 1通道8位逐次逼近型ADC
◆ 2通道24位Σ-Δ型高精度ADC
◆ 内置温度传感器
◆ 2路8位PWM输出
◆ 10/13个可编程I/O口
◆ 5个中断源,支持多种唤醒方式
1.2.封装形式提供SOP16和SOP20两种选择,方便不同场景下的硬件设计。
二、核心架构与存储器组织
CXMC33129采用经典的哈佛架构,程序存储器和数据存储器分离,支持同时访问,提高了指令执行效率。程序存储器地址空间为8K×16位,其中0000H为复位向量地址,0004H~0018H为中断向量区,用户代码可从0000H开始存放。
数据存储器分为特殊功能寄存器(SFR)和通用寄存器(GPR),地址范围000H~1FFH。SFR用于控制外设和系统状态,GPR用于数据存储和运算中间结果。间接寻址寄存器INDF0/INDF1与指针寄存器INDP0/INDP1配合使用,支持灵活的数据访问方式。
2.1.核心架构
2.2.存储器结构
本单片机主要包括两种存储器模块:程序存储器和数据存储器。每一个模块都有自己的总
线,在同一个周期内可对两种存储器模块同时进行访问。
2.2.1 程序存储器
程序存储器用来存放用户代码即存储程序。本单片机有一个 13 位宽的程序计数器,最大
可寻址8K x 16 的程序存储空间。本单片机具有 8K x16 的程序存储器。
程序存储器中某些地址保留用作诸如复位和中断等特殊用途。0000H 是保留用做单片机复
位后的程序起始地址。在芯片初始化或发生复位时,程序将会跳转到这个地址并开始执行
0004H ~ 0018H 为中断向量,用以执行中断服务程序。1DFFH ~ 1FFFH 为加密区不可用。
2.2.2 数据存储器
2.2.2.1) 数据存储器结构
数据存储器由特殊功能寄存器(SFR)和通用寄存器(GPR)组成。SFR 控制器件的操作,
这些寄存器有特定的地址且与单片机的正确操作密切相关。大多特殊功能寄存器都可在程
序控制下直接读取和写入,而有些是被加以保护而不对用户开放。GPR 是数据存储和改写
的通用区域,所有地址都可在程序的控制下进行读取和写入。
单片机的数据存储器的起始地址都是“000H”,地址范围为 000H~1FFH。
2.2.2.2) 特殊功能寄存器描述
大部分特殊功能寄存器将在相关功能中详细描述,但有几个寄存器在此章节单独描述。
间接寻址寄存器 –INDF0,INDF1
间接寻址寄存器 INDF0 和 INDF1 的地址虽位于数据存储区,但其并没有实际的物理地址。
间接寻址的方式是使用间接寻址寄存器和间接寻址指针对数据操作,以取代定义实际存
储器地址的直接存储器寻址方法。在间接寻址寄存器 (INDF0 和 INDF1) 上的任何动作,将
对间接寻址指针(INDP0 和 INDP1) 所指定的存储器地址产生对应的读/写操作。它们总是
成对出现,INDF0 和 INDP0 可以访问Bank 0 ,而INDF1 和 INDP1 可以访问所有 Bank
(本款单片机只有 Bank0)。
间接寻址指针–INDP0,INDP1
此系列单片机提供两个间接寻址指针,即INDP0 和 INDP1。由于这些指针在数据存储器中
能像普通的寄存器一般被操作,因此提供了一个寻址和数据追踪的有效方法。当对间接寻
址寄存器进行任何操作时,单片机指向的实际地址是由间接寻址指针所指定的地址 。
INDP0 ,INDF0 用于访问Bank 0 ,而INDP1 和 INDF1 可通过RBS 寄存器访问所有的
Bank。间接寻址只访问通用寄存器,即对于 9 位地址的最高位默认为高。
状态寄存器 –STATUS
这8 位寄存器包括零标志位(Z)、进位标志位(C)、辅助进位标志位(AC)、溢出标志位(OV),
暂停标志位(PDF)、和看门狗溢出标志位(TO)。这些标志位同时记录单片机的状态数据和算
术/逻辑运算。
C:当加法运算的结果产生进位,或减法运算的结果没有产生借位时,则C 被置位,否则
C 被清零,同时 C 也会被带进位的移位指令所影响。
AC:当低半字节加法运算的结果产生进位,或低半字节减法运算的结果没有产生借位时,
AC 被置位,否则AC 被清零。
Z:当算术或逻辑运算结果是零时,Z 被置位,否则Z 被清零。
OV:当运算结果高两位的进位状态异或结果为 1 时,OV 被置位,否则OV 被清零。
PDF:系统上电或执行“CLRWDT”指令会清零PDF,而执行“STOP”指令则会置位 PDF。
TO:系统上电或执行“CLRWDT”或“STOP”指令会清零TO,而当WDT 溢出则会置位
TO。
另外,当进入一个中断程序或执行子程序调用时状态寄存器将不会自动压入到堆栈中保
存。假如状态寄存器的内容很重要,且中断子程序会改变状态寄存器的内容,则需要保存
备份以备恢复。
Bit 7 ~ 6 未使用,读为“0”
Bit 5 TO:看门狗溢出标志位
0:系统上电或执行“CLRWDT”或“STOP”指令
1:WDT 溢出
Bit 4 PDF:暂停标志位
0:系统上电或执行“CLRWDT”指令
1:执行“STOP”指令将会置位 PDF 位。
Bit 3 OV:溢出标志位
0:不发生溢出时
1:当运算结果高两位的进位状态异或结果为 1 时
Bit 2 Z:零标志位
0:算数运算或逻辑运算的结果不为零时
1:算数运算或逻辑运算的结果为零时
Bit 1 AC:辅助进位标志位
0:没有辅助进位时
1:当低字节的加法造成进位或减法没有造成借位时
Bit 0 C:进位标志位(用于借位时,极性相反)
0:没有进位时
1:当加法造成进位或减法没有造成借位时,同时移位指令也会影响C 标志位 C
也受循环移位指令的影响。
三、系统时钟与功耗管理
CXMC33129内置两个RC振荡器:高速HIRC(4.9MHz)和低速LIRC(32kHz)。用户可通过SMOD寄存器选择系统时钟源及其分频比,支持fH、fH/2、fH/4、fH/8四种频率,兼顾性能与功耗。
芯片支持四种工作模式:
◆ 正常模式:所有模块运行,功耗最高,性能最强。
◆ 休眠模式:CPU和系统时钟关闭,仅低速振荡器和WDT运行,功耗最低。
◆ 空闲模式0:CPU停止,系统时钟关闭,部分外设(如Timer0)仍可运行。
◆ 空闲模式1:CPU停止,系统时钟继续运行,外设功能保持。
通过STOP指令结合SMOD寄存器中的IDLEC和FSYSEN位,可灵活切换工作模式,实现功耗的精细控制。
3.1.振荡器
该单片机有两个内部全集成的振荡器,高速振荡器为内部 4.9MHzRC 振荡器,低速振荡
器为内部 32kHz RC 振荡器。
内部高速 RC 振荡器 –HIRC
内部高速 RC 振荡器是一个全集成的系统振荡器,不需其它外部器件。芯片在制造时进行
调整且内部含有频率补偿电路,使得振荡频率因VDD、温度以及芯片制成工艺不同的影响
减至最低程度
内部低速 RC 振荡器 –LIRC
内部 32kHz 系统振荡器为低速振荡器。LIRC 是一个全集成的 RC 振荡器,无需外接器件,
在常温 3.3V 条件下,振荡频率值为 32kHz。芯片在制造时进行调整且内部含有频率补偿电
路,使得振荡频率因VDD、温度以及芯片制成工艺不同的影响减至最低程度。系统上电,
LIRC 振荡器就使能, 不存在将该振荡器除能的寄存器位
系统时钟配置
3.3.相关特殊功能寄存器
SMOD 寄存器 用于控制单片机内部时钟。
Bit 7~4 未使用,读为“0”
Bit 3~2 CP1~CP0:系统时钟选择位,用于选择系统时钟源。
00:fH
01:fH/2
10:fH/4
11:fH/8
Bit 1 IDLEC:空闲模式控制位
0:除能(STOP 指令执行后进入休眠模式)
1:使能
此位为空闲模式控制位,用于决定 STOP 指令执行后发生的动作。若此位为高,当指令
STOP 执行后,单片机进入空闲模式,至于进入空闲模式 0 还是空闲模式 1 取决于
FSYSEN 位,若FSYSEN 位为高,在空闲模式 1 中 CPU 停止运行,系统时钟将继续工作
以保持外围功能继续工作; 若FSYSEN 为低,在空闲模式 0 中 CPU 和系统时钟都将停止
运行。若此位为低,单片机将在 STOP 指令执行后进入休眠模式。
Bit 0 FSYSEN: IDLE 模式时,fSYS 控制位
0: 除能
1: 使能
3.4.系统工作模式
该系列单片机有四种不同的工作模式,每种有它自身的特性,根据应用中不同的性能和
功耗要求可选择不同的工作模式。单片机正常工作有正常模式。剩余的 3 种工作模式:休
眠模式、空闲模式 0 和空闲模式 1 用于单片机 CPU 关闭时以节省耗电。

正常模式
顾名思义,这是主要的工作模式,单片机的所有功能均可在此模式中实现且系统时钟由
一个高速振荡器提供。该模式下单片机正常工作的时钟源来自HIRC 振荡器。高速振荡器频
率可被分为 1~8 的不等比率,实际的比率由SMOD 寄存器中的 CP1~CP0 选择的。单片机
使用高速振荡器分频作为系统时钟可减小工作电流。
休眠模式
在 STOP 指令执行后且SMOD 寄存器中 IDLEC 位为低时,系统进入休眠模式。在休眠模
式中,CPU 停止运行。看门狗定时器功能使能,fL继续运行。
空闲模式 0
执行STOP 指令后且SMOD 寄存器中 IDLEC 位为高,SMOD 寄存器中 FSYSEN 位为低时,
系统进入空闲模式 0。在空闲模式 0 中,系统时钟停止,CPU 停止工作,但一些外围功能
如看门狗定时器和定时/计数器将继续工作。
空闲模式 1
执行STOP 指令后且SMOD 寄存器中 IDLEC 位为高,SMOD 寄存器中 FSYSEN 位为高时,
系统进入空闲模式 1。在空闲模式 1 中,CPU 停止,但会提供一个时钟源给一些外围功能
如看门狗定时器和定时/计数器。在空闲模式 1 中,系统时钟继续运行。
MCU 核的省电工作模式,主要通过关闭相关部分的时钟来实现;

PWM、8bit ADC 时钟即为系统时钟
系统进入休眠或空闲模式之后,可以通过以下几种方式唤醒:
● 系统中断
● WDT 溢出
若由WDT 溢出唤醒,则会发生看门狗定时器复位。这种唤醒方式都会使系统复位,可以
通过状态寄存器中 TO 和 PDF 位来判断它的唤醒源。系统上电或执行清除看门狗的指令,
会清零PDF;执行STOP 指令,PDF 将被置位。看门狗计数器溢出将会置位 TO 标志并唤
醒系统,这种复位会重置程序计数器和堆栈指针,其它标志保持原有状态。
如果系统是通过中断唤醒,则有两种可能发生。第一种情况是:相关中断除能或是中断使
能且堆栈已满,则程序会在“STOP”指令之后继续执行。这种情况下,唤醒系统的中断会
等到相关中断使能或有堆栈层可以使用之后才执行。第二种情况是:相关中断使能且堆栈
未满,则中断可以马上执行。 如果在进入休眠或空闲模式之前中断标志位已经被设置为
“1”,则相关中断的唤醒功能将无效。
四、外设资源详解
1. 定时计数器Timer0与Timer1
Timer0为8位可编程定时器,支持系统时钟或低速时钟作为源,预分频比可调,溢出时可触发中断。Timer1为固定周期计数器,专用于产生时基中断,适用于需要周期性唤醒的应用场景。
2. PWM模块
芯片提供两路8位PWM输出,可通过PWM0和PWM1寄存器设置占空比,PWMCT寄存器控制输出使能与极性反转,适用于电机控制、LED调光等应用。
3. ADC模块
◆ 8位SAR ADC:转换周期为32个机器周期,适用于一般精度模拟信号采集。
◆ 24位Σ-Δ ADC:支持差分输入,增益可调(2或128倍),输出速率可选(10/20/40/80Hz),适用于高精度测量如称重、温度、压力等。
4. 温度传感器
通过24位ADC的通道2可读取内部温度传感器数据,输出值与温度呈线性关系,典型值为25℃时输出224700(右移2位后),每升高1℃输出增加740,适用于环境温度监测。
5. 中断系统
芯片支持5个中断源,按优先级从高到低依次为:外部中断、Timer0中断、Timer1中断、24位ADC中断、8位ADC中断。每个中断均有独立的使能位和标志位,支持边沿触发和唤醒功能。
五、指令集与编程模型
CXMC33129提供61条指令,涵盖算术运算、逻辑运算、数据传送、位操作、跳转等功能。所有指令均可在1或2个周期内完成,支持直接、间接和立即数寻址方式,编程灵活高效。
特别值得一提的是其BCD调整指令(BTD),可用于十进制运算,适用于数码管显示、计量设备等场景。
5.1.指令描述约定
m 数据寄存器地址
R m 对应数据存储器
ACC 累加器(工作寄存器)
b 八位数据寄存器内的位地址
k 立即数
5.2.指令一览表
5.3.指令定义惯例
k:立即数
m:数据存储器地址
ACC:累加器
b:第0~7 位
一、算术运算
1、ADDAM m,1
指令说明 将指定的数据存储器和累加器内容相加,结果存放到累加器。
功能表示 ACC ← m +ACC
影响标志位 OV、Z、AC、C
2、ADDAM m,0
指令说明 将指定的数据存储器和累加器内容相加,结果存放到指定的数据存储器。
功能表示 m ← m +ACC
影响标志位 OV、Z、AC、C
3、ADDAL k
指令说明 将累加器和立即数相加,结果存放到累加器。
功能表示 ACC ← k +ACC
影响标志位 OV、Z、AC、C
4、ADDAMC m,1
指令说明 将指定的数据存储器、累加器内容以及进位标志相加,结果存放到累加器。
功能表示 ACC ← m +ACC + C
影响标志位 OV、Z、AC、C
5、ADDAMC m,0
指令说明 将指定的数据存储器、累加器内容和进位标志位相加,结果存放到指定的数据
存储器。
功能表示 m ← m +ACC + C
影响标志位 OV、Z、AC、C
6、SUBAL k
指令说明 将立即数去累加器的内容减,结果存放到累加器。如果结果为负,C 标志位清除
为 0,反之结果为正或 0,C 标志位设置为 1。
功能表示ACC ← k–ACC
影响标志位 OV、Z、AC、C
7、SUBAM m,1
指令说明 将指定数据存储器的数据减去累加器的内容,把结果存放到累加器。如果结果为
负,C 标志位清除为 0,反之结果为正或 0,C 标志位设置为 1。
功能表示ACC ← m – ACC
影响标志位 OV、Z、AC、C
8、SUBAM m,0
指令说明 将指定数据存储器的数据减去累加器的内容,结果存放到指定的数据存储器。如
果结果为负,C 标志位清除为 0,反之结果为正或 0,C 标志位设置为 1。
功能表示m ← m – ACC
影响标志位 OV、Z、AC、C
9、SUBAMC m,1
指令说明 将指定数据存储器的数据减去累加器的内容减去进位标志的反,结果存放到累
加器。如果结果为负,C 标志位清除为 0,反之结果为正或 0,C 标志位设置为 1。
功能表示ACC ← m – ACC – (!C)
10、SUBAMC m,0
指令说明 将指定数据存储器的数据减去累加器的内容减去进位标志的反,结果存放到数
据存储器。如果结果为负,C 标志位清除为 0,反之结果为正或 0,C 标志位设置为 1。
功能表示m ← m – ACC – (!C)
影响标志位 OV、Z、AC、C
11、BTD m
指令说明 一般与加法一起使用,作用是把上一次的加法中的加数和被加数直接看成十进
制数进行运算,把十进制的和存到m 中。如果低四位的值大于“9”或 AC=1,那么BCD 调
整就执行对原值加“6”,否则原值保持不变;如果高四位的值大于“9”或 C=1,那么
BCD 调 整就执行对原 值 加“6” 。BCD 转换实质上 是根据 累加器 和 标志位 执行
00H,06H,60H 或 66H 的加法运算,结果存放到数据存储器。只有进位标志位 C 受影响,
用来指示原始 BCD 的和是否大于 100,并可以进行双精度十进制数的加法运算。
功能表示m ← ACC + 00H 或
m ← ACC + 06H 或
m ← ACC + 60H 或
m ← ACC + 66H
影响标志位 C
例如上一次加法中,
29H+35H=5EH
直接看成
29D+35D=64D → m
二、逻辑运算
1、ANDAM m,1
指令说明 将指定数据存储器内容和累加器中的数据做逻辑与,结果存放到累加器。
功能表示ACC ← m“AND”ACC
影响标志位 Z
2、ANDAM m,0
指令说明 将指定数据存储器内容和累加器中的数据做逻辑与,结果存放到数据存储器。
功能表示m ← m“AND”ACC
影响标志位 Z
3、ANDAL k
指令说明 将累加器中的数据和立即数做逻辑与,结果存放到累加器。
功能表示ACC ← k“AND”ACC
影响标志位 Z
4、ORAM m,1
指令说明 将指定数据存储器中的数据和累加器逻辑或,结果存放到累加器。
功能表示ACC ← m“OR”ACC
影响标志位 Z
5、ORAM m,0
指令说明 将指定数据存储器中的数据和累加器逻辑或,结果放到数据存储器。
功能表示m ← m“OR”ACC
影响标志位 Z
6、ORAL k
指令说明 将累加器中的数据和立即数逻辑或,结果存放到累加器。
功能表示ACC ← k“OR”ACC
影响标志位 Z
7、XORAM m,1
指令说明 将指定的数据存储器内容和累加器的数据逻辑异或,结果存放到累加器。
功能表示ACC ← m“XOR”ACC
影响标志位 Z
8、XORAM m,0
指令说明 将指定的数据存储器内容和累加器的数据逻辑异或,结果放到数据存储器。
功能表示m ← m“XOR”ACC
影响标志位 Z
9、XORAL k
指令说明 将累加器的数据与立即数逻辑异或,结果存放到累加器。
功能表示ACC ← k“XOR”ACC
影响标志位 Z
10、CPL m,0
指令说明 将指定数据存储器中的每一位取逻辑反,相当于从1 变0 或 0 变1。
功能表示m ← ~m
影响标志位 Z
11、CPL m,1
指令说明 将指定数据存储器中的每一位取逻辑反,相当于从1 变0 或 0 变1,而结果被储
存回累加器且数据存储器中的内容不变。
功能表示ACC ← ~m
影响标志位 Z
三、递增和递减
1、INC m,0
指令说明 将指定数据存储器的内容加1。
功能表示m ← m + 1
影响标志位 Z
2、INC m,1
指令说明 将指定数据存储器的内容加1,结果存放回累加器并保持指定的数据存储器内容
不变。
功能表示ACC ← m + 1
影响标志位 Z
3、DEC m,0
指令说明 将指定数据存储器内容减1。
功能表示m ← m – 1
影响标志位 Z
4、DEC m,1
指令说明 将指定数据存储器的内容减1,把结果存放回累加器并保持指定数据存储器的内
容不变。
功能表示ACC ← m – 1
影响标志位 Z
四、移位
1、RR m,0
指令说明 将指定数据存储器的内容循环右移1 位且第0 位移到第7 位。
功能表示m.b ← m.(b+1) (b=0~6)
m.7 ← m.0
影响标志位 无
2、RR m,1
指令说明 将指定数据存储器的内容循环右移1 位,第0 位移到第7 位,移位结果存放到累
加器,而指定数据存储器的内容保持不变。
功能表示ACC.b ← m.(b+1) (b=0~6)
ACC.7 ← m.0
影响标志位 无
3、RRC m,0
指令说明 将指定数据存储器的内容连同进位标志右移1 位,第0 位取代进位标志且原本
的进位标志移到第7 位。
功能表示m.b ← m.(b+1) (b=0~6)
m.7 ← C
C ← m.0
影响标志位 C
4、RRC m,1
指令说明 将指定数据存储器的内容连同进位标志右移1 位,第0 位取代进位标志且原本
的进位标志移到第7 位, 移位结果送回累加器,但是指定数据寄存器的内容保持不变。
功能表示ACC.b ← m.(b+1) (b=0~6)
ACC.7 ← C
C ← m.0
影响标志位 C
5、RL m,0
指令说明 将指定数据存储器的内容左移1 位,且第7 位移到第0 位。
功能表示m.(b+1) ← m.b (b=0~6)
m.0 ← m.7
影响标志位 无
6、RL m,1
指令说明 将指定数据存储器的内容左移1 位,且第7 位移到第0 位,结果送到累加器,而
指定数据存储器的内容保持不变。
功能表示ACC.(b+1) ← m.b (b=0~6)
ACC.0 ← m.7
影响标志位 无
7、RLC m,0
指令说明 将指定数据存储器的内容连同进位标志左移1 位,第7 位取代进位标志且原本
的进位标志移到第0 位。
功能表示m.(b+1) ← m.b (b=0~6)
m.0 ← C
C ← m.7
影响标志位 C
8、RLC m,1
指令说明 将指定数据存储器的内容连同进位标志左移1 位,第7 位取代进位标志且原本
的进位标志移到第0 位, 移位结果送回累加器,但是指定数据寄存器的内容保持不变。
功能表示ACC.(b+1) ← m.b (b=0~6)
ACC.0 ← C
C ← m.7
影响标志位 C
五、数据传送
1、MOVMA m
指令说明 将指定数据存储器的内容复制到累加器。
功能表示ACC ← m
影响标志位 无
2、MOVLA k
指令说明 将8 位立即数载入累加器。
功能表示ACC ← k
影响标志位 无
3、MOVAM m
指令说明 将累加器的内容复制到指定的数据存储器。
功能表示m ← ACC
影响标志位 无
六、位运算
1、CLRB m,b
指令说明 将指定数据存储器的 b 位内容清零。
功能表示m,b ← 0
影响标志位 无
2、SETB m,b
指令说明 将指定数据存储器的第b 位置位为 1。
功能表示m,b ← 1
影响标志位 无
七、条件转移
1、SZ m,0
指令说明 判断指定数据存储器的内容是否为 0,若为 0,则程序跳过下一条指令执行。由
于取得下一个指令时会要求插入一个空指令周期,所以此指令为 2 个周期的指令。如果结
果不为 0,则程序继续执行下一条指令。
功能表示如果m=0, 跳过下一条指令执行
影响标志位 无
2、SZ m,1
指令说明 将指定数据存储器内容复制到累加器,并判断指定数据存储器的内容是否为 0,
若为 0 则跳过下一条指令。由于取得下一个指令时会要求插入一个空指令周期,所以此指
令为 2 个周期的指令。如果结果不为 0,则程序继续执行下一条指令。
功能表示ACC ← m,如果m=0,跳过下一条指令执行
影响标志位 无
3、SZB m,b
指令说明 判断指定数据存储器的第b 位是否为 0,若为 0,则跳过下一条指令。由于取得
下一个指令时会要求插入一个空指令周期,所以此指令为 2 个周期的指令。如果结果不为
0,则程序继续执行下一条指令。
功能表示如果m,b=0,跳过下一条指令执行
影响标志位 无
4、SZBN m,b
指令说明 判断指定数据存储器的第i 位,若不为 0,则程序跳过下一条指令执行。由于取
得下一个指令时会要求插入一个空指令周期,所以此指令为 2 个周期的指令。如果结果为
0,则程序继续执行下一条指令。
功能表示如果m.i≠0,跳过下一条指令执行
影响标志位 无
指令说明 判断指定数据存储器的第b 位是否为 0,若为 0,则跳过下一条指令。由于取得
下一个指令时会要求插入一个空指令周期,所以此指令为 2 个周期的指令。如果结果不为
0,则程序继续执行下一条指令。
功能表示如果m,b =0,跳过下一条指令执行
影响标志位 无
5、SZINC m,0
指令说明 将指定的数据存储器的内容加1,判断是否为 0,若为 0 则跳过下一条指令。由
于取得下一个指令时会要求插入一个空指令周期,所以此指令为 2 个周期的指令。如果结
果不为 0,则程序继续执行下一条指令。
功能表示m ← m+1,如果m=0 跳过下一条指令执行
影响标志位 无
6、SZDEC m,0
指令说明 将指定的数据存储器的内容减1,判断是否为 0,若为 0 则跳过下一条指令,由
于取得下一个指令时会要求插入一个空指令周期,所以此指令为 2 个周期的指令。如果结
果不为 0,则程序继续执行下一条指令。
功能表示m ← m -1,如果m=0 跳过下一条指令执行
影响标志位 无
7、SZINC m,1
指令说明 将指定数据存储器的内容加1,判断是否为 0,如果为 0 则跳过下一条指令,此
结果会被存放到累加器,但是指定数据存储器的内容不变。由于取得下一个指令时会要求
插入一个空指令周期,所以此指令为 2 个周期的指令。如果结果不为 0,则程序继续执行
下一条指令。
功能表示ACC ← m+1,如果ACC=0 跳过下一条指令执行
影响标志位 无
8、SZDEC m,1
指令说明 将指定数据存储器内容减1,判断是否为 0,如果为 0 则跳过下一条指令,此结
果将存放到累加器,但指定数据存储器内容不变。由于取得下一个指令时会要求插入一个
空指令周期,所以此指令为 2 个周期的指令。如果结果不为 0,则程序继续执行下一条指
令。
功能表示ACC ← m-1,如果ACC=0 跳过下一条指令执行
影响标志位 无
八、无条件转移
1、JMP k ( k —12bit )
指令说明 程序计数器的内容无条件地由被指定的地址取代,程序由新的地址继续执行。当
新的地址被加载时,必须插入一个空指令周期,所以此指令为 2 个周期的指令。
功能表示Program Counter ← k
影响标志位 无
2、GOTO k
指令说明 无条件地调用指定地址的子程序,此时程序计数器先加1 获得下一个要执行的
指令地址并压入堆栈,接着载入指定地址并从新地址继续执行程序,由于此指令需要额
外的运算,所以为一个 2 周期的指令。
功能表示Stack ← Program Counter + 1
Program Counter ← k
影响标志位 无
3、RET
指令说明 将堆栈寄存器中的程序计数器值恢复,程序由取回的地址继续执行。
功能表示Program Counter ← Stack
影响标志位 无
4、RETL k
指令说明 将堆栈寄存器中的程序计数器值恢复且累加器载入指定的立即数,程序由取回
的地址继续执行。
功能表示Program Counter ← Stack
ACC ← k
影响标志位 无
5、RETIN
指令说明 将堆栈寄存器中的程序计数器值恢复且中断功能通过设置GIE 位重新使能。GIE
是控制中断使能的主控制位。如果在执行RETIN 指令之前还有中断未被相应,则这个中断
将在返回主程序之前被相应。
功能表示Program Counter ← Stack
EMI ← 1
影响标志位 无
九、其他指令
1、NOP
指令说明 空操作,接下来顺序执行下一条指令。
功能表示PC ← PC+1
影响标志位 无
2、CLR A
指令说明 将工作寄存器 ACC 的内容清零。
功能表示m ← 00H
影响标志位 无
3、CLR m
指令说明 将指定数据存储器的内容清零。
功能表示m ← 00H
影响标志位 无
4、SET m
指令说明 将指定数据存储器的每一位设置为 1。
功能表示m ← FFH
影响标志位 无
5、CLRWDT
指令说明 WDT 计数器、暂停标志位 PDF 和看门狗溢出标志位 TO 清零。
功能表示WDT ← 00H
TO & PDF ← 0
影响标志位 TO、PDF
6、CLRWDT1
指令说明 清零WDT 计时器,PDF 与 TO 保留原状态不变。
功能表示WDT ← 00H
7、SWOP m,0
指令说明 将指定数据存储器的低 4 位和高 4 位互相交换。
功能表示m.3~m.0 ↔ m.7~m.4
影响标志位 无
8、SWOP m,1
指令说明 将指定数据存储器的低 4 位与高 4 位互相交换,再将结果存放到累加器且指定
数据寄存器的数据保持不变。
功能表示ACC.3~ACC.0 ← m.7~m.4
ACC.7~ACC.4 ← m.3~m.0
影响标志位 无
9、STOP
指令说明 此指令终止程序执行并关掉系统时钟,RAM 和寄存器的内容保持原状态,
WDT 计数器和分频器被清“0”,暂停标志位 PDF 被置位 1,WDT 溢出标志位 TO 被清
0。
功能表示TO ← 0
PDF ← 1
影响标志位 TO、PDF
六、应用领域
CXMC33129凭借其低功耗、高集成度和丰富的外设资源,适用于以下领域:
◆ 智能传感器节点(温湿度、压力、光照等)
◆ 便携医疗设备(血压计、体温计)
◆ 工业控制与采集系统
◆ 家用电器控制
◆ 物联网终端设备
七、电气特性
7.1.极限参数

7.2.电气特性


八、总结
CXMC33129是一款功能全面、性能均衡的8位RISC微控制器,特别适合对功耗和精度有要求的嵌入式应用。其双ADC设计、温度传感器和多工作模式支持,使其在竞争激烈的MCU市场中脱颖而出。无论是初学者还是资深工程师,都能基于CXMC33129快速开发出高性能、低功耗的嵌入式系统。
如果还有其它要求,请随时告诉我,我们一起调整。
九、相关产品
型号 | 特性 | SRAM | OTP空间 | ADC | IO控制口 | 定时器 | 中断源 | PWM | 封装形式 | 备注 |
CXMC33127 | OTP单片机 | 256byte | 8k*16bit | 24bit两通道/8bit*1 | 8 | 1 | 5 | 2 | SSOP48 | 带18*4的LCD |
CXMC33128 | OTP单片机 | 256byte | 8k*16bit | 24bit两通道/8bit*1 | 11 | 1 | 5 | 2 | SOP20 | |
CXMC33129 | OTP单片机 | 256byte | 8k*16bit | 24bit两通道/8bit*1 | 10/13 | 1 | 5 | 2 | SOP16/SOP20 | |
型号 | 特性 | SRAM | OTP空间 | ADC | IO控制口 | 定时器 | 中断源 | PWM | 封装形式 | |
CXMC33130 | OTP单片机 | 256byte | 8k*16bit | 24bit*2两通道/8bit*1 | 11 | 2 | 5 | 2 | SOP20 | (计价秤专用) |
热门信息 |
---|
最新信息 |
---|
推荐信息 |
---|