你好!欢迎来到深圳市颖特新科技有限公司!
语言
当前位置:首页 >> 技术中心 >> 单片机入门 >> 单片机C语言程序设计:INT0 中断计数

单片机C语言程序设计:INT0 中断计数

关键字:INT0 单片机 C语言 程序设计 作者:admin 来源:不详 发布时间:2018-05-19  浏览:2

/*  名称:INT0 中断计数

说明:每次按下计数键时触发

INT0 中断,中断程序累加计数,

计数值显示在 3 只数码管上,按下

清零键时数码管清零

*/

#include<reg51.h>

#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++; 计数值递增

}

INT0 中断计数

扩展阅读:播放生日快乐歌

编辑:admin  最后修改时间:2018-05-19

联系方式

0755-82591179

传真:0755-82591176

邮箱:vicky@yingtexin.net

地址:深圳市龙华区民治街道民治大道973万众润丰创业园A栋2楼A08

Copyright © 2014-2023 颖特新科技有限公司 All Rights Reserved.  粤ICP备14043402号-4