您好,欢迎来到年旅网。
搜索
您的当前位置:首页单芯片应用实习报告

单芯片应用实习报告

来源:年旅网

单芯片应用实习报告

    班级: 二技电一甲

    姓名: 林 桀 民

    学号: AD89017

    相关知识

    MCS-51是 Intel 公司所设计的8051系列单芯片总名称 在MCS-51这个大家族里较具知名度的编号有8051 8751 & 8031 实际上这些不同编号的单芯片都使用相同的核心CPU与指令及只是在制造IC时给予不同的周边设计 分别赋予这些IC一个特别编号

    主要功能:

    MCS-51系列单芯片的主要功能列举如下

    专为控制应用所设计的8位CPU

    有完整的单位元逻辑运算指令,具有布尔运算能力

    有32条(4个Port)双向且每条都可以被单独寻址的I/O

    内部有两个16位Timer/Counter

    有一个通信用的全双工UART(串行I/O)

    可接受5个中断源且有2层优先权的中断结构

    内部有时脉震荡器(最高频率可到12MHz)

    内部有4K的程序内存(ROM),128byte数据存储器(RAM)

    可在外部扩充到64K程序内存(EPROM)

    可在外部扩充到64K数据存储器(RAM)

    8051内部结构方块图

    8051接脚图与功能(40):

    若系统读取外部程序,接低电位 /

    EA/Vpp/Psen

    高电位动作, 系统重置, PC回到0000H

    RESET(9脚)

    串行通讯输出/入(P3.0, P3.1)

    RXD/TXD

    外部中断输入(P3.2, P3.3)

    INT0/1

    计时计数器的输入(P3.4, P3.5)

    T0/T1

    8位I/O端口,外接内存可做地址线

    P2.0~P2.7

    地址闩锁致能信号

    ALE/Prog

    外部数据的读取/写入(P3.7, P3.8)

    RD/WR

    8位I/O端口,

    P1.0~P1.7

    8位I/O端口,外接内存做数据地址线

    P0.0~P0.7

    时脉反相放大器输出/入端, 接石英振荡器

    XTAL1/2(19/18脚)

    电源(5V)/ 接地

    Vcc(40脚)/Vss(20脚)

    功能

    接脚

    8051基本电路图:

    基本电路中有振荡电路及开机重置电路

    振荡电路:8051芯片内部有一个振荡器,可以当作CPU的时脉,再设计时脉源时,若使用芯片内部的振荡器,只要在18、19脚两脚间接振荡频率范围3.5M~12MHZ的石英振荡晶体或陶质共振器,并各自接20PF~50PF的电容。

    重置电路:任何微电脑系统均有硬件重置功能,硬件重置主要用来确保CPU在开机时从程序的预定起始地址开始执行及当系统当机时使系统能重新开始,8051的重至信号输入脚为第9脚,此输入脚为高电位动作,且高电位至少要维持2个机械周期也就是24个振荡周期。开机时RST脚电位为高电位促使系统重置,利用电容充电效应使RST接脚电位降成低电位,8051完成重置动作固定到程序内存地址0000H开始执行。

    8051内存介绍:

    8051的内存包含程序内存(ROM)和数据存储器(RAM)两种,他们分别有不同的用途,程序内存的作用是在储存所要执行的程序,而数据存储器用来存放在程序执行过程中所产生的数据,由于8051读取程序内存有专用控制线PSEN,所以程序内存和数据存储器二者选址时完全独立不相干。

    程序内存(ROM)结构:

    89C51的4K程序内存中,有下列几个重要地址,若没有用到, 就作一般程序内存使用,单芯片系统程序储存在程序内存(ROM),一般8051/52提供4~8K Bytes程序内存。使用者将编辑好的程序,经过组译(Assembler)、连结(Link)后,烧录到单芯片的ROM。如果采用89C51芯片,可重复烧录多次,每次烧录可将前一次烧录的程序自动清除。若采用8031芯片,由于本身没有内建ROM,所以必须采外部扩充内存

    TIMER0中断服务程序地址

    000BH

    TIMER1中断服务程序地址

    001BH

    UART串行通讯服务程序地址

    0023H

    功能

    地址

    INT1外部中断服务程序地址

    0013H

    INT0外部中断服务程序地址

    0003H

    RESET程序开始执行地址

    0000H

    程序内存配置图

    单芯片数据存储器(RAM)结构:

    8051的数据存储器是随机存取的,使用者随时读取或写入数据,通常是用来当程序执行时存放数据的缓存器。

    SCON/SBUF

    1 byte X2

    (98H/99H)

    PSW/ACC

    1 byteX2

    (D0H/E0H)

    特殊缓存器(SFR)

    128 byte

    80H~FFH

    功能

    长度

    地址

    TCON/TMOD/TL/TH

    6byte

    (88H~8DH)

    使用者直接寻址可

    设定SP建立堆栈区

    80 byte

    30H~7FH

    个别位数据寻址

    8bit×16

    20H~2FH

    R0~R7四个缓存器库

    8byte×4

    00H~1FH

    数据存储器(RAM)是单芯片在执行程序时,储存处理数据的地方。一般8051/52提供128~256 Bytes数据存储器。其中又可将它们区分为下列几项功能的缓存器与内存区:

    n          [00~1FH]的32个字节可分为四个缓存器库,分别为RB0、RB1、RB2、RB3。每个缓存器库有8个缓存器,分别为R0、R1、R2、R3、R4、R5、R6、R7。

    n           [20~2FH] 的16位(2 BYTES)可做直接位寻址,例如SETB 20H.0、CLR 20H.1。

    n          [30~7FH] 80个字节的内存区又称为”使用者RAM”,可以直接寻址存取资料,同时也可以由使用者透过设定SP,自定堆栈数据区。

    n          [80~FFH]的128个字节数据,8031/8051芯片没有提供。在8031/8052芯片可做间接寻址数据区,或是可直接寻址的状态缓存器(SFR)使用。其中包括P0、P1、P2、P3端口的对应缓存器,以及稍候我们作UART通讯功能会用到的SCON串行控制缓存器、与定时器/计数器控制缓存器…。

    熟悉这些内存的结构,对撰写单芯片程序会有很大的帮助。读者想自行撰写或修改单板微电脑的系统监督程序,最好能下点工夫,将这些内存的功能与结构做充分的了解。

    中断向量地址:

    由于这些内部程序内存的地址都与中断有关,所以我们也称这些地址为中断向量,在撰写程序时,若程序本身没有利用到中断的功能,则以下七个特别的地址可视为一般程序内存地址来处理,但是若程序中使用到某个中断时,则该中断对应的地址,就必须保留,因为,只要该中断发生时,接下来被执行的就是位于该地址的指令,下列这些地址是各种中断服务程序的进入点。

    功能

    地址

    中断

    串行埠中断向量

    0023H

    UART

    计时计数中断TIMER2向量

    002BH

    TIMER2

    计时计数中断TIMER1向量

    001BH

    TIMER1

    计时计数中断TIMER0向量

    000BH

    TIMER0

    外部中断INT1向量

    0013H

    INT1

    外部中断INT0向量

    0003H

    INT0

    系统重置启始地址

    0000H

    RESET

    单芯片指令集:

    数据寻址指令:累加器,缓存器,直接, 间接内存寻址与I/O端口间的数据转移。

    算术运算指令:数据做加(ADD)、减(SUB)、乘(MUL)、除(DIV)运算,或加一(INC),减一(DEC)等运算。

    逻辑运算指令:数据做AND(ANL)、OR(ORL)、XOR (XRL)运算,与RR、RL、RRC、RLC位旋转功能。

    布尔代数运算指令:位数据的清除与设定,如SETB,CLR。或位数据的运算ANL C, bit...等。

    程序流程控制:循环,呼叫子程序(CALL),中断,条件判断的跳跃。如JMP,JZ,CJNZ,DJNZ,RET...等指令。

    范例应用:

    名称:

    单开关控制灯号变化,以指拨开关以控制程序流向,造成灯号的变化

    动作要求:

    接于阜脚P2.7上之指拨开关拨至ON位置时,P2.7阜脚为低电压,接于P0之8个LED灯不停的作霹雳灯之动作,直制止拨开关拨至OFF位置时,P2.7为高电位,LED灯号变成奇偶位置不停地交互亮灭。

    电路图:

    程序:

    ORG        00H

    START:  JB          P2.7,LOOP2     ;检查P2.7,若为1则跳至LOOP2,否则往下执行

    LOOP1:  MOV       DPTR#TABLE    ;设定表格之起始为止于DPTR

    MOV       R3,#07H         ;设定表格数据之地址组数于R3

    MOV       A,#00H       ;设定偏移量起始地址值0于A缓存器

    L1:      JB          P2.7,LOOP2   ;在LOOP1循环中,依据DPTR及A

    MOV       R0,A          ;依序由表格取出七个字节数据送

    MOVC      A,@A+DPTR   传至P0作霹雳灯动作且检查P2.7之变

    MOV       P0,A           ;化,以决定是否跳出LOOP1循环

    MOV       R5,#5

    ACALL     DELAY

    MOV       A,R0

    INC        A

    DJNZ       R3,L1

    AJMP       LOOP1          ;无条件跳出LOOP1

    LOOP2:  MOV       A,#55H          ;在L2循环中,不停的作奇偶灯交互换互亮灭的动作并检查P2.7之变化,已决定是否跳出L2循环

    L2:      JNB        P2.7,LOOP2

    MOV       P0,A

    MOV       R5,#5

    ACALL     DELAY

    XRL        A,#FFH

    AJMP       L2

    DELAY: MOV       R3,#38H          ;子程序,延迟时间=R5*20ms

    D1:     MOV       R6,#F9H

    DJNZ       R6,$

    DJNZ       R7,D1

    DJNV       R5,DELAY

    RET

    TABLE:  DB         7EH,0BDH,0DBH,07EH   ;霹雳灯之表格数据

    DB         0DBH,0BDH,7EH

    END

更多范文,敬请登陆范文大全网(fanwen.glzy8.com)!

Copyright © 2019- oldu.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务