找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1831|回复: 0
打印 上一主题 下一主题
收起左侧

串口中断计数li例程

[复制链接]
跳转到指定楼层
楼主
ID:134331 发表于 2016-7-20 09:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <REG51.h> //51头文件
sbit LED = P1 ^ 0; //定义LED灯
unsigned char s[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//数码管段码
unsigned char x;
char a=60;
char b;

sbit P27=P2^7;
sbit P26=P2^6;
sbit P25=P2^5;

//注:外部中断固定与P3.2和P3.3复用,无需定义这两个接口。
/************************** 函数功能:1ms延时函数
**************************/     
void delay(unsigned char i)   
{
unsigned char j  ;     
while(i--)

{for(j=0;j<125;j++)   
{; }
}   
}  


/*********************************************************************************************
函数名:外部中断INT初始化函数
调 用:INT_init();
参 数:无
返回值:无
结 果:启动外部中断INT1、INT0中断,设置中断方式
备 注:
/**********************************************************************************************/
void INT_init (void){
EA = 1; //中断总开关
EX1 = 1; //允许外部中断1中断   
EX0 = 0; //禁止外部中断0中断
IT1 = 1; //1:下沿触发 0:低电平触发
IT0 = 1; //1:下沿触发 0:低电平触发
}
/**********************************************************************************************/

/*********************************************************************************************
函数名:外部中断INT1中断处理程序
调 用:[外部引脚INT1中断处理]
参 数:无
返回值:无
结 果:用户处理外部中断信号
备 注:
/**********************************************************************************************/
void INT_1 (void) interrupt 2 using 2{ //切换寄存器组到2
x++;a=1


}
/**********************************************************************************************/
数码管显示
/************************************************************************************/
void display(unsigned char x)
{ P27=0;

  P0=s[x%10];         //求数的个位  
  delay(1);

P2=0xff;          //熄灭数码管,让其不闪烁   
P26=0  
   P0=s[x%100/10];  //求数的十位   
delay(1);   
P2=0xff;   
P2=0xff;   
P25=0;    //P25接通点亮第六个数码管   
P0=s[x/100];   //x/100取余,得到x的最高位
delay(1);   //延时1ms,让数码管显示稳定   
P2=0xff;    //关闭P2口,熄灭数码管         
}  
/*********************************************************************************************/
void main(void){
INT_init(); //外部中断初始化
while(1){
while(a--)

{
for(b=0;b<125;b++)   
{
display(x);
}
x=0;
}

}
/*********************************************************************************************/

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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