51单片机入门基础介绍

基本元器件原理及功能

常用元器件

CAP 电容
RES 电阻
CRYSTAL 晶振
7SEG 数码管
sounder 蜂鸣器
BUTTON
LED-BIBY

二极管PN结,P阳极N阴极,电流方向P极流向N极
共阴极高电平亮,共阳极低电平亮

dp  g   f   e   d   c   b   a
0   0   1   1   1   1   1   1   //0x3F显示0

共阴com口接地高电平亮,共阳极com口接电,低电平亮

1.静态显示
公共端直接接地(共阴极)或接电源(共阳极),每个数码管的段选线对应一组I/O接口,每个数码管一直显示
2.动态显示
所有数码管的段选线与一组I/O接口线并联,公共端由一根I/O线控制,逐个显示

按键按下不会立刻改变电平,延时10ms-20ms再获取电平消除抖动

独立式按键:
每个键独占跟并口线,处理简单直接判断并口线

行列键盘(矩阵键盘):
键位分布在行列交叉点上,占用并口线少,键位越多越明显

行列键盘按键编码:
高位为1,低位为0,按键按下时高位为0。再将其取反再检测即可知道是哪一个按键

H3  H2  H1  H0  L3  L2  L1  L0
1   1   1   1   0   0   0   0   //0xf0,
1   1   1   0   0   0   0   0   //当位于H0,L0的按键按下时,H0变为低电平
0   0   0   0   1   1   1   0   //0xf0取反,按键按下时L0变低电平

行和列编码相加就等于键值
键值= 0xe0+0x0e;

定时计数器

51单片机有T0、T1两个定时/计数器,52多一个T2
由加法计数器(16位)、方式寄存器TMOD、控制寄存器TCON和内部总线组成

初值X=最大计数值M – 计数值N
计数方式工作时,引脚T0(P3.4)或T1(P3.5)上的输入脉冲计数

定时/计数器由一下特殊功能寄存器组成:
(T0)TH0, TL0, (T1)TH1, TL1, TMOD, TCON

TMOD  D7   D6   D5   D4  |  D3   D2   D1   D0
(89H) GATE C/T  M1   M0  |  GATE C/T  M1   M0
           定时器1        |     定时器0

M1,  M0  工作方式选择位
0    0     方式0, 13位定时/计数器         X=8192-N/(12/fosc)
0    1     方式1, 16位定时/计数器         X=65536-N/(12/fosc)
1    0     方式2, 8位自动重置定时/计数器   X=256-N/(12/fosc)
1    1     方式3, 两个8位定时/计数器(只有T0有)

C/T: 定时或计数方式选择位,1位计数方式,0位定时
GATE:门控位,用于控制定时/计数器的启动是否受外部中断请求信号影响

TCON   D7   D6   D5   D4   D3   D2   D1   D0
(88H)  TF1  TR1  TF0  TR0  IE1  IT1  IE0  IT0

TF1 T1的标志位,当定时/计数器溢出时标志位置1
TR1 T1的启动和停止,1启动0停止
TF0,TR0 控制T0,效果同上
IE1  IT1  IE0  IT0 外部中断

串行口控制寄存器SCON

CS-51单片机1个全双工串行异步通信接口。发送接收共用SBUF寄存器,串行口控制寄存器SCON,电源控制寄存器PCON

波特率(bps)=一个字符的二进制位数*字符/秒
ex: 每秒传送200个字符,每个字符1位起始位、8位数据位、1位校验位和1位停止位。波特率为2200bps

SCON   D7   D6   D5   D4   D3   D2   D1   D0
98H    SM0  SM1  SM2  REN  TB8  RB8  TI   RI

SM0, SM1  串口工作方式选择
0    0     方式0,移位寄存器方式       波特率 fosc/12
0    1     方式1,8位异步通信方式      波特率可变
1    0     方式2,9位异步通信方式      fosc/32或fosc/64
1    1     方式3,9位异步通信方式      波特率可变

