微机基础与89C51单片机部分知识
1,微机基础知识
微机:
具有完整运算及控制能力的计算机。包括微处理器,储存器,接口适配器,输入输出设备。
微处理器:
控制器:由程序计数器,指令寄存器,指令译码器,时序发生器,操作控制器等组成,是发布命令,协调指挥计算机系统的器件。①从内存取出指令,并指向下一个指令。②对命令进行译码或测试。③指挥并控制CPU,内存和输入输出的数据流。
运算器:由算数逻辑单元(ALU)可完成来自累加器和数据寄存器数据的加减运算,累加器,数据寄存器组成。
寄存器:
累加器(A):用运算前于保存操作数。运算后保存所得的和,差,逻辑运算结果
数据寄存器(DR):保存译码指令和数据字节。
指令寄存器(IR):保存正在执行的一条指令
指令译码器(ID):对操作码进行译码
程序计数器(PC):存放下一条将要执行指令的地址。
地址寄存器(AR):用于保存当前CPU所访问的内存单元或I/O设备地址。
单片机:
将微处理器,一定容量的ROM,RAM以及I/O,定时器集成在一块芯片上。
程序执行的过程:
经历两个阶段。第一个取指阶段,从存储器中取出指令并通过CUP译码。第二个执行阶段,执行完一条指令,接着执行下一条指令。
BCD码:
4位二进制数,表1位十进制数的码。
有符号数位:最高位0表+,最高位1表-。
无符号数位:则均为数据位:
正数的原码,反码,补码相同。
负数的原码:最高位是符号位,其他数数据本身;反码:除符号位,其余按位取反;补码:为反码加一。
2,89C51单片机原理
51单片机的存储结构:
哈佛结构。它的数据存储器和程序存储器是分开的结构形式。
89C51单片机内部芯片:
一个8位C51微处理器(cpu)。
片内256字节数据存储器RAM/SFR。
片内4KB程序存储器flashROM。
两个16位定时器/计数器
5个中断,两个中断优先级的中断控制系统。
一个全双工UART的I/O口。
存储地址空间分为:
片内外统一编址0000H~FFFFH,64K程序存储器地址
64K片外数据存储器地址。也在0000H~FFFFH。
256字节数据存储器地址空间(8位地址)
如何区别不同空间:
MOVC:CPU访问片内,外ROM。
MOV:访问片内RAM。
MOVX:访问片外ROM。
位地址和字节地址如何区别:
单片机的内部数据存储器(RAM)共有128个字节,地址为00H~7FH 。其中的20H~2FH单元是可作为可位寻址的一个区域,共128位,用位地址00H~7FH与之对应。 如果命令是字节寻址则这个字节就是字节地址,相应地如果命令是位寻址则这个字节就是位地址。
例如:
MOV A 30H ;对字节地址操作 SETB 30H ;对位操作
位地址30H具体在RAM的字节地址26处。利用对应关系可以算到。
程序状态寄存器(psw):
一个8位特殊功能寄存器,包含了程序执行后的状态信息。
PSW程序状态字
位地址 D7 D6 D5 D4 D3 D2D D1 D0 位名称 CY AC F0 RS1 RS0 OV - P 位意义 进,借 辅进 用户标定 寄存器组选择 溢出 保留 奇偶 RS0与RS1组合切换可以选定当前工作寄存器组。
RS0,RS1组合方式
RS0 RS1 寄存器组 片内RAM地址 0 0 第0组 00H~07H 0 1 第1组 08H~0FH 1 0 第2组 10H~17H 1 1 第3组 18H~1FH 程序计数器(pc):
由两个8位的计数器pch和pcl组成,pc实际上是程序等待字节的地址计数器,pc 中的内容是将要执行的下一条指令的地址。
数据指针(DPTR):
一个16位的特殊功能寄存器,其高位字节寄存器用DPH表示,低位用DPL表示。可分开使用,对62K片外RAM间接寻址。
时序单位:
振荡周期:晶振的振荡周期,最小的时序单位。
状态周期:一个状态周期,包含2个振荡周期。
机器周期:1个机器周期由6个状态周期即12个振荡周期组成。是单片机执行的一种基本操作的时间单位。
指令周期:执行一条指令所需要的时间。由1~4个机器周期组成.
复位操作:
上电复位:加电瞬间电容通过充电实现。
手动复位:通过按钮开关,使单片机实现。
复位后
PC=0000H,单片机从0000H开始执行程序。
A=00H,累加器清零。
PSW=00H,此时工作的寄存器为第0组。
SP=07H,堆栈指针指向片内RAM07H字节单位。
P0~P3=FFH已向各端口线写入1,此时端口可用于输入与输出。
IP=0000B各中断源处于低优先级
IE=0000B各中断处于关闭状态
TMOD=00H,T0,T1均为工作方式0,处于定时器状态。
TCON=00H,T0,T1均被关闭。
SCON=00H串行口处于工作方式0,允许发送,不允许接收。
PCON=00H ,SMOD=0.波特率不加倍。
利用双重循环写一个延时子程序:
TIME: MOV R1,#0FAH ;将250赋值给R1L1: MOV R0,#0FFH ;将255赋值给R0W1: DJNZ R0,W1;如果R0不为0则执行减一,到为0跳转。内循环255次DJNZ R1,L1;如果R1不为0则执行减一,到为0跳转。外循环250次NOPNOPRET
3,汇编指令与程序设计:
汇编指令简介。
4,中断系统:
中断的概念:当CPU正在处理某件情的时候,外部发生的某一件事请求CPU立即去处理,于是CPU停止当前的工作转去处理所发生的事件。
中断结构示意图:
中断系统的5个中断源:
INT0:外部中断0请求,低电平有效。P3.2输入。
INT1:外部中断1请求,低电平有效。P3.3输入。
T0:定时器/计数器0溢出中断请求。
T1:定时器/计数器1溢出中断请求
TXD/RXD:串行口中断请求。当串行口完成一帧数据的发送或接收时,请求中断。
5个中断源对应的矢量地址:
中断源 中断矢量地址 外部中断0 0003H 定时器 T0 000BH 外部中断1 0013H 定时器T1 001BH 串行口中断 0023H 中断系统的特殊功能寄存器:
定时器控制寄存器TCON(用6位)
串行口控制寄存器SCON(用2位)
中断允许寄存器IE
中断优先级寄存器IP
TCON中断标志位:
8FH 8EH 8DH 8CH 8BH 8AH 89H 88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TF1:定时器/计数器T1的溢出中断请求标志位
TF0:定时器/计数器T0的溢出中断请求标志位
IE1:外部中断1的中断请求标志位
IT1:外部中断1的中断触发方式控制位。IT1=0时为外部中断1为电平触发方式,IT1=1时为外部中断1为边沿触发方式。
IE0:外部中断0的中断请求标志。
IT0:外部中断0的中断触发方式控制位。
SCON中断标志位:
99H 98H TI RI TI:串行口发送中断请求标志。RI:串行口接收中断请求标志
中断允许控制:
AFH AEH ADH ACH ABH AAH A9H A8H EA ES ET1 EX1 ET0 EX0 EA:中断允许总控制位。EA=0屏蔽中断请求,EA=1开启。
ES:串口中断允许位。ES=0禁止串口中断,ES=1允许。
ET1:定时器/计数器T1的溢出中断允许位。
EX1:外部中断1中断允许位。
ET0:定时器/计数器T0的溢出中断允许位。
EX0:外部中断允许位
中断优先级控制:
BCH BBH BAH B9H B8H PS PT1 PX1 PT0 PX0 PS:串行口中断优先级控制位。
PTX1:定时器/计数器T1中断优先级控制位。
PX1:外部中断1优先级控制位。
PT0:定时器/计数器T0中断优先级控制位。
PX0:外部中断0优先级控制位。
中断源优先级排列顺序:
中断源 同级内的中断优先级 外部中断0 最高 定时器/计数器0溢出中断 外部中断1 定时器/计数器1溢出中断 串行口中断 最低 中断响应条件:
①有中断源发出中断请求。
②中断总允许位EA=1。
③申请中断的中断源的中断允许位为1,中断没有被屏蔽。
④无同级或更高级中断正在服务
⑤当前指令周期已经结束
⑥RETI或访问IE,IP时,另一指令执行完。
5,定时器及其应用:
T1,T0定时器,它们都有定时和事件计数的功能,可用于控制,延时,对于外部事件计数和检测等场合。
定时器结构
TOMD:用于控制T0,T1的工作模式。
D7 D6 D5 D4 D3 D2 D1 D0 GATE C/T M1 M0 GATE C/T M1 M0 定时器T1 定时器T0 TCON:
8FH 8EH 8DH 8CH 8BH 8AH 89H 88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 M1和M0控制的4种工作模式
M1 M0 工作模式 功能描述 0 0 模式0 13位计数器 8192 0 1 模式1 16位计数器 65536 1 0 模式2 自动再装入8位计数器 256 1 1 模式3 定时器0:分成二个8位计数器
定时器1:停止计数
一般使用定时器的步骤:
①向TOMD中写入工作方式。
②向定时/计数器TH1,TL1装入初值
③启动定时器/计数器(TR1)
④查询是否到TF1,定时到了就反转电平。
例题:
题:设时钟频率为6MHz。试编写利用T0产生1s定时的程序在p1.7端口产生一个周期为2S方波。 解: 定时器 T0的工作模式确定 模式0最长定时16.384ms; 模式1最长定时131.072ms; 模式2最长定时512us;题中每1s可选择模式1,每隔100ms中断一次,中断10次为1s。 因为无法控制结束,所以要控制初始值X达到每次都是100ms。 (2^16-T初始值)*12/6*10^6Hz=0.1s T初始值为15536=3CB0H 所以 TL0=0B0H,TH0=3CH 程序:ORG 0000H ;初始程序书写地址LJMP MAIN ;跳转主程序ORG 000BH ;T0中断入口地址AJMP SERVE ;转向中断服务程序主程序:ORG 0030H ;主程序 MAIN: MOV SP,#60H ;栈指针MOV B,#0AH ;循环次数MOV TOMD,#01H ;设置T0工作模式1MOV TL0,#0B0H ;装入计数器低8位MOV THO,#3CH ;装入计数器高8位SETB TR0 ;启动定时器T0SETB ET0 ;允许T0中断SETB EA ;允许CPU中断SJMP $ ;等待中断ORG 00BH SERVE:MOV TL0,#0B0HMOV TH0,#3CH ;重新赋计数值DJNZ B,LOOPCPL P1.7 ; 1s定时到,停止T0工作MOV B,#0AH LOOP:RETI ;中断返回END
6,七八九章考点总结:
串并行通信
并行通信:数据的各位同时进行传送的通讯方式(速度快,数据位与线数相同占线多。)
串行通信的概念:数据一位一位按顺序传送的通讯方式。(适用于远距通讯。)
三种传输方式:单工,只允许数据一个方向传送。
半双工,允许数据两个方向的任一方向传送,一次一个站点发送。
全双工,允许两个数据同时双向传递。
同步通信数据帧和异步区别:
异步通信中:通信双方的时针是各自独立的,双方的发送和接收可以不在同一时刻进行。数据也是一帧一帧传送的。
同步通信中:双方的物理时钟是相同的,双方发送接收是同时进行的,同步通信为保证接收正确,发送方不仅发送传送数据,还同时传送时钟信号。
波特率:
数据传输速率。表示每秒传送二进制代码的位数b/s,假设数据传送速率是120字符/s,而每个字符格式包含10个代码。
波特率为: 10b/字符*120字符/s=1200b/s
每一位代码的传送时间为波特率的倒数。
串行口的控制字及工作方式:
对应控制字:
对应串行口工作方式:
SM0 SM1 工作方式 说明 波特率 0 0 0 同步位移寄存器 fosc/12 0 1 1 10异步收发,双机 由定时器控制 1 0 2 11位异步收发,多机 fosc/32或fosc/64 1 1 3 11位异步收发,多机 由定时器控制 矩阵键盘的扫描原理:
首先判断键盘中是否按下,由单片机I/O向键盘送全扫描字,然后读入列线状态来判断。
把全部行线置为低电平,然后将列线的电平状态读入累加器A中如果有按键按下,总有一根列线拉至低电平,从而列输出不全为1。然后将行线逐行置低电平,检查列输出状态。如果全为1,则按下的键不在这行,不全为1,则按下的键再这行与零电平列线相交的交点上。
LED动态显示:
采用扫面方式,轮流点亮各位LED,再每个瞬间只使某位显示字符。在这个瞬间段选I/O口输出相应字符。下方的位选I/o口送入选通电平。
单总线的概念及结构示意图:
概念:外围串行控制总线。单总线只有一根数据输入/输出线,可由单片机或PC机的1根I/O线作为输入或者输出线,所有器件都挂在这跟线上。
SPI串行外设接口总线:
概念:SPI是同步串行外设接口,用于MCU与外设串行通信,配置主从操作。它需要4条线,串行时钟线(SCK),主机输入/从机输出数据线(MISO),主机输出/从机输入数据线(MOSI),低电平有效从机选择线(CS)。在SPI中数据传输只需要1个时钟信号和2条数据线。
微机基础与89C51单片机部分知识相关推荐
- 单片机学习笔记——微机基础知识
微机基础知识 微处理器,微机和单片机概念 微处理器的组成 一.运算器 主要寄存器 主要寄存器(IR),指令译码器(ID) 程序计数器(PC) 地址寄存器(AR) 二.控制器 存储器和输入输出接口 一. ...
- 单片机控制秒表C语言程序,89C51单片机秒表的设计(全文完整版)
<89C51单片机秒表的设计.doc>由会员分享,可免费在线阅读全文,更多与<89C51单片机秒表的设计>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜 ...
- 零基础学习51单片机
零基础学习51单片机 前言 51单片机是一款非常经典的8位单片机,广泛应用于各种嵌入式系统和电子产品中.本文将从零开始,以简明易懂的方式介绍51单片机的基本原理.基本语法和应用. 什么是单片机 单片机 ...
- 基于89C51单片机的数码管显示拨码开关设计
目 录 1 课程设计任务和要求 1.1 设计任务 1.2 设计要求 2 设计方案 2.1 工作原理 2.2 单片机系统方框图 3 电路设计和软件设计 3.1 电路设计 3.2 程序设计流程 3. ...
- js基础--数据类型检测的相关知识
欢迎访问我的个人博客:www.xiaolongwu.cn 前言 最近工作有点忙,好几天都没更新技术博客了. 周末起床打开有道云笔记,发现自己的博客todolist里躺了一堆只有名字的文件. 话不多说, ...
- python开发需要掌握哪些知识-Python基础学习需要掌握哪些知识
1.1Python的对象 python的内置对象类型有很多,包括数字,字符串,列表,集合,元组,字典等等,在Python中,一切皆对象 pickle腌制--在Python中,如果有一些对象需要持久性存 ...
- ioca0中断 pic单片机_单片机入门知识-PIC为例程序.ppt
PIC单片机原理及应用 内容提要 单片机概述 PIC单片机的特色 PIC单片机的程序设计 单片机概述 单片机正名为:微控制器 --MCU ,MicroController Unit 单片机概述 何为单 ...
- 单片机系统怎么用c语言复位,第11章 单片机小知识(复位 )
第11章 单片机小知识(复位 ) 1 外部RST引脚复位(不断电下载程序) 2 软件复位 3 内部低压检测复位 4 看门狗复位 复位将使单片机内核及其它功能部件都处在一个确定的初始状态,并从这个状态 ...
- 【proteus仿真】89C51单片机实现十字路口的交通灯控制系统代码
完成以下任务:运用89C51单片机十字路口的交通灯控制系统,四组灯(红黄绿)对应十字路口的四个方向,用两位的数码管显示剩余的时间. 仿真视频: https://www.bilibili.com/vid ...
最新文章
- Vs2015 mysql ef_VS2015 +EF6 连接MYSQL数据库生成实体
- VCSA中配置时间和时区,实测至6.5适用
- Udacity并行计算课程笔记-The GPU Hardware and Parallel Communication Patterns
- linux 访问windows共享
- C语言字符串压缩显示
- Dora.Interception,为.NET Core度身打造的AOP框架:全新的版本
- 谈区块链的时候别忘记了“新零售”
- Spring Boot(13)——使用RestTemplate
- Firebug 教程
- android10解决NetworkInfo废弃替代NetworkInfo isConnected()问题
- 【学习笔记】《Web安全深度剖析》整理
- ECharts 实现地图功能
- Microsoft Excel 教程,如何在 Excel 中使用自动求和?
- linux中如何从txt转为nc文件,【转】linux下nc的使用
- win10u盘被写保护怎么解除_磁盘被写保护怎么解除,小编告诉你如何解决U盘磁盘被写保护...
- springboot banner制作
- word2vec与相关应用
- 对辊柱塞式成型机总体设计
- ssm+bootsrap人力资源考勤系统-JAVA【数据库设计、源码、开题报告】
- 正则表达式字符串匹配和字符串提取