求一个51单片机简单的中断C语言程序

来源:百度知道 编辑:UC知道 时间:2024/06/24 11:47:19
比如8只流水灯循环点亮,然后中断触发后全部闪烁几下,响应中断完后继续恢复循环点亮。或者类似的程序都可以,我初学者,网上很多例子是汇编的,看不懂。我需要一个C语言的有中断的简单程序来参考下,希望有文字说明更加好,谢谢了啊~!

这个是我自己做的 99s的计数器。用数码管显示的,这里使用了中断,其目的是为了通过中断来精确计算真实的时间。如果还有需要,给我邮箱,我这里还有不少资料,我学了2个多月,基本也算有点小成了吧。呵
//自行设计 99s,用数码管显示!
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit wei=P1^2;
sbit duan=P1^1;
uchar num;
uchar i,j;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //数码管模块
void delayms(unsigned int i) // 毫秒延时
{
unsigned int j;
for(;i>0;i--)
for(j=100;j>0;j--);
}

void fuzhi(uchar x,uchar y)
{
duan=1;
P0=table[x]; //8的共阴码
duan=0;
wei=1;
P0=0xfe; //送位显示码
wei=0;
delayms(5);

duan=1;
P0=table[y]; //8的共阴码
duan=0;
wei=1;
P0=0xfd; //送位显示码
wei=0;
delayms(5);
}

void main()
{
TMOD=0x01; //定时器0 工作方式1
TH0=(65536-45872)/