2015-12-14 10:42:02 opiticer 阅读数 5219
《单片机原理及应用》复习提纲

单片机应用系统的典型结构图

 

单片机应用系统核心硬件技术包括:

1.时序

2.中断

3.地址译码

 

单片机应用系统核心软件技术包括:

1.寻址方式、指令系统

2.典型程序结构

3.中断程序设计


《单片机原理及应用》复习提纲

(2015年)

一.概述

掌握:1.单片机的基本概念、特点、单片机与通用微机的主要区别、应用领域

总线的概念,微型计算机的基本工作过程

(1)基本概念:

   单片机是将CPU、存储器、I/O接口电路等微型机的主要部件集成在一块芯片上的计算机,简称单片机(Microcontroller)。

(2)特点:

         可靠性高;使用方便、灵活,便于用户开发;易于面向工业控制;易于构成嵌入式系统。

(3)单片机与通用微机的主要区别

         单片机是专门为控制和智能仪器设计的一种集成度很高的微型计算机。

(4)应用领域

         <1>单片机在智能仪表和测量仪器中的应用

         <2>单片机在机电/光机电一体化产品中的应用

         <3>单片机在计算机网络及通信产品中的应用

         <4>单片机在消费类电子产品中的应用

(5)总线的概念

         用来传送信息的一组导线,为CPU和其它部件之间提供数据、地址和控制信息的传输通道

         地址总线:用于传送地址信息。

         数据总线:用于传送数据信息。

         控制总线:用于传送控制信息。

(6)微型计算机的基本工作过程

  <1>在进入运行前,要将事先编好的程序装入存储器中。

   <2>读取指令:在CPU的控制下,由内部程序计数器(PC)形成指令存储地址,并从该地址中读取指令后送到指令寄存器(IR)中保存

   <3>执行指令:在CPU的控制下,由指令译码器(ID)对指令译码,产生各种定时和控制信号,并执行该指令所规定的操作。

 

2.定点小数的表示方法

        小数点通常有两种表示方法:定点表示法和浮点表示法。

        在定点表示法中,小数点的位置是固定不变的,它是事先约  
定好的,不必用符号表示。通常,将小数点固定在数值部分的最高位之前或最低值之后, 前者将数表示为纯小数,后者将数表示为纯整数

 

3.BCD码的两种存储格式(压缩和非压缩形式)

        1)压缩BCD码用4位二进制数表示1位十进制数,一个字节表示2位十进制数。

      例如10010111B表示十进制数97。

        2)非压缩BCD码用8位二进制数表示1位十进制数,高4位总是0000。

    例如,00001001B表示十进制数9。 

 

4.ASCII的作用和特点:

        0-9的ASCII:30H-39H

        A,B,C,D,E,F的ASCII:41H-46H

 

  5.二进制、十进制、十六进制之间的转换方法(熟练掌握整数的转换方法)

  6.负数的3种表示方法:原码、反码和补码

  7.补码和真值的计算方法(熟练掌握,整数)

  8.单字节HEXàBCD; 单字节BCDàHEX的转换方法HEXàASCII; ASCII àHEX的转换方法

 

二.内部结构(以AT89C51、AT89C52为背景机型)

引脚部分:

理解ALE,/PESN,/EA,/WR,/RD 的作用

1.ALE:地址锁存使能输出(Address Latch Enable),下跳沿时锁存

2./PESN:程序存储器读选通信号(Progrom Store Enable),访问代码空间

3.外部ROM访问允许

 EA=0:访问片外程序存储器

 EA=1:访问片内程序存储器,

        当PC值大于0FFFH后,转向访问片外程序存储器。

4./WR:访问数据空间,写外部数据存储器控制信号

5./RD:访问数据空间,读外部数据存储器控制信号

CPU部分:

了解CPU的基本组成部件

运算器(ALU,A,B, PSW(CY,AC,OV,P))

ALU:算术逻辑部件

     组成:加法器和其他电路

     主要功能:算术运算和逻辑运算

A:累加器,存放操作数或中间运算结果的寄存器

B:寄存器,一般用于乘、除法指令

PSW:程序状态字寄存器

 CY(PSW.7)——进位标志:

在进行加或减运算时,如果操作结果最高位有进位或借位时,CY由硬件置“1”,否则清“0”。

  AC(PSW.6)——半进位标志:

在进行加或减运算时,如果操作结果的低半字节向高半字节产生进位或借位时,将由硬件置“1”,否则清“0”。

  OV(PSW.2) ——溢出标志:

在有符号数加减运算中,若有异常结果,OV硬件置1,否则硬件清0。

  P(PSW.0) ——奇偶标志位

该位始终跟踪累加器A中含“1”个数的奇偶性。

如果A中有奇数个“1”,则P置“1”,否则置“0”。满足偶校验原则。

 

控制器 (IR,ID,PC,SP,DPTR)

IR:中断允许控制寄存器

ID:中断优先级控制寄存器

PC:程序计数器(Program Counter)

SP:堆栈指针(Stack Pointer)

DPTR:数据指针寄存器(Data Pointer)

 

     理解PC,SP,DPTR,PSW的作用,以及PSW中各位的含义和使用方法

 

时序部分:

了解时钟周期、状态周期、机器周期和指令周期之间的关系

  1个机器周期

 =6个状态周期(时钟周期)

 =12个振荡周期

 =完成一个基本指令所需时间

  指令周期:完成一个指令所需时间

 

重点掌握机器周期的计算方法

  12*晶振周期

 

时钟电路硬件连线

 

时钟部分:

了解给单片机提供时钟的必要性;掌握提供时钟的基本方法

 

复位部分:

了解给单片机复位的必要性,掌握复位的基本方法和电路(上电复位、按键复位)

1.复位条件:RST引脚端出现持续时间不短于 2个机器周期的高电平。

2.

上电复位                       按键复位                     复合复位

 

掌握和理解单片机复位后的初始状态。

SP=07H

P1~P3=0FFH

IP=XXX00000B

IE=0XX00000B

PCON=0XX00000B

SBUF(串行口数据缓冲寄存器)=XXH

其他=00H

 

 

复位电路硬件连线

       

片内RAM部分和SFR区:

了解片内128Byte(256Byte)RAM的分区情况和使用特点

1.分区情况

(1) 低128字节的区域

      ①工作寄存器区(00H~1FH)

     ②可位寻址区(20H~2FH)

      ③用户RAM区(30H~7FH)

(2)高128字节区域

          SFR区:承担着51单片机片上资源的管理工作

2.使用特点

     ①区和③区只能按字节进行数据存取操作,②区则可按字节和位两种方式存取操作。

     每个存储单元都有一个字节地址,但只有其中21个单元可以使用,并有相应寄存器名称。


掌握4组寄存器的选择方法和0组寄存器所对应的地址范围

  当前工作寄存器组取决于PSW的设置

CPU复位后RS1和 RS0默认值为0,即默认第0组为当前工作寄存器组。

(RS1,RS0)=(0,0):寄存器0组

(RS1,RS0)=(0,1):寄存器1组

(RS1,RS0)=(1,0):寄存器2组

(RS1,RS0)=(1,1):寄存器3组

 

了解可位寻址区的分布区域:

20H-2FH,部分SFR

 

堆栈部分:

掌握堆栈的基本的概念、作用和数据存储方法

  1.概念:MCS-51单片机的堆栈,是在片内RAM中开辟的一个专用区,用来暂时存放数据或存放返回地址,并按照“后进先出”(LIFO)的原则进行操作。

  2.作用:进栈时,SP首先自动加1,将数据压入SP所指示的地址单元中;

         出栈时,将SP所指示的地址单元中的数据弹出,然后SP自动减1

  3.数据存储方法:先进后出

                 指定内部数据存储器地址07H~7FH中的一部分连续存储区作为堆栈。

 

片上IO口部分:

了解P0-P3口的功能和使用特点P1:通用输入输出口

P0:通用输入输出口

        地址总线低8位输出口,

        数据总线口

 

P2:通用输入输出口

        地址总线高8位输出口

 

P3:通用输入输出口

 

        /RD、/WR:外部数据存储器读写控制

        /INT0、/INT1:外部中断信号输入引脚

       T0、T1:计数信号输入引脚

       RXD、TXD:串行通信口接收、发送引脚

 

 

 

 

三总线实现方法

