松瀚单片机阅读整理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

系统时钟(Fosc)指令周期(Fcpu)

================================================================================================== 系统寄存器说明

PFLAG = ROM 页和特殊寄存器R = 工作寄存器和ROM 查表数据缓存器

P1W = P1 唤醒功能寄存器Y, Z = 工作寄存器,@YZ 和ROM 寻址寄存器

PEDGE = P0.0 触发方向寄存器@YZ = RAM YZ 间接寻址寄存器

PnM = Pn 输入/输出模式寄存器Pn = Pn 数据缓存器

P1OC = P1 漏极开路控制寄存器PnUR = Pn 上拉电阻控制寄存器

INTRQ = 中断请求寄存器INTEN = 中断使能寄存器

OSCM = 振荡器模式寄存器PCH, PCL = 程序计数器

T0M = T0 模式寄存器T0C = TC0 计数寄存器

TC0M = TC0 模式寄存器TC0C = TC0 计数寄存器

TC0R = TC0 自动装载寄存器WDTR = 看门狗清零寄存器

STKP = 堆栈指针寄存器STK0~STK3 = 堆栈缓存器

注:

a).所有的寄存器名称在SN8ASM 编译器中是默认的;

b).寄存器中各位的名称已在SN8ASM 汇编语言中以“F”为前缀定义过;

c).用指令检验空单元时,返回逻辑“1”;

d). ADR 寄存器的低字节为只读寄存器;

e). “b0bset”, “b0bclr”, ”bset”, ”bclr”指令仅对“R/W”寄存器有效。

================================================================================================== I/O 模式选择。

输入/输出模式实验总结:

1: 输入模式下读时,不接受程序送出的值,只受到外部输入有关系,同时最好设置为上拉.

2: 输出模式下读时,读的数值不准确,读的为寄存器中的值

CLR P0M; 设置所有的端口都为输入模式

CLR P4M

CLR P5M

MOV A, #0FFH ; 设置所有的端口都为输出模式

B0MOV P0M, A

B0MOV P4M,A

B0MOV P5M, A

B0BCLR P4M.0 ; 设置P4.0 为输入模式

B0BSET P4M.0 ; 设置P4.0 为输出模式

I/O 上拉电阻。

MOV A, #0FFH ; 使能P0,P4,P5 的上拉电阻

B0MOV P0UR, A ;

B0MOV P4UR,A

B0MOV P5UR, A

从输入端口读取数据。

B0MOV A, P0 ; 读P0 口的数据

B0MOV A, P4 ; 读P4 口的数据

B0MOV A, P5 ; 读P5 口的数据

写数据到输出端口。

MOV A, #0FFH ; 写FFH 到所有的端口

B0MOV P0, A

写1-bit 的数据到输出端口。

B0BSET P4.0 ; 置P4.0 和P5.3 为“1”

B0BSET P5.3

B0BCLR P4.0 ; 置P4.0 和P5.3 为“0”

B0BCLR P5.3

================================================================================================== High_Clk编译选项在编译器编译时候选择

编译选项说明

IHRC 高速时钟采用内部16MHz RC 振荡器。XIN/XOUT 引脚作为普通的I/O 口。

RC 高速时钟采用外部RC 振荡器,XOUT 引脚作为普通的I/O 口。

32K 高速时钟采用外部32768H 在低速振荡器。

12M 高速时钟采用外部高速振荡器,频率选择典型值为12MHz。

4M 高速时钟采用外部振荡器,频率选择典型值为4MHz。

================================================================================================== 系统时钟

普通模式(高速时钟):Fcpu = Fosc/N,N = 1~16,N 由Fcpu 编译选项选择。由外部振荡电路或内

置16MHz 高速RC振荡电路(IHRC 16MHz)提供,

外部高速时钟包括三种:晶体/陶瓷:由HIGH_CLK 的编译选项支持不同的频率

RC :由HIGH_CLK 选项中的RC 选项来选择RC 振荡器。

RC 振荡器的频率可以达到10M。建议改变“R”的值来改变频率。“C”的大

小一般为50P~100P。XOUT 是普通的I/O 口。

外部时钟输入:由HIGH_CLK 选项中的RC选项来选择。外部时钟输入信号由

XIN 引脚输入。XOUT引脚是普通的I/O 口。

低速模式(低速时钟):Fcpu = Fosc/4 是由内置低速RC 振荡电路(ILRC 16KHz @3V,

32KHz @5V)提供。

OSCM 寄存器是一个振荡器控制寄存器,它控制着振荡器的状态和系统模式。

7 6 5 4 3 2 1 0

X X X CPUM1 CPUM0 CLKMD STPH X

1、STPHX:外部高速振荡器控制位。0 = 运行

1 = 停止,但内部低速RC 振荡器仍然正常运行

2、CLKMD:系统高/低速模式控制位

0 = 普通模式(双重时钟),系统时钟为高速时钟

1 = 低速模式,系统时钟为内部低速时钟

3、4、CPUM[1、0]:CPU 运行模式控制位。0 0 = 普通模式

0 1 = 睡眠(省电)模式

1 0 = 绿色模式

1 1 = 保留

系统模式转换:

普通/低速模式进入省电(睡眠)模式:B0BSET FCPUM0 ; 设置CPUM0 = 1.

注:睡眠模式下,只有具有唤醒功能的引脚和复位引脚才能将系统唤醒。

普通模式转入低速模式:B0BSET FCLKMD ; 设置CLKMD = 1,进入低速模式

B0BSET FSTPHX ; 停止外部高速振荡器以省电低速模式转换成普通模式(外部高速振荡器仍然运行):

B0BCLR FCLKMD ; 设置CLKMD = 0

相关文档
最新文档