1、编写程序通过单一外部中断控制LED灯,每按一次开关,中断服务程序中,低4位led和高4位led交替闪烁5次;
2、编写程序利用两个外部中断控制LED灯。上电后8个led以流水灯方式点亮间隔100ms,K1按下,流水灯反向显示1次间隔50ms;按下K2,8个led同时闪烁3次,间隔50ms。
电路连接如下:
主要器件:AT89C51、RES、LED-GREEN、BUTTON
程序代码如下:
#include<reg51.h>
void delay(unsigned int x) // 延时函数
{
unsigned int i,j;
for(i=x;i>0;i--)
for(j=333;j>0;j--);
}
void main()
{
EX0=1; // 设置外部中断INT0允许
EA=1; // 开启总中断
IT0=0; // 设置INT0的触发方式为电平触发
while(1)
{
P1=0; // 将单片机P1口输出设为0,控制LED灯熄灭
}
}
void int0() interrupt 0 // 中断服务程序,处理外部中断INT0
{
unsigned char m;
EX0=0; // 禁止INT0外部中断
for(m=0;m<5;m++) // 循环执行5次
{
P1=0x0f; // 将单片机P1口输出设置为0x0f,控制LED灯低四位点亮 0x0f =0000 1111
delay(200);
P1=0xf0; // 将单片机P1口输出设置为0xf0,控制LED灯高四位点亮 0xf0=1111 0000
delay(200);
}
EX0=1; // 允许INT0外部中断
}
//1进入while循环中,将P1输出设置为0,此时LED灯处于关闭状态。
//2当外部中断INT0被触发,跳转到中断服务程序int0()中执行相应的操作。
//3在int0()服务程序中禁止INT0外部中断,并循环5次进行指定的操作。
//4操作每次点亮单片机P1口输出低四位或高四位,形成LED灯的闪烁效果。
//5在每次操作后使用延时函数delay延时一段时间。
//6循环结束后允许INT0外部中断,并返回到while循环中。
//不断重复2-6步骤,实现LED灯的闪烁效果。
电路连接如下:
程序代码如下:
#include<reg51.h>
#include<intrins.h>
sbit K1=P3^2; // 定义P3口第2个引脚为按键K1所对应的IO口
sbit K2=P3^3; // 定义P3口第3个引脚为按键K2所对应的IO口
void delay(unsigned int m) // 延时函数
{ unsigned int i;
while(m--)
{ for(i=0;i<333;i++);
}
}
void main()
{ EX0=1; // 打开外部中断0(INT0)
IT0=1; // 设置INT0为下降沿触发方式
PX0=1; // 设置INT0为优先级低的中断
EX1=1; // 打开外部中断1(INT1)
IT1=0; //设置INT1为低电平触发
EA=1; // 打开总中断允许
P1=0xfe; //初始设置P1口LED灯亮,除最后一位外都亮 0xfe为11111110
while(1)
{ delay(100); //延时100ms
P1=_crol_(P1,1); //将P1口LED灯向左移动一位(循环移位)
}
}
void int0() interrupt 0 // 定义INT0中断服务函数 流水灯反向显示一次
{ unsigned char i,j;
j=P1; // 保存当前P1口LED灯状态
delay(10); // 等待一段时间,避免按键抖动,消抖
P1=0x7f; // P1口前七个灯亮 0x7f=0111 1111
for(i=0;i<8;i++)
{ delay(50);
P1=_cror_(P1,1); // 将P1口LED灯向左移动一位(循环移位)
}
P1=j; //把原来保存的p1值再传给p1
}
void int1() interrupt 2 // 定义INT1中断服务函数 8个led同时闪烁
{ unsigned char i,j;
j=P1; //保存当前P1口LED灯状态
for(i=0;i<3;i++)
{ P1=0x00; // 将P1口所有LED灯都熄灭
delay(50);
P1=0xff; // 将P1口所有LED灯都点亮
delay(50);
}
while(!K2) // 等待按键K2释放
P1=j; // 恢复P1口LED灯状态
}
有个十字路口,设有一组红绿灯,无人操作时自动通过红黄绿灯控制交通;设置按钮K0和K1,其中K1用于交通管制状态,按下后红绿灯不再轮换点亮,可以固定在南北方向或东西方向通行;K0按钮用于恢复正常交通状态。
电路连接如下:
代码如下:
#include<reg51.h>
#include<intrins.h>
sbit K0=P3^2;
sbit K1=P3^3;
void delay(unsigned int m)
{ unsigned int i;
while(m--)
{ for(i=0;i<333;i++);
}
}
void main()
{
EX0=1;
IT0=1;
PX0=1;
EX1=1;
IT1=1;
EA=1;
while(1)
{ P1=0x7e;
delay(40);
P1=0xbe;
delay(20);
P1=0xdb;
delay(40);
P1=0xdd;
delay(20);
}
}
void ji_xu() interrupt 0
{
delay(1);
}
void guan_zhi() interrupt 2
{
while(1);
}
文章浏览阅读46次。在如今的网络环境中,我们的个人信息和行为轨迹往往被广泛追踪和记录,构成了所谓的“浏览器指纹”。这种指纹信息可以通过诸如IP地址、设备信息、浏览历史、Canvas指纹等多种方式被网站用来识别和关联用户,从而影响用户的隐私和安全。然而,虚拟的出现为我们提供了一种有效的解决方案,使得我们可以在网络世界中保持匿名和隐私。
文章浏览阅读4.2k次。5.这时就可以修改/data/iso中的文件了,本次我是修改了镜像中的脚本中的一小段脚本,然后也可以添加你需要的压缩包到你需要放的目录。2.创建零时需要的文件夹两个 一个是用来挂载镜像到目录上的,另外一个是制作(改制)新镜像的源目录。6.打包源文件夹为新的镜像文件(iso),就会在你执行这条命令的目录下打包好新的镜像文件了。7.可以把这个新的镜像文件使用vm加载安装系统,very nice!3.挂载VM主机的CDROM到 /media/cdrom上。4.同步cdrom的镜像文件到 上面创建的源文件夹。_linux制作镜像iso文件
文章浏览阅读5.7k次。namenode元数据管理要点 什么是元数据?hdfs的目录结构及每一个文件的块信息(块的id,块的副本数量,块的存放位置<datanode>)元数据由谁负责管理?namenodenamenode把元数据记录在哪里?namenode的实时的完整的元数据存储在内存中;namenode还会在磁盘中(dfs.namenode.name.dir)存储内存元..._hdfs 内核原理
文章浏览阅读7.4k次,点赞34次,收藏250次。前言本篇文章主要总结了一下利用python操作Excel文件的第三方库和方法。常见库简介1.xlrdxlrd是一个从Excel文件读取数据和格式化信息的库,支持.xls以及.xlsx文件。地址:http://xlrd.readthedocs.io/en/latest/ xlrd支持.xls,.xlsx文件的读 通过设置on_demand变量使open_wor..._python workbooks.open
文章浏览阅读5.2k次,点赞6次,收藏7次。本篇文章继续记录下adb 的一些常用逆向命令.
文章浏览阅读768次。Ribbon 默认为懒加载即在首次启动Application时会默认加载,然后将其存储在缓存中,这样程序启动完成后就可以直接拿来用。在applicaiont.yml配置文件中完成配置,可支持针对某个服务进行配置。_ribbon饥饿加载
这段代码似乎在尝试让用户输入两个整数,然后判断并输出这两个数之间的奇数。文章内容杂乱无章,难以理解。
文章浏览阅读1.1k次。该文章仅为个人踩坑记录,如有代码错误请提出,本人将积极改正。_vue-router动态添加路由 找不到文件
文章浏览阅读1.2k次,点赞22次,收藏18次。今天做题遇到了char数组和string间的相互转换的问题,网上搜有点散,来整理一下。_c++ char数组转换成string
文章浏览阅读4.5k次,点赞7次,收藏19次。最近用QT写客户端软件,思路是使用QWebEngineView来绘制本地的html或者服务器上的html做界面展示。可是发现QWebEngineView在Load一个https的URL的时候,由于ssl证书不可信导致提示有错误,无法显示内容,在QWebEngineView这个类里面找了半天都没看到忽略SSL证书错误的方法,后面终于找到了,原来在藏在QWebEnginePage这个类里面。这里,..._qwebengineview ssl
文章浏览阅读149次。1 4.1 制作表单 2 var form = new Ext.form.FormPanel({ 3 title:'form', 4 defaultType:'textfield', 5 buttonAlign:'center', 6 frame:true, 7 width:220, 8 fieldDef..._extjs textfiled 直接放在viewport
文章浏览阅读1.7k次。在最近几年,物联网技术这个概念就一直被广泛提及,他的到来给予了我们全新的发展机遇,一大批智能设备也在高速发展。然而,作为物联网技术中的关键一环,物联网卡也得到了急速的发展,物联网卡的到来极大的方便了我们的日常生活,他也为智能设备装上了一款智慧大脑。那么,什么是物联网卡?物联网卡是三大运营商联合发布的,主要用户是针对于企业而非个人。物联网卡也被安装在各种物体上是SIM卡、传感器、二维码..._什么是物联网卡