P2P0合起来构成16位地址总线(P2高8位,P0低8位

P0口为数据总线(P0口分时实现数据和地址的传输,一般通过373锁存器来实现)

P3口一部分及几个特殊控制引脚构成不完整的控制总线

 

重点理解准双向口的概念,准双向口使用注意事项,读预备操作的意义

1.概念:P1、2、3有固定的内部上拉电阻,所以有时称它们为准双向口;只有高低电平状态,没有高阻状态

2.注意事项:P1、P2、P3口无需外接上拉电阻(已有内部上拉电阻);做输入用的时候要有向锁存器写1的这个预备操作

3.预备操作意义:输入时,为正确读出P1.n引脚电平,需设法在读引脚前先使场效应管截止,即向锁存器写一

读锁存器、读引脚、“读-修改-写”指令

      

1.读锁存器:ANL P1,A

2.读引脚:MOV P1,#0FFH

         MOV A,P1

3.读改写:

       

       


三.指令系统

寻址方式部分:理解7种寻址方式、特点及适用范围

寻址方式:寻找操作数地址或指令地址的方式。

   寻址方式类型: 

   1.立即寻址

     特点:操作数可以从指令中直接取得,速度快。

     用途:用于对寄存器或存储单元进行初始赋值。

   2.直接寻址

     特点:在指令中直接给出操作数的字节地址或位地址。

     适用范围:只能在下述三种地址空间内寻址。

               (1)特殊功能寄存器(SFR);

               (2)内部数据存储器RAM的低128个字节;

               (3)位地址空间。

   3.寄存器寻址

     特点:指令短,速度快

     适用范围:

         (1)工作寄存器区中的R0-R7 

         (2)A(累加器)、B(仅限于乘除法指令)、DPTR、C(布尔处理器)

   4.寄存器间接寻址

     特点:指令简洁,便于对连续存放的数据进行处理

     适用范围(特定寄存器):

             R0,R1:用于访问片上RAM空间

             DPTR:用于访问外部数据空间

             SP:用于访问堆栈空间 

   5.变址寻址

     特点:操作数的有效地址为基址寄存器与变址寄存器内容之和;基址寄存器:PC(或DPTR),变址寄存器:A 

     适用范围:用于查表指令,读取存放于程序空间中的常数表,如函数表,字模表等。

   6.相对寻址

     适用范围:用于确定下一条执行指令的入口地址 ,在指令中给出程序跳转的偏移量rel,用于转移指令中。

   7.位寻址

     特点:直接操作单元中的某一个位,方便了程序设计,提高了程序的可读性。

     适用范围:

         (1)片内RAM区支持位寻址方式的单元,即20H-2FH。

         (2)SFR中支持位寻址方式的寄存器。

 

指令部分:

1. 理解全部指令的功能,正确掌握其使用方法P46~P62

    掌握MOV、MOVC、MOVX指令的使用特点

    掌握ADD,AADC,SUBB,DA,INC,DEC指令的特点

掌握PUSH、POP、LCALL、ACALL、RET、RETI指令

掌握控制转移类指令的应用:DJNZ,CJNE;JC/JNC; JB/JNB/JBC

       掌握逻辑操作类指令的应用:CPL,ANL,ORL,XRL,RR/RRC, RL/RLC

2.掌握估算指令长度的方法

      指令长度估算方法:

         指令基本长度为1 字节;

         逢立即数(8bits)长度加1;

         逢立即数(16bits)长度加2;

         逢直接寻址方式,指令长度加1。

 

3. 掌握相对转移指令中偏移量的计算方法

 

 

四.汇编语言程序设计

掌握基本伪指令的使用:ORG、END、EQU、DATA、DB、DW、BIT

掌握基本程序结构的设计方法

1. 分支程序:二分支、三分支

          散转程序(重点掌握转移指令表方式)

2. 循环程序 :循环变量、循环条件

3. 子程序:掌握基本调用方法和参数传递方法

入口参数、出口参数传递方法:

1). 利用A

2). 利用寄存器,或存储单元

3). 利用堆栈

4. 查表程序:掌握表格的定义方法和两种查表方法

两种查表方法:

MOVC  A,  @A + DPTR ;对应于DPTR 查表方式

MOVC  A,  @A + PC    ;对应于PC 查表方式

 

掌握以下应用程序的设计方法:

运算程序:加法(含多字节十六进制数、BCD码数)

减法(含多字节十六进制数、BCD码数)

针对数据块的操作:

清零、初始化、移动(复制)、求和、求最大值、求最小值、找寻特殊字符

延时程序的设计和分析

码制转换:HEX与ASCII之间的转化,单字节HEX与BCD码之间的转化

 

五.中断系统

了解:

微机与外设之间的数据传送方式,各种传送方式的特点

与中断相关的SFR和中断标志

CPU对外部中断信号的基本要求

掌握重要概念:

中断、 中断申请、中断优先、中断响应、中断服务和中断返回

中断源,中断申请方式(电平、边沿)

中断响应:

响应时间(一般3-8机器周期,或更长)

响应中断的条件(基本条件和阻止CPU立即响应中断的3种情况)

中断屏蔽和中断优先

中断服务:

重要的中断入口矢量地址:0003H/0013H,000BH/001BH,0023H                      

现场保护

重点掌握:外部中断0/1的应用和中断服务程序的设计

 

 

六.定时/计数器

了解:

定时/计数信号的来源及对计数信号的要求

      中断源:发出中断请求的设备和电路

      中断信号形式:电平信号或边沿信号

 

重要的SFR、其作用和相关标志位的作用(TMOD,TCON,TH0,TL0, TH1,TL1)

定时器或计数器初值:TH0.TL0;TH1,TL1

T2定时计数器的特点和使用方法

T2(仅52系列有)

它的特点是具有可编程性,即计数位数、启动方式、计数信号来源均可以通过程序进行控制。

可编程性体现在3个方面:

     位数、启动方式、定时/计数方式

 

 

重点掌握

方式1,2的使用方法(包括定时和计数)

1.计数信号源要求高电平或低电平的持续时间不能短于一个机器周期

  定时方式:对机器周期计数,

                    计数信号频率=fOSC/12

  计数方式:对外部脉冲信号计数 ,

                    来源于引脚T0(P3.4)、T1(P3.5)

                    信号频率不可高于 fOSC/24。

2.(1)软件启动方式(内部控制):

     GATE=0时, TRx=1 启动定时或计数

 (2)门控方式(外部触发):

     GATE=1时,TRx=1且 /INTx引脚(P3.3 或 P3.5)为高电平,才能启动定时或计数

 

TMOD的设置和初值的计算方法

1.(1)定时方式: 

     方式1(16bits):(65536-X)×cycle=定时时间

     方式2(8bits):  (256-X)×cycle=定时时间

     其中,cycle指代机器周期(μs)

  (2)计数方式:

     方式1(16bits):65536-X=计数值

     方式2(8bits):  256-X=计数值

2.TMOD=00H:2^13-N=32TH0+TL0

  TMOD=01H:2^16-N=256TH1+TL1

 

不同占空比的脉冲波形产生方法(包括查询方式和中断方式的程序设计)

 

理解:门控启动控制方法和脉冲宽度测量的基本原理和编程实现。

 

七.存储器和并口的扩展

掌握:

半导体存储器的分类、各类存储器的特点

存储器分类

  1.存储器的类型

    (1)按工作时与CPU联系密切程度分类

       主存和辅存,或者称作内存和外存.主存直接和CPU交换信息,容量小,速度快。辅存则存放暂时不执行的程序和数据,只在需要时与主存进行批量数据交换,通常容量大,但存取速度慢;

    (2)按存储元件材料分类

       半导体存储器、磁存储器及光存储器;

    (3)按存储器读写工作方式分类

       只读存储器(ROM)

       随机存储器(RAM)

       可现场改写的非易失性存储器(NVM)

 

三总线的构成方法

