/* 名称:INT0 中断计数
说明:每次按下计数键时触发
INT0 中断,中断程序累加计数,
计数值显示在 3 只数码管上,按下
清零键时数码管清零
*/
#include
#define uchar unsigned char
#define uint unsigned int
//0~9 的段码
uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
//计数值分解后各个待显示的数位
uchar DSY_Buffer[]={0,0,0};
uchar Count=0;
sbit Clear_Key=P3^6;
//数码管上显示计数值
void Show_Count_ON_DSY()
{
DSY_Buffer[2]=Count/100; //获取 3 个数
DSY_Buffer[1]=Count%100/10;
DSY_Buffer[0]=Count%10;
if(DSY_Buffer[2]==0) //高位为 0 时不显示
{
DSY_Buffer[2]=0x0a;
if(DSY_Buffer[1]==0) //高位为 0,若第二位为 0 同样不显示
DSY_Buffer[1]=0x0a;
}
P0=DSY_CODE[DSY_Buffer[0]];
P1=DSY_CODE[DSY_Buffer[1]];
P2=DSY_CODE[DSY_Buffer[2]];
}
//主程序
void main()
{
P0=0x00;
P1=0x00;
P2=0x00;
IE=0x81; //允许 INT0 中断
IT0=1; //下降沿触发
while(1)
{
if(Clear_Key==0) Count=0; //清 0
Show_Count_ON_DSY();
}
}
//INT0 中断函数
void EX_INT0() interrupt 0
{
Count++; 计数值递增
}
关键字:单片机 C语言 程序设计 INT0 中断计数
引用地址:
单片机C语言程序设计:INT0 中断计数
推荐阅读最新更新时间:2024-03-16 16:18
基于nRF401芯片的多路消防栓无水监测系统设计
消防给水系统是火灾控制重要设备,它能否正常发挥作用关系着人们的生命财产安全。但在实际应用中,常出现消防栓被遮掩、水压低等情况,更严重的是阀门误操作或管道漏水造成消防栓无水。一旦发生火灾,打开消防栓龙头无水,消防人员和群众无法及时扑灭火灾,会使火灾严重程度升级,造成生命财产重大损失。为此,不但要建设一个完善的消防给水系统,更重要是要确保该系统的正常运行,有一个正常的给水压力。针对这种情况,本文设计介绍一种消防给水系统水压是否正常的检测系统,用于检测消防给水系统水压是否正常,并给出显示和报警。 1 系统组成 该系统由微机、通信处理模块、单片机消防栓信息采集模块等三大部分组成。系统的组成如图1所示。 上位机由PC机
[单片机]
基于FPGA和单片机的多功能计数器设计
一、系统方案 方案1:采用中小规模数字电路构成系统,由计数器构成主要的测量模块。用定时器组成主要的控制电路。此方案软件设计简单,但外围芯片过多,且频带窄,实现起来较复杂,功能不强,而且不能程控和扩展。 方案2:采用单片机实现。被测信号经调理后送入单片机,利用其内部的计数器完成计数,然后再进行数据处理和显示,但单片机在处理高速信号时略显吃力。 方案3:利用FPGA对调理后的被测信号实现高速计数,单片机软件执行高精度浮点数运算并显示。单片机完成系统的数据处理、逻辑控制和人机交互功能;大规模现场可编程器件(FPGA)实现外围计数功能。电路框图如图1所示。 图1 方案3系统框图 方案比较与选择:方案1 采用
[模拟电子]
基于单片机的数控恒流源电路的设计
0 引言 恒流源是能够向负载提供恒定电流的电源,也称作稳流源或者电流源。当前,数控恒流源的应用,随着电子技术的发展使用范围越来越广,在电子测量仪器、激光、传感技术、超导、现代通信等高新技术领域,恒流源都被广泛应用,且发展前景较为良好。同时,也不仅局限于此,目前,急需迫切解决的工业需求是,数字化在工业生产中采集的模拟信号量,并将其作为控制信号的恒定电流,并参与到下一级生产的控制当中。 1 系统的结构与原理 变压整流、单片机控制部分、D/A 与A/D 转换电路、供电部分、显示器或键盘接口电路、恒流源电路等,本数控恒流源便由以上的几个部分组成。该系统还能实现人机交流,主要是通过LED数码管和小键盘来实现的,LED
[单片机]
avr单片机数码管显示时钟
// 数码管 数据P0口,数码管控制P2口 #include avr/io.h #include avr/delay.h #include avr/pgms PAC e.h #include avr/signal.h #include avr/interrupt.h #define code PROGMEM #define uchar unsigned char #define uint unsigned int code const uchar LED _7 = {0x28, 0x7E, 0xA2, 0x62, 0x74, 0x61, 0x21, 0x7A, 0x20, 0x60,0xff};//common of
[单片机]
PIC单片机与触摸屏串行通信的MODBUS协议实现
摘要:介绍一种在PIC单片机与触摸屏之间采用Modbus协议实现异步串行通信的方法。简单介绍了Modbus通信协议,给出了硬件电路连接图、程序流程图以及用PIC单片机C语言编写的部分通信程序。实际使用证明该方法数据传输稳定可靠,并提供了良好的人机交互环境。
关键词:触摸屏 PIC单片机 Modbus协议 通信
工控中经常需要观察系统的运行状态或者修改运行参数。触摸屏能够直观、生动地显示运行参数和运行状态,而且通过触摸屏画面可以直接修改系统运行参数,人机交互性好。单片机广泛应用于工控领域中,与触摸屏配合,可组成良好的人机交互环境。触摸屏和单片机通信,需要根据触摸屏采用的通信协议为单片机编写相应的通信程序。Modbus协议是美国M
[工业控制]
理清单片机中的各种周期
单片机 时钟周期 时钟周期: 时钟周期也叫振荡周期或晶振周期,即晶振的单位时间发出的脉冲数,一般有外部的振晶产生,比如12MHZ=12×10的6次方,即每秒发出12000000个脉冲信号,那么发出一个脉冲的时间就是时钟周期,也就是1/12微秒。通常也叫做系统时钟周期。是计算机中最基本的、最小的时间单位。 在8051单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。 机器周期: 在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。一般情况下,
[单片机]
多功能红外线遥控器的设计
一、引言 目前,人们的物质文化生活水平日益提高,各种各样的家用电器走进了千家万户,其中,大多数的家用电器都有各自不同的遥控器,人们常常为了控制某台电器而到处寻找其对应的遥控器,这样,就给人们的生活带来了很多不便。为了解决这个问题,本文提出一个多功能遥控器的设计方案:该遥控器可以通过自学习而拥有对多台电器的遥控功能,即省时、又省力,从而使人们免除同时面对众多遥控器的烦恼。 二、功能 1 、适用于编码式红外线遥控型家用电器; 2 、可遥控多台家用电器; 3 、具有一个学习 / 控制复用键、 5~10 个设备选择键, 10~20 个功能控制键,由一个设备选择键与各个功能控制键共同实现对一个设备的控制;
[单片机]
基于STC89C54RD单片机的高精度自动电阻测试仪设计
本文给出了一种以STC89C54RD为控制核心的高精度自动电阻测试仪的设计,系统量程为10Ω 到10MΩ,具有自动切换量程和自动筛选的功能。采用恒流测压以及恒压测流相结合的方法,同时采用高精度运放OP07 及精密电阻确保测试电路测量的精度。为了避免高阻测试时的工频干扰,采用12 位的高速AD574 进行模数转换,既保证测量速度又达到了数字滤波的效果。 此外,本文还阐述了整个系统的误差来源以及减少误差、提高精度的办法。 0 引言 电子行业发展迅速,作为最基本的电路元件之一的电阻,在电子系统中的需求量不断加大。在电子仪表中,需要精密的电阻来提高仪表的精度,对于普通的电子仪表的公司而言,需要既快捷又能保证精度的电阻测试仪,在电子
[单片机]