




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中国矿业大学计算机学院信息安全10-4班硬件课程设计——电子琴-12-计算机科学与技术学院硬件课程设计个人报告姓名:学号:班级:信安10-4班设计题目:可存储式电子琴指导教师:二〇年十二月二十七日课程设计指导教师评阅书指导教师评语:成绩:指导教师签字:年月日摘要在这次的硬件实验中,我们利用学习的微机原理与接口技术这门课程课上我们学到的一些计算机硬件工作的基本原理,汇编语言程序设计方法,微型计算机接口技术,建立微型计算机系统的整体概念,初步形成微机系统软硬件开发的能力。为了能够学以致用,同时也为了更深入的了解熟悉可编程定时器8253和8279。在汇编语言环境下,利用上述两种芯片,编程让8279通过识别键盘产生键值,8253识别发声从而实现计算机按照按键的不同而发出不同频率的声音。可存储式电子琴可用于设计小型发声玩具,由于本电子琴设计简单,稍加修改便可用于其它地方,如报警防盗器部件,音乐门铃等,具有一定的商业价值。本次硬件课程设计课程,是配合上学期《微型计算机原理与接口技术》的教学,也是要让我们能够更深入的认识接口芯片技术以及汇编编程,做到理论和实践相结合。在课程中,我们选择的设计项目是“可存储式电子琴”:一个简易的电子琴设备。要求我们利用相关已经学过的和没有学过的芯片连接成一个电子电路,并且通过自己用汇编语言编程,控制设计的电子电路实现电子琴的一些功能,比如:能够对于输入发出相应的单声;能够演奏一小段已经编好了的乐曲。关键词:可存储电子琴82798253门控信号程序代码目录1开发背景 32产品功能及涉及的芯片和硬件 32.1功能简介 32.2使用的主要芯片及元件 32.3各音阶频率值 32.4可编程计数器/定时器8253 42.4.18253内部结构和引脚 42.4.28253方式控制字格式 52.4.38253的工作方式3—方波发生器 52.4.4本设计中8253的功能 62.5可编程键盘—接口显示芯片8279 62.5.18253内部结构和引脚 72.5.28279的工作方式 82.5.38279的命令字及格式 102.5.4本设计中8279的功能 113实验中所遇到的问题 114实验程序 115实验感悟 156参考文献 171.开发背景上学期刚刚结束《微型计算机原理与接口技术》课程,本学期为了进一步熟悉和掌握汇编语言,通过选择课题的方式让学生单独分析和实现课题,来加强学生的动手实践能力和独立思考的能力。2.产品功能及涉及的芯片和硬件2.1功能简介按下键盘的A,B,C键实现对键盘高音,中音,低音的选择,按下1-7号键实现do-xi的发音,当按下D键时,可以通过A,B,C选择高音中音低音的预置音乐播放2.2使用的主要芯片及元件(1)各芯片及器件地址:8279的控制端地址为:20AH,数据端地址为:208H。8253的控制端地址为:213H,数据端地址为:210H。I/O输出的地址为:200H(2)按键说明:1——dou音2——ruai音3——mi音4——fa音5——sao音6——la音7——xi音A——高音转换键B——中音转换键C——低音转换键D——放音键芯片:一片8253(有详细介绍)一片8279IO芯片元件:蜂鸣器2.3个音阶频率使用8279芯片的键盘控制器,通过查看寄存器,读出分别按下不同的键时对应的寄存器值(这里只给出当按下17和A、B、C、D键的寄存器值,如图)。按键1234567ABCD寄存器键值02H0AH22H01H09H21H00H07H29H28H2BH当某一时刻按下一个键的时,可以通过和各键的寄存器值比较来判断按下键。又每个音阶都有一个确定的频率。音阶1234567高音频率(HZ)55218125871704659 15177001429784127688011369881012中音频率(HZ)262294330349392440494低音频率(HZ)1317634147680316560601755714196510222045452474049可以通过各音阶的对应频率值为8253赋初值,然后输出到音响设备,以产生相应音阶的发音。在发音过程中,可分别为8253的GATE0端输入0和1来控制开始发音和停止发音。本实验我们对于8253输入频率选择的是1MHz,故,由每个音阶的对应的频率可求出8253输入的计数值。音阶1234567高音频率(HZ)18121704 15171429127611361012中音频率(HZ)3817340130302865255122732024低音频率(HZ)76346803606057145102454540493.总体设计3.1电路原理图与说明实物图:IO输出IO输出CSCLK0CLK08253GATE0OUT0CS1MHz 1MHz1MHz 扬声器 扬声器 200-207H208-20AH210-213H200-207H208-20AH210-213H 8279芯片8279芯片5.2功能模块流程图开始8259初始化开始8259初始化8253初始化8253初始化置空寄存器置空寄存器有键按下?N有键按下?是A转入高音区Y是A转入高音区 Y 转入中音区是BY转入中音区是B是1N是1Y是2NY是2是3NY是3是4N是4NY是5Y是5是6NY是6是7N是7给8253赋对应初值NY给8253赋对应初值音响发音音响发音延时延时预置音乐程序流程图:8259初始化开始8259初始化开始8253初始化8253初始化置空寄存器置空寄存器有键按下?N有键按下?是D?N是D? Y是C?是B?是A?是C?是B?是A?低音中音低音中音高音高音给8253赋对应初值给8253赋对应初值音响发音音响发音延时延时2.4可编程计数器/定时器82532.4.18253内部结构和引脚8253的内部结构从上图可见,8253内部包含数据总线缓冲器、读/写控制逻辑、控制字寄存器和3个结构完全相同的计数器,这3个计数器分别称为计数器0、计数器1和计数器2。8253的引脚A1、A0:地址输入线,用来址8253内部的4个端口,即3个计数器和1个控制字寄存器与CPU系统地址线相连。CLK0-2:时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号。CLK可以是系统的时钟脉冲,也可以由系统时钟分频或者其他脉冲源提供。当用于定时时,这个脉冲必须是均匀的、连续的、周期精确的,而用于计数时,这个脉冲可以是不均匀的、断续的、周期不定的。GATE0-3:门控输入端,用于外部控制计数器的启动计数和停止计数的操作。两个或两个以上计数器连用时,可用此信号同步,也可用于与外部某信号的同步。OUT0-2:计数输出,当计数器从初值开始完成计数操作进,OUT引脚输出相应的信号。2.4.28253方式控制字格式D7D7BCDSC1SC0RL1RL0M2M1M0D6D5D4D3D2D1D000选择计数器001选择计数器110选择计数器211无效00计数器锁存操作01只读/写LSB10只读/写MSB11读/写LSB、MSB0二进制数1BCD000模式0001模式1x10模式2x11模式3100模式4101模式5图2-38253的方式控制字2.4.38253的工作方式3——方波发生器方式3的波形如下图所示,它的特点是:输出为周期性的方波。若计数值为N,则输出方波的周期是N个CLK脉冲的宽度。写入控制字后,输出将变为高电平,当写入计数初值后,就开始计数,输出仍为高电平;当计数到初值的一半时,输出变为低电平,直至计数到0,输出又变为高电平,重新开始计数。若计数值为偶数,则输出对称方波;如果计数值为奇数,则前(N+1)/2个CLK脉冲期间输出为高电平,后(N-1)/2个CLK脉冲期间输出为低电平。GATE信号能使计数过程重新开始,GATE=1允许计数,GATE=0禁止计数。停止后OUT将立即变高电平,当GATE再次变高以后,计数器将自动装入计数初值,重新开始计数。8253工作方式3波形2.4.48253的CLK0接1MHz时钟,GATE0接+5V,OUT0接蜂鸣器,编程使计算机的数字键0、1、2、3、4、5、6作为电子琴按键,按下即发出相应的音阶。本次实验用到的是8253的方式3——方波发生器。2.5可编程键盘——接口显示芯片82792.5.18253内部结构和引脚8279引脚图8279是可编程的键盘、显示接口芯片。它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。8279内部有键盘FIFO(先进先出堆栈)/传感器,双重功能的8*8=64BRAM,键盘控制部分可控制8*8=64个按键或8*8阵列方式的传感器。该芯片能自动消抖并具有双键锁定保护功能。显示RAM容量为16*8,即显示器最大配置可达16位LED数码显示。1)数据线DB0→DB7是双向三态数据总线,在接口电路中与系统数据总线相连,用以传送CPU和8279之间的数据和命令。2)地址线/CS=0选中8279,当A0=1时,为命令字及状态字地址;当A0=0时,为片内数据地址,故8279芯片占用2个端口地址。3)控制线CLK:8279的时钟输入线。IRQ:中断请求输出线,高电平有效。/RD、/WR:读、写输入控制线。SL0SL3:扫描输出线,用来作为扫描键盘和显示的代码输出或直接输出线。RL0RL7:回复输入线,它们是键盘或传感器矩阵的信号输入线。SHIFT:来自外部键盘或传感器矩阵的输入信号,它是8279键盘数据的次高位即D6位的状态,该位状态控制键盘上/下档功能。在传感器方式和选通方式中,该引脚无用。CNTL/S:控制/选通输入线,高电平有效。键盘方式时,键盘数据最高位(D7)的信号输入到该引脚,以扩充键功能;选通方式时,当该引脚信号上升沿到时,把RL0RL7的数据存入FIFORAM中。OUTA0OUTA3:通常作为显示信号的高4位输出线。OUTB0OUTB3:通常作为显示信号的低4位输出线。/BD:显示熄灭输出线,低电平有效。当/BD=0时将显示全熄灭。8279对显示RAM的读/写操作如果采用非地址自动增加方式对显示RAM进行读/写操作,则每次读/写前都需要通过“读显示RAM命令字”或“写显示RAM命令字”设置显示RAM的地址。而采用地址自动增加方式,只需设置起始地址,之后地址会自动增加。2.5.28279的工作方式8279有三种工作方式:键盘方式、显示方式和传感器方式。1)键盘工作方式8279在键盘工作方式时,可设置为双键互锁方式和N键循回方式。双键互锁方式:若有两个或多个键同时按下时,不管按键先后顺序如何,只能识别最后一个被释放的键,并把该键值送入FIFORAM中。N键循回方式:一次按下任意个键均可被识别,按键值按扫描次序被送入FIFORAM中。2)显示方式8279的显示方式又可分为左端入口和右端入口方式。显示数据只要写入显示RAM,则可由显示器显示出来,因此显示数据写入显示RAM的顺序,决定了显示的次序。左端入口方式即显示位置从显示器最左端1位(最高位)开始,以后显示的字符逐个向右顺序排列;右端入口方式即显示位置从显示器最右端1位(最低位)开始,已显示的字符逐个向左移位。但无论左右入口,后输入的总是显示在最右边。3)传感器方式传感器方式是把传感器的开关状态送入传感器RAM中。当CPU对传感器阵列扫描时,一旦发现传感器状态发生变化就发出中断请求(IRQ置1),中断响应后转入中断处理程序。2.5.38279的命令字及格式a.8279内部时钟设置命令字001D4D3D2D1D0001D4D3D2D1D0高三位为本命令字特征位,第五位用于设定对外部时钟CLK的分频值。b.读显示RAM命令字011AID3D2D1D0011AID3D2D1D0高三位为本命令字特征位AI:地址增加位,AI=1时,每读出一个字节后地址会自动加1,可继续读下一位字节单元的内容,而不必重写读命令。低四位为显示RAM地址,从0000到1111共16个。c.写显示RAM命令字100AID3D2D1D0100AID3D2D1D0高三位为本命令字特征位AI:地址增加位,AI=1时,每写入一个字节后地址会自动加1,可继续写下一位字节单元的内容,而不必重写读命令。低四位为显示RAM地址,从0000到1111共16个。2.5.4利用8279的键盘处理功能,连接键盘实现按键输入频率发生功能4.实验中所遇到的问题在实验过程中,对于电子琴发生原理不太熟悉,所以一开始一直不知道怎么下手。对于8279因为有彩灯的基础所以还比较顺手。实验时一直发音不准,原因在于对于发音频率一直没有输入正确,对于8253的工作方式没有弄明白。但是在老师同学的帮助下还是解决了问题。5.实验程序Z8279EQU212HD8279EQU210HLEDMODEQU00H;左边输入,八位显示外部译码八位显示LEDFEQEQU38H;扫描频率CODESEGMENTASSUMECS:CODE,DS:CODESTART:MOVDX,Z8279 ;8279初始化MOVAL,00HOUTDXMOVAL,38HOUTDXMOVDX,20BH ;8253初始化MOVAL,00110111BOUTDX PUSHCSPOPDSMOVDX,Z8279MOVAL,LEDMODOUTDXMOVAL,LEDFEQOUTDXMOVDX,D8279MOVAL,7FHOUTDXMOVDX,D8279MOVAL,7FHOUTDXMOVDX,D8279MOVAL,7DHOUTDXMOVDX,D8279MOVAL,7FHOUTDXMOVDX,D8279 MOVAL,70H OUTDX MOVDX,D8279 MOVAL,5bH OUTDX MOVDX,D8279 MOVAL,70H OUTDX, MOVDX,D8279 MOVAL,76H OUTDX,AL ;以上为写(AEDK8688) NOPPD:MOVDX,200HMOVAL,00HOUTDXMOVAL,00HMOVDX,Z8279 MOVAL,0C2H OUTDX,AL ;置空FIFO寄存器WAIIT:NOP INAL,DX MOVBL ANDAL,80H CMPAL,80H JEWAIIT ;FIFO正在清除期间则跳转等待 MOVAL,BL ANDAL,0FH CMPAL,00H JEWAIIT ;MOVAL,40H;写读FIFORAM命令字(问题出在这里) ;OUTDX ;MOVDX,D8279;读入FIFORAM内容 ;INAL,DX ;无键按下则等待 NOP ;查表,将键码放入AL中 LEABX,LED XLAT MOVDX,D8279 ;将AL中内容写到数码管上 OUTDXMOVAL,00HMOVDX,D8279;判断是哪个键INAL,DXMOVBL,ALMOVDX,Z8279;清FIFORAM寄存器 MOVAL,0C2H OUTDX MOVAL,BL CMPAL,28H;高音跳转 JEGG1CMPAL,02HJEB1CMPAL,0AHJEB2CMPAL,22HJEB3CMPAL,01HJEB4CMPAL,09HJEB5CMPAL,21HJEB6CMPAL,00HJEB7B1:MOVDX,208HMOVAL,24HOUTDXMOVAL,38HOUTDX,CALLDELAYJMPPDB2: MOVDX,208HMOVAL,07HOUTDXMOVAL,34HOUTDXCALLDELAYJMPPDB3:MOVDX,208HMOVAL,34HOUTDXMOVAL,30HOUTDXCALLDELAYJMPPDB4:MOVDX,208HMOVAL,65HOUTDXMOVAL,28HOUTDXCALLDELAYJMPPDGG1:JMPGG;中转一下MM:JMPWAIITB5:MOVDX,208HMOVAL,51HOUTDXMOVAL,25HOUTDXCALLDELAYJMPPDB6:MOVDX,208HMOVAL,72HOUTDXMOVAL,22HOUTDXCALLDELAYJMPPDB7:MOVDX,208HMOVAL,24HOUTDXMOVAL,20HOUTDXCALLDELAYJMPPDGG: MOVDX,200HMOVAL,00HOUTDXMOVAL,00H MOVDX,Z8279 MOVAL,0C2H OUTDX,AL ;置空FIFO寄存器WAIIT1:NOP INAL,DX MOVBL ANDAL,80H CMPAL,80H JEWAIIT1 ;FIFO正在清除期间则跳转等待 MOVAL,BL ANDAL,0FH CMPAL,00H JEWAIIT1 ;MOVAL,40H;写读FIFORAM命令字 ;OUTDX ;MOVDX,D8279;读入FIFORAM内容 ;INAL,DX ;无键按下则等待 NOP ;查表,将键码放入AL中 LEABX,LED XLAT MOVDX,D8279 ;将AL中内容写到数码管上 OUTDXMOVAL,00HMOVDX,D8279;判断是哪个键INAL,DXMOVBL,ALMOVDX,Z8279;清FIFORAM寄存器 MOVAL,0C2H OUTDX MOVAL,BL CMPAL,29H;中音跳转 JEMM CMPAL,02HJEB11CMPAL,0AHJEB22CMPAL,22HJEB33CMPAL,01HJEB44CMPAL,09HJEB55CMPAL,21HJEB66CMPAL,00HJEB77B11:MOVDX,208HMOVAL,12HOUTDXMOVAL,18HOUTDX,CALLDELAYJMPGGB22:MOVDX,208HMOVAL,03HOUTDXMOVAL,17HOUTDXCALLDELAYJMPGGB33:MOVDX,208HMOVAL,17HOUTDXMOVAL,15HOUTDXCALLDELAYJMPGGB44:MOVDX,208HMOVAL,28HOUTDXMOVAL,14HOUTDXCALLDELAYJMPGGB55:MOVDX,208HMOVAL,75HOUTDXMOVAL,12HOUTDXCALLDELAYJMPGGB66:MOVDX,208HMOVAL,36HOUTDXMOVAL,11HOUTDXCALLDELAYJMPGGB77:MOVDX,208HMOVAL,12HOUTDXMOVAL,10HOUTDXCALLDELAYJMPGG LEDDB07H,66H,06H,3FHDB00H,00H,00H,00HDB7FH,6DH,5BH,71HDB00H,00H,00H,00HDB00H,00H,00H,00HDB00H,00H,00H,00HDB00H,00H,00H,00HDB00H,00H,00H,00HDB6FH,7DH,4FH,79HDB00H,00H,00H,00HDB77H,7CH,39H,5EHDB00H,00H,00H,00HDB00H,00H,00H,00HDB00H,00H,00H,00HDB00H,00H,00H,00HDB00H,00H,00H,00HDELAYPROCNEARMOVDX,200HMOVAL,80HOUTDXPUSHCX MOVCX,60000D LOOP$ MOVDX,200HMOVAL,00HOUTDX POPCXRETDELAYENDPCODEENDSENDSTARTZ8279EQU212HD8279EQU210HLEDMODEQU00H;左边输入,八位显示外部译码八位显示LEDFEQEQU38H;扫描频率CODESEGMENTASSUMECS:CODE,DS:CODESTART:MOVDX,Z8279 ;8279初始化MOVAL,00HOUTDXMOVAL,38HOUTDXMOVDX,20BH ;8253初始化MOVAL,00110111BOUTDX PUSHCSPOPDSMOVDX,Z8279MOVAL,LEDMODOUTDXMOVAL,LEDFEQOUTDXMOVDX,D8279MOVAL,7FHOUTDXMOVDX,D8279MOVAL,7FHOUTDXMOVDX,D8279MOVAL,7DHOUTDXMOVDX,D8279MOVAL,7FHOUTDXMOVDX,D8279 MOVAL,70H OUTDX MOVDX,D8279 MOVAL,5bH OUTDX MOVDX,D8279 MOVAL,70H OUTDX, MOVDX,D8279 MOVAL,76H OUTDX,AL ;以上为写(AEDK8688) NOPPD:MOVDX,200HMOVAL,00HOUTDX,ALMOVAL,00HMOVDX,Z8279 MOVAL,0C2H OUTDX,AL ;置空FIFO寄存器WAIIT:NOP INAL,DX MOVBL ANDAL,80H CMPAL,80H JEWAIIT ;FIFO正在清除期间则跳转等待 MOVAL,BL ANDAL,0FH CMPAL,00H JEWAIIT ;MOVAL,40H;写读FIFORAM命令字(问题出在这里) ;OUTDX ;MOVDX,D8279;读入FIFORAM内容 ;INAL,DX ;无键按下则等待 NOP ;查表,将键码放入AL中 LEABX,LED XLAT MOVDX,D8279 ;将AL中内容写到数码管上 OUTDXMOVAL,00HMOVDX,D8279;判断是哪个键INAL,DXMOVBL,ALMOVDX,Z8279;清FIFORAM寄存器 MOVAL,0C2H OUTDX MOVAL,BL CMPAL,28H;高音跳转 JEGG1CMPAL,02HJEB1CMPAL,0AHJEB2CMPAL,22HJEB3CMPAL,01HJEB4CMPAL,09HJEB5CMPAL,21HJEB6CMPAL,00HJEB7B1:MOVDX,208HMOVAL,24HOUTDXMOVAL,38HOUTDX,CALLDELAYJMPPDB2: MOVDX,208HMOVAL,07HOUTDXMOVAL,34HOUTDXCALLDELAYJMPPDB3:MOVDX,208HMOVAL,34HOUTDXMOVAL,30HOUTDXCALLDELAYJMPPDB4:MOVDX,208HMOVAL,65HOUTDXMOVAL,28HOUTDXCALLDELAYJMPPDGG1:JMPGG;中转一下MM:JMPWAIITB5:MOVDX,208HMOVAL,51HOUTDXMOVAL,25HOUTDXCALLDELAYJMPPDB6:MOVDX,208HMOVAL,72HOUTDXMOVAL,22HOUTDXCALLDELAYJMPPDB7:MOVDX,208HMOVAL,24HOUTDXMOVAL,20HOUTDXCALLDELAYJMPPDGG: MOVDX,200HMOVAL,00HOUTDXMOVAL,00H MOVDX,Z8279 MOVAL,0C2H OUTDX,AL ;置空FIFO寄存器WAIIT1:NOP INAL,DX MOVBL ANDAL,80H CMPAL,80H JEWAIIT1 ;FIFO正在清除期间则跳转等待 MOVAL,BL ANDAL,0FH CMPAL,00H JEWAIIT1 ;MOVAL,40H;写读FIFORAM命令字 ;OUTDX ;MOVDX,D8279;读入FIFORAM内容 ;INAL,DX ;无键按下则等待 NOP ;查表,将键码放入AL中 LEABX,LED XLAT MOVDX,D8279 ;将AL中内容写到数码管上 OUTDXMOVAL,00HMOVDX,D8279;判断是哪个键INAL,DXMOVBL,ALMOVDX,Z8279;清FIFORAM寄存器 MOVAL,0C2H OUTDX MOVAL,BL CMPAL,29H;中音跳转 JEMM CMPAL,02HJEB11CMPAL,0AHJEB22CMPAL,22HJEB33CMPAL,01HJEB44CMPAL,09HJEB55CMPAL,21HJEB66CMPAL,00HJEB77B11:MOVDX,208HMOVAL,12HOUTDXMOVAL,18HOUTDX,CALLDELAYJMPGGB22:MOVDX,208HMOVAL,03HOUTDXMOVAL,17HOUTDXCALLDELAYJMPGGB33:MOVDX,208HMOVAL,17HOUTDXMOVAL,15HOUTDXCALLDELAYJMPGGB44:MOVDX,208HMOVAL,28HOUTDXMOVAL,14HOUTDXCALLDELAYJMPGGB55:MOVDX,208HMOVAL,75HOUTDXMOVAL,12HOUTDXCALLDELAYJMPGGB66:MOVDX,208HMOVAL,36HOUTDXMOVAL,11HOUTDXCALLDELAYJMPGGB77:MOVDX,208HMOVAL,12HOUTDXMOVAL,10HOUTDXCALLDELAYJMPGG LEDDB07H,66H,06H,3FHDB00H,00H,00H,00HDB7FH,6DH,5BH,71HDB00H,00H,00H,00HDB00H,00H,00H,00HDB00H,00H,00H,00HDB00H,00H,00H,00HDB00H,00H,00H,00HDB6FH,7DH,4FH,79HDB00H,00H,00H,00HDB77H,7CH,39H,5EHDB00H,00H,00H,00HDB00H,00H,00H,00HDB00H,00H,00H,00HDB00H,00H,00H,00HDB00H,00H,00H,00HDELAYPROCNEARMOVDX,200HMOVAL,80HOUTDXPUSHCX MOVCX,60000D LOOP$ MOVDX,200HMOVAL,00HOUTDX POPCXRETDELAYENDPCODEENDSENDSTART预置音乐程序:Z8279EQU212HD8279EQU210HLEDMODEQU00H ;左边输入,八位显示外部译码八位显示LEDFEQEQU38H ;扫描频率CODESEGMENTASSUMECS:CODESTART:MOVDX,Z8279 ;8279初始化MOVAL,00HOUTDXMOVAL,38HOUTDXMOVDX,20BH ;8253初始化MOVAL,00110111BOUTDXPD:MOVDX,200HMOVAL,00HOUTDXMOVAL,00HMOVDX,Z8279 MOVAL,0C2H OUTDX,AL ;置空FIFO寄存器WAIIT:NOP INAL,DX MOVBL,AL ANDAL,80H CMPAL,80H JEWAIIT ;FIFO正在清除期间则跳转等待 MOVAL,BL ANDAL,0FH CMPAL,00H JEWAIIT ;无键按下则等待 MOVAL,00HMOVDX,D8279 ;判断是哪个键CMPAL,28HJEGAOCMPAL,28HJEZHONGCMPAL,28HJEDIYGAO:CALLGAOYINJMPPDZHONG:CALLZHONGYINJMPPDDIY:CALLDIYINJMPPDZHONGYINPROCNEARMOVCX,02HWW1:MOVDX,208H;1MOVAL,24HOUTDXMOVAL,38HOUTDX,CALLDELAY2 MOVDX,208H;2MOVAL,07HOUTDXMOVAL,34HOUTDXCALLDELAY2MOVDX,208H;3MOVAL,34HOUTDXMOVAL,30HOUTDXCALLDELAY2;1MOVDX,208HMOVAL,24HOUTDXMOVAL,38HOUTDX,CALLDELAY2LOOPWW1MOVCX,02HWW3:MOVDX,208HMOVAL,34HOUTDXMOVAL,30HOUTDXCALLDELAY2 MOVDX,208HMOVAL,65HOUTDXMOVAL,28HOUTDXCALLDELAY2 MOVDX,208HMOVAL,51HOUTDXMOVAL,25HOUTDXCALLDELAY2MOVDX,208HMOVAL,51HOUTDXMOVAL,25HOUTDXCALLDELAY2LOOPWW3MOVCX,02HWW5: MOVDX,208HMOVAL,51HOUTDXMOVAL,25HOUTDXCALLDELAYMOVDX,208HMOVAL,72HOUTDXMOVAL,22HOUTDXCALLDELAY;MOVDX,208HMOVAL,51HOUTDXMOVAL,25HOUTDXCALLDELAY MOVDX,208HMOVAL,65HOUTDXMOVAL,28HOUTDXCALLDELAYMOVDX,208HMOVAL,34HOUTDXMOVAL,30HOUTDXCALLDELAY2MOVDX,208HMOVAL,24HOUTDXMOVAL,38HOUTDX,CALLDELAY2LOOPWW5MOVCX,02HWW7:MOVDX,208HMOVAL,07HOUTDXMOVAL,34HOUTDXCALLDELAY2 MOVDX,208HMOVAL,02HOUTDXMOVAL,51HOUTDXCALLDELAY2MOVDX,208HMOVAL,24HOUTDXMOVAL,38HOUTDX,CALLDELAY2LOOPWW7 RETZHONGYINENDP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAOYINPROCNEARMOVCX,02HW1:MOVDX,208H;1MOVAL,12HOUTDXMOVAL,18HOUTDX,CALLDELAY2 MOVDX,208H;2MOVAL,04HOUTDXMOVAL,17HOUTDXCALLDELAY2MOVDX,208H;3MOVAL,17HOUTDXMOVAL,15HOUTDXCALLDELAY2;1MOVDX,208HMOVAL,12HOUTDXMOVAL,18HOUTDX,CALLDELAY2LOOPW1MOVCX,02HW3:MOVDX,208H;3MOVAL,17HOUTDXMOVAL,15HOUTDXCALLDELAY2 MOVDX,208H;4MOVAL,29HOUTDXMOVAL,14HOUTDXCALLDELAY2;5 MOVDX,208HMOVAL,76HOUTDXMOVAL,12HOUTDXCALLDELAY2;5MOVDX,208HMOVAL,76HOUTDXMOVAL,12HOUTDXCALLDELAY2LOOPW3MOVCX,02HW5: MOVDX,208H;5MOVAL,76HOUTDXMOVAL,12HOUTDXCALLDELAYMOVDX,208H;6MOVAL,36HOUTDXMOVAL,11HOUTDXCALLDELAY;5MOVDX,208HMOVAL,76HOUTDXMOVAL,12HOUTDXCALLDELAY MOVDX,208H;4MOVAL,29HOUTDXMOVAL,14HOUTDXCALLDELAYMOVDX,208H;3MOVAL,17HOUTDXMOVAL,15HOUTDXCALLDELAY2MOVDX,208H;1MOVAL,12HOUTDXMOVAL,18HOUTDX,CALLDELAY2LOOPW5MOVCX,02HW7:MOVDX,208H;2MOVAL,04HOUTDXMOVAL,17HOUTDXCALLDELAY2 MOVDX,208H;5MOVAL,76HOUTDXMOVAL,12HOUTDXCALLDELAY2MOVDX,208H;1MOVAL,12HOUTDXMOVAL,18HOUTDX,CALLDELAY2LOOPW7 RETGAOYINENDP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;DIYINPROCNEARMOVCX,02HWWW1:MOVDX,208H;1MOVAL,34HOUTDXMOVAL,76HOUTDX,CALLDELAY2 MOVDX,208H;2MOVAL,03HOUTDXMOVAL,68HOUTDXCALLDELAY2MOVDX,208H;3MOVAL,60HOUTDXMOVAL,60HOUTDXCALLDELAY2;1MOVDX,208HMOVAL,34HOUTDXMOVAL,76HOUTDX,CALLDELAY2LOOPWWW1MOVCX,02HWWW3:MOVDX,208H;3MOVAL,60HOUTDXMOVAL,60HOUTDXCALLDELAY2 MOVDX,208H;4MOVAL,14HOUTDXMOVAL,57HOUTDXCALLDELAY2;5 MOVDX,208HMOVAL,02HOUTDXMOVAL,51HOUTDXCALLDELAY2;5MOVDX,208HMOVAL,02HOUTDXMOVAL,51HOUTDXCALLDELAY2LOOPWWW3MOVCX,02HWWW5: MOVDX,208H;5MOVAL,02HOUTDXMOVAL,51HOUTDXCALLDELAYMOVDX,208H;6MOVAL,45HOUTDXMOVAL,45HOUTDXCALLDELAY;5MOVDX,208HMOVAL,02HOUTDXMOVAL,51HOUTDXCALLDELAY MOVDX,208H;4MOVAL,14HOUTDXMOVAL,57HOUTDXCALLDELAYMOVDX,208H;3MOVAL,60HOUTDXMOVAL,60HOUTDXCALLDELAY2MOVDX,208H;1MOVAL,34HOUTDXMOVAL,76HOUTDX,CALLDELAY2LOOPWWW5MOVCX,02HWWW7:MOVDX,208H;2MOVAL,03HOUTDXMOVAL,68HOUTDXCALLDELAY2 MOVDX,208H;5MOVAL,02HOUTDXMOVAL,57HOUTDXCALLDELAY2MOVDX,208H;1MOVAL,34HOUTDXMOVAL,76HOUTDX,RETDIYINENDPDELAYPROCNEARMOVDX,200HMOVAL,80HOUTDXPUSHCXMOVCX,60000D LOOP$MOVDX,200HMOVAL,00HOUTDX POPCXRETDELAYENDPDELAY2PROCNEARMOVDX,200HMOVAL,80H OUTDX PUSHCX MOVCX,60000D LOOP$ MOVCX,60000D LOOP$ MOVDX,200HMOVAL,00HOUTDX POPCXRETDELAY2ENDPDELAY3PROCNEARMOVDX,200HMOVAL,80H OUTDX PUSHCX MOVCX,60000D LOOP$ MOVCX,60000D LOOP$ MOVCX,60000D LOOP$ MOVDX,200HMOVAL,00HOUTDX POPCXRETDELAY3ENDPDELAY4PROCNEARMOVDX,200HMOVAL,80H OUTDX PUSHCX MOVCX,60000D LOOP$ MOVCX,60000D LOOP$ MOVCX,60000D LOOP$ MOVCX,60000D LOOP$ MOVDX,200HMOVAL,00HOUTDX POPCXRETDELAY4ENDPCODEENDSENDSTART6.实验感悟1、通过本次实验基本了解了微机原理与接口实验箱的的8253,8255,8279器件的功能,锻炼了自己的编程水平,使自己解决碰到问题解决的能力进一步提高。2、充分理解了实验箱的部分器件的功能,为以后用试验箱打下了基础,从会用到熟练掌握方向发展。3、做实验就是一个学习的过程,做实验使自己复习了旧知识和学习到新知识,并且经常遇到需要解决的问题,锻炼了自己独立解决问题的能力。4、通过老师和同学的帮助,经过四周完成了实验,但发现自己仍有许多要学的东西,在今后的学习生活中希望老师多多指导。七.参考文献[1]周荷琴吾秀清主编《微机原理与接口技术》合肥:中国科学技术出版社2021[2]李恩林陈斌生主编《微机接口技术300例》北京:机械工业出版社2021[3]贾金铃主编《微型计算机原理及应用—理论,实验,课程设计》重庆:重庆大学出版社2021[5]《88TC接口实验指导书》[6]《微机原理与接口技术实验与实践教程》汤书森清华大学出版社[7]《硬件课程设计大纲》马海波中国矿业大学计算机学院[8]《硬件课程指导书》马海波,刘厚泉中国矿业大学计算机学
社会实践报告系别:班级:学号:姓名:作为祖国未来的事业的继承人,我们这些大学生应该及早树立自己的历史责任感,提高自己的社会适应能力。假期的社会实践就是很好的锻炼自己的机会。当下,挣钱早已不是打工的唯一目的,更多的人将其视为参加社会实践、提高自身能力的机会。许多学校也积极鼓励大学生多接触社会、了解社会,一方面可以把学到的理论知识应用到实践中去,提高各方面的能力;另一方面可以积累工作经验对日后的就业大有裨益。进行社会实践,最理想的就是找到与本专业对口单位进行实习,从而提高自己的实战水平,同时可以将课本知识在实践中得到运用,从而更好的指导自己今后的学习。但是作为一名尚未毕业的大学生,由于本身具备的专业知识还十分的有限,所以我选择了打散工作为第一次社会实践的方式。目的在于熟悉社会。就职业本身而言,并无高低贵贱之分,存在即为合理。通过短短几天的打工经历可以让长期处于校园的我们对社会有一种更直观的认识。实践过程:自从走进了大学,就业问题就似乎总是围绕在我们的身边,成了说不完的话题。在现今社会,招聘会上的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年春季学期主题班会教案:探索人工智能的未来
- 2025年新学期攻略:《囊萤夜读》教学课件更新
- 2024年关于高二迎接高三演讲稿范文(17篇)
- 水果的创业计划书(4篇)
- 电力修理知识培训课件
- 路政业务知识培训课件
- DB31∕601-2012 地理标志产品 金山蟠桃
- 关于中国建筑与防震减灾的研究论文汇报
- 物流系统分析 课件 项目九-任务三 (三)多式联运优化模型
- 砌体结构工程事故分析与处理
- 《临床疾病概论》课件
- 安全生产费用使用台账
- 锌精矿价格计算公式
- 舞台设计课件
- 高中英语 高中阅读高频单词
- TRD工法施工方案(长业范本)
- 模板安装三检记录表
- 安全费用提取、使用台账
- 部编版六年级语文下册全册课件PPT
- 北京市历年中考语文现代文之记叙文阅读25篇(2003-2021)
- 新教科版六年级下册科学全册重点题型练习课件(含答案)
评论
0/150
提交评论