SM2多设备通信,REN是否允许接收,TB8、RB8在9位异步通信时用到,TI给0表示允许发送、RI给0表示允许接收

 ex:
 SCON=0x50; //0101 0000

对于方式1和方式3:T1的初值=256-fosc _2SMOD/(12_波特率*32)

TXD: 发送数据端
RXD: 接收数据端

通信晶振频率为11.0592MHz

中断系统

1.外部中断 ~INT0 和 ~INT1
外部引脚P3.2和P3.3输入,两种触发方式:电平触发及边沿触发。由特殊功能寄存器TCON管理

TCON   D7   D6   D5   D4   D3   D2   D1   D0
(88H)  TF1  TR1  TF0  TR0  IE1  IT1  IE0  IT0

IT0(IT1): 外部中断0(或1)触发方式控制位,0电平触发方式,1边沿触发方式
IE0(IE1):外部中断请求标志位

ex:
边沿触发方式时,当机器周期采样P3.2(P3.3)引脚为高电平,下一个周期为低电平,IE0(IE1)置1,向cpu请求中断,cpu相应后硬件自动清0
电平触发方式时,若引脚为高电平,IE0(IE1)清0,低电平置1,cpu响应后不能由硬件自动清0。为避免多次中断情况,只有在中断服务程序返回前使引脚为高电平,通常外接电路实现

2.定时/计数器T0和T1中断
当定时计数器溢出时,硬件置TF0(TF1)为1,cpu响应中断后硬件自动清0

3.串口中断
串行口发送标志位TI和接收标志位RI,任意一个为1,都请求中断,由软件清0

IE     D7   D6   D5   D4   D3   D2   D1   D0

(A8H) EA ET2 ES ET1 EX1 ET0 EX0

EA: 中断允许控制位。0屏蔽,1开放(下同)
ET2:定时/计数器T2溢出中断允许位(c52)
ES:串行口中断允许位
ET1:T1溢出中断允许位
EX1: 外部中断INT1中断允许位
ET0:T0
EX0: INT0
IP     D7   D6   D5   D4   D3   D2   D1   D0

(B8H) PT2 PS PT1 PX1 PT0 PX0

PT2:定时/计数器T2溢出中断优先级控制位(c52),1高优先级,0低优先级(下同)
PS:串行口中断优先级控制位
PT1:T1
PX1: 外部中断INT1
PT0:T0
PX0: INT0

当优先级相同,默认优先级(由高到低)

外部中断0,入口编号0
定时/计数器0,1
外部中断1,2
定时计数器1,3
串行口,4
定时/计数器2,5

中断过程中不能被同级或低优先级中断,低优先级可能被高优先级中断

指令位RETI或访问IE、IP的指令时,不会响应中断

51单片机与DAC的接口

D/A转换器是把输入的数字量转换为与之成正比的模拟量的器件,输入数字量,输出模拟量
如输入的数字量为D, 输出的模拟量为V0, 则有:
V0=D*VREF
其中:VREF为基准电压, D为二进制转换为十进制的数

