求单片机大神解释这些语句是啥意思,并且最终实现了什么功能,谢谢各位
答案:2 悬赏:50 手机版
解决时间 2021-11-11 22:11
- 提问者网友:心牵心
- 2021-11-11 18:16
求单片机大神解释这些语句是啥意思,并且最终实现了什么功能,谢谢各位
最佳答案
- 五星知识达人网友:酒者煙囻
- 2021-11-11 19:18
#include "reg51.h"
#include "intrins.h"
sfr P0M1 = 0x93;
sfr P0M0 = 0x94;
sfr P1M1 = 0x91;
sfr P1M0 = 0x92;
sfr P2M1 = 0x95;
sfr P2M0 = 0x96;
sfr P3M1 = 0xb1;
sfr P3M0 = 0xb2;
sfr P4M1 = 0xb3;
sfr P4M0 = 0xb4;
sfr P5M1 = 0xC9;
sfr P5M0 = 0xCA;
sfr P6M1 = 0xCB;
sfr P6M0 = 0xCC;
sfr P7M1 = 0xE1;
sfr P7M0 = 0xE2;
上面这些是 寄存器声明,其实头文件里面也就是传统51的寄存器声明 了, 这个程序使用的增强型的51内核单片机,有P0——P7 8个IO口, 所以需要重新声明下reg51里面没有声明的部分。
void exint0() interrupt 0//INT0中断入口
{
P10 = !P10; //将测试口取反
FLAG = INT0;//保存INT0口的状态, INT0=0(下降沿); INT0=1(上升沿)
}
这部分是中断服务函数,外部中断0 进入终端 P1^0取反一次,同时把外部中断0的电平付给FLAG
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
P6M0 = 0x00;
P6M1 = 0x00;
P7M0 = 0x00;
P7M1 = 0x00;
这里是 给单片机的IO口 选择工作方式,一般有高阻输入,准双向IO口,开漏,推挽输出,这几种,增强型的可以给寄存器赋值来 设置工作模式的。 0x00的话一般是 准双向IO口使用的
INT0 = 1; //外部中断0 口 电平拉高,。
IT0 = 0;//设置INT0的中断类型 (1:仅下降沿 0:上升沿和下降沿)
EX0 = 1; //使能INT0中断
EA = 1;
while (1);
}
这个程序就是外部中断0 只要发生电平变化,就会进入中断,
#include "intrins.h"
sfr P0M1 = 0x93;
sfr P0M0 = 0x94;
sfr P1M1 = 0x91;
sfr P1M0 = 0x92;
sfr P2M1 = 0x95;
sfr P2M0 = 0x96;
sfr P3M1 = 0xb1;
sfr P3M0 = 0xb2;
sfr P4M1 = 0xb3;
sfr P4M0 = 0xb4;
sfr P5M1 = 0xC9;
sfr P5M0 = 0xCA;
sfr P6M1 = 0xCB;
sfr P6M0 = 0xCC;
sfr P7M1 = 0xE1;
sfr P7M0 = 0xE2;
上面这些是 寄存器声明,其实头文件里面也就是传统51的寄存器声明 了, 这个程序使用的增强型的51内核单片机,有P0——P7 8个IO口, 所以需要重新声明下reg51里面没有声明的部分。
void exint0() interrupt 0//INT0中断入口
{
P10 = !P10; //将测试口取反
FLAG = INT0;//保存INT0口的状态, INT0=0(下降沿); INT0=1(上升沿)
}
这部分是中断服务函数,外部中断0 进入终端 P1^0取反一次,同时把外部中断0的电平付给FLAG
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
P6M0 = 0x00;
P6M1 = 0x00;
P7M0 = 0x00;
P7M1 = 0x00;
这里是 给单片机的IO口 选择工作方式,一般有高阻输入,准双向IO口,开漏,推挽输出,这几种,增强型的可以给寄存器赋值来 设置工作模式的。 0x00的话一般是 准双向IO口使用的
INT0 = 1; //外部中断0 口 电平拉高,。
IT0 = 0;//设置INT0的中断类型 (1:仅下降沿 0:上升沿和下降沿)
EX0 = 1; //使能INT0中断
EA = 1;
while (1);
}
这个程序就是外部中断0 只要发生电平变化,就会进入中断,
全部回答
- 1楼网友:你可爱的野爹
- 2021-11-11 20:01
……这个程序就是将IO管脚配置完,开外部中断0,然后等着每次中断都翻转P1.0管脚……
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