东软单片机-ES7P213x——外部中断触发

  • gms
    了解作者
  • C/C++
    开发工具
  • 15KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 5 积分
    下载积分
  • 0
    下载次数
  • 2022-06-26 17:07
    上传日期
东软单片机-ES7P213x——外部中断触发例程
exit.zip
  • default
  • exit
  • main.c
    2.2KB
  • exit.hrccproj
    2.3KB
  • exit.suo
    10KB
  • exit.sln
    879B
  • vector
  • exit
  • main.c
    2.7KB
  • exit.hrccproj
    2.6KB
  • exit.suo
    10.5KB
  • exit.sln
    879B
  • exit.suo
    23KB
内容介绍
/********************************************************* *Copyright (C), 2021, Shanghai Eastsoft Microelectronics Co., Ltd. *文件名: exit *作 者: AE Team *版 本: V1.0 *日 期: 2022/03/31 *描 述: EXIT程序例程 1.使用ES7P2131芯片的外部端口中断功能,检测外部端口是否发生电平变化 2.本例程实现对PB6口进行电平进行电平检测,将PB6与PB7端口短接,PB7作为输出模拟电平变化, PBO口作为中断标志位,发生一次中断PB0口电平进行一次翻转 *备 注: 适用于ES7P2131 本软件仅供学习和演示使用,对用户直接引用代码所带来的风险或后果不承担任何法律责任。 **********************************************************/ #include <hic.h> /********************************************************* 函数名: void ram_clear(void) 描 述: 通用RAM区清零子程序 输入值: 无 输出值: 无 返回值: 无 **********************************************************/ void ram_clear(void) { GIE = 0; for(IAAH = 0; IAAH < 0x04; IAAH++) { for(IAAL = 0; IAAL < 0xFF; IAAL++) { IAD = 0x00; } IAD = 0x00; //clr_wdt(); } } /********************************************************* 函数名: void Int_vectors_init(void) 描 述: 通用中断模式设置子程序 输入值: 无 输出值: 无 返回值: 无 **********************************************************/ void Int_vectors_init(void) { INTVEN0 = 1; // 向量中断模式 INTV0 = 0; INTV1 = 0; // 向量表优先级00组 INTP = 0x02; // IG1优先级最高 GIEL = 1; } /********************************************************* 函数名: void test_init(void) 描 述: 测试初始化子程序 输入值: 无 输出值: 无 返回值: 无 **********************************************************/ void test_init(void) { PBT7 = 1; //PB7设为输入 PBT6 = 0; //PB6设为输出 PBT0 = 0; PB6 = 1; //PA6初始化高电平 PB0 = 1; PBS = 0; //PB口初始化为数字端口 PEG02 = 1; //双边沿触发PINT中断 PIE0 = 1; //使能PINT0中断 GIE = 1; //打开总中断 } /********************************************************* 函数名: void isr_pint_handler(void) interrupt_high 0x000C 描 述: 中断服务程序 输入值: 无 输出值: 无 返回值: 无 **********************************************************/ void isr_pint_handler(void) interrupt_high 0x000C { if((PIF0 == 1) && (PIE0 == 1)) { PIF0 = 0; PB0 = ~PB0; } } /********************************************************* 函数名: void main(void) 描 述: 主程序 输入值: 无 输出值: 无 返回值: 无 **********************************************************/ void main(void) { unsigned int x; ram_clear(); // RAM初始化 Int_vectors_init(); // 向量中断模式 test_init(); // 测试初始化 PB6 = 0; // 此操作用于产生一次上升沿和下降沿 for (x = 0; x < 3000; x++); PB6 = 1; while (1) { __Asm CWDT; } }
评论
    相关推荐