单片机基础知识
创始人
2024-05-03 12:57:13

目录

一、单片机基本认知

二、IO口输入和输出

三、点亮一个LED

1、编程实现LED闪烁

2、按下按键点亮灯

3、按键的消抖

4、记录状态位来控制LED


一、单片机基本认知

单片机和PC电脑相比的话,相当于电脑的主板

单片机是一种集成电路芯片。单片机又称单片微控制器,是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。一块芯片就成了一台计算机。采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。

单片机的特点是体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。

2、什么是单片机开发板

基于单片机设计一些外接电路,模块以满足学习,日常调研等工作需求

单片机命名规则:封装、LQFP44、特性、定时器、计数器、串口、看门狗、IO

3、单片机编程是什么

人类要求单片机干具体的活,有点像提前写个小纸条贴冰箱上,告诉你女朋友煮鸡蛋不加水

4、单片机执行程序怎么理解

女朋友看到女朋友,照做

5、单片机能做什么事情

IO口供电、串口数据传输等

6、肉眼可见的引脚是什么

方便人类对单片机IO口,串口接东西

7、单片机CPU怎么找到IO口

通过寻址,说白了有一些地址数据,头文件帮你做很多了

8、怎么写纸条(编程)到IO口呢

sfr"指令":用来直接描述硬件地址,小白先理解成“一组IO口”的起始地址中数据

sfr P0 = 0X80;

9、怎么找到IO具体的一个引脚

sbit"指令":对应可位寻址空间的一个位,小白先理解成"一个IO口针脚"的地址中数据

sbit led2 = P3^6

C语言的一个字节,char型就是8位

二、IO口输入和输出

1、对单片机来讲,IO口的输入(把外面的东西拿回来)输出(给东西到外面)

out:指向外输出数据

in:  指向内输入数据

89C52比较简单粗暴,关于引脚输入还是输出的功能不需要配置

sbit IFfire = P1^0;int main(){int io_data;//什么情况叫输入io_data = IFfire;  //给变量赋值,就是输入-----或者理解为,这个针脚有数据啦,拿个变量来保存if(io_data == 0){}//什么情况叫输出IFfire = 1;        //被给予一个值,引起IO口变化(一般1代表输出高电平、0代表输出低电平)此时为输出,来影响外接的电路return 0;
}

三、点亮一个LED

LED:代表二极管

KEY:代表按键

GND:就是0,代表低电平,上电状态

#include "reg52.h"sbit ledOne = P3^7;
sbit ledTwo = P3^6;
void main()
{ledOne = 0;ledTwo = 0;}

1、编程实现LED闪烁

软件延时器的使用

#include "reg52.h"sbit ledOne = P3^7;void Delay500ms()		//@11.0592MHz
{unsigned char i, j, k;i = 4;j = 129;k = 119;do{do{while (--k);} while (--j);} while (--i);
}void main()
{	while(1){//灯亮,给P3.7一个低电平ledOne = 0;//数数,数的期间,维持低电平,灯亮,延迟Delay500ms();//灯灭,给一个高电平ledOne = 1;//数数,数的期间,维持低电平,灯灭,延迟Delay500ms();}			
}

2、按下按键点亮灯

怎么知道sw1按键被按下

KEY1位置和GND接通,表现为低电平,值为0

怎么知道sw1按键没有被按下

KEY1位置通过上拉电阻到5V,表现为高电平,值为1

通过电路图分析得知

KEY1接到STC89C52的P2.1口,我们只要不断的检测P2.1口的值(0按下,1松开)就能知道按键是否被按下

3、按键的消抖

#include "reg52.h"
#include sbit key1   = P2^1;
sbit key2   = P2^0;
sbit ledOne = P3^7;void Delay500ms()		//@11.0592MHz
{unsigned char i, j, k;_nop_();i = 4;j = 129;k = 119;do{do{while (--k);} while (--j);} while (--i);
}void main()
{while(1){		if(key1 == 0){               //KEY1位置和GND接通,表现为低电平,值为0Delay500ms();        //给一个延时处理if(key1 == 0){				ledOne = 0;  //灯亮,给P3.7一个低电平}}	if(key2 == 0){               //KEY2位置和GND接通,表现为低电平,值为0ledOne = 1;          //灯灭,给P3.7一个高电平}}
}

4、记录状态位来控制LED

#include "reg52.h"
#include #define ON_STATUS  1
#define OFF_STATUS 0sbit key1   = P2^1;
sbit key2   = P2^0;
sbit ledOne = P3^7;void Delay500ms()		//@11.0592MHz
{unsigned char i, j, k;_nop_();i = 4;j = 129;k = 119;do{do{while (--k);} while (--j);} while (--i);
}void main()
{int ledMark = OFF_STATUS;ledOne = 1;while(1){		if(key1 == 0){    Delay500ms(); if(key1 == 0){ledMark = ON_STATUS;  //记住,key1被按下,记住,在其他地方点灯}}if(key2 == 0){    ledMark = OFF_STATUS;}if(ledMark == OFF_STATUS){ledOne = 1;}else{ledOne = 0;}}
}

相关内容

热门资讯

苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...