



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精品文档第一章绪论1.1 设计要求1)从两边向中间点亮或从中间向两边点亮, 依次循环不止, 彩灯的亮灭滚动至少有四组动态变化。2)亮灭时间为 0.25S。3)用一个开关控制彩灯的工作与否1.2 设计目的通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。为以后学生结合专业从事微机应用设计奠定基础。1.3 设计的原始资料及依据查阅可编程并行芯片 8255、中断控制等其他相关资料。用简单的输入输出端口等硬件,结合实际彩灯的亮灭控制过程进行设计,要求至少
2、有四组变化过程。精品文档精品文档第二章硬件设计2.1 硬件原理系统简介18086 系统概述Intel8086 是 16 位的微处理器(理论学习中为8088,其内部总线为16 位,外部总线为 8 位,故称为准 16 位微处理器),它采用 HMOS 工艺 40 条引脚封装。 8086 工作时使用 5V 电源,时钟频率 5MHz (8086-1 为 10MHz ,8086-2 为 8MHz )它有 20 根地址线,故可寻址的内存空间为 1MB 。28086CPU的引脚功能8086 CPU 采用双列直插式的封装形式, 有 40 条引脚。8086 CPU 采用了分时复用的地址 /数据总线,所以有一部分引
3、脚具有双重功能。为了适应不同的应用环境, 8086CPU 有两种工作方式: 最大方式 (MX) 和最小方式(MN) ,这由引脚33(MN/MX) 加以控制。最小方式适用于单微处理器组成的小系统,在这种系统中,所有的总线控制信号都直接由8086/8088 产生;最大方式适用于多微处理器组成的大系统,它包含两个或多个微处理器,其中一个就是8086 ,称为主处理器,其他的处理器则称为协处理器,其具体引脚功能见表2.1。表 2.1 8086CUP 引脚功能说明引脚名称功能引脚名称功能AD0AD15分时复用的双向、BHE/S7三态输出三态地址 /数据线高 8 位数据有效 /状态复用AD19/S6AD16
4、/S 分时复用,输出引INTR输入,可屏蔽请求3脚NMI输入,非可屏蔽请GND地线(两个)求CLK输入,时钟READY准备就绪,输入REST输入,复位INTA(QS1)输出,中断响应TEST输入,测试低电平DEN(S0)三态输出,数据允许信号有效ALE(QS0)输出,地址锁存允WR(LOCK)三态输出,写许DT/R(S1)三态输出,数据发MN/MX决定工作模式送/接收控制信号M/IO(S2)三态输出,存储器HOLD(RQ0/输入总线请求/IO 端口GTHLDA(RQ1/GT1)总线请求响应,输RD三态输出,读出精品文档精品文档8086CPU 的 40 条引脚如图 2.1。GND1AD 142A
5、D 133AD 124AD 115AD 106AD 97AD 88AD 79AD 610AD 5808611AD 412AD 313AD 214AD 115AD 016NMI17INR18CLK19GND20图 2.1 8086CPU40Vcc39AD 1538AD 16/S337AD 17/S436AD 18/S535AD 19/S634BHE/S 733MN/MX32RD31 HOLD(RQ/GT 0)30 HLDA(RQ/GT 1)29WR28M/IO(S 2)27DT/R( S1)26DEN(S 0)25ALE(QS 0)24 INTA(QS 1)23 TEST22 READY21 R
6、EST引脚图38086 系统的内部结构Intel8086/8088CPU 是 Intel 公司推出的高性能的微处理器,具体如下主要特性:(1) 8086CPU 数据总线为 16 位, 8088CUP 数据总线为 8 位。(2) 地址总线都是 20 位,低 16 位用于数据总线复用,可直接寻址为 1MB 的存储空间。(3) 有 16 位的端口地址,可以寻址64KB 的 I/O 端口。(4) 有 99 条基本指令,指令功能强大(5) 有 9 种基本寻址方式。(6) 可以处理内部和外部中断,外部中断源多达 256 个。(7) 兼容性好,与 80*86 ,8085 在源程序一级兼容。(8) 8086/
7、8088 标准主频为 5MHz , 8086/8088-2 主频为 8MH 。(9)支持单处理器或多处理器系统工作。实验中是以 Intel386EX微处理器为核心,来模拟8086 处理器来进行系统的测试工作精品文档精品文档8086 系统具体内部结构如图2.2 所示。AAAX地址加法器BXBBLCXCCLDX通DDL用寄存SP器BP地址总线数据总线CSDS总线控SS制逻辑DISIALUES数据总线运算寄存器IP内部暂存器指令列队外部总线执行部分23456ALU1控制电路标志执行部件EU总线接口部件BIU图 2.2 CPU8086 内部结构图48086CPU 寄存器结构8086CPU中有 14 个
8、 16 位的寄存器 , 其中有 4 个 16 位的通用寄存器 ,2 个 16 位指针寄存器 ,2 个 16 位变址寄存器 ,1 个 16 位指令指针及 1 个 16 位标志寄存器 ( 仅用 9 位 ) 。1) 通用寄存器 :通用寄存器包括累加器 AX,基址寄存器 BX,计数寄存器 CX,数据寄存器 DX四个寄存器,位于 CPU的 EU中,每个数据寄存器可存放 16 位操作数,也可拆成两个 8 位寄存器,用来存放 8 位操作数。精品文档精品文档表 2.2 通用寄存器的特殊用途和隐含属性寄存器名称特殊用途及隐含性质在输入输出指令中作数据寄存器,不能隐含AX在乘法指令中存放被乘数或乘积, 在除法指令
9、中存放被除数或商,能隐藏AH在 LAHF 指令中,作目标寄存器,能隐藏在输入 /输出指令中作数据寄存器,不能隐藏AL在十进制运算指令中作累加器,能隐含在 XLAT 指令中作累加器,能隐含BX在间接寻址中作基址寄存器,不能隐含在 XLAT 指令中作基址寄存器,能隐含CX在串操作指令和 LOOP 指令中做计数器,能隐含CL在移位 /循环移位指令中作移位次数计数器,不能隐含DX在字乘法 /除法指令中存放乘积高位或被除数高位或余数,能隐含在间接寻址的输入 /输出指令中作地址寄存器,不能隐含2)指针和变址寄存器指针和变址寄存器包括:堆栈指针 SP、基址指针 BP、源变址寄存器 SI、和目的变址寄存器 D
10、I 四个 16 位寄存器,可以来存放数据和地址。表 2.3指针和变址寄存器的特殊用途和隐含性质寄存器名称特殊用途及隐含性质在字符串运算指令中作源变址寄存器,能隐含SI在间接寻址中作变址寄存器,不能隐含在字符串运算指令中作目标变址寄存器,能隐含DI在间接寻址中作变址寄存器,不能隐含BP在间接寻址中基址指针,不能隐含SP在堆栈操作中作堆栈指针,能隐含3)段寄存器段寄存器包括:代码段寄存器CS,用于存放当前代码段的段地址;数据段寄存器DS,用于存放当前数据段的段地址;附加段寄存器 ES,用于存放当前附加段的地址;堆栈段寄存器 SS,用于存放当前堆栈段的段地址。 这些段寄存器彼此不能互换,每个段寄存器
11、在 8086 存储寻址空间中规定了 64KB 的存储快。该 64KB 存储快叫做段寄存器的当前段。4)专用寄存器包括指令指针寄存器(IP)和标志寄存器( FR)。精品文档精品文档指令指针寄存器( IP):用来存放要取的下一条指令在当前代码段中的偏移地址,程序不能直接访问 IP,在程序运行过程中, BIU 可修改 IP 中内容。指令指针寄存器每执行一次取操作,将自动加 1,使它指向下一条要取的内存单元。标志寄存器( FR):尽定义了 9 位,其中 6 位用作状态标志, 3 位用作控制标志。150OFDFIFTFSFZFAFPFCF5)状态标志位进位标志 CF:当前加法运算有进位,减法运算有借位时
12、,CF=1,否则 CF=0。辅助进位标志AF:在字节操作时, 低 4 位向高 4 位有进位(加法)或有借位(减法);在字操作时,低字节向高字节有进位(加法)或有借位(减法)时,则,AF=1,否则 AF=0。奇偶校验标志PF:当运算结果低8 位“ 1”的个数为偶数时, PF=1,否则 PF=0。零标志 ZF:当运算结果为0 时, ZF=1,否则 ZF=0。溢出标志 OF:在有符号数的算术运算时, 当运算结果有溢出时, OF=1,否则 0F=0。符号标志 SF:在有符号数的算术运算时,当运算结果为负时,SF=1,否则 SF=0。6)控制标志位方向标志 DF:当 DF=0 时,在串操作指令中,进行自
13、动增址操作;当DF=1 时,在串操作指令中,进行自动减址操作。中断允许标志IF:当 IF=0 时,禁止响应可屏蔽中断;当IF=1 时,允许响应可屏蔽中断。单步陷阱标志TF:当 TF=1 时,表示进入单步工作方式;当TF=0 时,表示正常执行。芯片简介一 8255 芯片概述在计算机系统中, CPU 和外部设备要进行数据的传输,必须采用接口电路来实现,8255 并行接口就是利用并行传输方式,所谓并行传输方式就是同时在多根传输线上,数据以字节或字为单位进行传送,在并行传送方式下,外设必须通过并行接口与系统总线相连接。在并行接口中,通常采用可编程并行接口芯片与主机相连接。 Intel8255A 就是应
14、用最广泛的典型可编程并行接口芯片之一精品文档精品文档芯片的引脚功能如图2.3 所示PA3140PA4PA22395PA13PA38PA6PA0437PA7RD536WRCS635RESETGND734D0A 188255A33D1A 0932D2PC71031D3PC61130D4PC51229D5PC41328D6PC01427D7PC11526V SSPC216257PC317PB24PB6PB01823PB5PB11922PB4PB22021PB3图 5.3 8255A引脚图1、与外部设备端相连的引脚1) PA0PA7:端口 A 输入输出线,一个 8 位的数据输出锁存器 /缓冲器,一个
15、8 位的数据输入锁存器。2) PB0PB7:端口 B 输入输出线,一个 8 位的 I/O 锁存器, 一个 8 位的输入输出缓冲器。3) PC0PC7:端口 C 输入输出线,一个 8 位的数据输出锁存器 /缓冲器,一个 8 位的数据输入缓冲器。 端口 C 可以通过工作方式设定而分成 2 个 4 位的端口,每个 4 位的端口包含一个 4 位的锁存器,分别与端口 A 和端口 B 配合使用,可作为控制信号输出或状态信号输入端口。2、与 CPU 相连的引脚1) RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有 I/O 口均被置成输入方式。精品文档精品文档2)
16、 D0D7:三态双向数据总线, 8255 与 CPU 数据传送的通道, 当 CPU 执行输入输出指令时,通过它实现 8 位数据的读 /写操作,控制字和状态信息也通过数据总线传送。3)CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255 与CPU 进行通讯。4)RD:读信号线,当这个输入引脚为低电平时,允许8255 通过数据总线向 CPU 发送数据或状态信息,即CPU 从 8255 读取信息或数据。5) WR:写入信号,当这个输入引脚为低电平时, 允许 CPU 将数据或控制字写 8255。如图 2.4 8255 芯片的内部结构CPU 端口数据DB总 线 缓冲器RD读 / 写W
17、RA 0控制逻A 1辑RESETCS内部逻辑外设接口A组A组端控制口A(8)A 组端口C 上半部(4)B 组端口8 位内部数据总线C 下半部(4)B组B 组端口控制B(8)图 2.4 8255A 内部结构I/OPA 7PA0I/OPA 7PA0I/OPA 7PA0I/OPA 7PA01) 数据接口8255A3 个 8 位数据接口,即接口 A ,接口 B 和接口 CA 端口:包含一个 8 位数据输出锁存器和缓冲器,一个8 位数据输入锁存器。B 端口:包含一个 8 位数据输入 /输出锁存器和缓冲器,一个8 位数据输入缓冲器。精品文档精品文档C 端口:包含一个 8 位数据输出锁存器和缓冲器,一个 8
18、 位数据输入缓冲器 (输入没有锁存器 )。2)A 组控制和 B 组控制这是两组根据 CPU 输出的控制字控制 8255 工作方式的电路,它们对于 CPU 而言,共用一个端口地址相同的控制字寄存器,接收 CPU 输出的一字节方式控制字或对 C 口按位复位字命令。 方式控制字的高 5 位决定 A 组的工作方式, 低 3 位决定 B 组的工作方式。对 C 口按位复位命令字可对 C 口的每一位实现置位或复位。 A 组控制电路控制 A 口和 C 口上半部, B 组控制电路控制 B 口和 C 口下半部。3)读写控制逻辑电路用来控制把 CPU 输出的控制字或数据送至相应端口, 也由它来控制把状态信息或输入数
19、据通过相应的端口送到 CPU。4)数据总线缓冲器这是一个双向三态的 8 位数据缓冲器,它是 8255 与微机系统数据总线的接口。 输入输出的数据、 CPU 输出的控制字以及 CPU 输入的状态信息都是通过这个缓冲器传送的。 2.5 8255 芯片的控制字功能控制0:位操作1:方式选择76543210端口 C 下半部分输入为 1,输出为 0端口 B输入为 1,输出为 0方式选择 -方式 0,1-方式 1端口 C 上半部分输入为 1,输出为 0端口 A输入为 1,输出为 0方式选择00:方式 001:方式 11X :方式 2图 2.5 8255A 的方式选择控制字精品文档精品文档2.2 硬线连接实
20、际接线图XD 0XD 1XD 2XD 4XD 5XD 6XD 7XA 1XA 2系统IOW #总系线IOR #统IOY1D0PA0D1PA1D2PA2D3PA3D4PA4D5PA5D6PA6D7PA78A 0PB 02A 1PB 15PB 25PB 3WRPB 4ARDPB 5PB 6CSPB 7PC0PC5PC1PC6PC2PC7PC3PC4D0D1D2D3D4D5D6D7D8D9D10D11D12D13D14D15K 0K 1K 2开关及LED显示单元精品文档精品文档第三章程序设计;=; 文件名 : 节日彩灯设计 .ASM; 功能描述 :;从两边向中间点亮或从中间向两边点亮,依次循环不止,
21、彩灯的亮灭滚动;至少有四组动态变化。;亮灭时间为 0.25S。;用一个开关控制彩灯的工作与否;=SSTACK SEGMENT STACK;堆栈段定义DW 32 DUP (?)SSTACK ENDS;堆栈段定义结束CODE SEGMENT;代码段定义ASSUME CS:CODESTART: MOV DX,0646H;8255 初始化,将控制口地址传送到DXMOV AL,89H;A 、B 口输出C 口输入工作方式 0 的控制字OUT DX,AL;将控制字传送到控制口TEST1: MOV DX, 0644H;检测开关是否置于打开 ,将 8255 的 C 口地址赋 DXINAL, DX;将 C 口值赋
22、给 ALTEST AL,01H;检测开关是否打开JNZ OPEN;开关为 1 则向下执行 OPENJMP DONE;若开关为 0 则跳转 DONEOPEN: MOV BX,0180H;第一种模式 0000 0001 1000 0000MOV CX,2;第一种模式循环两次MODE1: MOV DX, 0644H;检测开关状态INAL, DX;将 C 口值赋给 ALTEST AL,01H;检测开关是否打开JZ GUANJI;如果检测开关为0 的话则跳转 GUANJIMOV DX, 0644H;检测暂停开关状态 ,将 8255 的 C 口地址赋 DXINAL, DX;将 C 口值赋给 ALTEST
23、AL,02H;检测暂停开关是否开启JZ MODE1MOV DX,0640H;输出端高位向左循环MOV AL,BH;将 BX 的高八位 0000 0001 传送给 ALOUT DX,AL;将 AL 中的 0000 0001 传送给 8255 的 A 口ROL BH,1;BH 逻辑左移 1 位MOV DX,0642H; 输出端低位向右循环MOV AL,BL;将 BX 的低八位 1000 0000 传送给 ALOUT DX,AL;将 AL 中的 1000 0000 传送给 8255 的 B 口CALL SEC;启动延时精品文档精品文档ROR BL,1;BL 逻辑循环右移 1 位CMP BL,01H;
24、将 BL 中的数值与 0000 0001 比较JNZ MODE1; 如果不相等则继续执行MODE1LOOP MODE1;循环 MODE1MOV BX,03C0H; 第二种模式 0000 0011 1100 0000MOV CX,2;第二种模式循环两次MODE2: MOV DX, 0644H;检测开关状态INAL, DX;将 C 口值赋给 ALTEST AL,01H;检测开关是否打开JZ GUANJI;如果检测开关为0 的话则跳转 GUANJIMOV DX, 0644H;检测暂停开关状态 ,将 8255 的 C 口地址赋 DXINAL, DX;将 C 口值赋给 ALTEST AL,02H;检测暂
25、停开关是否开启JZ MODE2MOV DX,0640H;输出端高位向左循环 ,将 8255 的 A 口地址赋 DXMOV AL,BH;将 BX 的高八位 0000 0011传送给 ALOUT DX,AL;将 AL 中的 0000 0011传送给 8255 的 A 口ROL BH,1;BH 逻辑左移一位MOV DX,0642H;输出端的低位向右循环 ,将 8255 的 B 口地址赋 DXMOV AL,BL;将 BX 的低八位 1100 0000 传送给 ALOUT DX,AL;将 AL 中的 1100 0000传送给 8255 的 B 口ROR BL,1; BL 逻辑右移一位CALL SEC;启
26、动延时CMP BL,03H;将 BL 中的数值与 0000 0011比较JNZ MODE2;如果不相等,则继续跳转MODE2LOOP MODE2;如果相等,再循环执行一次MODE2MODE3: MOV DX, 0644H;检测开关状态INAL, DX;将 C 口值赋给 ALTEST AL,01H;检测开关是否打开JZ GUANJI;如果检测开关为0 的话则跳转 GUANJIMOV DX, 0644H;检测暂停开关状态 ,将 8255 的 C 口地址赋 DXINAL, DX;将 C 口值赋给 ALTEST AL,02H;检测暂停开关是否开启JZ MODE3精品文档精品文档MOV DX,0640H
27、;第三种模式 1100 0000 0000 0011MOV AL,BH; 将 BX 的高八位 1100 0000传送给 ALOUT DX,AL;将 AL 中的 1100 0000传送给 8255 的 A 口ROR BH,CL;BH 逻辑左移 2 位MOV DX,0642H;输出端的低位向右循环 ,将 8255 的 B 口地址赋 DXMOV AL,BL;将 BX 的低八位 0000 0011 传送给 ALOUT DX,AL;将 AL 中的 0000 0011 传送给 8255 的 B 口CALL SEC;启动延时MOV CL,2;将 2 传送给 CLROL BL,CL;BL 循环左移 CL 中的
28、数值位TEST BL,0C0H;将 BL 中的数值与 1100 0000 比较JZ MODE3;如果不相等则继续执行MODE3MOV BX,8001H;第四种模式为 1000 0000 0000 0001MOV CX,2; 第四种模式循环两次MODE4:MOV DX, 0644H;暂停开关是否置于打开 ,将 8255 的 C 口地址赋 DXINAL, DX;将 C 口值赋给 ALTEST AL,02H;检测暂停开关是否开启JZ MODE4MOV DX,0640H; 输出端的高位向右循环 ,将 8255 的 A 口地址赋 DXMOV AL,BH;将 BX 的高八位 1000 0000 传送给 A
29、LOUT DX,AL;将 AL 中的 1000 0000 传送给 8255 的 A 口ROR BH,1;BH 逻辑右移一位MOV DX,0642H; 输出端的低位向左循环 , 将 8255 的 B 口地址赋 DXMOV AL,BL;将 BX 的低八位 0000 0001 传送给 ALOUT DX, AL;将 BX 的低八位 0000 0001传送给 B 口ROL BL,1;BL 逻辑左移一位CALL SEC;启动延时TEST BL,80H;将 BL 的内容与 1000 0000 进行比较JZ MODE4; 如果不相等则继续执行MODE4LOOP MODE4;循环 MODE4JMP START;
30、跳转到 STARTGUANJI:CALL DONESEC:PUSH CX; 延时指令MOV CX,0D142H;延迟时间 0.25SAA1:PUSH AX;AX 进栈PUSH BX;BX 进栈POP BX;BX 出栈POPAX;AX 出栈LOOP AA1;循环 AA1POP CXRET;返回精品文档精品文档DONE: MOV DX,0640H;开关对应指令MOV AL, 00H;将 00H 传送给 ALOUT DX,AL;将 00H 传送给 A 口MOV DX,0642HMOV AL,00H;将 00H 传送给 ALOUT DX,AL;将 00H 传送给 B 口JMP TEST1;跳转到 TEST1CODE ENDS;程序结束END START第四章系统实现4.1 系统实现作为节日彩灯,最基本的功能就是让灯亮起来,不过要想让灯亮,就一定要有相对应的电源,为了构成彩灯的变化,就要用多一些的发光二极管,因此要利用我们曾经学过的 8255A 并行接口这一芯片。在学习了 8255 芯片以及对应的上机实验之后 ,我知道让灯亮起来这一问题并不复杂,相对复杂的是让彩灯有规律的循环。通过实验,我知道可以用将初始化的发光信号进行循环操
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年美甲师考试试卷(美甲师行业可持续发展战略报告)
- 垃圾处理设施安装安全协议
- 财产保全执行与监督合作协议
- 大学生慕课心理健康教育答案
- 发生事故后四不放过的定义是什么
- 教育类本科论文题目
- 高中物理教师教学心得
- 学前教育毕业论文3000字范文共23篇
- 电气类实习报告
- 心理健康教育班主任培训
- 单位保洁协议合同范本
- 高新技术产品贸易销售合同
- 空调维保服务项目质量保障措施
- 人工智能算法开发合作合同
- 2025年重点高中自主招生考试数学试卷试题(含答案详解)
- 客服主管岗位周工作计划
- 大学预防踩踏安全教育
- 《盾构法隧道远程管控平台技术规范》
- 《胃管固定法》课件
- 【MOOC】牛生产学-西北农林科技大学 中国大学慕课MOOC答案
- 高速公路路产赔(补)偿收费标准表
评论
0/150
提交评论