STM8汇编经典实例源码

STM8汇编经典实例源码

ID:42029440

大小:415.55 KB

页数:76页

时间:2019-09-05

STM8汇编经典实例源码_第1页
STM8汇编经典实例源码_第2页
STM8汇编经典实例源码_第3页
STM8汇编经典实例源码_第4页
STM8汇编经典实例源码_第5页
资源描述:

《STM8汇编经典实例源码》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、============================延时的Delay_ms.asm=====================stm8/#include"mapping.inc"#include"stm8s105s6.inc"#include"D:STM8程序我的STM8程序GPIOUser_register.inc"#include"D:STM8程序我的STM8程序GPIOdefine.inc"segment'rom';*************延时程序**************;CPU频率:2MHz;要用到的寄存器:X,Y;把要延时的值写入R0E

2、.R0F,R0E为高位值.R0F为低位值;1msDelay_ms.LPUSHWXPUSHWYPUSHCCLDWX,#500;延时1SLDWY,R0EDelay_next1:LDWX,#500Delay_next:DECWXJRNEDelay_nextDECWYJRNEDelay_next1POPCCPOPWYPOPWXRETFRETFRETFend=============================mai.asm==============================stm8/#include"mapping.inc"#include"stm8s105s6.i

3、nc"#include"D:STM8程序我的STM8程序GPIOUser_register.inc"#include"D:STM8程序我的STM8程序GPIOdefine.inc"segment'rom'main.l;initializeSPldwX,#stack_endldwSP,X#ifdefRAM0;clearRAM0ram0_start.bEQU$ram0_segment_startram0_end.bEQU$ram0_segment_endldwX,#ram0_startclear_ram0.lclr(X)incwXcpwX,#ram0_end

4、jruleclear_ram0#endif#ifdefRAM1;clearRAM1ram1_start.wEQU$ram1_segment_startram1_end.wEQU$ram1_segment_endldwX,#ram1_startclear_ram1.lclr(X)incwXcpwX,#ram1_endjruleclear_ram1#endif;clearstackstack_start.wEQU$stack_segment_startstack_end.wEQU$stack_segment_endldwX,#stack_startclear_stack.l

5、clr(X)incwXcpwX,#stack_endjruleclear_stackintel;主函数开始;更换成外部时钟,并且CPU8分频BSETCLK_SWCR,#1;允许更换时钟BRESCLK_SWCR,#2;SWIEN位为0,用查询方式确定时钟更换是否完成MOVCLK_SWR,#0B4H;目标时钟为HSE晶振CLK_SW_WAIT1:;等待时钟更换中断标志SWIF有效BTJFCLK_SWCR,#3,CLK_SW_WAIT1BRESCLK_SWCR,#3;清除时钟更换完成任务中断标志SWIFBRESCLK_SWCR,#1;SWEN位为0,禁止时钟再次更换BRESC

6、LK_ICKR,#0;关闭HSI时钟,减少功耗MOVCLK_CKDIVR,#1bH;内部时钟8分频,CPU时钟128分频,现在使用外部时钟,前8分频没用BSETCLK_CSSR,#0;CSS时钟安全系统开;I/O口初始化BSETPD_DDR_DDR0;PD_0设置成输出BSETPE_DDR_DDR5;PE_5设置成输出,595的SDATA脚BSETPC_DDR_DDR2;PC_2设置成输出,595的SCLK脚BSETPC_DDR_DDR4;PC_4设置成输出,595的SRCK脚BSETPE_CR1_C5;设置成推换BSETPC_CR1_C2;设置成推换BSETPC_CR

7、1_C4;设置成推换BSETPD_CR1_C0;PD_0设置成推换BSETPE_CR2_C5;PE_5设置成高速BSETPC_CR2_C2;PC_2设置成高速BSETPC_CR2_C4;PC_4设置成高速BSETPD_CR2_C0;PD_0设置成高速;数码管要显示的数字MOVR0D,#9;R0A为高位MOVR0C,#8MOVR0B,#6MOVR0A,#7CALLFDisplay_595;调用595显示LOOP1:MOVR0E,#02H;R0E和R0F两单元合起来对应十进制的2000MOVR0F,#0FFHBSETPD_ODR_ODR0CA

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。