Ai8051U创新风格库函数学习打卡
第一集:I/O口模式设置,传统外部中断【INT0, INT1, INT2, INT3, INT4】1.学习截图
2.代码
#include <AI8051U.H>
#include "set_int.h"
#include "set_io.h"
#include "intrins.h"
void Delay1ms(void) //@40MHz
{
unsigned long edata i;
_nop_();
_nop_();
_nop_();
i = 9998UL;
while (i) i--;
}
void main(void)
{
EAXFR=1;
CKCON=0;
WTST=0;
set_io_mode(pu_mode,Pin40,Pin00,Pin01,Pin02,Pin03,Pin_End);
P40=0;
//set_io_mode(pp_mode,Pin40,Pin00,Pin01,Pin_End);
set_io_mode(hz_mode,Pin32,Pin33,Pin34,Pin35,Pin_End);
set_io_mode(en_pur,Pin32,Pin33,Pin34,Pin35,Pin_End);
//打开内部上拉电阻后,最好加一段1ms延时,以等待端口被拉高
Delay1ms();//1ms的延时
//set_io_mode(dis_pur,Pin32,Pin33,Pin_End);
//set_io_mode(en_pur,Pin33,Pin32,Pin_End);//参数顺序无所谓
set_int_mode(falling_edge_mode,Int0,Int1,Int_End);
EA=1;
while(1)
{
if(get_int_state(Int0))
{
P00=~P00;
}
if(get_int_state(Int1))
{
P01=~P01;
}
P02=P34;
P03=P35;
}
}
3.学习视频
第二集:所有普通 I/O口 都支持的外部中断
#include "AI8051U.h"
#include "set_int.h"
#include "set_io.h"
#include "set_timer.h"
void main(void)
{
EAXFR = 1;
WTST = 0;
CKCON = 0;
P40 = 0;
set_io_mode(pp_mode, Pin40, Pin_End);
set_io_mode(pu_mode, Pin00, Pin01, Pin02, Pin32, Pin33, Pin_End);
set_int_mode(falling_edge_mode, Int0, Int1, Int_End);
set_timer_mode(Timer0, Timer_End);
et_timer_state查询即可
EA = 1;
while (1)
{
if (get_int_state(Int0))
P00 = ~P00;
if (get_int_state(Int1))
P01 = ~P01;
if (get_timer_state(Timer0))
P02 = ~P02;
}
}
页:
[1]