spmc75变频评估套件配套例子_第1页
spmc75变频评估套件配套例子_第2页
spmc75变频评估套件配套例子_第3页
spmc75变频评估套件配套例子_第4页
spmc75变频评估套件配套例子_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、V1.0 Apr 29, 200619, InnovationRoad Science Park Hsin-Chu 300 R.O.C.: 886-3-578-6005 Fax: 886-3-578-4418 Web:SPMC75 基础例程利用定时器实现 LED 闪烁保留对此文件修改之权利且不另行通知。可靠之信息,但并不保证本文件中绝无错误。请于向所提供之信息相信为正确且提出订单前,自行确定所使用之相关技术文件及规格为之版本。若因贵公司使用本公司之文件或产品,而涉及第三人之专利或著作权等智能权之应用及配合时,则应由贵公司负责取得同意及,本公司仅单纯贩售产品,上述关于同意及,非属本公司应为保证之

2、责任。又系统及飞航等相关设备。之正式,本公司之所有产品不得使用于医疗器材,维持生命 Sunplus Technology Co.,.PAGE 1V1.0 Apr 29, 2006页概述4例子介绍4 硬件连接5 程序设计5 1.2.3.4. Sunplus Technology Co.,.PAGE 2V1.0 Apr 29, 2006目录修订 Sunplus Technology Co.,.PAGE 3V1.0 Apr 29, 2006版本日期作者修订内容V1.02006/4/29Peixing初始版本概述1.SPMC75 单片机内置 7 个定时器,其中可产生输出的有 5 个(PDC 定时器 2

3、个、MCP 定时器 2 个、TPM 定时器 1 个),供可产生 20 路输出,比较匹配 CMT定时器 2 个。本例将通过 C 语言和汇编语言两种方式让大家了解如何使用 CMT 定时器的实现系统定时功能。例子介绍2.新版评估套主控板件上有 6 个 LED 发光二极管,利用定时器 CMT 0 控制 LED 的亮灭,每秒钟 LED 闪烁一次,不使用中断,采用查询的方式。将 CMT0 设置为 500ms 产生一次 TPR 比较匹配事件,同时CMT0 的 TPR 比较匹配中断,主程序不断查询CMT0 的 TPR 比较匹配中断标志位,发生比较匹配事件(比较匹配中断标志位为 1),则将 LED 共阳极控制信

4、号取反,同时清除比较匹配中断标志位,从而实现 LED 的闪烁控制。 Sunplus Technology Co.,.PAGE 4V1.0 Apr 29, 2006利用定时器实现 LED 闪烁硬件连接3.程序设计4.(1)实现方法:将 CMT0 设置为 500ms 产生一次 TPR 比较匹配事件,同时CMT0的 TPR 比较匹配中断。主程序通过 while 循环不断查询 CMT0 的 TPR 比较匹配中断标志位,发生比较匹配事件(比较匹配中断标志位为 1),则 LED 的共阳极控制信号取反,同时清除比较匹配中断标标志位,从而实现 LED 的闪烁控制。 Sunplus Technology Co.

5、,.PAGE 5V1.0 Apr 29, 2006IC1U1SER14 SERQA 15R2220 LED_A 11 ADIG1 12 1SRCLKQB 1R3220LED_B7 B2SRCLKQC 2R4220 LED_C 4 CDIG2 9 10 SRCLRQD 3R5220 LED_D 2 DRCLKQE 4R7220LED_E1 EDIG3 83RCLKQF 5R8220 LED_F 10 F 13 GQG 6R9220 LED_G 5 GDIG4 64QH 7R10 220 LED_H 3 DP+5VQH 9S_DA DPY -7SEGX474HC595R14 4.7KR15 4.7

6、K+5V+5VR16 4.7K1R17 4.7K1LED_CS1Q1LED_CS2Q2PNPPNP3132R18 4.7KR19 4.7K+5V+5VR20 4.7K1R21 4.7K1LED_CS3Q3LED_CS4Q4PNPPNP3334D2D3D4LEDLEDLED12LED_A12LED_C12LED_E2LED_FIC4R24 4.7KS_DA14 SERQA 15 LED_CS1+5V1 LED_CS2SRCLK11QB 2 LED_CS3 10 SRCLKQC 3 LED_CS4R25 4.7K1SRCLRQD 4LED_CS5Q5RCLK12QE 5PNP 13 RCLKQF

7、65GQG 7VCC3+5VQHQH974HC595+5VDisplay25D5 LED12LED_BD6 LED12LED_DD7 LED12222(2)程序流程图:开始CM0IF=1? 否是LED显示共阳极控制信号取反(3)程序代码:C 语言格式 Sunplus Technology Co.,.PAGE 6V1.0 Apr 29, 2006/=/工程名称: Exa05_CMT_C/编者:/功能描述: 利用定时器 CMT 0 控制 LED 闪烁,每秒钟 LED 闪烁一次,/不使用中断,采用查询的方式/组成文件: main.c/Spmc75_regs.h, unspmacro.h/硬件连接:

