单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 63|回复: 0
收起左侧

stc15单片机外部中断0程序(下降沿中断方式)

[复制链接]
stc89c52wzy 发表于 2019-9-13 11:43 | 显示全部楼层 |阅读模式
外部中断0(下降沿中断)实验步骤:
1、MINI USB连接线给开发板通电下载程序,下载软件中内部IRC时钟选择11.0592MHZ;
2、下载程序后,按下用户按键S3观察绿色指示灯有何变化;
3、原理图可知按键不按时IO口是高电平,故按下按键的瞬间在P32上产生下降沿,灯亮,而松开按键会产生上升沿,灯状态不翻转;
4、故按下一次按键,灯状态翻转一次(由亮变灭或由灭变亮)。

单片机源程序如下:
  1. /****************************************Copyright (c)****************************************************
  2. **                                       
  3. **                                 
  4. **
  5. **--------------File Info---------------------------------------------------------------------------------
  6. ** File name:                       
  7. ** Last modified Date:         
  8. ** Last Version:                  
  9. ** Descriptions:                                                       
  10. **--------------------------------------------------------------------------------------------------------
  11. ** Created by:                        FiYu
  12. ** Created date:                2017-2-20
  13. ** Version:                            1.0
  14. ** Descriptions:                GPIO驱动LED                                       
  15. **--------------------------------------------------------------------------------------------------------
  16. ** Modified by:                        FiYu
  17. ** Modified date:               
  18. ** Version:                               
  19. ** Descriptions:               
  20. ** Rechecked by:               
  21. **********************************************************************************************************/
  22. /****-----请阅读ReadMe.txt进行实验-----***********/

  23. #define MAIN_Fosc                11059200L        //定义主时钟
  24. #include        "15W4KxxS4.H"

  25. /**********************
  26. 引脚别名定义
  27. ***********************/
  28. sbit led=P0^6;   //绿色LED用IO口P06

  29. /**************************************
  30. 功能描述:外部中断服务程序
  31. 入口参数:无
  32. 返回值:无
  33. ***************************************/
  34. void INT0_int (void) interrupt INT0_VECTOR               
  35. {
  36.         led=~led;      //将指示灯取反更换亮灭状态
  37. }

  38. /***********************
  39. 功能描述:主函数
  40. 入口参数:无
  41. 返回值:无
  42. ************************/
  43. int main()
  44. {
  45. /////////////////////////////////////////////////
  46. //注意: STC15W4K32S4系列的芯片,上电后所有与PWM相关的IO口均为
  47. //      高阻态,需将这些口设置为准双向口或强推挽模式方可正常使用
  48. //相关IO: P0.6/P0.7/P1.6/P1.7/P2.1/P2.2
  49. //        P2.3/P2.7/P3.7/P4.2/P4.4/P4.5
  50. /////////////////////////////////////////////////
  51.         P0M1 &= 0xBF;        P0M0 &= 0xBF;          //设置P0.6为准双向口
  52.        
  53. //外部中断0的初始化配置       
  54.         IE0  = 0;             //将INT0中断请求标志位清"0"
  55.         EX0 = 1;             //使能INT0中断允许位
  56.         IT0 = 1;                   //选择INT0为下降沿触发方式
  57.         EA = 1;                     //允许总中断

  58.   while (1)
  59.         {
  60.                 ;            //无任务,说明LED亮灭来自于中断
  61.         }
  62. }
复制代码

所有资料51hei提供下载:
实验4 - 外部中断0(下降沿中断方式).rar (1.09 MB, 下载次数: 1)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51Hei单片机16群 联系QQ:125739409;技术交流QQ群7344883

Powered by 单片机教程网

快速回复 返回顶部 返回列表