1.P2P0合起来构成16位地址总线(P2高8位,P0低8位

 P0口为数据总线(P0口分时实现数据和地址的传输,一般通过373锁存器来实现)

 P3口一部分及几个特殊控制引脚构成不完整的控制总线

2.地址总线(Adress Bus, AB)

  A0-A15

 数据总线(Data Bus, DB)

  D0-D7

 控制总线(Control Bus,CB)

  /PSEN       访问代码空间

  /WR, /RD   访问数据空间和IO空间

 

并行IO口的总线扩展方法(利用TTL器件的扩展方法)

 

掌握:

2764、6264,62256的基本接口方法

书P167

 

线选法、译码法(利用简单逻辑电路译码或译码器译码)硬件实现

1.线选法:直接利用单根地址线作为片选信号

      

    2.译码法:多根地址线经过译码器、简单逻辑电路、可编程逻辑阵列处理后产生片选信号

地址译码法又有部分译码和全译码两种方式

    

 

存储器扩展的硬件连线(三总线信号连接)

 

 

存储空间的分配、存储芯片地址范围的计算

 

理解:

2764, 6264, 373,273,244,245,138,139芯片的读写信号及控制信号

 

 

访问片外程序和数据存储器的读写时序

 

八.键盘和显示器

了解:

   按键的基本输入过程,按键响应程序的基本功能

   1.响应程序

   独立式按键:

   矩阵式键盘:

  

   2.基本功能

       (1)按键检测:如何识别有键按下;

       (2)去抖动:识别被按键与释放键时必须避开抖动状态,只有处在稳定接通或断开状态时,才能保证识别正确无误;

      (3)键码产生:为了从键的行列坐标编码得到反映键功能的键码,一般在程序存储器中建立了一个键盘编码表,通过查表获得键码。

       (4)防串键:防串键是为了解决多个键同时按下或者前一键没有释放而又有新键按下时产生的问题;

  

   消除按键抖动的必要性和方法

1.必要性:

   监测有无键按下

   保证可靠性:采取软件消抖

   不管按键过程持续多长时间,仅执行一次按键功能程序。

   输出确定的键号(键值)

2.方法:

       (1)程序扫描方式:当CPU空闲时,扫描键盘,判断有无键按下。

       (2)定时扫描方式:利用CPU的定时器,每隔一定时间扫描一次键盘。

       (3)中断方式:有键按下时产生中断,由中断服务程序来处理。

 

LED的基本结构,主要电参数的含义和限流电阻的计算方法

1.基本结构:

      常用的LED显示器为8段(或7段,8段比7段多了一个小数点“dp”段)。有共阳极和共阴极两种。

2.主要电参数含义:

      VF:正向压降 

      IF:正向工作电流

3.限流电阻计算方法:

     

 

静态LED显示和动态LED显示的基本特点

1.静态LED显示:

     持续驱动LED显示器的共公端。在显示器工作过程中,系统为每个显示器的公共端都一个有效电平。

     软件编程简单,但占用I/O口线多,功耗大。

2.动态LED显示:

  单片机定时扫描显示器,采用分时驱动的方法,轮流控制各个显示器的COM端,使各个显示管轮流点亮。该驱动方式利用了人的视觉暂留现象。

  动态扫描驱动方式中,显示管分时工作,每次只有一个LED管显示。

  在轮流点亮扫描过程中,每位显示管的点亮时间是极为短暂的(约1ms)。

  硬件连线少,功耗低;

   软件复杂,需要不停地扫描。

   显示亮度既与导通电流有关,也与点亮时间和间隔有关。

 

掌握:

独立式按键和行列式键盘的硬件接口方法

&独立式按键的应用程序设计方法

 

行列式键盘扫描和键值读取的基本原理和方法

程序扫描法原理:

①行线(P1.0 — P1.3)同时输出低电平,

  读列线(P1.4 — P1.7)的状态,若全为1, 则无键按下;

  若不全为1, 则有键按下。

②在有键按下的情况下,进一步判断是哪个键按下。

  使P1.0 —P1.3依次输出低电平, 读出P1.4 — P1.7的状态。

 

静态LED显示器的接口和程序设计方法  

 

 

 

软件代码实现:

MOV  P1, #0C0H 送字模

MOV  P2, #0F9H

 

 

 

 

 

 

 

动态LED显示器的接口方法和软件设计方法

 

九.A/D和D/A接口

了解:

A/D和D/A器件的主要技术指标和选取原则

A/D器件:

1.转换精度:

     (1)分辨率:能区分输入电压的最小值=满量程/2^n

     (2)转换误差:实际输出数字量与理论输出数字量的差别,常用最低有效位的倍数表示,如相对误差≦±LSB/2

2.转换时间:从转换信号到来开始,从输出端得到稳定的数字信号进过时间

D/A器件:

1.分辨率:最小非零输出电压/最大输出电压

2.建立时间:当输入数据从零变化到满量程时,输出模拟信号达到满量程刻度值(或指定与满量程相对误差)所需要时间

3.转换精度:最大静态转换误差

4.线性度(非线性误差):理想输入或输出特性偏差/满刻度输出(FSR:full scale range)*100%

5.温度系数:满量程刻度输出时,温度每升高1ºC,输出变化/满量程*100%

6.电源抑制比:满量程电压变化/电压变化*100%

7.输入形式:二进制码/BCD码/特殊形式码;并行输入/串行输入

8.输出形式:电流输出/电压输出;单路输出/多路输出

选取原则:

精度、速度、

输入/输出方式、

成本、

环境参数、

资源情况(资料、购买的便利性)

 

采样频率选取原则

实际情况:

:采样频率,输入信号vi最高频率分量频率

 

不同种类A/D器件的主要特点(逐次比较型,双积分型、并行)

逐次比较型:位数越少,时钟频率越高,转换所需时间越短;转换速度快,精度高

双积分型:模拟输入电压在固定时间内向电容充电(正向积分),固定积分时间对应于n个时钟脉冲充电的速率与输入电压成正比。当固定时间一到,控制逻辑将模拟开关切换到标准电压端,由于标准电压与输入电压极性相反,电容器开始放电(反向积分),放电期间计数器计数脉冲多少反映了放电时间的长短,从而决定了模拟输入电压的大小;强抗工频能力

并行比较型:用电阻链将参考电压分压;不用附加采样保持电路,转换速度最快,随分辨率提高,元件数目几何级数增加

 

掌握:

ADC0809和DAC0832与51单片机的基本硬件接口连线方法

ADC0809:

 

ADC的端口地址是 0XXXXXXXXXXXXXXB也就是7FFFH了

DAC0832

单缓冲:

双缓冲:

 

理解:

ADC0809的工作时序,以及启动控制和数据传送方法

工作时序 

启动控制

数据传送方法:无条件数据传送,查询方式,中断方式

 

掌握:端口地址的概念和端口地址分配(计算)方法

 

掌握:

ADC0809基本应用程序设计方法(延时法,查询法,中断法)

延时法:

查询法:

MAIN: MOV   R1,#30H      ;置数据区首址,采样数据缓冲区的首地址

        MOV   DPTR,#0FEF8H   ;指向IN0,利用P2.0=0 选通AD ,                                         ;采用锁存地址总线的方式选择通道0。

        MOV   R7,#08H      ;置通道数

LOOP:MOVX  @DPTR, A   ;启动A/D转换

         MOV   R6, #05H      ;软件延时,延时时间不短于10us

DALY:   NOP         

         DJNZ  R6,  DALY 

WAIT:JB   P3.2,  WAIT      ;查询是否转换结束                                        ;ADC0809 的 EOC经反相器后与P3.2相连

       MOVX  A,  @DPTR     ;读取转换结果

       MOV   @R1,       ;存取数据

        INC   DPTR             ;指向下一个通道

         INC   R1         ;指向下一个单元

        DJNZ  R7, LOOP      ;巡回检测8个通道

         RET

中断法:

 主程序:

               ORG    0000H  

               LJMP   MAIN  

               ORG   0013H                    ; INT1中断入口地址

                LJMP   INT1    

               ORG   0030H  

MAIM:      MOV  R0,#60H      ;置数据存储区首址

                MOV   R2,#08H      ;置八路数据采集初值

               SETB   IT1      ;设置边延触发中断

                SETB   EA

             SETB  EX1      ;开放外部中断1

                MOV   DPTR,#7FF8H   ;指向0809通道0,使用P2.7选通AD

RD:        MOVX  @DPTR,A   ;启动A/D转换

HE:            MOV   A,R2      ;八路巡回检测数送A

               JNZ   HE      ;等待中断,八路未完继续

              SJMP $         ;!!!

INT1:        ……    ; 保护现场

 

              MOVX  A,@DPTR   ;读取A/D转换结果

               MOV  @R0,A       ;向指定单元存数

               INC   DPTR      ;输入通道数加1

               INC   R0      ;存储单元地址加1

               MOVX   @DPTR, A   ;启动新通道A/D转换

               DEC   R2      ;待检通道数减1

              

             ……     恢复现场

 

             RETI         ;中断返回

 

ADC0809多通道巡回采集软件设计方法

       ORG 0000H

       LJMP MAIN

       ORG 0003H

       LJMP INT0

       ORG 0000H

MAIN:  MOV SP,#40H

       SETB ET0

       SETB IT0

       SETB EA

       MOV R7,#8

       MOV R6,#50

       MOV R0,#20H

       MOV DPTR,#7FF8H

STOP:  SJMP $

INT0:  MOVX A,@DPTR

       MOV @R0,A

       INC DPTR

       INC R0

       DJNZ R7,STOP

       MOV R7,#8

       DJNZ R6,STOP

       ACALL DELAY

       RETI

       END

 

利用DAC0832产生单极性波形的程序设计方法

1.单极性三角波发生器

            ORG   2000H

START:     MOV   DPTR,#07FFFH

         MOV   A,#00H

UP:         MOVX   @DPTR,A      ;三角波上升边

         INC    A

         JNZ    UP

DOWN:       DEC    A      ;A=0时再减1又为FFH

         MOVX   @DPTR,A

         JNZ    DOWN         ;三角波下降边

         SJMP   UP

2.单极性锯齿波发生器

DACS:  MOV       DPTR,#7FFFH;0832 I/O地址

       MOV       A,#00H   ;开始输出0V

DACL:  MOVX   @DPTR,A   ;D/A转换

       INC       A      ;升压

       ACALL   DELAY      ;延时100ms/256:决定锯齿波的周期

       AJMP       DACL      ;连续输出

DELAY:…         ;延时子程序

 

十.串行通讯

了解:

MSC-51单片机串行接口工作模式的特点和应用场合

1.基本特征

  (1)一个串行I/O端口,通过引脚RXD(P3.0)和TXD(P3.1)与外设进行全双工的串行异步通信。P3.0是串行数据接收端RXD,P3.1是串行数据发送端TXD。

  (2)4种工作方式

  (3)2个控制寄存器,用来设置工作方式、发送接收状态、特征位、波特率等。

  (4)一个数据寄存器SBUF作为接收发送的数据缓冲,两个数据缓冲器(SBUF)在物理上相互独立,在逻辑上却占用同一字节地址99H

  (5)应用特点

    两个中断标志,RI用于接收,TI用于发送。

    发送/接收前都必须对RI/TI清零,

    一帧数据发送/接收后,RI/TI自动置1,如要再发送/接收,必须用软件清零。

    方式0和1:数据发送/接收完成后,置位RI/TI,请求中断。

    方式2和3:数据接收完成后,视SM2和RB8的状态确定RI和是否请求中断。

 

RS-232C标准的基本内容和特点

1.RS232C是美国电子工业协会1962年公布,1969年修订的通用标准串行接口标准。

2.信号线

  25芯,22根信号线,常用9根线。

  最简方式3根线

           RXD:数据接收线

           TXD:数据发送线

           GND:地线

  例如PC机上的串口COM1、COM2

3.电平制

  采用负逻辑,对应电平如下:

  1 :-3V ~ -15V

  +3V ~ +15V

 

SPI,I2C总线的特点和总线构成。

SPI:Serial  peripheral  interface,由Motorola公司提出。

          波特率可达到 50Mbps。

     三线制 ,全双工,同步串行总线,速度比I2C总线快。

          三线指:SCK:时钟线

             MOSI (master  output  slave  input): 从设备接收线

             MISO (master  input  slave  output): 从设备发送线

I2C:Inter-Integrated Circuit,由Philips公司,80年代提出的同步串行总线。

         波特率: 0 - 400kbps。

         双线制,半双工。

         双线指:时钟线SCL和数据线SDA

 

 

掌握:  

串行通讯的基本特点,帧格式、波特率的概念及其计算方法(要求熟练)

1.基本特点:(帧格式)

异步串行通信的特点:数据的传送以“Frame”为一个基本单位;

                                         数据的传送可以是不连续的。

同步通信时A、B双方使用同一时钟信号驱动。

异步通信时A、B双方使用各自的时钟信号驱动,但时钟信号的频率相同。

2.波特率

     单位:bps(bit per second)

     定义:每秒钟传送的二进制位数。在计算机系统中也称为波特率。

     数据位宽Td= 1 / Baudrate

 

两种校验方法(奇偶校验、校验和检验)的基本原理

1.奇偶校验法:

  比对收、发双方的校验位是否一致。

  有奇校验和偶校验两种。

  校验过程是针对单个字节的。

  只能检查部分错误,当一个字节中同时有偶数个bit出错时,无效。

  当发送数据量较大时,发送的校验信息量也会较大。

2.校验和方法:

  比对收、发双方的checkSUM是否相同。

  校验是针对一个数据块的。(特列情况是一个字节)

  可以发现一个字节中多个bit同时出错的问题。

  校验信息量小,通常采取1或2个字节就可。   

 

双机通讯的硬件连线方法(单片机-单片机,单片机-PC机)

 

数据收发程序编程(查询方式)

预用51单片机的UART传送数据,要求采用偶校验方法,波特率为9600bps,试选择UART的工作方式,并写出初始化代码。(fosc=6MHz)

 

多机通信的基本思想

系统中主机、从机均采用9位UART模式,利用TB8区分地址帧和数据帧

地址帧:TB8 = 1,

数据帧:TB8 = 0,

利用特性:SM2 = 1时, 接收方的UART要求 RB8 = 1 ,

          才能激活RI,才能触发串口中断。

主机首先发“地址帧”,即地址码,也是要呼叫的从机ID号,

   此时置 TB8 = 1 。

全体从机都会接收地址帧,并与自己的地址号(ID)比较,

   若主机呼叫自己便回应,

   并置SM2 = 0(切换到双机通信模式),准备接收数据。

主机若收到从机回应,便开始发送数据,此时置 TB8 = 0 ,连续发送数据,

   直到数据发送完毕。

 主从机一次通信结束后,主从机重置自己的 SM2 = 1。

   主机可以再次呼叫其它从机,并开始新的数据传送过程。

 

十一.C8051F310单片机的重要新特性及其在实验3、4、5中的应用

参见C8051F310新特性讲解.pdf

1)理解Init_Device()配置函数的构成和作用。

