|
51单片机的中断,中断使得单片机有更灵活的数据处理机制。灵活使用中断、定时器功能将是开发的强力助手,虽然51单片机很简单,呵呵,谈不上嵌入式,但原理都是差不多,AVR PLC也有中断定时器等功能。最近也有在学PLC,不过进度有点慢,呵呵,PLC,单片机要在大二才开课,我先预热下,后面好上手。
先上代码吧。PS.本人写的程序都是自己经过编译运行过的,无错。
include<reg52.h> // 包含 51 单片机寄存器定义的头文件
sbit LED=P1^0;//定义LED点端口
////***********DS[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};**********///
void delay(void) // 延时函数,延时一段时间
{
unsigned char i,j;
for(i=0;i<250;i++)
for(j=0;j<250;j++);
}
void main(void)
{
EA=1;//总中断开
EX0=1;//外部中断
IT0=0;//采用外部电平触发,低电平,此处可以省略,因为单片机上电时管脚默认就是低电平。
LED=1
while(1) // 无限循环
{
P2=0xfe; //P2.0 引脚输出低电平, DS0 点亮
P0=0xf9; // 数字 1 的段码
delay();
P2=0xfd ; //P2.1 引脚输出低电平, DS1 点亮
P0=0xa4; // 数字 2 的段码
delay();
P2=0xfb; //P2.2 引脚输出低电平, DS2 点亮
P0=0xb0; // 数字 3 的段码
delay();
P2=0xf7; //P2.3 引脚输出低电平, DS3 点亮
P0=0x99; // 数字 4 的段码
delay();
P2=0xEF; //P2.4 引脚输出低电平, DS4 点亮
P0=0X92; // 数字 5 的段码
delay();
P2=0xDF; //P2.5 引脚输出低电平, DS5 点亮
P0=0x82; // 数字 6 的段码
delay();
P2=0xBF; //P2.6 引脚输出低电平, DS6 点亮
P0=0xf8; // 数字 7 的段码
delay();
P2=0x7F; //P2.7 引脚输出低电平, DS6 点亮
P0=0x80; // 数字 8 的段码
delay();
P2=0xff;
}
}
void exter0() interrupt 0
{
LED=0;//低电平点亮
}
|
|