单片机的介绍
单片机,英文Micro Controller Unit,简称MCU
内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能
单片机的任务是信息采集(依靠传感器)、处理(依靠CPU)和硬件设备(例如电机,LED等)的控制
单片机跟计算机相比,单片机算是一个袖珍版计算机,一个芯片就能构成完整的计算机系统。但在性能上,与计算机相差甚远,但单片机成本低、体积小、结构简单,在生活和工业控制领域大有所用
同时,学习使用单片机是了解计算机原理与结构的最佳选择
RAM随机存储器 (运行内存) ROM只读存储器(硬盘)
封装类型可以用百度图片搜
单片机内部结构图
管脚图要记
单片机最小系统
左下角为晶振电路, 通过晶振周期来让程序运行
上面为复位电路
第二节(点亮一个LED)
102为1k欧 102==10 00 1001==100 0==1k
473==47 000 ==47k
延时函数要头文件#include<INTRINS.H>
在实现流水灯plus时, 需要用到1ms的延时函数, 然后再里面
1定义一个unsigned int xms 在函数里面写一个while循环, 把原来的内容放到循环里面一直执行就可以了
同时要写上xms–;要不然函数无法结束
也叫独立按键 在板子的左下角
复位键相当于开关一次电源
抖动会对按键的检测造成干扰
可以用按键消抖 有两种方法
1 用硬件 加个电路, 抖动过滤
2写程序 延时20ms就可以
这样处理就会使松手时P2_0取反, 实现亮与不亮
3-2独立按键控制LED灯的亮灭
P2是对8个灯经行操作, P3_ 是对独立按键进行控制
3-2独立按键控制LED灯的状态
3-3独立按键控制LED灯显示二进制
3-4独立按键控制LED灯的移位
4-1
一般为共阴极连接, 段码就是在A B D等等下面给上0 1 等数据控制其开关
那么如何控制数码管呢?
1控制3个口 使某一位选中,
2再个p0口一个段码数据 送到段码端, 显示段码数据
4-2数码管显示多位数据
此时要加一个数码管的消影(在其他位置上)
位选 段选 位选 段选 –循环 应为反应很快 显示窜位
5-1
模块化编程
传统方式编程:所有的函数均放在main.c里,若使用的模块比较多,则一个文件内会有很多的代码,不利于代码的组织和管理,而且很影响编程者的思路
模块化编程:把各个模块的代码放在不同的.c文件里,在.h文件里提供外部可调用函数的声明,其它.c文件想使用其中的代码时,只需要#include "XXX.h"文件即可。使用模块化编程可极大的提高代码的可阅读性、可维护性、可移植性等
这里文件就是写好的直接用就可以了
6-1矩阵键盘
上面为按行扫描,但按行扫描会影响到蜂鸣器, 一般就采用按列扫描
即给P10~3四个赋值, 然后再用if判断哪一个为0, 为0就说明这个按键按下了
L口为弱上拉模式
7-1定时器
不可位寻址寄存器只能整体赋值, 可位寻址寄存器可以每一位单独赋值
8-1串口
全双工:通信双方可以在同一时刻互相传输数据
半双工:通信双方可以互相传输数据,但必须分时复用一根数据线
单工:通信只能有一方发送到另一方,不能反向传输
异步:通信双方各自约定通信速率
同步:通信双方靠一根时钟线来约定通信速率
总线:连接各个设备的数据传输线路(类似于一条马路,把路边各住户连接起来,使住户可以相互交流)
串口通信
作者:努力的小帅