2) 端口的使用方法

3)定时器的使用方法

4)WDT的作用和正确使用

2019-11-08 22:10:18 wsgddsl 阅读数 29

单片机技术原理与应用是机电一体化、应用电子技术、自动控制及数控技术应用等专业的一门实用技术骨干课程,它对培养学生的工程思维能力和解决问题的能力具有重要作用。通过本课程的学习 , 可以使学生较系统地掌握汇编语言的编程方法,掌握单片机的基本原理、接口和应用技术。熟悉单片机技术在工业控制中的应用 , 可以培养和锻炼学生动手操作和技术创新的能力,使得学生能紧跟计算机技术的发展脚步,为将来从事工业领域相关工作,尤其是自动控制以及应用电子产品的检测和维修奠定坚实的基础,为将来从事电子电器新产品设计开发,电子产品的检测和维护等工作奠定坚实的基础,是理工信息类大学生一门重要的技术课程。
上海求育QY-DPJ09网络接口型单片机、微机综合实验开发装置
上海求育QY-DPJ09网络接口型单片机、微机综合实验开发系统是由控制屏、内置直流稳压电源、漏电断路器等组成,控制屏有两大块的双面印刷线路板组成。集51、96、8088(以下简称88)三大系列CPU于一体的三合一实验系统。内置DB-208仿真器(5196)和8088实验系统。该系统以8088实验系统作为基板,自成一体,可单独作为8086微机原理和接口实验使用,也可分别叠插51或96CPU卡,构成51/96单片机实验开发系统,598系统结构紧凑,资源充分共享,无总线开关切换,自动识别CPU的类型。配置EDA下载板和相应IO接口,支持altera、lattice、xilinx三家公司CPLD/FPGA芯片实验开发。
系统提供多种总线类型的实验模块,包括并行总线、RS232总线、RS485总线、I2C总线、SPI串行总线、USB总线、CAN总线、1-WIRE总线和以太网接口,可调试新型外围接口芯片有:I2C串行RAM AT24C02、I2C串行实时时钟PCF8563T、I2C串行10位D/A TL5615、8位A/D TL549、1-WIRE总线数字温度传感器DS 18B20、RS232芯片MAX232、MAX485、CAN总线控制器SJA1000、CAN总线收发器TJA1050T、网络芯片RTL8019AS、看门狗电路MAX813L。
系统提供多种输入/输出设备,包括字符式1602 LCD、128X64点阵LCD、16X16LED点阵、4X6开放式键盘、6位开放式数码管、IC卡、步进电机、小直流电机、小直流电机、继电器、语音录放(含话筒、喇叭)、打印机接口、小直流电机闭环控制、温度闭环控制等。
实验项目:
(一)单片机内部功能实验:
1、单片机内部定时/计数器实验(脉冲计数)
2、单片机内部定时/计数器实验、中断控制综合实验(电脑 时钟)
3、单片机串行口实验—双机通信
4、单片机串行口实验—单片机与电脑联机通信实验
5、单片机I/O口实验
6、单片机ISP最小系统实验和看门狗实验
8、串并转换(7 4 L S 1 6 4),扩展2位七段LED实验
9、并串转换(7 4 L S 1 6 5)实验
10、v/F转换实验
(二)单片机、微机常用接口与应用实验
11、8位8路A/D转换ADC 0 8 0 9实验
12、8位1路D/A转换D A C 0 8 3 2实验
13、定时/计数器8 2 5 3 A实验
14、串行通信接口控制电路8 2 5 1/8250实验
15、I/O口(7 4 L S 2 7 3/7 4 L S 2 4 4)扩展实 验
16、并行口扩展实验8 2 5 5/8 1 5 5
17、地址译码(3一8译码器7 4 L S 1 3 8)实验
18, 8279键盘输入、LED显示输出实验
19、打印机接口控制实验(打印机选配)
20、继电器控制实验
21、音乐控制实验
22、语音录放实验
23、步进电机(4相)控制
24、十字路口交通灯模型控制实验
25 、16X16 LED点阵实验
26 、128X64 LCD点阵实验
(三)单片机新型总线控制接口实验
27、I2C串行RAM24C02读写实验
28、12C串行10位D/A T L 5615 D/A转换实验
29、I2C串行8位A/D T L 549 A/D转换实验
30、I2C串行实时时钟PCF8563T应用实验
31、I-WIRE总线数字温度传感器DS 18B20应用实验
32, CAN控制器STA1000, CAN收发器TJA1050T应用实验
33、以态网接口RTL8019AS应用实验
34、RS232/485通信接口实验
35、USB总线接口实验
(四)单片机、微机控制应用小系统实验
36、直流电机闭环控制实验
37、温度测量控制(PID调节闭环控制)
(五)微机接口实验
38、8237DMA数据传送实验
39、8259中断控制器实验
(六)可编程CPLD/FPGA应用实验
基本实验:
(1)七人表决器; (2)四位加法器; (3)BCD码加法器;
(4)格雷码变换器; (5)四位并行乘法器; (6)触发器;
(7)用ABEL语言设计74LS160功能模块计数器; (8)多模加减计数器;
(9)可控脉冲发生器; (10)简易数码锁; (11)英语字母显示实验;
(12)八位乘法器; (13)序列检测器; (14)可变模16位加法计数器;
(15)正负脉冲数控调制发生器;(16)秒表。
模块实验:
(1)A/D 0809模数转换器实验;
(2)D/A 0832数模转换器实验;
(3)步进电机控制实验;
(4)1616 LED点阵显示实验;
(5)电子时钟实验;
(6)数码管静态显示实验;
(7)VGA接口彩条信号实验;
(8)4
4键盘扩展实验;
(9)128*64 LCD液晶显示实验;
(10)电子音乐演 奏实验;
(11)RS232串口发送实验(SEND);
(12)RS232串口接收实验(RECEIVE)
(13)PS/2键盘接口逻辑设计;
(14)单片机总线接口实验;
(15)异步串口通讯(UART)
数字系统设计:
(1)数字钟; (2)频率计; (3).交通灯; (4)数字锁;
(5)出租车计费器; (6)抢答器; (7)自动电梯; (8)彩灯控制器等。
(七)自行扩展实验
通过IC扩展区用户可自行扩展各种数字电路、单片机应用实验。

