上一篇:实验室单片机知识点(一)

单板机
将CPU芯片、存储器芯片、I/O接口芯片和简单的I/O设备(小键盘、LED显示器)等装配在一块印刷电路板上,再配上监控程序(固化在ROM中),就构成了一台单板微型计算机(简称单板机)。
单片机
在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,即单片机。
Intel公司推出了MCS-51系列单片机:集成 8位CPU、4K字节ROM、128字节RAM、4个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K,并有控制功能较强的布尔处理器。

  1. CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;

  2. RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;

  3. ROM : 用以存放程序、一些原始数据和表格;

  4. I/O口:四个8位并行I/O口,既可用作输入,也可用作输出;51单片机在一上电时,如果我们没有认为的控制其I/O口的状态,它所有未控制的I/O口都将默认为高电平。

  5. T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;

    ·一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;
    · 片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最高振荡频率取决于单片机型号及性能。

单片机总结:
无论哪种芯片,观察其表面,大都会有凹进去的小圆坑,或者是用颜色标识的小标记(圆点或小三角或其他小图形),这个标记所对应的引脚就是这个芯片的第1引脚,然后逆时针方向数下去,即1 到最后一个引脚。
40个引脚暗器功能类别将其分为三类:
·电源和时钟引脚。如Vcc、GND、XTAL1、XTAL2
·编程控制引脚。
·I/O口引脚。如P0、P1、P2、P3,4组8位I/O口

//Vcc(40脚)、GND(20脚)——单片机电源引脚,常压为+5V,低压为+3.3V。
//XTAL1(19脚)、XTAL2(18脚)——外接时钟引脚。XTAL1为片内振荡电路的输入端,XTAL2为输出端
//RST——单片机的复位引脚,当输入连续两个机器周期以上高电平时为有效,复位后程序计数器PC=0000H。
//ALE/PROG(Pin30):地址锁存允许信号
//PSEN(Pin29):外部存储器读选通信号
//EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。

P0口——内部没有上拉电阻,为高阻状态,所以不能正常的输出高/低电平,因此改组I/O口使用时必要外接上拉电阻,一般我们选择接入10千欧的上拉电阻。

关于电平特性:
数字电路中只有两种电平:高和低
(本课程中)定义单片机为TTL电平:
高 +5V 低 0V
RS232电平:计算机的串口
高 -12V 低+12V
所以计算机与单片机之间通讯时需要加电平转换芯片max232
或者转换器(USB转TTL串口线)。

最小系统能够运行起来的必要条件。
1.电源 2.晶振 3.复位电路
对单片机任意IO口的随意操作
1.输出控制电平高低 2.输出检测电平高低。
定时器:重点掌握几种常用的方式
中断:外部中断、定时器中断、串口中断
串口通信:单片机之间、单片机与计算机间

C51数据类型扩充定义:
Sbit——特殊功能位声明,也就是声明某一个特殊功能寄存器中的某一位。
由电阻标号认知阻值
例如:103表示阻值大小为10 * 10^3欧,即10千欧
150表示15 * 10^0欧即15欧
发光二极管:
具有单向导电性,通过5mA左右电流即可发光,电流越大,亮度越强。一般控制在3~20mA之间。当发光二极管发光时,测量其两端电压,这个电压又叫做发光二极管的“导通压降”。
74HC573锁存器
OE(低电平有效)通常叫做输出使能端,在设计电路时必须将OE接低电平,因此将其全部接地。因此当他为低电平的时候, 锁存器开始工作。
VCC和GND为电源和地端。
LE为锁存端,当LE为高电平的时候,Q0~ Q7都跟D0~ D7状态一样,当LE为低电平的时候,Q0~ Q7都锁存数据,无论D0~ D7怎么变化,Q0~Q7都保持锁存之前的那个状态。

