微型计算机课程设计_微机课程设计计算器

2020-02-28 其他范文 下载本文

微型计算机课程设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“微机课程设计计算器”。

《微机系统与汇编语言》

课程设计

(题目)

姓名

班级 学号

2013/12/26

内容要求: 一.设计内容

设计并实现随音乐伴奏而按某种规律显示的彩灯。

二.设计要求

①.用实验箱上的8253控制扬声器发声,演唱3首不同的歌曲。②.通过实验箱上的8255A驱动二极管发光。③.发光二极管的闪烁以音调的不同而不同 ④.通过中断信号选择歌曲。

三.总体设计

1.设计思路:

1>本次实验应用了8254,8255,8259芯片组

2>8254用于计数和连接扬声器,用计数器1实现音乐播放的控制,方式3。提供因每个音符频率不同而产生的音乐输出,片选信号接到系统总线的IOY2(端口地址为0680)

3>8255A驱动二极管发光,伴随音乐而变换。用B口作输出,片选信号接到系统总线的IOY0(端口地址为0600H)

4>8259采用级联方式,提供中断控制歌曲的切换,主片的中断类型号为68H,接MIR7.从片中断类型号为70H,接SIR1。每按一次MIR7或SIR1,切换一首歌。

5>共有三首歌,0-友谊地久天长,1-祝你生日快乐,2-两只老虎,从第一

首开始播放,然后判断有无中断,没有就继续播,有就判断计数器的值,大于等于3就重置为0(第一首),否则就用计数器的值找下一首要播放的歌曲的频率表、时间表、彩灯的控制表,然后取出播放新的音乐。

2.硬件连接图

我的改为片选CS接IOY2,用的计数器1,即把GATE0、CLK0、OUT0改为GATE1、CLK1、OUT1

我的片选信号CS接到IOY0,用的B口输出,即把PA0---PA7改为PB0---PB7 3.软件流程图

4.4.程序代码

IOY0 EQU 0600H IOY2 EQU 0680H MY8254_COUNT0 EQU IOY2+00H;8254 计数器 0 端口地址 MY8254_COUNT1 EQU IOY2+02H;8254 计数器 1 端口地址 MY8254_COUNT2 EQU IOY2+04H;8254 计数器 2 端口地址 MY8254_MODE EQU IOY2+06H;8254 控制寄存器端口地址 MY8259_ICW EQU 20H;MY8255_A EQU 0600H

MY8255_B EQU 0602H MY8255_CON EQU 0606H

SSTACK SEGMENT STACK

DW 32 DUP(?)SSTACK ENDS DATA SEGMENT

COUNTSONG DB 0 INT_FLAG DB 0

FREQ_LIST DW FREQ_ONE TIME_LIST DW TIME_ONE

FREQ_ONE DW 393,393,441,393,525,495;

DW 393,393,441,393,589,525

DW 393,393,786,661,525,495,441

DW 350,350,661,525,589,525,0

TIME_ONE DB 4,2,5,5,5,10;时间表

DB 3,2,5,5,5,10

频率表

DB 2,4,5,5,5,3,3

DB 4,1,5,5,5,10

LED_ONE

DB 25,23,03,44,75,26,07,08,19

DB 01,05,63,04,05,06,47,08,09

DB 01,32,03,46,02,06,54,08,29

DB 01,62,03,34,25,06,67,28,09

DB 01,02,83,04,05,46,37,68,09

DB 01,62,03,24,05,06,57,58,09,42,34

FREQ_SEC DW 262,294,330,262,262,294,330,262;频率表

DW 330,350,393,330,350,393,393,441,393,350,330,262

DW 393,441,393,350,330,262,262,393,262,262,393,0 TIME_SEC DB 6, 6, 6, 6, 6, 6, 6, 6;时间表

DB 6, 6, 12, 6, 6, 12, 4, 2, 4, 2, 6, 6

DB 4, 2, 4, 2, 6, 6,6, 6, 12,6, 6, 12

LED_SEC DB 01,62,03,34,25,06,67,28,09

DB 01,02,83,04,05,46,37,68,09

DB 01,62,03,24,05,06,57,58,09,42,34

DB 25,23,03,44,75,26,07,08,19

