义隆单片机 em78p153_c语言范例

上传人:wt****50 文档编号:37117793 上传时间:2018-04-07 格式:PDF 页数:6 大小:100.32KB
返回 下载 相关 举报
义隆单片机 em78p153_c语言范例_第1页
第1页 / 共6页
义隆单片机 em78p153_c语言范例_第2页
第2页 / 共6页
义隆单片机 em78p153_c语言范例_第3页
第3页 / 共6页
义隆单片机 em78p153_c语言范例_第4页
第4页 / 共6页
义隆单片机 em78p153_c语言范例_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《义隆单片机 em78p153_c语言范例》由会员分享,可在线阅读,更多相关《义隆单片机 em78p153_c语言范例(6页珍藏版)》请在金锄头文库上搜索。

1、对于刚接触义隆单片机的朋友,这个文档或许对你有帮助。尤其是使用 C 语言的朋友, 这个程序包含了位定义、定时器、中断等。 C 语言的编译器可以去义隆单片机的官网下载,.tw,编译软件为 eUIDE。 本程序用以取代原有产品的 RS 触发器,以及 RS 输出与另外一个变量进行逻辑与运算 的功能,如果逻辑运算结果为 1,则两个 IO 口都要输出高电平,并保持 30s 和 45s。否则输 出低电平。下面是代码部分。 #include“EM78P153S.H“ #define DISI()_asmdisi #define WDTC()_asmwdtc #define NOP()_asmnop #def

2、ine ENI()_asmeni #define SLEP()_asmslep #define uchar unsigned char #define Trig_s R65/相当于 51 中的位定义 #define Trig_r R64 #define ccc R63 unsigned int COUNTER; unsigned int temp; bit Trig_q; bit L1; bit flag; bit flag2; void Init() P6CR=0x38; /PORT6 设为输出 P6CR=0x38; /PORT6 设为输出 R60 = 0; R61 = 0; R62 = 0

3、; Trig_q = 0; COUNTER=0; flag = 0; void main() WDTC(); DISI(); /ODCR = 0x30; /漏极开路控制寄存器 WDTCR=0; /禁止 WDT _asm mov a,0x04 contw /TCC 分频比设为 1:32 TCC=6; /timer=1/4*(256-6)*32*2=4ms ISR=0; /清 TCC 中断标志位 IMR=0x01; /开定时器中断 ENI(); Init(); while(1) Trig_q = (!Trig_s)|(Trig_r/RS 触发器的方程 R60 = Trig_q; L1 = Trig

4、_q/与另外一个变量进行逻辑与运算 if(L1 = 1) /如果运算结果为 1 R61 = 1;/输出高电平 R62 = 1; /输出高电平 temp = 0; else if(flag = 1 )/30 秒标志位 flag = 0; R61 = 0; if(flag2 = 1)/45 秒标志位 flag2 = 0; R62 = 0; void _intcall interrupt(void) int/定时器中断服务程序 / Write your code (inline assembly or C) here if(TCIF=1) ISR /清 TCC 中断标志位 TCC=6; /TCC 赋

5、初值 COUNTER+; if(COUNTER=25) COUNTER=0; temp+; if(temp =30) /temp = 0; flag = 1; if(temp =45) temp = 0; flag2 = 1; void _intcall interrupt_l(void) 0x08:low_int 0 下面是 EM78P153S.H 的代码 /* * Header file for the Elan * * EM78P153E chip * * EM78P153S chip * * Title: EM78X153 include file * * Description: T

6、he Definition of EM78x153 * * Registers and Bits * * Company: ELAN MICROELECTRONICS (SZ) LTD. * * Author: HongXi.Tang * * Date: 10/05/2005 * * Version: v1.0 * */ static unsigned int TCC 0x01:rpage 0; static unsigned int PC 0x02:rpage 0; static unsigned int STATUS 0x03:rpage 0; static unsigned int RS

7、R 0x04:rpage 0; static unsigned int PORT5 0x05:rpage 0; static unsigned int PORT6 0x06:rpage 0; static unsigned int ISR 0x0F:rpage 0; static io unsigned int P5CR 0x05:iopage 0;/Port5 Control Register static io unsigned int P6CR 0x06:iopage 0;/Port6 Control Register static io unsigned int PDCR 0x0B:i

8、opage 0; /Push-down Control Register static io unsigned int ODCR 0x0C:iopage 0; /Open-drain Control Register static io unsigned int PHCR 0x0D:iopage 0; /Push-high Control Register static io unsigned int WDTCR 0x0E:iopage 0; /WDT Control Register static io unsigned int IMR 0x0F:iopage 0; /Interrupt M

9、ask Register /*=; ; Special Purpose Registers Define ; ; =; ; ; A: Accumulator ; It cant be addressed. ; ; CONT: Control Register ; ; mINT = 0x40 ; Interrupt enable flag ; “0“ : Masked by DISI or hardware interrupt ; “1“ : Enabled by ENI/RETI instructions mTS = 0x20 ; TCC signal source ; “0“ : Inter

10、nal instruction cycle clock ; “1“ : Transition on TCC pin mTE = 0x10 ; TCC signal edge ; “0“ : Increment if the transition from low to high takes place on TCC pin ; “1“ : Increment if the transition from high to low takes place on TCC pin mPAB = 0x08 ; Prescaler assignment bit ; “1“ : TCC assign to

11、WDT ; “0“ : TCC assign to TCC mPSR2 = 0x04 ; mPSR1 = 0x02 ; mPSR0 = 0x01 ; (PSR0PSR2): TCC/WDT prescaler Select bits ; |-|-|-|-|-| ; | PSR2 | PSR1 | PSR0 | TCC Rate | WDT Rate | ; |-|-|-|-|-| ; | 0 | 0 | 0 | 1:2 | 1:1 | ; | 0 | 0 | 1 | 1:4 | 1:2 | ; | 0 | 1 | 0 | 1:8 | 1:4 | ; | 0 | 1 | 1 | 1:16 | 1

12、:8 | ; | 1 | 0 | 0 | 1:32 | 1:16 | ; | 1 | 0 | 1 | 1:64 | 1:32 | ; | 1 | 1 | 0 | 1:128 | 1:64 | ; | 1 | 1 | 1 | 1:256 | 1:128 | ; | -|-|-|-|-| ; ; */ /static io unsigned int P5CR 0x05:iopage 0; /static io unsigned int P6CR 0x06:iopage 0; /static io unsigned int PDCR 0x0B:iopage 0; /Push-down Control

13、 Register /static io unsigned int ODCR 0x0C:iopage 0; /Open-drain Control Register /static io unsigned int PHCR 0x0D:iopage 0; /Push-high Control Register /static io unsigned int WDTCR 0x0E:iopage 0; /WDT Control Register /static io unsigned int IMR 0x0F:iopage 0; /Interrupt Mask Register /* STATUS bits */ static bit RST 0x037:rpage 0; /bit for reset type static bit GP1 0x036:rpage 0; static bit GP0 0x035:rpage 0; /general purpose read/write bits static bit T 0x034:rpage 0; /time-out bit sta

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 电子/通信 > 无线电电子学/电信技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号