📄 main.lis
字号:
.module main.c
.area text
; Duty -> 0,X
; Period -> 2,X
0000 _main::
0000 A7FC ais #-4
0002 95 tsx
0003 ; /*-----------------------------------------------------*
0003 ; *工 程 名:PWM.prj *
0003 ; *硬件接线:PTD.4,即定时器1通道0(21脚)接指示灯或蜂鸣器 *
0003 ; *程序描述:通过对PWM占空比的调节实现现指示灯的渐亮的功能*
0003 ; * 当占空比为100%时再从0%逐渐增加 *
0003 ; *目 的:学习HC08系列定时器脉宽调制功能 *
0003 ; *---------《嵌入式应用技术基础教程》教学实例----------*/
0003 ; /*[头文件]*/
0003 ; #include "GP32C.H" //包含头文件
0003 ; #include "KB.h" //键盘中断头文件
0003 ; /*函数声明*/
0003 ; void PWMInit(unsigned int ); //PWM初始化
0003 ; void PWMconf(unsigned int); //PWM设置
0003 ; extern void Delay_ms(unsigned char ); //延时
0003 ; extern void hmusic(void);
0003 ; extern void Lmusic(void);
0003 ; unsigned char KB_valve;
0003 ;
0003 ; /*主程序*/
0003 ; void main()
0003 ; { unsigned int Period; //PWM周期
0003 ; unsigned int Duty; //PWM占空比
0003 ;
0003 ; KB_Init();
0003 CD0000 jsr _KB_Init
0006 95 tsx
0007 200B bra L3
0009 L2:
0009 A60E lda #14
000B B725 sta 0x25
000D CD0000 jsr _Lmusic
0010 CD0000 jsr _hmusic
0013 95 tsx
0014 L3:
0014 ;
0014 ; //[主循环]
0014 ; while(1)
0014 20F3 bra L2
0016 X0:
0016 L1:
0016 A704 ais #4
0018 .dbline 0 ; func end
0018 81 rts
0019 ; Temp -> 0,X
0019 ; Period -> 4,X
0019 _PWMInit::
0019 A7FE ais #-2
001B 95 tsx
001C ; { T1SC0=0x0E;
001C ; Lmusic();
001C ; hmusic();
001C ;
001C ;
001C ;
001C ;
001C ; }
001C ; }
001C ; /*PWMconf:PWM初始化设置--------------------------------*
001C ; * 功 能:PWM脉冲周期、占空比的设置 *
001C ; * 参 数:rate=脉宽时钟数,cyc=脉冲周期时钟数 *
001C ; * 返 回:无 *
001C ; *-----------------------------------------------------*/
001C ; void PWMInit(unsigned int Period)
001C ; {
001C ; unsigned int Temp=Period;
001C E604 lda 4,X
001E F7 sta ,X
001F E605 lda 5,X
0021 E701 sta 1,X
0023 ; //不允许溢出中断,不启动计数,分频因子=64,置位TSTOP,TRST
0023 ; T1SC = 0x36;
0023 A636 lda #54
0025 B720 sta 0x20
0027 ; //[设置PWM周期]
0027 ; T1MODH = (Temp>>8);
0027 F6 lda ,X
0028 B723 sta 0x23
002A ; T1MODL = Period;
002A E605 lda 5,X
002C B724 sta 0x24
002E ; //[初始化设置PWM脉宽为0]
002E ; T1CH0H = 0x00;
002E 3F26 clr 0x26
0030 ; T1CH0L = 0x00;
0030 3F27 clr 0x27
0032 ; //设为PWM模式,不允许输出比较中断,输出低电平,不带缓冲
0032 ; T1SC0 = 0x1E;
0032 A61E lda #30
0034 B725 sta 0x25
0036 ; //允许定时器1计数寄存器计数
0036 ; T1SC &= 0xDF;
0036 B620 lda 0x20
0038 A4DF and #-33
003A B720 sta 0x20
003C L5:
003C A702 ais #2
003E .dbline 0 ; func end
003E 81 rts
.area bss
0000 _KB_valve::
0000 .blkb 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -