找回密码
 立即注册

QQ登录

只需一步,快速开始

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

外部中断实现(嵌套流水灯)仿真和程序

[复制链接]
跳转到指定楼层
楼主
实现功能
P1口接8个发光二极管,P3.2和P3.3各接一按键。
1.无按键按下时,8个发光二极管亮灭交替,间隔时间200 ms。
2.按键S3按下时,触发外中断0,使发光二极管左移16次,间隔时间为100ms。
3.按键S4按下时,触发外中断1,使发光二极管右移8次,间隔时间为200ms。
4.能够使外部中断1嵌套外部中断0
程序代码:
#include <reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char

void delayms (uint ms)
{
uint i;
while (ms--)
for (i=0;i<123;i++);
}

void main(void)
{
EA=1;  //开中断总开关
EX0=1; //允许外部中断0中断
EX1=1; //允许外部中断1中断
IT0=1; //外部中断0为下降沿触发中断
IT1=1; //外部中断1为下降沿触发中断
PX0=0; //外部中断0为低优先级
PX1=1; //外部中断1为高优先级
while(1)
{
P1=0x00;
delayms(200);
P1=0xff;
delayms(200);
}
}


void int0(void) interrupt 0 //外部中断0,中断号0,按P3.2触发
{
uchar i;
P1=0Xfe;
for(i=0;i<16;i++)
{
P1=_crol_(P1,1);
delayms(100);
}
}

void int1(void) interrupt 2 //外部中断1,中断号2,按P3.3触发
{
uchar i;
P1=0Xfe;
for(i=0;i<8;i++)
{
P1=_cror_(P1,1);
delayms(200);
}
}


666.PNG (43.66 KB, 下载次数: 73)

666.PNG

程序和仿真.rar

32.62 KB, 下载次数: 22, 下载积分: 黑币 -5

程序和仿真

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

使用道具 举报

沙发
ID:863362 发表于 2023-1-5 10:54 | 只看该作者
protues软件版本太高了,8.10都打不开
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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