外部中断加减
来源:互联网 发布:中广电网络机顶盒好嘛 编辑:程序博客网 时间:2024/06/13 23:36
#include <reg52.h>
#define Dataport P1
sbit Latch_seg = P2^2;
sbit Latch_bit = P2^3;
unsigned char DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char WeiMa[] ={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char TempData[8];
unsigned char num ;
void Display(unsigned char FirstBit,unsigned char Num);
void delay(unsigned int t) ;
void display(unsigned char Firstbit,unsigned char num)//firstbit表示从第几个段开始,num表示位数
{
unsigned char i;
for (i=0;i<num;i++)
{
Dataport = 0;//清空数据,防止交替重影
Latch_seg = 1;
Latch_seg = 0;
Dataport = WeiMa[i+Firstbit];
Latch_bit = 1;
Latch_bit= 0;
Dataport = TempData[i];
Latch_seg = 1;
Latch_seg = 0;
delay(100);
}
}
void exit0_isr(void) interrupt 0
{
EX0 = 0;
num++;
if(num == 100)
num = 0;
EX0 = 1;
}
void exit1_isr(void) interrupt 2
{
EX1 = 0;
num--;
if(num == 255)
num = 99;
EX1 = 1;
}
void delay(unsigned int t)
{
while(t--);
}
void main(void)
{
EA = 1;
EX0 = 1;//外部中断
IT0 = 1;//边沿触发
EX1 = 1;
IT1 = 1;
while(1)
{
TempData[0] = DuanMa[num/10];
TempData[1] = DuanMa[num%10];
Display(6,2);
}
}
#define Dataport P1
sbit Latch_seg = P2^2;
sbit Latch_bit = P2^3;
unsigned char DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char WeiMa[] ={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char TempData[8];
unsigned char num ;
void Display(unsigned char FirstBit,unsigned char Num);
void delay(unsigned int t) ;
void display(unsigned char Firstbit,unsigned char num)//firstbit表示从第几个段开始,num表示位数
{
unsigned char i;
for (i=0;i<num;i++)
{
Dataport = 0;//清空数据,防止交替重影
Latch_seg = 1;
Latch_seg = 0;
Dataport = WeiMa[i+Firstbit];
Latch_bit = 1;
Latch_bit= 0;
Dataport = TempData[i];
Latch_seg = 1;
Latch_seg = 0;
delay(100);
}
}
void exit0_isr(void) interrupt 0
{
EX0 = 0;
num++;
if(num == 100)
num = 0;
EX0 = 1;
}
void exit1_isr(void) interrupt 2
{
EX1 = 0;
num--;
if(num == 255)
num = 99;
EX1 = 1;
}
void delay(unsigned int t)
{
while(t--);
}
void main(void)
{
EA = 1;
EX0 = 1;//外部中断
IT0 = 1;//边沿触发
EX1 = 1;
IT1 = 1;
while(1)
{
TempData[0] = DuanMa[num/10];
TempData[1] = DuanMa[num%10];
Display(6,2);
}
}
0 0
- 外部中断加减
- 外部中断
- 外部中断
- 外部中断
- 外部中断
- 外部中断
- 外部中断
- 外部中断
- 外部中断
- 外部中断
- 外部中断
- 外部中断
- 外部中断
- 中断一、外部中断
- 外部中断0和外部中断1
- 对比S3C6410外部中断STM32外部中断
- 外部中断与内部中断
- 外部中断,共享中断向量
- 电子表(开关,复位,调时)
- checkbox多项选中及取消选中
- Hello World!(printf练习)我的第一个C程序:-)
- 5-1 最大子列和问题 (20分)
- 自我暗示的力量—2016年终总结
- 外部中断加减
- Tyvj P1473 校门外的树3
- uva 10474
- 《iOS移动开发从入门到精通》图书连载17:函数的定义和调用
- 6-3
- 10002---背诵为王-02-01-Learning English in a New Environment
- 【J2EE】13种技术规范
- Storm和JDBC native集成
- Hadoop学习笔记(一)