凌阳单片机快速编程.docx
《凌阳单片机快速编程.docx》由会员分享,可在线阅读,更多相关《凌阳单片机快速编程.docx(74页珍藏版)》请在冰豆网上搜索。
凌阳单片机快速编程
凌阳单片机快速编程(目录)
一、IO口设置
二、AD设置
三、CMT定时器设置
四、MCP定时器设置
五、PDC定时器设置
六、中断系统的操作
七、SPI的设置
八、UART的设置
九、内部Flash自编程操作
十、Buzzer频率输出操作
十一、看门狗的设置
十二、低功耗模式
十三、程序设计技巧
IO口设置
1.将IOA口设置为上拉输入
汇编代码:
//将IOA口设置为上拉输入
r1=0x0000
[P_IOA_Dir]=r1//设置P_IOA_Dir寄存器,将IOA口设置为输入
[P_IOA_Attrib]=r1//设置P_IOA_Attrib寄存器,将IOA口设置为非悬浮
r1=0xFFFF
[P_IOA_Buffer]=r1//设置P_IOA_Buffer寄存器,将IOA口设置为上拉
C语言代码:
//将IOA口设置为上拉输入
P_IOA_Dir->W=0x0000;//设置P_IOA_Dir寄存器,将IOA口设置为输入
P_IOA_Attrib->W=0x0000;//设置P_IOA_Attrib寄存器,将IOA口设置为非悬浮
P_IOA_Buffer->W=0xFFFF;//设置P_IOA_Buffer寄存器,将IOA口设置为上拉
2.将IOA口设置为下拉输入
汇编代码:
//将IOA口设置为下拉输入
r1=0x0000
[P_IOA_Dir]=r1//设置P_IOA_Dir寄存器,将IOA口设置为输入
[P_IOA_Attrib]=r1//设置P_IOA_Attrib寄存器,将IOA口设置为非悬浮
[P_IOA_Buffer]=r1//设置P_IOA_Buffer寄存器,将IOA口设置为下拉
C语言代码:
//将IOA口设置为下拉输入
P_IOA_Dir->W=0x0000;//设置P_IOA_Dir寄存器,将IOA口设置为输入
P_IOA_Attrib->W=0x0000;//设置P_IOA_Attrib寄存器,将IOA口设置为非悬浮
P_IOA_Buffer->W=0x0000;//设置P_IOA_Buffer寄存器,将IOA口设置为下拉
3.将IOA口设置为悬浮输入
汇编代码:
//将IOA口设置为悬浮输入
r1=0x0000
[P_IOA_Dir]=r1//设置P_IOA_Dir寄存器,将IOA口设置为输入
r1=0xFFFF
[P_IOA_Attrib]=r1//设置P_IOA_Attrib寄存器,将IOA口设置为悬浮
C语言代码:
//将IOA口设置为悬浮
P_IOA_Dir->W=0x0000;//设置P_IOA_Dir寄存器,将IOA口设置为输入
P_IOA_Attrib->W=0xFFFF;//设置P_IOA_Attrib寄存器,将IOA口设置为悬
4.将IOA口设置为输出,初始化为高电平
汇编代码:
(1)反向输出
//将IOA口设置为反向输出,输出高电平
r1=0xFFFF
[P_IOA_Dir]=r1//设置P_IOA_Dir寄存器,将IOA口设置为输出
r1=0x0000
[P_IOA_Attrib]=r1//设置P_IOA_Attrib寄存器,将IOA口设置为反向输出
[P_IOA_Buffer]=r1//设置P_IOA_Buffer寄存器,IOA口输出高电平
(2)非反向输出
//将IOA口设置为非反向输出,输出高电平
r1=0xFFFF
[P_IOA_Dir]=r1//设置P_IOA_Dir寄存器,将IOA口设置为输出
[P_IOA_Attrib]=r1//设置P_IOA_Attrib寄存器,将IOA口设置为非反向输出
[P_IOA_Buffer]=r1//设置P_IOA_Buffer寄存器,IOA口输出高电平
C语言代码:
(1)反向输出
//将IOA口设置为反向输出,输出高电平
P_IOA_Dir->W=0xFFFF;//将IOA口设置为输出
P_IOA_Attrib->W=0x0000;//将IOA口设置为反向输出
P_IOA_Buffer->W=0x0000;//IOA口输出高电平
(2)非反向输出
//将IOA口设置为非反向输出,输出高电平
P_IOA_Dir->W=0xFFFF;//将IOA口设置为输出
P_IOA_Attrib->W=0xFFFF;//将IOA口设置为非反向输出
P_IOA_Buffer->W=0xFFFF;//IOA口输出高电平
5.将IOA口设置为输出,初始化为低电平
汇编代码:
(1)反向输出
//将IOA口设置为反向输出,输出低电平
r1=0xFFFF
[P_IOA_Dir]=r1//设置P_IOA_Dir寄存器,将IOA口设置为输出
r1=0x0000
[P_IOA_Attrib]=r1//设置P_IOA_Attrib寄存器,将IOA口设置为反向输出
r1=0xFFFF
[P_IOA_Buffer]=r1//设置P_IOA_Buffer寄存器,IOA口输出低电平
(2)非反向输出
//将IOA口设置为非反向输出,输出低电平
r1=0xFFFF
[P_IOA_Dir]=r1//设置P_IOA_Dir寄存器,将IOA口设置为输出
[P_IOA_Attrib]=r1//设置P_IOA_Attrib寄存器,将IOA口设为非反向输出
r1=0x0000
[P_IOA_Buffer]=r1//设置P_IOA_Buffer寄存器,IOA口输出低电平
C语言代码:
(1)反向输出
//将IOA口设置为反向输出,输出低电平
P_IOA_Dir->W=0xFFFF;//将IOA口设置为输出
P_IOA_Attrib->W=0x0000;//将IOA口设置为反向输出
P_IOA_Buffer->W=0xFFFF;//IOA口输出低电平
(2)非反向输出
//将IOA口设置为非反向输出,输出低电平
P_IOA_Dir->W=0xFFFF;//将IOA口设置为输出
P_IOA_Attrib->W=0xFFFF;//将IOA口设置为非反向输出
P_IOA_Buffer->W=0x0000;//IOA口输出低电平
6.将IOA口设置为特殊功能使能
汇编代码:
//使用IOA口各位的特殊功能
//如果只使能其中几位的特殊功能,则只需P_IOA_SPE寄存器中的对应位置1
r1=[P_IOA_SPE]//取P_IOA_SPE的值
r1|=0x7E00//为了不影响其他位的设置
[P_IOA_SPE]=r1//设置P_IOA_SPE寄存器,使能IOA[9-14]的特殊功能
C语言代码:
//使用IOA口各位的特殊功能
//如果只使能其中几位的特殊功能,则只需P_IOA_SPE寄存器中的对应位置1
P_IOA_SPE->W|=0x7E00;
7.将IOA[2]设置为上拉输入,不改变其它端口(位操作)
汇编代码:
//将IOA[2]设置为上拉输入,不改变其它端口
r1=[P_IOA_Dir]//取P_IOA_Dir的值
r1&=0xFFFB//为了不影响其他位的设置
[P_IOA_Dir]=r1//设置P_IOA_Dir寄存器,将IOA[2]设置为输入
r1=[P_IOA_Attrib]
r1&=0xFFFB
[P_IOA_Attrib]=r1//设置P_IOA_Attrib寄存器,将IOA[2]设置为非悬浮
r1=[P_IOA_Buffer]
r1|=0x0004
[P_IOA_Buffer]=r1//设置P_IOA_Buffer寄存器,将IOA[2]设置为上拉
C语言代码:
//将IOA[2]设置为上拉输入,不改变其它端口
P_IOA_Dir->W&=0xFFFB;//将IOA[2]设置为输入,不影响其他位
P_IOA_Attrib->W&=0xFFFB;//将IOA[2]设置为非悬浮,不影响其他位
P_IOA_Buffer->W|=0x0004;//将IOA[2]设置为上拉,不影响其他位
8.将IOA[2]设置为下拉输入,不改变其它端口(位操作)
汇编代码:
//将IOA[2]设置为下拉输入,不改变其它端口
r1=P_IOA_Dir//将P_IOA_Dir地址送R1
clrb[r1],2//将[P_IOA_Dir]第2位清0
r1=P_IOA_Attrib//将P_IOA_Attrib地址送R1
clrb[r1],2//将[P_IOA_Attrib]第2位清0
r1=P_IOA_Buffer//将P_IOA_Buffer地址送R1
clrb[r1],2//将[P_IOA_Buffer]第2位清0
C语言代码:
//将IOA[2]设置为下拉输入,不改变其它端口
P_IOA_Dir->B.bit2=0;//将IOA[2]设置为输入,不影响其他位
P_IOA_Attrib->B.bit2=0;//将IOA[2]设置为非悬浮,不影响其他位
P_IOA_Buffer->B.bit2=0;//将IOA[2]设置为下拉,不影响其他位
9.将IOA[2]设置为悬浮输入,不改变其它端口(位操作)
汇编代码:
//将IOA[2]设置为悬浮,不改变其它端口
r1=P_IOA_Dir//将P_IOA_Dir地址送R1
clrb[r1],2//将[P_IOA_Di]r第2位清0
r1=P_IOA_Attrib//将P_IOA_Attrib地址送R1
setb[r1],2//将[P_IOA_Attrib]第2位置1
C语言代码:
//将IOA[2]设置为悬浮,不改变其它端口
P_IOA_Dir->B.bit2=0;//将IOA[2]设置为输入,不影响其他位
P_IOA_Attrib->B.bit2=1;//将IOA[2]设置为悬浮,不影响其他位
10.将IOA[2]设置为输出高电平,不改变其它端口(位操作)
汇编代码:
(1)反向输出
//将IOA[2]设置为输出高电平(反向输出),不改变其它端口
r1=P_IOA_Dir//将P_IOA_Dir地址送R1
setb[r1],2//将[P_IOA_Dir]第2位置1
r1=P_IOA_Attrib//将P_IOA_Attrib地址送R1
clrb[r1],2//将[P_IOA_Attrib]第2位清0
r1=P_IOA_Buffer//将P_IOA_Buffer地址送R1
clrb[r1],2//将[P_IOA_Buffer]第2位置1
(2)非反向输出
//将IOA[2]设置为输出高电平(非反向输出),不改变其它端口
r1=P_IOA_Dir//将P_IOA_Dir地址送R1
setb[r1],2//将[P_IOA_Dir]第2位置1
r1=P_IOA_Attrib//将P_IOA_Attrib地址送R1
setb[r1],2//将[P_IOA_Attrib]第2位置1
r1=P_IOA_Buffer//将P_IOA_Buff