89C51单片机的中断系统共有几个中断源

89C51单片机的中断系统共有几个中断源,第1张

89C51共有5个中断源,中断入口地址如下:

外部中断0:0x0003

定时/计数器中断0:0x000B

外部中断1:0x0013

定时/计数器中断1:0x001B

串行口中断:0x0023

//下列程序基本正确,剩下一些脉冲宽度定时,可自行完成。

#include <reg51h>

#define uchar unsigned char

#define uint unsigned int

sbit P00 = P0^0;

sbit P01 = P0^1;

sbit P02 = P0^2;

sbit k_1 = P3^0; //第一个输入

uchar t_10ms, k3;

//--------------------------------------

DL_x_10ms(uchar x)

{

t_10ms = 0;

TH0 = (65536 - 10000) / 256;

TL0 = (65536 - 10000) % 256; //定时10ms@12MHz

TR0 = 1; //启动定时

while(t_10ms < x); //不到x10ms,原地等待

TR0 = 0; //关闭定时

}

//--------------------------------------

void main(void)

{

TMOD = 01; //T0定时方式1

TH0 = (65536 - 10000) / 256;

TL0 = (65536 - 10000) % 256; //定时10ms@12MHz

TR0 = 0; //暂时不启动

ET0 = 1;

IT0 = 1;

IT1 = 1;

EX0 = 0;

EX1 = 0;

EA = 1;

k3 = 1;

while(1) { //

//--------------------------------------

while((k_1 == 1) || (k3 == 0));//K1没有按,或者 K3尚未执行 原地等待

//K1按了一次,就往下执行

while(k_1 == 0); //等待K1释放

k3 = 0; //以后K1按下两次、三次,也不会执行

//进入第一个中断,P00口输出低电平,P01口输出高电平,延时15S后P00口输出高电平。

P00 = 0; P01 = 1;

DL_x_10ms(150);

P00 = 1;

EX0 = 1; //开放INT0(K2)中断

//循环到前面,等待(K1按下且K3=1)

}

}

//--------------------------------------

T0_INT() interrupt 1

{

TH0 = (65536 - 10000) / 256;

TL0 = (65536 - 10000) % 256; //定时10ms@12MHz

t_10ms++;

}

//--------------------------------------

X0_INT() interrupt 0 //K2输入下降沿,将进入本函数

{

//进入第二个中断,延时111S后P02口输出低电平,然后

DL_x_10ms(111);

P02 = 0; //P02口输出低电平

//输出低电平多少时间?题目没有说。

//---------------------

//高015S,

P02 = 1; //P02口输出高

DL_x_10ms(15);

//---------------------

//低03S,

P02 = 0; //P02口输出低电平

DL_x_10ms(30);

//下面的定时,可以自行编写

//高03S,

//低058S,

//高012S,

//低108S,

//高255S,

//低047S,

//高0075S,高低电平很多次这样。

EX0 = 0;

EX1 = 1; //开放INT1(K3)中断

}

//--------------------------------------

X1_INT() interrupt 2

{

//当进入第三个中断,P01口输出低电平。

P01 = 0;

EX1 = 0;

k3 = 1; //=1,将在主函数中有用

}

//--------------------------------------

以上就是关于89C51单片机的中断系统共有几个中断源全部的内容,包括:89C51单片机的中断系统共有几个中断源、高分!急求89C51单片机外部中断程序。有三个外部中断源,控制3个IO口的输出。C语言编写。随时在线可在线聊、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9284333.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存