1、 微机系统与汇编语言微机系统与汇编语言 课程设计课程设计 (题目)(题目) 姓名姓名 班级班级 学号学号 2013/12/262013/12/26 内容要求:内容要求: 一设计内容一设计内容 设计并实现随音乐伴奏而按某种规律显示的彩灯。 二二. . 设计要求设计要求 用实验箱上的 8253 控制扬声器发声,演唱 3 首不同的歌曲。 通过实验箱上的 8255A 驱动二极管发光。 发光二极管的闪烁以音调的不同而不同 通过中断信号选择歌曲。 三三. . 总体设计总体设计 1. 1. 设计思路:设计思路: 1本次实验应用了 8254,8255,8259 芯片组 28254 用于计数和连接扬声器,用计数
2、器 1 实现音乐播放的控制,方式 3。 提供因每个音符频率不同而产生的音乐输出,片选信号接到系统总线的 IOY2(端口地 址为 0680) 38255A 驱动二极管发光,伴随音乐而变换。用 B 口作输出,片选信号接到 系统总线的 IOY0(端口地址为 0600H) 48259 采用级联方式, 提供中断控制歌曲的切换, 主片的中断类型号为68H, 接 MIR7.从片中断类型号为 70H, 接 SIR1 。 每按一次 MIR7 或 SIR1, 切换一首歌。 5共有三首歌,0-友谊地久天长,1-祝你生日快乐,2-两只老虎,从第一 首开始播放,然后判断有无中断,没有就继续播,有就判断计数器的值,大于等
3、 于 3 就重置为 0 (第一首) , 否则就用计数器的值找下一首要播放的歌曲的频率表、 时间表、彩灯的控制表,然后取出播放新的音乐。 2.2. 硬件连接图硬件连接图 我的改为片选 CS 接 IOY2,用的计数器 1,即把 GA TE0、CLK0、OUT0 改为 GA TE1、CLK1、OUT1 我的片选信号 CS 接到 IOY0,用的 B口输出,即把 PA0-PA7 改为 PB0-PB7 3. 软件流程图软件流程图 4. 4. 4. 程序代码程序代码 IOY0 EQU 0600H IOY2 EQU 0680H MY8254_COUNT0 EQU IOY2+00H ;8254 计数器 0 端口
4、地址 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 COUNTSONGDB 0 INT_FLAG DB 0 FR
5、EQ_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,0
6、4,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,