2013-10-11 10:41:07 mouday 阅读数 331

 

第三章

1、  指令:CPU根据人的意图来执行某种操作的命令

指令系统:一台计算机所能执行的全部指令集合

机器语言:用二进制编码表示,计算机能直接识别和执行的语言

汇编语言:用助记符、符号和数字来表示指令的程序语言

高级语言:独立于机器的,在编程时不需要对机器结构及其指令系统有深入了解的通用性语言

2、  见第1题

3、  操作码   [目的操作数]  [,源操作数]

4、   

&nbsp;

寻址方式

寻址空间

立即数寻址

程序存储器ROM

直接寻址

片内RAM低128B、特殊功能寄存器

寄存器寻址

工作寄存器R0-R7、A、B、C、DPTR

寄存器间接寻址

片内RAM低128B、片外RAM

变址寻址

程序存储器(@A+PC,@A+DPTR)

相对寻址

程序存储器256B范围(PC+偏移量)

位寻址

片内RAM的20H-2FH字节地址、部分SFR

5、  SFR:直接寻址,位寻址,寄存器寻址;片外RAM:寄存器间接寻址

6、  MOV    A,40H  ;直接寻址   (40H)→A

   MOV   R0,A    ;寄存器寻址   (A)→R0

   MOV   P1,#0F0H  ;立即数寻址   0F0→P1

   MOV   @R0,30H  ;直接寻址 (30H) →(R0)

   MOV   DPTR,#3848H  ;立即数寻址   3848H→DPTR

   MOV   40H,38H    ;直接寻址 (38H) →40H

   MOV   R0,30H     ;直接寻址 (30H) →R0

   MOV   P0,R0      ;寄存器寻址   ( R0 )→P0

   MOV   18H,#30H  ;立即数寻址   30H→18H

   MOV   A,@R0    ;寄存器间接寻址 ((R0)) →A

   MOV   P2,P1     ;直接寻址 (P1)→P2

