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,代表了低电平和高电平。也只能接收一定范围的电压值,代表是高电平和低电平。
上图的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,那么就是按下了,。
电路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组。
相当于人口扩张了。
(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
任务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编程操作流程介绍的主要内容,如果未能解决你的问题,请参考以下文章
单片机学习中的keil和protuse两个软件分别用来干啥,他们之间有啥联系吗?
初学单片机:Proteus介绍Proteus与Keil联调(Windows10环境下)