DB 01,05,63,04,05,06,47,08,09

DB 01,32,03,46,02,06,54,08,29

FREQ_THIRD DW 371,495,495,495,624,556,495,556,624;

DW 495,495,624,742,833,833,833,742,624

DW 624,495,556,495,556,624,495,416,416,371

DW 495,833,742,624,624,495,556,495,556,833

DW 742,624,624,742,833,990,742,624,624,495

DW 556,495,556,624,495,416,416,371,495,0 TIME_THIRD DB 4, 6, 2, 4, 4, 6, 2, 4, 4;时间表

DB 6, 2, 4, 4, 12, 1, 3, 6, 2

DB 4, 4, 6, 2, 4, 4, 6, 2, 4, 4

DB 12, 4, 6, 2, 4, 4, 6, 2, 4, 4

DB 6, 2, 4, 4, 12, 4, 6, 2, 4, 4

DB 6, 2, 4, 4, 6, 2, 4, 4, 12 LED_THIRD DB 01,05,63,04,05,06,47,08,09

DB 01,32,03,46,02,06,54,08,29

DB 01,62,03,34,25,06,67,28,09

DB 25,23,03,44,75,26,07,08,19

频率表

DB 01,02,83,04,05,46,37,68,09

DB 01,62,03,24,05,06,57,58,09,42,34

SING_FREQ DW FREQ_ONE,FREQ_SEC,FREQ_THIRD SING_TIME DW TIME_ONE,TIME_SEC,TIME_THIRD LED_TAB DW LED_ONE,LED_SEC,LED_THIRD

DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: PUSH DS

MOV AX, 0000H

MOV DS, AX

;MIR7

MOV AX, OFFSET MIR7;取中断入口地址

MOV SI, 006FH*4;中断矢量地址,低位存偏移地址

MOV [SI], AX;填 IRQ7 的偏移矢量

MOV AX, CS;段地址

MOV SI, 006FH*4+2;高位存段地址

MOV [SI], AX;填 IRQ7 的段地址矢量

;SIR1

MOV AX, OFFSET SIR1

MOV SI, 71H*4

MOV [SI], AX

MOV AX, CS

MOV SI, 71H*4+2

MOV [SI], AX

CLI

;中断允许标志置0

POP DS

;初始化主片 8259

MOV AL, 11H

OUT 20H, AL;ICW1,11H=0001 0001,IRx为上升沿触发,多片8259级联,需要ICW4

MOV AL, 68H

OUT 21H, AL;ICW2,68H=0110 1000,程序设定的中断类型码的高5位内容为01101,中断源为???

MOV AL, 04H

OUT 21H, AL;ICW3仅用于8259的级联方式,04H=0000 0100,IR2上接有从片8259

MOV AL, 05H

OUT 21H, AL;ICW4,01H=0000 0101,优先级管理采用正常的完全嵌套方式,非缓冲方式,作为从片,非自动中断结束方式

MOV AL, 6BH

OUT 21H, AL;OCW1 用来设置中断源的屏蔽状态,6BH=0110 1011,IR4和IR7没被屏蔽,主片IR2不屏蔽

;初始化从片

MOV AL, 11H

OUT 0A0H, AL;ICW1

MOV AL, 70H

OUT 0A1H, AL;ICW2

MOV AL, 02H

OUT 0A1H, AL;ICW3

MOV AL, 01H

OUT 0A1H, AL;ICW4

MOV AL, 0FDH

OUT 0A1H,AL;OCW1=1111 1101 从片IR1不被屏蔽

STI

;中断允许标志置1;初始化8254

MOV DX,MY8254_MODE;初始化8254工作方式

MOV AL,76H

;0011 0110设置定时器1,先读写低8位,后读写高8位,工作方式3,软硬件启动

OUT DX,AL

;初始化8255

MOV DX, MY8255_CON;初始化 8255 工作方式

MOV AL, 80H;1000 0000 B口工作在方式0,做输出

OUT DX, AL

MOV AX,DATA

MOV DS,AX

AA1: NOP JMP PLAY1;CALL BEGIN

JMP AA1;子程序功能 MIR7: PUSH AX MOV INT_FLAG,0FFH INC COUNTSONG;增量加(加1)

CMP COUNTSONG,3;比较