最后结果:(R0)=38H,(A)=40H,(P0)=38H,(P1)=(P2)=0F0H,(DPTR)=3848H,(18H)=30H,(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H

注意:→左边是内容,右边是单元

7、  用直接寻址,位寻址,寄存器寻址

8、   

MOV     A,DATA  ;直接寻址      2字节1周期

       MOV     A,#DATA       ;立即数寻址   2字节1周期

       MOV     DATA1,DATA2      ;直接寻址      3字节2周期

       MOV     74H,#78H      ;立即数寻址   3字节2周期

如果想查某一指令的机器码,字节数或周期数可查阅书本后面的附录A

9、

       MOV      A,@R0   ;((R0))=80H→A

       MOV      @R0,40H       ;(40H)=08H→(R0)

       MOV      40H,A     ;(A)=80→40H

       MOV      R0,#35H ;35H→R0

最后结果:(R0)=35H    (A)=80H,(32H)=08H,(40H)=80H

10、用直接寻址,位寻址,寄存器寻址

11、只能采用寄存器间接寻址(用MOVX指令)

12、低128字节:直接寻址,位寻址,寄存器间接寻址,寄存器寻址(R0~R7)

高128字节:直接寻址,位寻址,寄存器寻址

13、采用变址寻址(用MOVC指令)

14、压缩BCD码在进行加法运算时应逢十进一,而计算机只将其当作十六进制数处理,此时得到的结果不正确。用DA  A指令调整(加06H,60H,66H)

15、用来进行位操作

16、ANL   A,#17H      ;83H∧17H=03H→A

ORL    17H,A        ;34H∨03H=37H→17H

XRL    A,@R0        ;03H&oplus;37H=34H

CPL    A             ;34H求反等于CBH

所以(A)=CBH

17、(1)SETB  ACC.0或SETB  E0H    ;E0H是累加器的地址

(2)CLR ACC.7

   CLR  ACC.6

   CLR  ACC.5

   CLR  ACC.4

(3)CLR  ACC.6

   CLR  ACC.5

   CLR  ACC.4

   CLR  ACC.3

18、MOV  27H,R7

MOV  26H,R6

MOV  25H,R5

MOV  24H,R4

MOV  23H,R3

MOV  22H,R2

MOV  21H,R1

MOV  20H,R0

19、MOV  2FH,20

    MOV  2EH,21

    MOV  2DH,22

20、CLR  C

MOV  A,#5DH     ;被减数的低8位→A

MOV  R2,#B4H    ;减数低8位→R2

SUBB  A,R2       ;被减数减去减数,差→A

MOV  30H,A       ;低8位结果→30H

MOV  A,#6FH     ;被减数的高8位→A

MOV  R2,#13H    ;减数高8位→R2

SUBB  A,R2       ;被减数减去减数,差→A

MOV  31H,A       ;高8位结果→30H

注意:如果在你的程序中用到了进位位,在程序开始的时候要记得清0进位位

21、(1)A≥10

CJNE  A,#0AH,L1     ;(A)与10比较,不等转L1

LJMP  LABEL           ;相等转LABEL

L1:JNC   LABEL           ;(A)大于10,转LABEL

或者:

CLR C

SUBB  A,#0AH

JNC   LABEL

(2)A>10

CJNE  A,#0AH,L1     ;(A)与10比较,不等转L1

RET                   ;相等结束

L1:JNC  LABEL            ;(A)大于10,转LABEL

    RET                   ;(A)小于10,结束

或者:

CLR C

SUBB  A,#0AH

JNC   L1

RET

L1:JNZ  LABEL

RET

(3)A≤10

CJNE  A,#0AH,L1     ;(A)与10比较,不等转L1

L2:LJMP  LABEL           ;相等转LABEL

L1:JC   L2           ;(A)小于10,转L2

RET

或者:

CLR C

SUBB  A,#0AH

JC   LABEL

JZ  LABEL

RET

22、(SP)=23H,(PC)=3412H

参看书上80页

23、(SP)=27H,(26H)=48H,(27H)=23H,(PC)=3456H

参看书上79页

 

24、不能。ACALL是短转指令,可调用的地址范围是2KB。

在看这个题的时候同时看一下AJMP指令。同时考虑调用指令ACALL和LCALL指令和RET指令的关系。

25、   MOV  R2,#31H   ;数据块长度→R2

       MOV  R0,#20H   ;数据块首地址→R0

LOOP:MOV  A,@R0     ;待查找的数据→A

        CLR  C            ;清进位位

        SUBB A,#0AAH    ;待查找的数据是0AAH吗

        JZ   L1            ;是,转L1

        INC  R0            ;不是,地址增1,指向下一个待查数据

        DJNZ  R2,LOOP   ;数据块长度减1,不等于0,继续查找

        MOV  51H,#00H   ;等于0,未找到,00H→51H

        RET

   L1:MOV  51H,#01H    ;找到,01H→51H

        RET

26、    MOV  R2,#31H     ;数据块长度→R2

        MOV  R0,#20H   ;数据块首地址→R0

LOOP:MOV  A,@R0     ;待查找的数据→A

        JNZ  L1            ;不为0,转L1

        INC  51H           ;为0,00H个数增1

    L1:INC  R0            ;地址增1,指向下一个待查数据

        DJNZ  R2,LOOP   ;数据块长度减1,不等于0,继续查找

        RET

27、    MOV  DPTR,#SOURCE    ;源首地址→DPTR

        MOV  R0,#DIST           ;目的首地址→R0

 LOOP:MOVX  A,@DPTR         ;传送一个字符

         MOV  @R0,A

         INC  DPTR                ;指向下一个字符

         INC  R0

         CJNE  A,#24H,LOOP     ;传送的是“$”字符吗?不是,传送下一个字符

         RET

28、   MOV  A,R3    ;取该数高8位→A

       ANL   A,#80H  ;取出该数符号判断

       JZ  L1           ;是正数,转L1

       MOV  A,R4     ;是负数,将该数低8位→A

       CPL  A           ;低8位取反

       ADD  A,#01H   ;加1

       MOV  R4,A     ;低8位取反加1后→R4

       MOV  A,R3     ;将该数高8位→A

       CPL  A           ;高8位取反

       ADDC  A,#00H   ;加上低8位加1时可能产生的进位

       MOV  R3,A     ;高8位取反加1后→R3

  L1: RET

29、   CLR  C          ;清进位位C

       MOV  A,31H    ;取该数低8位→A

       RLC  A           ;带进位位左移1位

       MOV  31H,A     ;结果存回31H

       MOV  A,30H    ;取该数高8位→A

       RLC  A           ;带进位位左移1位

       MOV  30H,A     ;结果存回30H

30、   MOV  R2,#04H     ;字节长度→R2

       MOV  R0,#30H   ;一个加数首地址→R0

       MOV  R1,#40H   ;另一个加数首地址→R1

       CLR  C            ;清进位位

LOOP:MOV  A,@R0     ;取一个加数

        ADDC  A,@R1     ;两个加数带进位位相加

        DA  A             ;十进制调整

        MOV  @R0,A     ;存放结果

        INC  R0            ;指向下一个字节

        INC  R1            ;

        DJNZ  R2,LOOP   ;数据块长度减1,不等于0,继续查找

        RET

31、   MOV  R2,#08H     ;数据块长度→R2

        MOV  R0,#30H   ;数据块目的地址→R0

        MOV  DPTR,#2000H  ;数据块源地址→DPTR

LOOP:MOVX  A,@ DPTR     ;传送一个数据

        MOV  @R0,A        

        INC  DPTR          ;指向下一个数据

        INC  R0            ;

        DJNZ  R2,LOOP   ;数据块长度减1,没传送完,继续传送

        RET

32、(1)MOV  R0,0FH    ;2字节,2周期    4字节4周期(差)

        MOV  B,R0       ;2字节,2周期

   (2)MOV  R0,#0FH    ;2字节,1周期    4字节3周期(中)

        MOV  B,@R0     ;2字节,2周期

   (3)MOV  B,#0FH    ;3字节,2周期    3字节2周期(好)

33、(1)功能是将片内RAM中50H~51H单元清0。

   (2)7A0A (大家可以看一下书上,对于立即数寻址的话,后面一个字节存放的是立即数)   7850 (第一个字节的后三位是寄存器,前一个条指令是010也就是指的R2,在这里是R0,所以应该是78,后一个字节存放的是立即数)    DAFC  (这里涉及到偏移量的计算,可以参考书上56页)

34、    INC  @R0     ;(7EH)=00H

        INC  R0     ;(R0)=7FH

        INC  @R0     ;(7FH)=39H

        INC  DPTR    ;(DPTR)=10FFH

        INC  DPTR    ;(DPTR)=1100H

       INC  DPTR    ;(DPTR)=1101H

35、解:(1000H)=53H    (1001H)=54H       (1002H)=41H

       (1003H)=52H    (1004H)=54H       (1005H)=12H

       (1006H)=34H    (1007H)=30H       (1008H)=00H

       (1009H)=70H

36、MOV   R0,#40H      ;40H→R0

MOV  A,@R0        ;98H→A

INC    R0              ;41H→R0

ADD    A,@R0        ;98H+(41H)=47H→A

INC  R0               

MOV   @R0,A          ;结果存入42H单元

CLR   A               ;清A

ADDC  A,#0           ;进位位存入A

INC  R0 

MOV  @R0,A         ;进位位存入43H

功能:将40H,41H单元中的内容相加结果放在42H单元,进位放在43H单元,(R0)=43H,(A)=1,(40H)=98H,(41H)=AFH,(42H)=47H,(43H)=01H

37、   MOV   A,61H       ;F2H→A

       MOV   B,#02H         ;02H→B

       MUL  AB               ;F2H&times;O2H=E4H→A

       ADD A,62H            ;积的低8位加上CCH→A

       MOV  63H,A           ;结果送62H

       CLR  A                ;清A

       ADDC  A,B            ;积的高8位加进位位→A

       MOV  64H,A           ;结果送64H

功能:将61H单元的内容乘2,低8位再加上62H单元的内容放入63H,将结果的高8位放在64H单元。(A)=02H,(B)=01H,(61H)=F2H,(62H)=CCH,(63H)=B0H,(64H)=02H

39、MOV  A,XXH

ORL  A,#80H

MOV XXH,A

40、(2)MOV   A,XXH

        MOV   R0,A

        XRL    A,R0

  评论这张
microblog.png?1 转发至微博
2008-01-17 16:05:00 mybirdsky 阅读数 2077
2006-05-10 22:29:08

字体变小 字体变大

课程编号: 

适用专业:机电类专业

学时数: 64 (讲课: 44 ,上机: 16 ) 学分数: 4 

执笔者:刘军 编写日期: 2005 年 1 月

建议教材与教学参考书:

[1] 《微机原理及接口技术》 刘军 主编

[2] 《 MCS-51 单片机原理与应用》( C 语言版) 闫玉德 主编

[3] 《单片机应用系统开发实例导航》 靳达 编著

&S226; 课程的性质和目的

“微机原理与接口技术”是机电类专业学生的一门主要专业基础课程。课程以 51 系列单片机为主线,从应用角度出发,阐述了单片机的结构、工作原理、 C51 程序设计方法以及单片机接口技术。课程具有很强实践性,注重理论和实践相结合,融知识单元于活动项目之中,强调课程学习的目的性、实践性和应用性。

学好本课程,学生应掌握计算机控制系统的组成,应学会分析单片机控制系统,并能开发、设计一定的单片机控制。课程对培养学生工业控制思维、掌握工业控制过程有着重要的意义。

&S226; 教学目标和基本要求:

教学目标:

(一)理论方面:

1 、熟练掌握单片机结构、工作原理、单片机控制系统的组成,掌握单片机中断控制系统、定时 / 计数器、键盘显示接口电路等知识内容。

2 、熟练掌握 C51 程序设计方法,掌握利用 C51 访问单片机片内、片外存储器以及查表程序的设计方法。

3 、学会分析单片机应用系统,如智能显示屏控制系统、数据采集控制系统等。能运用单片机知识开发一定的工程项目。

(二)实践方面 :

1 、熟练掌握单片机仿真程序( Manlay 公司的 MedWin 仿真软件)的使用方法和技巧,掌握西尔特写入器的应用。

2 、熟练掌握单片机控制程序的调试方法和技巧。

基本要求:

1 、课程理论教学采用活动项目展开,每一个活动项目均通过项目演示 ---- 项目现象分析 ---- 项目解剖 ---- 项目总结的方式完成教学。

2 、课程实验教学采用每人一个实验箱,从硬件设计 ---- 应用软件设计 ---- 项目调试完成模式完成(前阶段实验内容规定,后阶段实验内容学生可自己设计)。

3 、在教与学的互动过程中,充分发挥学生的学习能动性,注意培养学生的综合能力和创新能力。

三、课程主要教学内容及课时分配表:

课程主要教学内容

1 、微机控制系统基础及工作原理 (2 学时 )

( 1 )内容:微机控制系统认识、微机控制系统组成、微机控制系统发展及应用范围、微机控制系统的组成。

( 2 )要求:掌握微机控制系统的组成及工作与原理;认识微机控制系统;了解微机控制系统的发展及应用范围。

2 、数制与码制 (2 学时 )

( 1 )内容:数制的概念、码制的概念。

( 2 )要求:理解二进制数、十进制数、十六进制数的相互转换,理解有符号数、无符号数及补码的含义。

3 、彩灯控制系统及 ATMEL 89C 2051 单片机 (4 学时 )

( 1 )内容:彩灯控制系统任务分析、彩灯控制系统的组成, ATMEL 89C 2051 单片机的结构、 ATMEL 89C 2051 单片机的引脚, 89C 2051 单片机的时钟电路、复位电路,万利仿真调试软件、西特尔写入器。

( 2 )要求:掌握 ATMEL 89C 2051 单片机的引脚含义,掌握 89C 2051 单片机的时钟电路、复位电路;认识利用单片机控制的彩灯控制系统,认识万利仿真调试软件、西特尔写入器;了解 89C 2051 单片机的结构。

4 、实验一:一个简单的微机控制系统 ------ 彩灯控制系统的认识。 (2 学时 )

( 1 )熟悉单片机控制系统硬件线路的组成。

( 2 )熟悉万利仿真调试软件环境、西特尔写入器的使用。

5 、彩灯控制系统的软件分析 (6 学时 )

( 1 )内容: 89C 2051 单片机存储器结构, C51 程序设计基础、 C51 程序结构

( 2 )要求:掌握 89C 2051 单片机存储器结构,掌握 C51 数据类型、位变量的定义、单片机特殊功能寄存器、并行口的定义,掌握 C51 运算符及表达式含义,掌握 C51 程序结构(包括分支语句 if 语句、 switch 语句以及循环语句 while 语句、 do ~ while 语句、 for 语句、循环的嵌套)的设计方法。了解 C51 的头文件“ reg51.h ” 和“ absacc.h ” 。

6 、基于 89C 2051 彩灯控制系统设计 (2 学时 )

( 1 )内容: 89C 2051 彩灯控制系统硬件设计, 89C 2051 彩灯控制系统软件设计, C51 函数的调用,万利仿真调试软件、西特尔写入器的运用。

( 2 )要求:理解利用 89C 2051 单片机设计彩灯控制系统的方法(包括硬件电路设计,控制软件设计);掌握 C51 函数的设计及调用;学会运用万利仿真调试软件调试控制程序的方法、学会利用西特尔写入器进行程序烧入的方法。

7 、实验二:彩灯控制系统 (2 学时 )

( 1 ) 89C 2051 单片机设计彩灯控制系统软、硬件的调试。

( 2 )万利仿真调试软件、西特尔写入器的运用。

8 、 89C 2051 单片机中断系统 (4 学时 )

( 1 )内容:报警系统任务分析,中断的概念, 89C 2051 单片机中断系统,中断服务程序的设计。

( 2 )要求:掌握 89C 2051 单片机中断系统的运用,掌握利用 89C 2051 单片机设计的简易报警控制系统;了解中断的响应过程。

9 、实验三:报警发生器 (2 学时 )

( 1 )简易报警发生器的设计与调试。

( 2 )掌握 89C 2051 单片机中断系统服务程序的调试。

10 、 89C 2051 单片机的定时器 / 计数器 (4 学时 )

( 1 )内容:交通灯控制系统任务分析, 89C 2051 单片机定时器 / 计数器的工作方式及程序设计。

( 2 )要求:掌握 89C 2051 单片机定时器 / 计数器的含义及运用,学会定时中断服务程序的设计和定时查询程序的设计,掌握利用 89C 2051 单片机设计交通灯控制系统。

11 、实验四:顺序控制系统 (2 学时 )

( 1 )掌握顺序控制系统的设计与调试。

( 2 )掌握 89C 2051 单片机定时中断服务程序的调试。

12 、电子钟控制系统 (4 学时 )

( 1 )内容:电子钟控制系统任务分析, LED 显示器的结构及显示原理、 LED 显示器接口技术、 LCD 显示器,电子钟控制系统的程序设计。

( 2 )要求:掌握 LED 显示器的结构及动态显示、 LED 显示器接口技术,掌握电子钟控制系统的程序设计,掌握利用 89C 2051 单片机设计电子钟的方法;了解 LCD 显示器。

13 、实验五: 00 - 59 秒计时器 (2 学时 )

( 1 )掌握 LED 显示器的动态显示程序设计方法与调试。

( 2 )掌握利用 89C 2051 单片机设计的电子钟。

14 、电子密码锁控制系统 (4 学时 )

( 1 )内容:电子密码锁控制系统任务分析,键盘的基本概念,独立式键盘及其接口电路,矩阵式键盘及其接口电路,矩阵式键盘的程序设计。

( 2 )要求:掌握矩阵式键盘及其接口电路设计,掌握矩阵式键盘的程序设计,掌握利用 89C 2051 单片机构成矩阵式键盘的方法;了解独立式键盘及其接口电路,了解利用 89C 2051 单片机设计的简易电子密码锁。

15 、实验六: 3 × 3 矩阵式键盘识别技术 (2 学时 )

( 1 )掌握矩阵式键盘及其接口电路设计与调试。

( 2 )掌握矩阵式键盘程序设计与调试。

16 、单片机的串行通信 (4 学时 )

( 1 )内容:计算机通信基础知识, MCS--51 系列单片机串行口控制寄存器,串行口的工作方式,串行口的应用。

( 2 )要求:掌握异步串行通信数据格式,掌握 RS -232C 串行通信接口,掌握单片机双机通信的 3 线制连线方法,掌握单片机双机通信程序设计;了解单片机的多机通信。

17 、实验七:基于 89C 2051 的双机通信 (2 学时 )

( 1 )掌握 89C 2051 的双机通信接口电路设计与调试。

( 2 )掌握 89C 2051 的双机通信程序设计与调试。

18 、波形发生器 (4 学时 )

( 1 )内容:波形发生器任务分析, D/A 转换器的选择要点, DAC0832 转换器及其接口,波形发生器程序设计。

( 2 )要求:掌握利用单片机控制 DAC0832 转换器的方法;认识利用 89C 2051 、 DAC0832 构成的波形发生器;了解 D/A 转换器的技术指标。

19 、实验八:基于 89C 2051 的波形发生器 (2 学时 )

( 1 )掌握 89C 2051 控制的 DAC0832 转换器硬件电路的设计与调试。

( 2 )掌握波形发生器软件的设计与调试。

20 、数据采集系统 (8 学时 )

( 1 )内容:数据采集系统概念, A/D 转换器的选择要点, ADC0809 转换器及其接口,单片机看门狗电路,数字滤波,数据采集系统的设计。

( 2 )要求:掌握利用单片机控制 ADC0809 转换器的方法;认识单片机看门狗电路,数字滤波;了解数据采集系统。

课时分配表

序号 教 学 内 容 要求 课时分配
课堂 实验 合计
1 微机控制系统基础及工作原理 熟练 2 2
2 数制与码制 熟练 2 2
3 彩灯控制系统及ATMEL89C2051单片机 掌握 4 2 6
4 彩灯控制系统的软件分析 掌握 6 6
5 基于89C2051彩灯控制系统设计 掌握 2 2 4
6 89C2051单片机中断系统 掌握 4 2 6
7 89C2051单片机的定时器/计数器数组 掌握 4 2 6
8 电子钟控制系统 掌握 4 2 6
9 电子密码锁控制系统 掌握 4 2 6
10 单片机的串行通信 熟练 4 2 6
11 波形发生器 熟练 4 2 6
12 数据采集系统 熟练 8 8
总 计 48 16 64

实验教学安排

序号

实验项目名称

时数

属性

实验主要内容

1

彩灯控制系统的认识

认识

单片机控制系统认识,万利仿真调试软件环境、西特尔写入器的认识。

2

彩灯控制系统的认识

2

设计

彩灯控制系统软、硬件的调试,万利仿真调试软件、西特尔写入器的运用。

3

报警发生器

设计

报警发生器控制系统软、硬件的调试,中断服务程序的调试。

4

顺序控制系统

2

设计

顺序控制系统软、硬件的调试,定时中断服务程序的调试。

5

00 - 59 秒计时器

2

设计

LED 动态显示电路软、硬件的调试。

6

3 × 3 矩阵式键盘识别技术

2

设计

行列矩阵键盘识别电路软、硬件的调试。

7

基于 89C 2051 的双机通信

2

设计

单片机双机通信软、硬件的调试。

8

基于 89C 2051 的波形发生器

2

设计

单片机控制 DAC0832 转换器的设计与调试。

合计

16

四、本课程与其它课程的联系与分工

先修课程:数字电路, C 语言程序设计。 

五、考核方法与要求:

1 、考核方法:期末考试(闭卷): 60% ;期中测试: 10% ;实验: 20% ;平时 10% 。

2 、考核要求:期末考试:按各章知识点要求,突出重点,突出单片机控制系统的应用;实验:实验的准备、实验的调试方法与手段及实验报告;期中:以基础知识为重点,重点为 89C 2051 的基础知识及 C51 程序设计基础;平时:课堂提问、作业、考勤。

2019-03-11 23:11:54 Gaby_USTC 阅读数 72

第一章 单片机概论

1.1 微计算机的发展及应用

微机技术两大分支

  • 微处理器MPU(Micro Process Unit)

    又称为中央处理单元CPU (Central Processing Unit),由算术逻辑单元ALU(Arithmetic Logic Unit)控制单元CU(Control Unit) 以及 寄存器R(Registers) 等组成,是计算机的核心部件。

    将CPU、存储器(ROM, RAM)、I/O接口通过总线相连加上外部设备构成微型计算机。

  • 单片机(Single-Chip Micro Computer):将CPU、存储器、I/O接口、定时器/计数器等等微型计算机各个模块集成在一块芯片之上,通过内部总线进行各个模块之间的连接。或称微控制器MCU(Micro Control Unit)。

    在这里插入图片描述

    时钟系统:时钟系统要满足CPU及片内各单元电路对时钟的要求。同时在CMOS微控制器中,要满足功耗管理对时钟系统电路的可控要求。

    复位电路:能满足上电复位、信号控制复位的最简化电路。

1.2 微计算机的基础知识

  • 总线(Bus),连接和信息交换,是任意一个源点到任意一个终点的一组传输信息的公共通道

    • 数据总线DB

      双向 ,CPU可以通过DB对RAM、定时器等等进行读写,传输信息。DB的位数即为计算机的字长

    • 地址总线AB

      单向,CPU通过AB访问发出地址所对应的单元(存储器或I/O接口等)。AB的位数决定了CPU可以寻址的内存空间大小,如16位总线最大寻址空间为216=64KByte=64KB2^{16}=64KByte=64KB.

    • 控制总线CB

      单向,用以传输控制信号或者时序信号。

  • Bit,位(Binary Digit),8Bit=1Byte,即D7 D6 D5 D4 D3 D2 D1 D0,10011101是一个八位二进制数,为一个字节。word(字),16bit。

  • 字长:计算机一次能够运算的二进制数位数。8位、16位、32位等等。越长计算能力越强。

  • 存储器(Memory):由存储矩阵(保存0,1的寄存器)、地址译码器、读写控制、三态双向缓冲等部分组成,作为记忆单元。

  • 存储地址(Memory Address):用于定义每个存储单元,每个存储单元存放1个8位二进制数,为了区分各个存储单元,每个存储单元都要被分配 (唯一的) 一个地址,以供CPU寻址、操作。

  • 触发器:计算机记忆装置的基本单元,各类触发器由不同的门电路组成,一个触发器能储存1bit信息(1 or 0)。

    • RSR-S触发器有两个输入端和两个输出端。其中,SS为置位信号(Set)输入端,RR 为复位信号(Reset)输入端。QQQˉ\bar{Q} 为输出端。

      在这里插入图片描述

    • DD 触发器:又称“数据触发器”。RRSS 分别为置0端和置1端;常用的 DD 触发器无 SS 端,其输出 QQ 的状态由时钟脉冲 CLKCLK 上升沿(或下降沿)时刻的 DD 端状态决定 DD 为输入端)。当 D1=D=1 时,触发器为1状态;反之,为0状态。 一般不用 SS

      在这里插入图片描述

