LQB00开发板单片机介绍以及KEIL编程操作流程介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LQB00开发板单片机介绍以及KEIL编程操作流程介绍相关的知识,希望对你有一定的参考价值。


1、什么是单片机?
2、单片机最小系统组成;
3、欧姆定律,IO电平。
4、点亮一盏LED灯?工程理解与测试/
5、点亮8盏LED灯?工程理解和测试
6、按键理解和测试?代码。

单片机就是类比人的大脑,属于电子系统的大脑,可以做计算,分析的一个大脑。

单片机这大脑需要正常运转,需要电源,需要心脏晶振,需要满足基本的操作条件。

欧姆定律

U=IR,电压等于电流乘以电阻。
LED灯具备单向导电特性,分正级和阴极,单向导通,可以发光,反向导电不导电,不发光。

高低电平1和0:

单片机的IO口输出,如果接入电源是5V,那么一般输出IO口的高电平,用1表示,等于5V;

低电平用0表示,等于0V。

单片机属于01的大脑。只能输出0和1,代表了低电平和高电平。也只能接收一定范围的电压值,代表是高电平和低电平。

LQB00开发板单片机介绍以及KEIL编程操作流程介绍_51单片机

上图的1和2电路,是需要单片机的输出功能,
电路1,输出低电平0,LED发光,因为5V和IO口的0V有电压差,LED单向导电,发光。输出1,代表5V,LED两端没有压差,没电流,不发光。

电路2,单片机输出1,LED发光,输出0,LED熄灭。

电路3和电路4是输入功能。检测IO口是高电平还是低电平。一般单片机默认IO口是高电平,除非你用电路拉低了。

电路3,按下按键KEY,那么一段是GND,0V,GND和IO口导通,那么IO口将由1变为0,得到下降沿。
松手之后,按键弹起来,那么IO口又从0变为1,得到上升沿。由于按键是机械部件,具备一定的滞后性或者不稳定性,会发生一定的抖动现象,所以检测的时候,最好加一定的去抖动。
最简单的思路就是,第一次检测到0之后,延时10ms左右,再检测一次IO,过了抖动时间判断,如果还是0,那么就是按下了,。

LQB00开发板单片机介绍以及KEIL编程操作流程介绍_单片机_02


电路4,按下按键KEY,IO口原来是1,按下后还是1,没有变化,相当于没作用。所以一般不这么使用。

后面有需要将再调整电路。。

51单片机的芯片介绍。

(1)IO口,

传统51单片机的有4组IO口,分别是P0组,P1组,P2组,P3组;每组又分为8个小口,比如P0组,有

P0^0

P0^1, ,

P0^2,------------- P 0 ^7总共8个IO口,相当于一个房间P0,里面有8个员工。

那么总共有4*8=32个IO口。

假如我有40盏LED灯,IO口不够控制,需要加一些IO扩展芯片,或者是最好换一个有40个IO的芯片。

蓝桥杯的单片机是stc15增强型的51单片机,在上述基础上,多了P4组,P5组。

相当于人口扩张了。

LQB00开发板单片机介绍以及KEIL编程操作流程介绍_#include_03

LQB00开发板单片机介绍以及KEIL编程操作流程介绍_51单片机_04

(2)定时器

有定时器0,定时器1,定时器2

(3)串口

有时候和串口,和其他电脑,芯片连接

(4)内部中断和外部中断

中断机制,临时干活,干活之后,回到主任务中。

(5)用IO口和外部芯片连接。

串口,I2C ,SPI,单总线。

Proteus的软件在百度网盘;

链接:https://pan.baidu.com/s/1EdGKPB7Omt4x5i8A_huc6w

提取码:8765

Proteus的第一个仿真工程文件在百度网盘;

链接:https://pan.baidu.com/s/1PXUIEdAij7II3HTI5fCiJQ

提取码:8765

LQB00开发板单片机介绍以及KEIL编程操作流程介绍_51单片机_05

任务1

用STC-ISP软件和KEIL软件,编程实现仿真软件Proteus的电路,LED1点亮,LED1熄灭,间隔1000ms;,之后,间隔300ms(闪烁10次),

代码理解,

//第一个任务
//LED的闪烁
//工程的建立,以及延时函数,以及头文件的使用
//IAP15F2K61S2
#include <stc15.h>
#include <intrins.h>

sbit LED1=P1^0;
sbit LED2=P1^1;
sbit KEY1=P2^0;



void Delay1000ms(); //@11.0592MHz 函数声明,定义在main之后, 注意有分号
void Delay1ms(unsigned int nms); //@11.0592MHz 函数声明,定义在main之后,注意有分号



void main()

//定义临时变量
unsigned char i;//-127 127 0-255
unsigned int j; //0-65535 32767--

//初始化函数
P0=0x00; //1111 1111

//主循环
while(1)

P1=0x00;
Delay1000ms();
P1=0xFF;
Delay1000ms();
P1=0x00;
Delay1000ms();
P1=0xFF;
Delay1000ms();


for(i=0;i<5;i++)

P1=0xFB;
Delay1ms(300);

P1=0xBF;
Delay1ms(300);


P1=0x00; Delay1ms(300);


for(i=0;i<5;i++)

LED1=0;
Delay1ms(300);

LED1=1;
Delay1ms(300);









void Delay1000ms() //@11.0592MHz

unsigned char i, j, k;

_nop_();
i = 8;
j = 1;
k = 243;
do

do

while (--k);
while (--j);
while (--i);



void Delay1ms(unsigned int nms) //@11.0592MHz

unsigned char i, j;


for(nms;nms>0;nms--)

_nop_();
i = 2;
j = 199;
do

while (--j);
while (--i);


任务2,

按键1,按下一次,LED点亮,按下第二次,LED熄灭。

通过上述流程,掌握基本的软件编程,以及STC-ISP的使用(头文件的生成和延时函数的使用)。

代码理解。

#include <stc15.h>
#include <intrins.h>

//任务,按键1,LED1的控制,第一次按下,亮,第二次按下,灭。
//KEY2,,,LED整体控制。

sbit LED1=P1^0;
sbit KEY1=P2^0;
void Delay1ms(int nms); //@11.0592MHz


void main()

//局部变量
unsigned char i=0;

//外部的设备的初始化
P1=0x00; //LED灯全部熄灭

while(1)

if(KEY1==0)

Delay1ms(10);
if(KEY1==0)

LED1=~LED1;

while(KEY1==0); //等待按键松手







void Delay1ms(int nms) //@11.0592MHz

unsigned char i, j;

for(nms;nms>0;nms--)
_nop_();
i = 2;
j = 199;
do

while (--j);
while (--i);




以上是关于LQB00开发板单片机介绍以及KEIL编程操作流程介绍的主要内容,如果未能解决你的问题,请参考以下文章

51单片机学习笔记0 -- 编程软件安装(Keil)

单片机学习中的keil和protuse两个软件分别用来干啥,他们之间有啥联系吗?

初学单片机:Proteus介绍Proteus与Keil联调(Windows10环境下)

QuartusII和NiosII,FPGA板,不知道它们之间的联系,以及各个工具的具体功能和使用方法?

keil软件的作用是啥? 谁能分享

51单片机基于Keil开发printf使用注意事项