您好,欢迎访问三七文档
1综合实验报告(电子钟)一、实验目的主要目的是回顾《微机原理与应用》以及其他课程所学知识,并能灵活运用到实验当中。掌握8253A、7段数码管,8259A、8255A的应用。二、实验设备STAR系列实验仪一套、PC机一台。三、实验内容利用STARES598PCI实验仪设计一个具有时、分、秒显示功能的电子时钟,并定义一个启动键,当按下该键时时钟从当前设定值开始走时,时间数据可用数码管显示。(1)利用8253计数器对标准时钟信号计数,分别实现时、分、秒计时(2)键盘设定一个按键,当按键按下则从已设定的时间开始计时(已设定的时间值可在显示缓冲区中预置)(3)时、分、秒的数值均显示在数码管上四、实验步骤1、主机连线说明:E5区:CLK——B2区:2ME5区:CS、A0——A3区:CS5、A0E5区:A、B、C、D——G5区:A、B、C、DB3区:CS、A0——A3区:CS1、A0B3区:INT、INTA——ES8088:INTR、INTAB3区:IR0——C5区:OUT0C5区:CS(8253)、A0、A1——A3区:CS2、A0、A1C5区:GATE0——C1区:VCCC5区:CLK0——B2区:62.5K2、运行程序,按G5区的F键,设置时钟初值;3、观察G5区数码管上显示的时间是否正确。五、实验流程图2设置时间子程序:8253子程序:N有键按下键值=0EH键值=0FH键值在当前时间设置位有效范围内NUMBER5放弃设置暂存当前时间NUMBER+10-NUMBER(当前设置位于小时的十位上)保存当前设置于当前时间缓冲区0-闪烁标志闪烁标志=1刷新时、分、秒,使当前设置时间位置闪烁调用键扫描库函数NNNNYYYYY开始返回调用设置时间子程序0-刷新标志显示时、分、秒有键按下键值=0FH刷新标志=1调用键扫描库函数NNYYY开始N1-刷新标志初始化时、分、秒缓冲器初始化8253(计数器T0设置在模式2状态,HEX记数,CLK0/7A12H,0.5s定时)初始化8259,初始化中断向量3六、实验程序.MODELTINYEXTRNDisplay8:NEAR,GetKeyA:NEAR,GetKeyB:NEARIO8259_0EQU0F000HIO8259_1EQU0F001HCon_8253EQU0E003HT0_8253EQU0E000H.STACK200.DATAhalfsecDB0;0.5秒计数SecDB0;秒MinDB0;分hourDB0;时bufferDB8DUP(0);显示缓冲区,8个字节buffer1DB8DUP(0);显示缓冲区,8个字节bNeedDisplayDB0;需要刷新显示numberDB0;设置哪一位时间bFlashDB0;设置时是否需要刷新.CODESTART:MOVAX,@DATAMOVDS,AXMOVES,AXNOP设置闪烁标志秒缓冲器+1半秒缓冲器+11-刷新标志0-半秒缓冲器0-秒缓冲器分缓冲器+10-分缓冲器时缓冲器+10-时缓冲器秒缓冲器59半秒缓冲器=2时缓冲器23分缓冲器59NNNNYYYY开始中断返回4movsec,0;时分秒赋为00:00:00movmin,0movhour,0MOVbNeedDisplay,1;显示初始值CALLInit8253CALLInit8259CALLWriIntverSTIMAIN:CALLGetKeyA;按键扫描JNBMain1CMPAL,0FH;设置时间JNZMain1CALLSetTimeMain1:CMPbNeedDisplay,0JZMAINCALLDisplay_LED;显示时分秒MOVbNeedDisplay,0;1s定时到刷新转速Main2:JMPMAIN;循环进行实验内容介绍与测速功能测试SetTimePROCNEARLEASI,buffer1CALLTimeToBufferMOVNumber,0Key:CMPbFlash,0JZKey2LEASI,buffer1LEADI,bufferMOVCX,8REPMOVSBCMPhalfsec,0JNZFLASHMOVBL,numberNOTBLANDBX,07HLEASI,bufferMOVBYTEPTR[SI+BX],10H;当前设置位置产生闪烁效果FLASH:LEASI,bufferCALLDisplay8MOVbFlash,0Key2:CALLGetKeyAJNBKeyCMPAL,0EH;放弃设置JNZKey1JMPExitKey1:CMPAL,0FH5JZSetTime8SetTime1:CMPAL,10JNBKey;无效按键CMPnumber,0JNZSetTime2CMPAL,3;调整时的十位数JNBKeyMOVbuffer1+7,ALJMPSetTime7SetTime2:CMPnumber,1JNZSetTime3CMPbuffer1+7,2JBSetTime2_1;修改后可以在设置时间时,设置时钟为04到09之间的数值CMPAL,4JNBKeySetTime2_1:MOVbuffer1+6,ALINCnumberJMPSetTime7SetTime3:CMPnumber,3JNZSetTime4CMPAL,6;调整分的十位数JNBKeyMOVbuffer1+4,ALJMPSetTime7SetTime4:CMPnumber,4JNZSetTime5MOVbuffer1+3,AL;调整分的个位数INCnumberJMPSetTime7SetTime5:CMPnumber,6JNZSetTime6CMPAL,6;调整秒的十位数JBSetTime5_1JMPKeySetTime5_1:MOVbuffer1+1,ALJMPSetTime7SetTime6:MOVbuffer1,AL;调整秒的个位数SetTime7:INCnumberCMPnumber,8JNBSetTime8MOVbFlash,1;需要刷新JMPKeySetTime8:MOVAL,buffer1+1;确认MOVBL,106MULBLADDAL,buffer1MOVsec,AL;秒MOVAL,buffer1+4MULBLADDAL,buffer1+3MOVmin,AL;分MOVAL,buffer1+7MULBLADDAL,buffer1+6CMPal,18h;修改后可以解决时间设置时,时钟设置为24以上的数值JNBexitMOVhour,AL;时JMPExitExit:RETSetTimeENDP;hourminsec转化成可显示格式TimeToBufferPROCNEARMOVAL,secXORAH,AHMOVBL,10DIVBLMOV[SI],AHMOV[SI+1],AL;秒MOVBYTEPTR[SI+2],10H;这位不显示MOVAL,minXORAH,AHDIVBLMOV[SI+3],AHMOV[SI+4],AL;分MOVBYTEPTR[SI+5],10H;这位不显示MOVAL,hourXORAH,AHDIVBLMOV[SI+6],AHMOV[SI+7],AL;时RETTimeToBufferENDP;显示时分秒Display_LEDPROCNEARLEASI,bufferCALLTimeToBufferLEASI,bufferCALLDisplay8;显示7RETDisplay_LEDENDP;0.5s产生一次中断Timer0Int:PUSHAXPUSHDXMOVbFlash,1INChalfsecCMPhalfsec,2JNZTimer0Int1MOVbNeedDisplay,1MOVhalfsec,0INCsecCMPsec,60JNZTimer0Int1MOVsec,0INCminCMPmin,60JNZTimer0Int1MOVmin,0INChourCMPhour,24JNZTimer0Int1MOVhour,0Timer0Int1:MOVDX,IO8259_0MOVAL,20HOUTDX,ALPOPDXPOPAXIRETInit8253PROCNEARMOVDX,Con_8253MOVAL,34HOUTDX,AL;计数器T0设置在模式2状态,HEX计数MOVDX,T0_8253MOVAL,12HOUTDX,ALMOVAL,7AHOUTDX,AL;CLK0=62.5kHz,0.5s定时RETInit8253ENDPInit8259PROCNEARMOVDX,IO8259_0MOVAL,13HOUTDX,AL8MOVDX,IO8259_1MOVAL,08HOUTDX,ALMOVAL,09HOUTDX,ALMOVAL,0FEHOUTDX,ALRETInit8259ENDPWriIntverPROCNEARPUSHESMOVAX,0MOVES,AXMOVDI,20HLEAAX,Timer0IntSTOSWMOVAX,CSSTOSWPOPESRETWriIntverENDPENDSTART七、实验结果9八、实验心得通过这两天的实习使我对微机原理有了更深入的了解,原来只是停留在想象中的,就像一些编写的程序也只是通过自我检查来看程序是否错误,有些问题很难发现,但是通过这两天的实习,使原本空洞的知识进入了实际的操作中,特别是对对电子钟的实验发现微机原理可以实验很多东西,我们现实中的很多东西都是通过微机原理的编程实现的,比如十字路口的红绿灯、数字式温度计、语音模块、光照强度的测试……,切实体验到了微机原理的功能强大以及它的重要性。在实验中也发现了很多的问题,特别是很多的细节问题,比如连线的问题,有时候不注意就连错了,以至于实验不能实现,需要从头开始检查,浪费了很多时间;还有编程中的问题,一个字母错误程序就不能继续往下执行,需要重新检查修改,所以通过这两天的实习对我来说收获很大!
本文标题:电子时钟实验报告
链接地址:https://www.777doc.com/doc-4639346 .html