单片机的几个周期介绍:

  1. 时钟周期。也称振荡周期,定义为时钟频率的倒数。他是单片机中最基本的,最小的时间单位。时钟频率越高,单片机的工作速度就越快。
  2. 状态周期。是时钟周期的两倍。
  3. 机器周期。单片机的基本操作周期,由12个时钟周期(6个状态周期)组成。
  4. 指令周期。

PSW寄存器
寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,寄存器有累加器(ACC)。

全称为程序状态字标志寄存器。

循环左移右移函数
_ crol _(a,b);循环左移函数,a是左移的值,b是左移的位数。包含在instrins.h库函数里面。
_ cror _(a,b);循环右移函数,a是右移的值,b是右移的位数。包含在instrins.h库函数里面。

数码管
数码管内部有8个小的发光二极管,最后还有一个公共端。而他们的公共端又可分为共阳极和共阴极。对共阴极数码来说,其8个发光二极管的阴极在数码管内部全部连接在一起,所以称为“共阴”,而他们的阳极是独立的。
在数码管程序中,在每次送完段选数据后,在送入位选数据之前,需要加上一句“P0 = 0xff”,这条语句的专业名词叫做“消影”。在送完段选数据后,P0口仍然保持着上次的段选数据,加上“消影”后,在开启位选锁存器后,P0口数据全为高电平,所以哪个数码管都不会亮,因此这个“消影”动作是很重要的。

按键
键盘分为编码键盘和非编码键盘,非编码键盘又分为独立键盘和行列式(矩阵式)键盘。
单片机检测按键的原理:单片机的I/O口既可以作为输入也可以作为输出使用,当检测按键时用的是它的输入功能,我们把按键的一端接地,另一端与单片机的某个I/O口相连,开始时先给该I/O口赋一高电平,然后让单片机不断的检测该I/O口是否变为低电平,当按键闭合时,即相当于该I/O口通过按键与地相连,变成低电平,程序一旦检测到I/O口变为低电平则说明按键被按下,然后执行相应的指令。

什么是中断?暂停正在进行的程序去处理内部随机发生的事件。因规定时间已到,或者计数已满引起的中断。

定时器:51定时器的定时原理就是二进制加一计数器,利用计数周期相同的脉冲(时钟脉冲)实现定时。
计数器:当输入的外部脉冲信号发生从1到0的负跳变时,计数器的值就自动加1。检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。
脉冲来源:系统的时钟振荡器输出脉冲经12分频,T0或T1引脚输入的外部脉冲源。

中断
51单片机内部有五个中断源的中断控制系统;
52单片机一共有6个中断源,他们的符号,名称及产生的条件分别解释如下:
·INT0——外部中断0,由P3.2端口线引入,低电平或下降沿引起。
·INT1——外部中断1,由P3.3端口线引入,低电平或下降沿引起。
·T0——定时器/计数器0中断,由T0计数器记满回零引起。
·T1——定时器/计数器1中断,由T1计数器记满回零引起。
·T2——定时器/计数器2中断,由T2计数器记满回零引起。
·TI/RI——串行口中断,串行端口完成一帧字符发送/接收后引起。
以上6个中断源中,T2是52单片机特有的。

单片机在使用中断功能时,通常需要设置两个与中断有关的寄存器:中断允许寄存器IE和中断优先级寄存器IP。

中断允许寄存器用来设定各个中断源的打开与关闭,IE在特殊功能寄存器中,字节地址为A8H,该寄存器可以进行按位寻址,单片机复位时IE全部被清0。

中断优先级寄存器在特殊功能寄存器中,字节地址为B8H,IP用来设定各个中断源属于两级中断中的哪一级,该寄存器可以进行按位寻址,单片机复位时IE全部被清0。

在51单片机系列中,高优先级中断能够打断低优先级中断以形成中断嵌套,同优先级中断之间或低级对高级中断则不能形成中断嵌套。若几个同级中断同时向CPU请求中断响应,在没有设置中断优先级情况下,按照默认终端级别响应中断,在设置中断优先级后,则按设置顺序确定响应的先后顺序。

