历史上的今天
今天是:2024年12月07日(星期六)
2020年12月07日 | stc15单片机外部中断0程序(下降沿中断方式)
2020-12-07 来源:51hei
外部中断0(下降沿中断)实验步骤:
1、MINI USB连接线给开发板通电下载程序,下载软件中内部IRC时钟选择11.0592MHZ;
2、下载程序后,按下用户按键S3观察绿色指示灯有何变化;
3、原理图可知按键不按时IO口是高电平,故按下按键的瞬间在P32上产生下降沿,灯亮,而松开按键会产生上升沿,灯状态不翻转;
4、故按下一次按键,灯状态翻转一次(由亮变灭或由灭变亮)。
单片机源程序如下:
/****************************************Copyright (c)****************************************************
**
**
**
**--------------File Info---------------------------------------------------------------------------------
** File name:
** Last modified Date:
** Last Version:
** Descriptions:
**--------------------------------------------------------------------------------------------------------
** Created by: FiYu
** Created date: 2017-2-20
** Version: 1.0
** Descriptions: GPIO驱动LED
**--------------------------------------------------------------------------------------------------------
** Modified by: FiYu
** Modified date:
** Version:
** Descriptions:
** Rechecked by:
**********************************************************************************************************/
/****-----请阅读ReadMe.txt进行实验-----***********/
#define MAIN_Fosc 11059200L //定义主时钟
#include "15W4KxxS4.H"
/**********************
引脚别名定义
***********************/
sbit led=P0^6; //绿色LED用IO口P06
/**************************************
功能描述:外部中断服务程序
入口参数:无
返回值:无
***************************************/
void INT0_int (void) interrupt INT0_VECTOR
{
led=~led; //将指示灯取反更换亮灭状态
}
/***********************
功能描述:主函数
入口参数:无
返回值:无
************************/
int main()
{
/////////////////////////////////////////////////
//注意: STC15W4K32S4系列的芯片,上电后所有与PWM相关的IO口均为
// 高阻态,需将这些口设置为准双向口或强推挽模式方可正常使用
//相关IO: P0.6/P0.7/P1.6/P1.7/P2.1/P2.2
// P2.3/P2.7/P3.7/P4.2/P4.4/P4.5
/////////////////////////////////////////////////
P0M1 &= 0xBF; P0M0 &= 0xBF; //设置P0.6为准双向口
//外部中断0的初始化配置
IE0 = 0; //将INT0中断请求标志位清"0"
EX0 = 1; //使能INT0中断允许位
IT0 = 1; //选择INT0为下降沿触发方式
EA = 1; //允许总中断
while (1)
{
; //无任务,说明LED亮灭来自于中断
}
}
史海拾趣
|
呵呵,要在这里和大家探讨一个问题,就是做电子工程师前途如何? 现在,这个社会太物质了,像我们这样能静下心来做点事情并且沉醉于其中的人越来越少了。还有钱,这个生活必需品的问题。欢迎大家谈谈自己的想法!!!… 查看全部问答> |
|
“简简单单DSP”系列学习活动—第七期事件管理器——PWM 四、 PWM电路 每一个事件管理器有三个比较单元,每一个比较单元有两个互补的PWM输出,这样三个比较单元就可以产生6路PWM,并且死区时间和输出极性可编程,能够 ...… 查看全部问答> |
|
询问的MPU型号: STM32F103ZET6 参考的手册:14611.pdf 问题: MPU在运行在72MHZ的时候,如果程序在FLASH中运行, 执行速率有多少? 因为:手册第一页: 特性:72 MHz maximum frequency, 1.25 DMI ...… 查看全部问答> |
|
void read_ram(position_type *d) { INT24U r_point=d->read_ram_pointer; unsigned char recdata; TBLPTRL = r_point&0xFF; &nb ...… 查看全部问答> |
|
用cy68013做一个数据采集系统,用cypress提供控制面板(control panel)进行块数据传输,调试前期能正常传输数据,突然有一天(固件程序没改),进行块数据传输,控制面板显示bulk in transfer,bulk in success,但是没有数据,显示数据conttents为 ...… 查看全部问答> |
|
最近一直想搞一个DIY,但是一直没有什么想法,今天突然想到了一个古老的东西——呼吸灯,其实就是一个一亮一暗的灯,我打算举办一个自己做呼吸灯的全民DIY,打算和我们论坛的模拟电子板块一块搞,做一个板块之间的联谊活动吧! 因为呼吸灯这 ...… 查看全部问答> |
|
恳请各位高手指点迷津。,vxworks下怎么制作bootrom?用的是DOC 各位高手,我用的是DOC,在tornado2.0下进行。现在需要制作一个bootrom。引导行是\"tffs=0,0(0,0)zw:c:/Tornado/target/config/pcPentium/VxWorks h=192.9.200.69 e=192.9.200.68 u=zw pw=zw f=0x08\" 那么我需要怎么做?在哪些文件中进 ...… 查看全部问答> |