寄存器(Register)

寄存器通常由 DD 触发器组成。1个 DD 触发器构成1位寄存器,一个8位的 寄存器就有8个D触发器组成。计算机中有很多不同功能的寄存器,如缓冲寄存器、移位寄存器、计数器等。

  • 缓冲寄存器(Buffer):常用来暂存数据,一般为8位

    由4个DD 触发器组成的4位并行缓冲寄存器:

    在这里插入图片描述

    CLRCLR 端施加“0”可将D3D0D_3-D_0清0;把需要保存的数据加到输入端(D3IND0IND_3 IN-D_0 IN),在 CLKCLK 上升沿作用下,输入端的信息就锁存到输出端(D3D0D_3-D_0)中 ,如图是4位并行输入,4位并行输出的缓冲寄存器。

  • 移位寄存器(Shifting Register):具有锁存移位功能。移位寄存器能将所存储的数据逐位向左或向右 移动,可以将串行输入变为并行输出,或将并行输入变为串行输出

    串行输入并行输出的4位移位寄存器:由4个DD 触发器串接而成。

    在这里插入图片描述

    触发器1的 DD 端为串行输入端,4个 DD 触发器的 QQ 端为并行输出端;1个 CLKCLK 串行输入1位数据,4个CLKCLK 即可实现4位数据的输出。(高位数据先发送)

  • 计数器(Counter) :由若干个触发器组成,具有累计时钟脉冲的功能,即能够对输入的 CLKCLK 信号进行加1或减1操作。

    在这里插入图片描述

    3位计数器,累加8个脉冲后, 输出变为全0,称为*“溢出”*

    3位计数器可计数0~7个脉冲,最大计数值238=2^3=8

    4位计数器可计数0~15个脉冲,最大计数值 2416=2^4=16

    8位计数器可计数0~255个脉冲;最大计数值 28256=2^8=256\cdots

  • 三态门 :计算机中的信息传输采用总线形式。计算机中一般有三类总线:数据总线、地址总线、控制总线。 为防止信息相互干扰,凡要挂到总线上的寄存器、存储器等,都应具有 三态功能。

    在这里插入图片描述

    E=1E=1,输出BB =输入AA;

    E=0E=0,输出端呈高阻抗状态 ,门关。

    在数据线中用双向三态门,因为数据线是双向的。

    具有三态功能的器件,当其为高阻态时(相当于该器件没有不总线连接),对总线状态不起作用。所有挂在总线的器件都是分时使用总线进行信息传送,即任一时刻只能一个器件占用总线,而其它器件都应为高阻态。 如下图的4位三态缓冲寄存器:

