版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、4,声/并推火挈jiangsLiuniversityofscienceandtechnology微机原理课程设计电气工程及其自动化电气与信息工程学院姓名学号班级专业学院江苏科技大学2013年9月江苏科技大学微机原理课程设计目录一、课程设计内容1二、系统功能要求12.1 基本功能要求12.2 附件功能要求1三、系统方案论证1四、系统硬件设计24.1 系统硬件原理24.2 功能模块设计64.3 遇到问题及解决措施7五、系统软件设计85.1 总体设计思想85.2 功能模块设计105.3 遇到问题及解决措施11六、总结11七、附录13江苏科技大学微机原理课程设计简易全自动洗衣机设计一、课程设计内容(1
2、)利用8255A芯片,在数码管上实时显示洗衣机档位和洗衣时间倒计时;(2)利用8254芯片,设置精确倒计时时间或者发送信号给蜂鸣器;(3)利用8259A芯片,设置按键或开关中断控制功能;(4)利用0809芯片,模拟水位传感器采集一个电压信号,控制电机旋转。二、系统功能要求2.1 基本功能要求(1)能够实现洗衣机换挡功能,比如设置“心当键”、“猾键”等不同挡位;(2)能够实现电机的正转功能;比如设置电机正转3圈,反转3圈,循环工作;(3)能够实现洗衣机按键控制,比如设置启动键"、暂停键”或停止键”(4)能够实现按键或开关控制洗衣机的暂停,比如按下暂停键”,正在旋转的电机停止工作,再按一
3、下启动键”,洗衣机又继续工作;(5)能够实现洗涤、甩干连续自动功能,甩干后,洗衣机会通过蜂鸣器发出报警声音;2.2 附件功能要求(1)能够实现洗衣机单独甩干功能,此时电机旋转速度很快;(2)能够实现洗衣机进水、排水或者洗涤、漂洗、甩干等不同功能使用不同颜色的指示灯;(3)能够实现洗涤、漂洗、甩干全过程自动化;(4)能够实现洗衣机甩干后,发出优美的音乐,音乐一直响直到人为关掉或者音乐响一定时间后自动关闭。(5)自己设计的其他有特色的功能。三、系统方案论证3.1 方案一输入设备主要有启动按钮、暂停按钮、档位选择、排水按钮、及脱水按钮输出设备主要有电源指示灯、数码管、步进电机、蜂鸣器等。江苏科技大学
4、微机原理课程设计首先构思系统的总体结构,根据设计要求确定好系统大致的硬件组成及其结构,其次根据系统的各个功能把软件分成几个不同的模块,依次实现各个模块的功能,最后把各个模块组合起来完成整个系统的功能。3.2 方案二根据任务的要求,选择了4个数码管作为信号输出,以状态输入开关作为输入信号,者B连接至8255A芯片上。步进电动机由8255PC4-PC7驱动,其中洗衣过程漂洗过程排水过程的时间都由8254提供定时信号,实现在预定时间状态的转换。在对芯片进行初始化之后,先判断输入信号的状态,根据输入状态的不同调用不同的子程序,鉴于定时程序在很多子程序里调用到,多次编写加长了程序的长度,所以每次在调用之
5、前先将计数值读入一个寄存器中,在延时程序中读取此寄存器中的数值即可。当按照输入状态运行完之后,最后检测到已完成的时候就启动蜂鸣报警,洗衣过程完成。3.3 方案比较方案一相对来说刚开始容易,但是后续工作麻烦,不容易将每个模块有机的整合起来,会出现接口冲突,而方案二在设计初就从全局出发,充分分配好各个端口的配置及用途,避免了方案一中的冲突,所以方案二更优越。四、系统硬件设计4.1系统硬件原理(1)8255A芯片8255A是一个通用的可编程的并行接口芯片,内部有2个8位I/O口(A、B),两个4位I/O口(PC74、PC30).通过编程可设置3种工作方式,可适用于CPU与I/O设备之间的多种数据传送
6、方式的要求。C可作为数据口,可作为信号线(CPU与I/O设备之间的应答信号),可作为状态口,可按位置位/复位。8255A的内部结构如图1所示:江苏科技大学微机原理课程设计CPU接口外部接口数据控制I/OFAr*FE8位内部数据总线k组诫口C上半部(4)PC.B组端匚IC下半部(4)I心PClPC.AiRESET读/舄控制逻辑控制E组端口6C8)CS图18255的内部结构图8255的弓I脚分配:(1)D0D7:8位,双向,三态数据线,用来与系统数据总线相连;(2)端口A、B、C:PA0PA7(A组数据信号,用来连接外设);PB0PB7(B组数据信号,用来连接外设);PC0PC7(C组数据信号,用
7、来连接外设或者作为控制信号)。(3) CS、RESET、WR、RD、A1、A0(内部4个端口)。(4) VCC、GND。8255A有三种工作方式,用户可以通过编程来设置。方式0简单输入/输出一一查询方式;A,B,C三个端口均可。方式1选通输入/输出一一中断方式;A,B,两个端口均可。方式2双向输入/输出一一中断方式。只有A端口才有。工作方式的选择可通过向控制端口写入控制字来实现。(2)芯片82548254是可编程计数器/定时器。它的引脚及功能示意图如图2所示。数据总线缓冲器是8254与CPU之间的数据接口,它是一个8位双向三态缓冲器。读/写控制逻辑接受CPU送来的读/写控制信号,并加以组合完成
8、对8254内部操作的控制。8254内部包含三个独立的结构功能完全相同的16位可预置的递减计数器。控制字寄存器用来存放由CPU写入8254的方式选择控制字,以确定计数器的操作方式。江苏科技大学微机原理课程设计图2般54引脚图(3) 8259芯片8259A,可编程中断控制器芯片。它的引脚图如图3所示12S227326425574678259A上二22Q71O9201019111S121713161415图38259A弓|脚图它是可以用程序控制的中断控制芯片。单个的8259A能管理8级向量优先级中断。在不增加其他电路的情况下,最多可以级联窗级的向量优级中断系统。8259A有多种工作方式,能用于各种系
9、统。各种工作方式的设定是在初始化时通过软件进行的。在总线控制器的控制下,8259A芯片可以处于编程状态和操作状态,编程状态是CPU使用IN或OUT指令对8259A芯片进行初始化编程江苏科技大学微机原理课程设计的状态。(4) 0809芯片ADC0809是8位逐次逼近型A/D转换器。它由一个八路模拟开关,一个地址译码器,一个A/D转换器和一个三态输出所存器组成,多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换,三态输出用于锁存A/D转换完的数据,当OE端为高电平时,才可以从三态输出锁存器取走转换完成的数据。IN0-IN7:8条模拟量输入通道ADC0809对输入模拟量要求
10、:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入端前加采样保持电路。地址输入和控制线:4条ALE为地址锁存允许输入线,高电平有效,当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道模拟量通过转换器进行转换。A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。通道选择表如下表一所示。表10809通道选择表CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7数字量输出及控制线:11条ST为转换启动
11、信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在跳转期间,ST应保持低电平,EOC为转换结束信号,当EOC为高电平时,表明转换结束;否则表明正在进行A/D转换,OE为输出允许信号,用于控制三条输出锁存器想单片机输出转换得到的江苏科技大学微机原理课程设计数据,OE=1,输出转换得到的数据'OE=0出数据线呈高阻状态。D7-D0为数字量输出线CLK为时钟输入信号线,因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常频率为500KHZ0VREF(+),VREF(-)为参考电压输入。4.2 功能模块设计图4硬件功能图图4硬件功能图中,系统总体功能模块
12、在具体实践中,因硬件资源的限制有所调整,比如有些电路采用其他电路来模拟,进水部分有电位器来模拟,电机驱动用直流系统来模拟。其接线图如图5所示:XDO:XD7XA2XIOR一DOD7A08259RDXDOdXD7时钟源EXOEXODORD*VRCSD7AOCLKOAlOUTO3254GATElCIK1CLK2OUT1OUT2GATE1GEI2XIOWI0Y1WRIRO-CSINIHNTR_-5VXIORX10WI0Y1XA2XA3时钟源SPK+5V图5系统接线图江苏科技大学微机原理课程设计4.3 遇到问题及解决措施问题1:当把所有线路按照设计要求连接好过后,发现芯片8254没有输出时钟信号。解决
13、方法:芯片8254没有输出时钟信号,这表示8254没有起作用,原以为是芯片坏了,换了好几个新品牌还是一样不起作用,后来经过不断排查是由于采用了12V供电电压,实际要求是5V。问题2:当把所有的线路按照设计要求连接好之后,发现电机不能运转。解决方法:经检查是连接到电机驱动电路上的接线出现断路,换根接线就把问题解决了江苏科技大学微机原理课程设计8255、8254与8259的初始化,如:;8255初始化;初始化8254工作方式;计数器0,方式3;初始化实验系统中8259的ICW1;边沿触发、单片8259、需要ICW4;初始化实验系统中8259的ICW2;初始化实验系统中8259的ICW4;非自动结束
14、EOI;初始化实验系统中8259的OCW1;打开IR0和IR1的屏蔽位五、系统软件设计5.1 总体设计思想程序首先要用伪指令定义一下。然后是MOVDX,CADDRMOVAL,MODEOUTDX,ALMOVDX,MY8254_MODEMOVAL,36HOUTDX,ALMOVDX,MY8259_ICW1MOVAL,1BHOUTDX,ALMOVDX,MY8259_ICW2MOVAL,08HOUTDX,ALMOVDX,MY8259_ICW4MOVAL,01HOUTDX,ALMOVDX,MY8259_OCW1MOVAL,0FCHOUTDX,AL然后按照原先设计好的原理框图的步骤设计检测洗衣机开/停信号,
15、如;CHECK:MOVDX,PORTBINAL,DXTESTAL,80HJZCHECK还有接下来的点亮运行指示灯等程序。在设计中用到了子程序调用、循环、测试等程序。在编程时按照设计好的原理框图,结合微机课程上所学的具有一定功能的程江苏科技大学微机原理课程设计编出来,然后在计算机上进行调试,发现错误后再进行修改。在编程过程中要注意程序的嵌套使用,即有些程序按照前面流程图设计好了但在后面的程序中然要用,所以就要注意调用。软件可分为10个模块:主程序、键盘扫描子程序、参数设置子程序、延时子程序、显示子程序、自检程序、甩干子程序、暂停子程序、蜂鸣器子程序。系统的总体流程图如图6所示:开始调用脱水子程关
16、闭脱水标志启动蜂鸣器图6整体流程方框图江苏科技大学微机原理课程设计5.2 功能模块设计(1)延时功能模块设计根据机箱上给出的芯片我们选用了8254作为定时计数器,在延时程序中计时,在加水过程中计量加水的量。由于需要多次调用延时子程序,所以把他写成一个DALLY程序,每次调用的时候配合CALL和RET就能往返于子程序和主程序之间,之前把要记的数值放在SI寄存器中,在子程序中读取该寄存器就可以知道要记的数是多少而不必每次都重新给计数器赋值,减少了程序的步骤也使得更易读。(2)洗衣功能模块设计洗衣子程序中是一个不停的在正传反转间循环的过程,期间每次正转或者反转都调用了延时子程序,定时3S,在完成5次
17、循环过后,洗衣过程完成。(3)脱水功能模块设计脱水子程序中只需调用上面做好的延时程序,并在该延时之前打开或关闭相应的指示灯即可。然后用8086的片选信号加给0832控制电动机正转反转,根据公式:V0=-NVREF/256计算得到要使电动机保持不转的时候要输入给80H,而正转则取最大值FFH,反转取最小值00H,由于这样得到的V0不相同,所以引起了正传反转时候的速度有些差异,最后等延时子程序执行完毕后,关闭相应指示灯即可完成。脱水、延时、加水等子程序后面都要加上RET,否则将无法跳回主程序MAIN。当时在前几次通电试验的时候每次都出现在排水的时候加水指示灯亮起,需要加水后才能熄灭,后检查发现就是
18、少了一个RET导致的,执行完排水程序后没返回而是接下去执行了加水程序。(4)甩干、报警功能模块设计甩干子程序是一个不停的在正转的过程,甩干可以分为快甩和慢甩两种档位,甩干子程序还可以通过按键直接跳过洗衣进行调用。当甩干程序运行结束后,8254会产生一个时钟信号给蜂鸣器从而让蜂鸣器报警,表示洗衣过程结束。(5)加水子程序设计加水是这个总程序中很重要的部分,特别是如何将水位信号读取和比较,最终还要输出到8253进行计数。首先打开加水指示灯,将水位信号扫描到寄存器AL中。然后根据与设定好的数据进行比较确定水位信号是什么,假如检测到的10江苏科技大学微机原理课程设计是高水位的话,跳转到LEVEL,否则
19、给AL置为3,高水位的时候将控制字写给计数器0,继续执行下去直到给BL加上1,当加到与原来保存的水位信号数值相等的时候,由PC7将信号传递给8253,告之加水计数程序完成,跳出加水程序,然后关闭加水指示灯,执行下面的程序。5.3遇到问题及解决措施问题1.通过中断实现数码管计时显示与步进电机延时相互冲突,导致步进电机不能正常运转。解决方法:经过很长时间调试,还是不能成功,由于时间有限,所以最后只好通过步进电机正反转次数来计时。问题2.报警功能实现后不知道如何使它停止下来。解决办法:在进入报警子程序前加变量判断,通过按键控制变量的取反改变,停止报警。六、总结这次微机原理课程设计历时两个星期,在整整
20、两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。以前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理方框图化出来,但是我开始总觉得这样做没必要,很浪费时间。但是,这次课程设计完全改变了我以前的那种错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。其次,以前对于编程工具
21、的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各11江苏科技大学微机原理课程设计种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。这次课程设计终于顺
22、利完成了,在设计中遇到了很多编程问题,通过网络和与同学的讨论基本上得到解决,提高了自己解决和分析问题的能力。12江苏科技大学微机原理课程设计七、附录洗衣机程序;*根据查看端口资源修改下列符号值*IOY1EQU3040HIOY0EQU3000H;片选IOY0对应的端口始地址.*MY8255_AMY8255_BMY8255_C;8255的A口地址;8255的B口地址;8255的C口地址EQUIOY0+00H*4EQUIOY0+01H*4EQUIOY0+02H*4MY8255_MODEEQUIOY0+03H*4;8255的控制寄存器地址MY8254_COUNT0MY8254_COUNT1MY8254
23、_COUNT2MY8254_MODEEQUIOY1+00H*4EQUIOY1+01H*4EQUIOY1+02H*4EQUIOY1+03H*4;8254计数器0端口地址;8254计数器1端口地址;8254计数器2端口地址;8254控制寄存器端口地址IOY2EQU3080H;片选IOY0对应的端口始地址.*MY8259_ICW1MY8259_ICW2MY8259_ICW3MY8259_ICW4MY8259_OCW1址MY8259_OCW2址MY8259_OCW3址EQUIOY2+00HEQUIOY2+04HEQUIOY2+04HEQUIOY2+04HEQUIOY2+04HEQUIOY2+00HEQ
24、UIOY2+00H;实验系统中8259的ICW1端口地址;实验系统中8259的ICW2端口地址;实验系统中8259的ICW3端口地址;实验系统中8259的ICW4端口地址;实验系统中8259的OCW1端口地;实验系统中8259的OCW2端口地;实验系统中8259的OCW3端口地STACK1SEGMENTSTACK13江苏科技大学微机原理课程设计DW256DUP(?)STACK1ENDSDATASEGMENTDTABLE1DB06H,3FH,73H,77H,39H,06H,5BH,4FH,66H,80HDTABLE3DB10H,30H,20H,60H,40H,0C0H,80H,90HDTABLE
25、DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71HTIME1DB05HTIME2DB05HTIME3DB0FHMESDB'Pressanykeytoexit!',0AH,0DH,0AH,0DH,'$'FREQ_LISTDW371,495,495,495,624,556,495,556,624濒率表DW495,495,624,742,833,833,833,742,624DW624,495,556,495,556,624,495,416,416,371DW495,833,742,624
26、,624,495,556,495,556,833DW742,624,624,742,833,990,742,624,624,495DW556,495,556,624,495,416,416,371,495,0TIME_LISTDB4,6,2,DB6,2,4,DB4,4,6,DB12,4,6,DB6,2,4,DB6,2,4,4,4,6,2,4,4;时间表4,12,1,3,6,22,4,4,6,2,4,42,4,4,6,2,4,44,12,4,6,2,4,44,6,2,4,4,12DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOV
27、DS,AX14江苏科技大学微机原理课程设计15MOVDX,MY8254_MODEMOVAL,36HOUTDX,ALMOVDX,MY8254_COUNT0MOVAL,00HOUTDX,ALMOVAL,48HOUTDX,ALMOVDX,MY8254_MODEMOVAL,050HOUTDX,ALMOVDX,MY8254_COUNT1MOVAL,03HOUTDX,ALMOVAL,00HOUTDX,ALMOVDX,MY8254_MODEMOVAL,0B6HOUTDX,ALMOVDX,MY8254_COUNT2MOVAL,00HOUTDX,ALMOVAL,05HOUTDX,ALMOVDX,MY8259_I
28、CW1MOVAL,1BHOUTDX,ALMOVDX,MY8259_ICW2MOVAL,08H;初始化8254工作方式;计数器0,方式3;装入计数初值;18432分频;初始化8254工作方式;计数器2,方式0;装入计数初值;18432分频;初始化8254工作方式;计数器2,方式3;装入计数初值;18432分频;初始化实验系统中8259的ICW1;边沿触发、单片8259、需要ICW4;初始化实验系统中8259的ICW2江苏科技大学微机原理课程设计OUTDX,ALMOVDX,MY8259_ICW4MOVAL,01HOUTDX,ALMOVDX,MY8259_OCW1MOVAL,0FCHOUTDX,AL
29、MOVSI,3000HMOVSI,00HMOVSI+02H,05HMOVSI+04H,01HMOVSI+06H,01HMOVSI+08H,01HMOVSI+0AH,02HMOVSI+0CH,02HMOVSI+0EH,01HMOVDX,MY8255_MODEMOVAL,81HOUTDX,ALKAISHI:MOVSI,3000HMOVDH,SI+8CMPDH,8JAZHI1CMPDH,1JBZHI8JMPJIXUZHI1:MOVSI+8,01HJMPJIXUZHI8:MOVSI+8,08H16;初始化实验系统中8259的ICW4;非自动结束EOI;初始化实验系统中8259的OCW1;打开IR0和I
30、R1的屏蔽位;数码管显示1;数码管显示2;洗涤,甩干判断变量;电机速度档位;电机输入节拍倒转判断变量;电机方向控制变量;判断是否进入电机运行程序的变量;警报器关闭判断变量;初始化8255工作方式方式0,A口、B口输出,C口低4位输入;读取变量首地址;跳转到节拍1开始转动;跳转到节拍8开始转动江苏科技大学微机原理课程设计JIXU:CALLKEYSCANCMPSI+0EH,02HJNZCMOVDX,MY8254_MODEMOVAL,0F6HOUTDX,ALMOVAX,0000HMOVDX,MY8254_COUNT2OUTDX,ALMOVAL,AHOUTDX,ALC:MOVAH,1INT16HJZS
31、FRUNQUIT:MOVAX,4C00HINT21HSFRUN:MOVSI,3000HMOVDH,SI+0CHCMPDH,01HJNZJIXUMOVDH,SI+0AHCMPDH,01HJNZZIJIANINCSI+08HJMPRUNKAISHI1:JMPKAISHIZIJIAN:DECSI+8RUN:MOVAL,SI+8MOVBX,OFFSETDTABLE3ANDAX,00FFH;键盘扫描;初始化8254工作方式;计数器2,方式3;装入计数初值;判断是否有按键按下;无按键则跳回继续循环,;结束程序退出;读取变量首地址;判断变量SI+0CH;不相等跳转到JIXU;判断电机运行方向;正向节拍加1;
32、反向节拍减一有则退出;将变量与节拍表对应17江苏科技大学微机原理课程设计ADDBX,AXDECBXMOVAL,BXMOVDX,MY8255_COUTDX,ALDANG1:MOVDH,SI+6CMPDH,05HJNZDANG2PUSHCXMOVCX,10HDA1:CALLDALLY1CALLDALLY1CALLDALLY1CALLKEYSCANJMPPPDANG2:CMPDH,01HJNZDANG3DA2:CALLDALLY1CALLDALLY1CALLKEYSCANJMPPPDANG3:CMPDH,02HJNZPPDA3:CALLDALLY1CALLKEYSCANJMPPPDANG4:CMPD
33、H,03HJNZKAISHI1DA4:;PC口输出节拍数值;判断速度档位调用相应的延迟时间;运行个节拍;键盘扫描;跳转到PPCALLKEYSCAN18江苏科技大学微机原理课程设计;跳转到KAISHI循环;判断是否是甩干模式;判断是否是正向19PP:MOVDX,MY8259_OCW3MOVAL,0CHOUTDX,ALINAL,DXTESTAL,80HJZAAANDAL,03HCMPAL,00HJEIR0ISR序JNEIR1ISR序AA:JMPKAISHIDANG4:CMPDH,03HJNZKAISHI1DA4:CALLKEYSCANJMPKAISHIIR0ISR:MOVSI,3000HCMPSI
34、+4H,02HJZM2DIR:CMPSI+0AH,01HJZDIR1MOVSI+0AH,01HJMPM1DIR1:MOVSI+0AH,02HCALLKEYSCAN;向8259的OCW3发送查询命令;读出查询字;判断中断是否已响应;没有响应则继续查询;若为IR0请求,跳到IR0处理程;若为IR1请求,跳到IR1处理程江苏科技大学微机原理课程设计M1:M:M2:CTU:EOI:命令DECTIME1MOVAX,10DDIVTIME1MOVAL,TIME1MOVSI+02H,ALCALLKEYSCANCMPTIME1,00HJZMJMPCTUMOVSI+4H,02HMOVSI+6,02HDECTIME
35、2MOVSI,0MOVAL,TIME2MOVSI+02H,ALCMPSI+02H,00HJZFINISHJNZEOIMOVDX,MY8254_COUNT1MOVAL,00HOUTDX,ALMOVAL,03HOUTDX,ALJMPEOIMOVDX,MY8259_OCW2MOVAL,20HOUTDX,AL;洗涤圈数减1;是否洗涤结束;转入计数初值;进入甩干模式;速度档位选2;甩干计数减一;将计数值放入数码管显示;装入计数初值;18432分频;向实验系统中8259发送中断结束20江苏科技大学微机原理课程设计JMPKAISHIFINISH:MOVSI+0CH,02HCALLPLAYJMPKAISHIP
36、LAYPROCNEARSOUND:CMPSI+0EH,02HJZEOIMOVSI,OFFSETFREQ_LISTMOVDI,OFFSETTIME_LISTP1:MOVDX,1CH1.0416667M=0FE502HMOVAX,02000HDIVWORDPTRSIMOVDX,MY8254_COUNT2OUTDX,ALMOVAL,AHOUTDX,ALMOVDL,DICALLDALLY3DECTIME3ADDSI,2INCDICMPWORDPTRSI,0JESOUND;关闭进入电机程序标志;调用报警程序;装入频率表起始地址;装入时间表起始地址;输入时钟为1.0416667MHz,;取出频率值计算计数
37、初值,0F4240H/输出频率;装入计数初值;取出演奏相对时间,调用延时子程序;判断是否到曲末?PLAYENDP21江苏科技大学微机原理课程设计22;软件延时子程序;键盘扫描子程序;显示刷新彳青屏;扫描按键;有键按下则跳置GETKEY1;显示刷新DALLY1PROCNEARPUSHCXPUSHAXMOVCX,008FHD11:MOVAX,5000HD22:DECAXJNZD22PUSHCXPUSHAXCALLKEYSCANPOPAXPOPCXLOOPD11POPAXPOPCXRETDALLY1ENDPKEYSCANPROCNEARBEGIN:CALLDISCALLCLEARCALLCCSCAN
38、JNZGETKEY1JMPGOBACK1GETKEY1:CALLDISCALLDALLYCALLDALLY江苏科技大学微机原理课程设计彳青屏;再次扫描按键;有键按下则跳置GETKEY2;否则跳回开始继续循环;设置当前检测的是第几列;选取一列,将X1X4中一个置0;读Y1Y4,用于判断是哪一行按键;是否为第1行;不是则继续判断;设置第1行第1列的对应的键值;是否为第2行;不是则继续判断;设置第2行第1列的对应的键值;是否为第3行;不是则继续判断;设置第3行第1列的对应的键值;是否为第4行;不是则继续判断;设置第4行第1列的对应的键值CALLCLEARCALLCCSCANJNZGETKEY2JMP
39、BEGINGETKEY2:MOVCH,0FEHMOVCL,00HCOLUM:MOVAL,CHMOVDX,MY8255_AOUTDX,ALMOVDX,MY8255_C闭合INAL,DXL1:TESTAL,01HJNZL2MOVAL,00HJMPKCODEBEGIN1:JMPBEGINL2:TESTAL,02HJNZL3MOVAL,04HJMPKCODEL3:TESTAL,04HJNZL4MOVAL,08HJMPKCODEL4:TESTAL,08HJNZNEXTMOVAL,0CH23江苏科技大学微机原理课程设计;将第1列的值加上当前列数,确定按;保存按键值;显示刷新彳青屏;扫描按键,判断按键是否弹起;未弹起则继续循环等待弹起;当前检测的列数递增检测是否扫描到第4列;没检测到第4列则准备检测下一列KCODE:ADDAL,CL键值CALLPUTBUFPUSHAXKON:CALLDISCALLCLEARCALLCCSCANJNZKONPOPAXNEXT:INCCLMOVAL,CHTESTAL,08HJZBEGIN1ROLAL,1MOVCH,ALJMPCOLUMGOBACK1:RETKEYSCANENDPCCSCANPROCNEARMOVAL,00HMOVDX,MY8255_AOUTDX,ALMOVDX,MY8255_CINAL,DXNOTALANDAL,0FHRETCCSCANENDP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 改性聚苯板的施工方案(3篇)
- 普通铁路隧道施工方案(3篇)
- 海飞丝内容营销方案(3篇)
- 烟筒补强施工方案(3篇)
- 装修消防施工方案范本(3篇)
- 转移钢结构施工方案(3篇)
- 钢楼梯施工方案模板(3篇)
- 香味营销方案批发(3篇)
- 高考志愿填报-城市选择篇
- 2026一年级道德与法治下册 认真仔细不马虎
- 2026年一级建造师《建设工程项目管理》真题及答案
- 2026年政府采购评审专家测试卷【完整版】附答案详解
- 学校建筑屋顶分布式光伏发电示范项目设计方案
- 行业协会的职能作用和要处理好的几个关系
- 《经成人中心静脉通路装置采血技术规范(征求意见稿)》
- 内科学第六篇 第十四章 出血性疾病
- 《种植业农产品碳足迹核查技术规范(征求意见稿)》编制说明
- MOOC 中医基础理论-河南中医药大学 中国大学慕课答案
- 装饰装修工程施工组织设计完整版
- 左洛复心内科-解说词版
- 多唱魔镜ext4格式的母盘制作和权限修改方法
评论
0/150
提交评论