Original: https://www.cnblogs.com/left23333/p/16347771.html
Author: Left23333
Title: 51单片机入门基础介绍

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/582422/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Ajax 技术(四)

    目的: 熟练掌握AJAX基础和XMLHttpRequest对象及其方法。 重点掌握AJAX发送请求的具体过程,及过程中的不同状态。 要求: 实现用户注册表单中,使用AJAX技术根据…

    Linux 2023年6月13日
    0106
  • 2021年3月-第01阶段-Linux基础-Linux系统的启动流程

    Linux系统的启动流程 理解Linux操作系统启动流程,能有助于后期在企业中更好的维护Linux服务器,能快速定位系统问题,进而解决问题。 上图为Linux操作系统启动流程 1….

    Linux 2023年6月8日
    0125
  • 磁盘相关命令

    一、磁盘分区说明 原理介绍 Linux无论有多少分区,归根结底只有一个根目录,独立且唯一,Linux的每个分区都是用来组成整个文件系统的一部分 Linux使用一种载入处理方式,可以…

    Linux 2023年6月6日
    0117
  • Mysql 安全加固经验总结

    本文为博主原创,转载请注明出处: 1.内网部署Mysql mysql 数据库在使用过程中,需要给服务提供连接和访问的权限,而不需要进行公网连接和访问,所以在安全环境和现网环境部署m…

    Linux 2023年6月14日
    097
  • XShell免费版的安装配置教程以及使用教程(超级详细)

    ​一、 XShell的作用 XShell可以在Windows界面下来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。它支持 RLOGIN、SFTP、SERIAL、T…

    Linux 2023年5月27日
    0167
  • 实验1:SDN拓扑实践

    实验1:SDN拓扑实践 基础要求 a) mininet运行结果图 b)2的执行结果截图 2.a)3台交换机,每个交换机连接1台主机,3台交换机连接成一条线。 2.b)3台主机,每个…

    Linux 2023年6月7日
    0103
  • 聊一聊如何搭建高性能网站哪一些事

    在开发中经常会遇到网站的性能平静下来,打开慢的情况。我们平常开发中怎么 一步一步排查这些问题并 解决问题呢 在快节奏的时代中,慢是个不容忍受的事情。 一、 为什么会’慢…

    Linux 2023年6月14日
    0130
  • 修改内核中的只读区内容

    研究到 apparmor 内核源码,其中涉及到只读变量 __lsm_ro_after_init,研究怎么修改只读区实现部分功能,这里记录一下。 思路上很简单,修改的时候禁用写保护,…

    Linux 2023年6月13日
    079
  • python虚拟环境介绍与安装(不借助anaconda)

    1 虚拟环境介绍 (1) 虚拟环境能对不同的状况进行环境隔离,程序A的环境变动不会影响程序B的开发 (2)比较便携,因为虚拟环境中都有各自的python包,U盘复制环境,省去其他人…

    Linux 2023年6月7日
    0109
  • 初识MySQL数据库

    一 、引言 假设现在你已经是某大型互联网公司的高级程序员,让你写一个火车票购票系统,来hold住双十一期间全国的购票需求,你怎么写? 由于在同一时段抢票的人数太多,所以你的程序不可…

    Linux 2023年6月14日
    0122
  • Java 的JAR包、EAR包、WAR包区别

    WAR(Web Archive file) 网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。WAR专用于Web方面。大部分的JAVA WEB工程,都是…

    Linux 2023年6月14日
    0103
  • IDEA 无法显示 Run Dashboard 的解决方法

    前言 最近开始接触微服务的项目,项目很多有时候本地调测需要启动多个项目,看到同事都是使用dashboard管理项目,服务和端口排列的整整齐齐。但是我dashboard里面啥都没有,…

    Linux 2023年6月14日
    0119
  • 【文件格式探究】EP.1 对ePub文件格式的初探

    这是”文件格式探究”专题的第 1 期——初探 “ePub” 文件格式。这个专题将会给各位读者呈现笔者探索各种文件格式的过程,具体则是…

    Linux 2023年6月13日
    0183
  • 安卓加固方案从落地加载到类指令抽取编写报告

    一、前言以及环境配置 PS:突然想起来好久没在看雪发过啦,这次就同步一下吧!!! PS:该文已经首发于某公众号,介意者勿喷!!! 安卓的加固方案是从19年底开始写的,到现在为止差不…

    Linux 2023年6月8日
    0108
  • QT程序自启动

    故事背景:最近涉及到客户端更新自启动的一个问题,客户端检测到自己要更新,弹出一个更新界面,然后退出旧版本,启动新版本 技术调研:QProcess 直接上代码吧 这个代码的效果就是退…

    Linux 2023年6月13日
    098
  • Linux系统编程之进程控制(进程创建、终止、等待及替换)

    进程创建 在上一节讲解进程概念时,我们提到fork函数是从已经存在的进程中创建一个新进程。那么,系统是如何创建一个新进程的呢?这就需要我们更深入的剖析fork函数。 1.1 for…

    Linux 2023年6月8日
    0110
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球