#include //单片机的头文件
#define uint unsigned int //宏定义无符号整型
#define uchar unsigned char//宏定义无符号字符型
#include //单片机的头文件
#define uint unsigned int //宏定义无符号整型
#define uchar unsigned char//宏定义无符号字符型
char code b[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,
0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,
0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//用十六进制定义单片机P2口八盏灯得工作状态
uchar code temp[]={0x80,0xe3,0x44,0x41,0x23,0x11,0x10,0xc3,0x00,0x01};//用十六经
//用十六进制定义数码管0~9的数字显示
uchar i;//全局定义
void delay(uint time) //延时函数
{
int k,l;
for(k=0;k<=time;k++)
for(l=0;l<50;l++);
}
void main() //主函数
{
uchar a=0xf0;
EA=1;//CPU总中断位,为0时,禁止所有中断;为1时,允许中断
IT0=1;// 外部中断1触发式选择位,“IT1为外部1触发式选择位”
EX0=1;//外部中断允许中断位,0时禁止中断,1时,允许中断
while(1)//死循环:执行中断前的命令
{
for(i=0;i<16;i++)
{
P2=b[i]; //把定义的前16位的十六进制的灯状态赋给单片机的P2口
delay(400);//调用延时函数
}
}
}
void ext0() interrupt 0 using 0 //0触发中断请求
{
uchar j=1;
while(1) //中断执行:执行中断后命令
{
for(i=17;i<38;i++)
{
P2=b[i];
P1=temp[j];
delay(400);
j++;
if(j==8)j=0;
}
}
}
编后感:(本程序仅供参考),中断就像一个函数的调用!
关键字:单片机 中断模块 函数
引用地址:
单片机中断模块-中断程序运用
推荐阅读最新更新时间:2024-03-16 13:06
凌阳16位单片机之用时基中断定时
P_INT_Ctrl有读写两个功能,写可以控制中断源允许和禁止中断,读可以判断产生中断请求的中断源,当某单元中的某位为一时,说明该位代表的中断允许开放,如果是0,就算有中断申请,CPU也不会相应。 当作为读操作的时候,P_INT_Ctrl主要作为中断标志,因每一位均代表一个中断,当CPU相应某个中断的时候,便将该中断标识值=置为1 清楚标志控制单元P_INT_Clear只具有写的功能,当CPU响应中断后,会将中断标志为1;当进入中断服务的时候,会将中断标志位0,否则CPU将会总进行这个中断; P_INT_Ctr_New与P_INT_Ctrl功能相似。 首先在打开中断的情况下,有多少Hz一秒钟就进入多少次中断, 所以要
[单片机]
单片机小白学习之路(四十一)---LCD1602液晶理解
目标:理解LCD1602液晶工作原理 1.LCD1602简介 1602液晶也叫1602字符型液晶,它能显示2行字符信息,每行又能显示16个字符,所以简称1602。它是一种专门用来显示字母、数字、符号的点阵型液晶模块。 它是由若干个5x7或者5x10的点阵字符位组成,每个点阵字符位都可以用显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此,所以它不能很好的显示图片。 1602 引脚作用 VL是液晶显示偏压信号,当感觉屏幕过暗或过亮是可以调节此电压来调整亮度 RS是高电平是是数据选项,是低电平是命令选项 R/W 是高电平是读操作,是低电平是写操作 E是使能信号
[单片机]
如何用Arduino板来满足各类可穿戴式设计需求?
事实证明,开源的 Arduino 概念已在业余爱好者和创客中取得巨大成功。同时此概念亦被专业设计人员所接受,用于早期开发和原型设计,最近又被用于完整设计。随着诸如可穿戴设备和健康监测之类应用的出现,这两类用户都需要在越来越小的电路板外形尺寸中,实现更高的性能和更多的功能。 本文简要讨论了如何使用 Arduino 板来满足创客和专业人士对低功耗、空间受限型应用中的高性能和功能需求。然后介绍并展示了如何从 Arduino 家族的最新成员——来自 Seeed Technology Co. 的 Seeeduino XIAO——着手来启动项目。 如何使用 Arduino 来满足可穿戴式设计需求 许多业余爱好者和设计人员都对开发小物理
[嵌入式]
详细分析MCS-51单片机内部数据存储器RAM
8051单片机的内部RAM共有256个单元,通常把这256个单元按其功能划分为两部分:低128单元(单元地址00H~7FH)和高128单元(单元地址80H~FFH)。如图所示为低128单元的配置图。 寄存器区 8051共有4组寄存器,每组8个寄存单元(各为8),各组都以R0~R7作寄存单元编号。寄存器常用于存放操作数中间结果等。由于它们的功能及使用不作预先规定,因此称之为通用寄存器,有时也叫工作寄存器。4组通用寄存器占据内部RAM的00H~1FH单元地址。 在任一时刻,CPU只能使用其中的一组寄存器,并且把正在使用的那组寄存器称之为当前寄存器组。到底是哪一组,由程序状态字寄存器PSW中RS1、RS0位的状态组合来决定。
[单片机]
MCU备战为明天做准备?
对于在市场上行走多年的MCU来说,近年来应是史上的好光景。IC Insights在其《The 2018 McClean Report》调查报告中,提高了对MCU出货量的预测,预计在2018年将达到18%,达到近306亿片;营收预计将成长11%,达到186亿美元的历史新高水平,2019年将成长9%,达到204亿美元。对于MCU厂商来说,在未来的机遇面前如何“为明天做准备”呢? 为明天做准备 对于MCU厂商来说,一个永恒的命题就是在集成度、成本、功耗、安全层面进化以满足永无止境的市场需求。用ST微控制器事业部产品线市场经理Pierre Charvet的话来说,就是要为明天做准备。 曹锦东诠释了这一主旨,他说,客户遇到的问题
[手机便携]
MSP430中断服务函数的定义
//为了保证代码可以在IAR编译器的任何版本中都能正确得到编译,所以作以下的条件编译。 #ifdef __IAR_SYSTEMS_ICC__ //如果编译器是IAR, 那么以下将被编译。 #if __VER__ = 200 #pragma vector=USART0RX_VECTOR //在IAR2.0以上中断函数声明。 __interrupt void SPI0_rx (void) #else //在IAR2.0以下中断函数声明。 interrupt void SPI0_rx (void) #endif
[单片机]
关于PIC单片机SLEEP指令
之前一直没有真正理解sleep指令,最近在做智能水表的产品的时候,用了一款8位的单片机PIC16F690,当看到程序中的sleep指令时以为执行后cpu还会工作,导致一些认识上的错误,在网上搜索了一下,找到了一篇关于sleep的详细说明文章,现收集下来以便以后查询! 在执行SLEEP指令后进入睡眠省电模式。进入SLEEP模式后,主振荡停止,如果看门狗在烧写时打开了,看门狗定时器将被清并保持运行。I/O 口,周边模块和内部RAM将保持原来状态,所以如果要求睡眠后有很低功耗,应该在进入SLEEP前把IO口置为高阻抗的输入状态,不用的模块也要关闭。另有些周边模块与主时钟有关,如在异步模式下的USART,将不工作。 唤醒SLEEP
[单片机]
单片机抢答器的设计资料详细说明
在知识比赛中, 特别是做抢答题目的时候, 在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。 ! 系统工作原理本系统采用8051单片机作为核心。控制系统的四个模块分别为:存储模块、显示模块、语音模块、抢答开关模块。该抢答器系统通过开关电路四个按键输入抢答信号;利用语音芯片ISD1420 完成语音的录放功能; 利用存储程序; 利用一个数码管来完成显示功能。工作时,用按键通过开关电路输入各路的抢答信号
[单片机]