8、新版评估套件/完成日期: 2006-4-29/=#include spmc75f2313a.h #include unspmacro.h清CM0IF标志位启动CMT0定时器系统初始化 Sunplus Technology Co.,.PAGE 7V1.0 Apr 29, 2006#defi R P_IOB_Buffer-B.bit8 #define SRCLK P_IOB_Buffer-B.bit9 #define RCLK P_IOB_Buffer-B.bit10/=/语法格式: void LED_Display(unsignedcode)/功能描述: LED 显示驱动/参数:code 高 4

9、 位显为示位码,code 低 8 位为显示段码/返回值:无/=void LED_Display(unsignedcode)unsignedi; unsigned k;k = 0 x1000;/初始化要显示的位的标志 for(i=0;i= 1;/标志位右移一位RCLK = 1;/将数据显示RCLK = 0;/=/主函数/=nt main(void)unsignedui_Code;P_IOB_Dir-W |= 0 x0700;/IOB810设置为输出P_IOB_Attrib-W |= 0 x0700;/IOB810设置为非反向P_IOB_Buffer-W &= 0 xf8ff;/IOB810输出为

10、低/清除 CMT0 比较匹配中断标志CM0IF=1B/CMT0 计数时钟选为 Fck/256CKA=110B/CMT0 比较匹配中断CM0IE=0BP_CMT_Ctrl-W = 0 x0086;/上面设置了计数时钟为 Fck/8,此处设置计数数值/由于系统时钟为 24M,计数时钟选为 Fck/256,500ms 计数值应为 46875(D),即 0 xb71bP_CMT0_TPR-W =0 xb71b;P_CMT_Start-B.ST0 = 1;/启动 CMT0ui_Code = 0 x0fc0;/显示代码初始化 Sunplus Technology Co.,.PAGE 8V1.0 Apr 2

11、9, 2006汇编语言格式 Sunplus Technology Co.,.PAGE 9V1.0 Apr 29, 2006/=/工程名称: Exa05_CMT_ASM/编者:/功能描述: 利用定时器 CMT 0 控制端 LED 闪烁,每秒钟 LED 闪烁一次,/不使用中断,采用查询的方式/组成文件: main.asm/spmc75f2313a.inc/硬件连接: 新版评估套件/完成日期: 2006-4-29/=.INCLUDE spmc75f2313a.inc.CODE/=/主函数/=.PUBLIC _main_main:r1 = 0 x fP_IOB_Dir = r1/IOB 口设置为输出w

12、hile(1)if(P_CMT_Ctrl-B.CM0IF = 1)/0.5 秒时间到P_CMT_Ctrl-B.CM0IF = 1; /清中断标志 LED_Display(ui_Code);/显示 ui_Code = 0 x1000; /位码取反 Sunplus Technology Co.,.PAGE 10V1.0 Apr 29, 2006r1 = 0 x fP_IOB_Attrib = r1/IOB 口设置为非反向r1 = 0 x0000P_IOB_Buffer = r1/IOB 口低 8 位输出为高/清除 CMT0 比较匹配中断标志CM0IF=1B/CMT0 计数时钟选为 Fck/256C

13、KA=110B/ CMT0 比较匹配中断CM0IE=0B r1 =0 x0086P_CMT_Ctrl = r1/上面设置了计数时钟为 Fck/8,此处设置计数数值/由于系统时钟为 24M,计数时钟选为 Fck/256,500ms 计数值应为 46875(D),即 0 xb71b r1 = 0 xb71bP_CMT0_TPR = r1r1 = P_CMT_Start/取 P_CMT_Start 地址setb r1,0/启动 CMT0r2 = 0 x0fc0?_Loop:r1 = P_CMT_Ctrl/取 P_CMT_Ctrl 的地址tstb r1,7/500ms 是否到jz ?_Loop/没到,

14、则跳转继续查询setb r1,7/500ms 到,清中断标志位r1 = r2/取显示代码 call _LED_Display/显示r2 = 0 x1000/显示位码取反jmp ?_Loop/循环扫描/=/汇编格式:_LED_Display/实现功能:LED 输出闪烁驱动/参数:r1 为第 12 位为要显示的位码,通过位码改变来控制 LED 闪烁/出口参数:无/破坏寄存器:无/=.PUBLIC _LED_Display_LED_Display:push r2,r3 to spr2 = 0 x1000/初始化要显示的位的标志?_Display:test r1,r2/测试该位是 0 还是 1jz ?_Code0/是 0 则跳转r3 = P_IOB_Buffer/是 1 则数据传送引脚输出 1setb r3,8jmp ?_CodeEnd?_Code0:r3 = P_IOB_Buffer/是 0 则数据传送引脚输出 0clrb r3,8?_CodeEnd:/数据引脚输出结束r3 = P_IOB_Buffer/SRCLK 输出脉冲setb r3,9clrb r3,9r2 = r2 lsr 1/标志位右移 1 位j

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论