松瀚单片机阅读整理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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