JC RETT;条件转移,有进位(借位)转移

MOV COUNTSONG,0;大于等于3时,从第0首歌开始唱

SIR1: PUSH AX MOV INT_FLAG,0FFH INC COUNTSONG;增量加(加1)

CMP COUNTSONG,3;比较

JC RETT;条件转移,有进位(借位)转移

MOV COUNTSONG,0;大于等于3时,从第0首歌开始唱;---------是那首歌就唱哪首歌----------RETT:

MOV AH,1

MOV AL,COUNTSONG;----------

OR AL,30H

INT 10H MOV AL, 20H;-----------

OUT 20H, AL;中断结束命令

OUT 0A0H,AL

POP AX

IRET

;----------使程序顺序执行---------PLAY1:

XOR BX,BX MOV BL,COUNTSONG SHL BX,1 MOV BP,BX MOV SI,DS:SING_FREQ MOV DI,DS:SING_TIME MOV BX,DS:LED_TAB

;MOV BX,DS:LED_TAB[BP]

;MOV SI,SING_FREQ;MOV DI,SING_TIME

;响应中断 SONG1:

CMP INT_FLAG,0H

JZ PLAY

MOV INT_FLAG,0H XOR BX,BX MOV BL,COUNTSONG SHL BX,1 MOV BP,BX MOV SI,DS:SING_FREQ[BP] MOV DI,DS:SING_TIME[BP] MOV BX,DS:LED_TAB[BP]

;MOV BX,DS:LED_TAB[BP];------;;CMP INT_FLAG,0H;JZ SONG0;MOV INT_FLAG,0H;XOR BX,BX;MOV BL,COUNTSONG;ADD BX,OFFSET SING_FREQ;MOV SI,[BX];ADD BX,OFFSET SING_TIME

;MOV DI,[BX]

PLAY:

;输入时钟为 1MHz,1M = 0F4240H

MOV AX,4240H MOV DX,0FH

DIV WORD PTR [SI]

MOV DX,MY8254_COUNT1

OUT DX,AL

;装入计数初值

MOV AL,AH

OUT DX,AL

MOV DL,[DI]

;取出演奏相对时间,调用延时子程序

CALL DALLY

MOV AX,BX

MOV DX,MY8255_B

OUT DX,AL;从B口 输出音符到LED

ADD SI,2

INC DI

INC BX

;POP BX

CMP WORD PTR [SI],0

;判断是否到曲末?

JE PLAY1

JMP SONG1

;MOV DI,OFFSET TIME_LIST;装入时间表起始地址

DALLY PROC

;延时子程序 D0: MOV CX,0010H D1: MOV AX,0F00H D2: DEC AX

JNZ D2

LOOP D1

DEC DL

JNZ D0

RET DALLY ENDP

CODE ENDS END START 四.心得体会

通过课程设计我对8259A、8254、8255等芯片有了更深刻的认识。对于实验中用到的8255,8254,8259等芯片都有了较为深刻的认识,知道了如何使用这几个芯片,对于它们的初始化,赋初值,写命令字都有了较为熟悉的了解,对于8254,8055的端口地址以及命令字格式都已经差不多记下来了,使用8253芯片,主要是用来得到我们需要的音乐频率,8255工作方式控制字用来设定A、B 口和C口的数据传送方向是输入还是输出,设定各口的工作方式是3种方式的哪一种。对于8253芯片作为计数器的用法基本上已经掌握,相关的操作命令能相对熟练的运用,对于8255芯片作为并行输入输出的本质有了一定的了解,对8255的A口,B口,C口做不同的输入输出工作的具体应用有了一定的经验

因为之前几次实验都是针对单个芯片,虽然当时很多有疑问的地方都差不多弄明白了,但是综合起来应用的能力还是欠缺,通过这次的课程设计,我把课本的知识应用在了实践中,并且取得了预期的成果,不仅把自己所学知识进行了一次检验,同时锻炼了自己的动手实践能力,为自己以后将知识学以致用提供了很好的经验和借鉴。

《微型计算机课程设计.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
微型计算机课程设计
点击下载文档
相关专题 微机课程设计计算器 微型计算机 课程设计 微机课程设计计算器 微型计算机 课程设计
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文