单片机的定时器中断
51单片机内部共有两个16位可编程的定时器/计数器,即定时器T0和定时器T1。52单片机多一个T2

定时器/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD是定时器/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0,T1的启动和停止及设置溢出标志。

定时/计数器实质上是一个加1计数器。它随着计数器的输入脉冲进行自加1,也就是每来一个脉冲,计数器就自动加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使相应的中断标志位置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。

可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。
51单片机定时/计数器最大可计 2^16=65536个数。(0——65535)

定时/计数初始值的确定:
定时器/计数器计满之后溢出,向CPU申请中断。因此定时器的初值X为计数器计数的最大值(65536)与需要计几个数N之间的差值。

时钟周期:晶振振荡周期 T时钟=1/f晶振
机器周期:计数器/定时器加一的时长
机器周期=12*时钟周期(12M晶振单片机T机器=1us)
计数状态 X=65536-N
定时状态 X=65536-需要定的时间/机器周期。
所以定50ms,定时器初值应为65536-50000。

设置为定时器模式时,加1计数器是对内部机器周期计数(一个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12).计数值N乘以机器周期Tcy就是定时时间t。

单片机在使用定时器或计数器功能时,通常需要设置两个与定时器有关的寄存器:定时器/计数器工作方式寄存器TMOD与定时器/计数器控制寄存器TCON。

TMOD(不能位寻址):
TMOD的高四位用于设置定时器1,低4位用于设置定时器0。
·GATE:门控位。用于控制定时器的启动是否受外部中断源信号的·影响。
·GATE=0时,只 要软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;
·GATE=1时,TR0或TR1为1,同时外部中断引脚INT0/1也为高电平时,才能启动 定时/计数器工作。
·C/T :定时/计数模式选择位。C/T =0为定时模式;C/T =1为计数模式。
·M1M0:工作方式设置位。定时/计数器有四种工作方式。

TMOD=0X00; //T0工作方式为0,定时模式
TMOD=0X01; //T0工作方式为1,定时模式
TMOD=0X02; //T0工作方式为2,定时模式
TMOD=0X03; //T0工作方式为3,定时模式

方式1:计数初值与计数个数的关系为:N(初始值)=216-X(计数个数)
方式2:计数个数与计数初值的关系为:X=28-N
工作方式2特别适合于用作较精确的脉冲信号发生器。
方式3只适用于定时/计数器T0,定时器T1处于方式3时相当于TR1=0,停止计数。

TCON
TF1,TR1,TF0,TR0位用于定时器/计数器;IE1,IT1,IE0,IT0位用于外部中断。

终端服务程序的写法
中断函数不能返回任何值,所以最前面用void;后面紧跟函数名,加Interrupt后面跟中断号,中断号是指单片机中几个中断源的序号,最后面的”using工作组”是指这个中断函数是用单片机内存中4组工作寄存器中的哪一组。

在写单片机的定时器程序是,在程序开始处需要对定时器及中断寄存器做初始化设置,通常定时器初始化过程如下:
*对TMOD赋值,以确定T0和T1的工作方式。
*计算初值写入TH0,TL0或TH1,TL1.
*中断方式时,则对IE赋值,开放中断。
*使TR0或TR1置位,启动定时器/计数器定时或计数。


下一篇:实验室一轮培训考核笔试题