在这里插入图片描述

注意:

  • 寄存器的输出通过三态门与数据总线相连接。
  • 寄存器+三态门构成三态缓冲寄存器,通常作为微控制器的输入接口

存储器(Memory)

  1. 只读存储器(Read Only Memory,ROM)

    也称为程序存储器,掉电后信息不会丢失,用于固化微控制器的应用程序代码、字库及表格、常数。 储存单片机需要运行的程序。Flash可以用一条指令写入,以前要烧录。

    • PROM (Programmable ROM):可编程ROM ;
    • OTPROM (One Time Programmable Read Only Memory):一次可编程ROM;
    • EPROM(Erasable Programmable Read Only Memory) ;可擦除可编程ROM(紫外线光照擦除);
    • EEPROM (Electrically Erasable Programmable Read Only Memory): 可电擦除ROM(12V高电平擦除)。
    • FLASH memory:快擦写存储器、或Flash存储器、或“闪存”,也是一 种EEPROM,但其读/写速度要快得多。 集成度是一般EEPROM的6倍。用于制作U盘等等。
  2. 随机存取存储器(Random Access Memory,RAM)

    也称为程序存储器 ,断电后存储的信息将全部丢失,一般用来存放采集的数据和中间结果。

    • DRAM(Dynamic RAM):动态随机存取存储器。DRAM是用电容保存信息,所以只能保持很短的时间(因为电容会漏电),为此需要刷新电路每间隔一段时间对保存的数据进行一次刷新,否则存储的信息就会丢失。DRAM有较高的集成度和相对低廉的成本,但刷新电路会增加复杂度,用于通用计算机系统中。
    • SRAM(Static RAM):静态随机存取存储器。只要不掉电SRAM的数据就不会丢失,访问速度快、存取简单的优点,但生产成本高、相对DRAM容量较小。SRAM是微控制器最常用的内存。

存贮器的结构和寻址

  1. 存贮器的组成结构

    由存贮矩阵(大量缓冲寄存器)、地址译码器、三态双向缓冲器、读写控制等组成。引脚包括数据线、地址线、控制线和电源线等。

    在这里插入图片描述

    上图是一个含有256个存储单元的存储芯片,每一个单元存放8位1字节的二进制码。地址从0-255(00H-FFH)。具体由以下几部分组成:

    • 存贮矩阵:由大量缓冲寄存器组成的,缓冲寄存器的位数有8位、16位等; 其数量是 2n2^n个,如1024(1K)、65536(64K)、1048576(1M)等。

    • 地址译码器: 用于寻址存储矩阵中的各个单元。其输入是微控制器发出的地址线输出译码信号连接到存储矩阵,用于寻址各存储单元

      当地址线=3条时,译码后可输出 238=2 ^3=8 个选通信号;

      当地址线=8根时,译码后可输出 28256=2 ^8=256 个选通信号,以此类推。

      在这里插入图片描述

      存储器芯片的地址线位数目决定其容量; 微控制器的地址线数量决定其寻址能力。

    • 三态双向缓冲器:双向缓冲器一边连接到存储矩阵,另一边作为存储器的输出,应连接到外部数据总线。通过该双向缓冲器实现数据的写入和读出。

    • 读/写控制:由微控制器发出,用于控制三态双向缓冲器的方向,实现对 存储器的读写操作。即上图中的WR\overline{WR}RD\overline{RD}

    • 存储器芯片的引脚包含数据线、地址线、控制线、电源和地。

      • 地址线应与微控制器的地址线连接,内部连接到译码器的输入端;
      • 数据线与微控制器的数据连接,内部连接到三态双向缓冲。
没有更多推荐了,返回首页