51单片机最全入门总结相关推荐

  1. 51单片机的新手入门前所有疑问整理

    51单片机的新手入门前所有疑问整理 ///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像黑色字体加我地球呺也能领取哦.最近比较闲 ...

  2. 51单片机攻略—入门

    51单片机攻略-入门测试:点亮一个LED 一.基础知识 (一)单片机的电平特性 1.TTL电平 TTL电平信号规定,+5V等价于逻辑"1",0V等价于逻辑"0" ...

  3. 51单片机c语言定时器程序,51单片机定时器设置入门与程序解析

    89C51单片机有两个计数器T0和T1,每个计数器都是由两个8位的RAM 单元组成的,即每个计数器都是16 位的计数器,最大的计数容量是216=65536,记住是从0-65535. 其次.提供给定时器 ...

  4. 基于8266WIFI模块实现智能手机与51单片机的通信入门

    1  芯片及电路的介绍 1.1  8266WIFI模块 在文章的最开始我们首先要介绍今天的主角,8266WIFI模块.这是一个非常好用的模块,其他的废话不在多说,我们直接上干货. 这是一张我从百度上盗 ...

  5. 51单片机程序开发入门知识

    51单片机在我的理解上来说,就是遵循51指令集工作的芯片.他就像一台超微型的电脑,里面有内存.硬盘.CPU等基本配备. 而他所谓的CPU使用的就是51指令集,他的硬盘就是内置的Flash,他的内存也是 ...

  6. 51单片机编程简单入门——点亮实验板上的LED灯

    1.使用uVision4创建项目 2.选择MCU的型号:Atmel->AT89C52 3.是否创建C51启动文件,选否.启动文件以前汇编常用,现在少用了. 4.新建文件,需指定命名为.c文件 5 ...

  7. 使用51单片机控制舵机入门

    舵机(sg90,板子是普中的51) 本人小白一枚,昨天用51实现了舵机的几个小功能,帮助和我一样初学的朋友~(。・`ω´・) 如有错误不足还请大家指点 接线 红电源 棕接地 橙色数据线 代码 希望实现 ...

  8. 第一章 51单片机开发入门知识介绍

    第一章 单片机开发入门知识介绍 1.1 51单片机介绍 51单片机是对所有兼容Intel 8031指令系统的单片机的统称. 该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技 ...

  9. 51单片机入门指南-基于STC89C52(持续更新)

    一.环境介绍 编程IDE: keil5 单片机型号: STC89C51/52 开发板: 普中科技的开发板 完整PDF资源下载地址: https://download.csdn.net/download ...

最新文章

  1. 一款性能调优利器 — 火焰图
  2. redhat配置dns服务器bind
  3. IOS 中视图控制器的生命周期
  4. React使用的扩展
  5. 最实用的机器学习算法Top5
  6. Win11无法使用以太网怎么办 Win11无法连接网络怎么办
  7. PHP在线定制商城网站源码V3.0
  8. 关于企业级系统一些思考
  9. idea 代码自动补全突然失效
  10. 使用ISA Server 2006发布Exchange Server 2007安全的Web、安全的OWA和Outlook Anyw
  11. TCP新手误区–数据校验的意义
  12. Rust : utf8与unicode码
  13. InnoDB之锁机制
  14. 高等数学(第七版)同济大学 习题7-5 个人解答
  15. java的handler机制_从源码解析Handler机制
  16. IDEA中@author 模板的设置
  17. 网络调试助手连接远程服务器
  18. 算法提高 金明的预算方案
  19. 财务系统建设者须知——财务知识碎片(一) 什么是会计科目、什么是会计账户?
  20. Sketch 56 中文版发布 最佳产品原型设计工具

热门文章

  1. windows下pip无法升级
  2. 由子网掩码字符串转换成长度前缀的代码示例
  3. 只有170字节,最小的64位Hello World程序这样写成
  4. 代码随想录44——动态规划:完全背包理论基础、518零钱兑换II、377组合总和IV
  5. 江南style印证法国大预言家诺查丹玛斯世界末日预言?
  6. 不懂技术,怎样制作手机电子书?
  7. 边缘计算网关 5G/4G物联网工业互联
  8. mysql初学者需要注意什么好_学习mysql的注意事项!
  9. sparksql内写linux脚本,shell脚本调用spark-sql
  10. mark制图软件_Mac 都有哪些好用的绘图软件