资源描述:
《表盘式时钟汇编原代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、汇编语言课程设计指针式屏显电子钟设计姓名刘尊惠学号02045039班级计022班一.基本设计要求1在屏幕上显示一个适当大小的圆形,再圆形道上均匀的分配着60个点,代表1秒—60秒的位置,凡是5倍的点应当比其他的大。2以圆中心为轴,画一条斜线代表秒针,采用定时中断方式,每过1秒钟,秒针移动一个位置。3定时源可以使用试验箱上的8253。4按“ESC”之后,结束演示。二.扩展要求屏幕上显示时、分、秒针,没有使用中断定时方式,采用的是系统实时时间。三.课设基本思想屏幕设置为图形方式,采用模块化编程,主模块显示界面信息,每个子模块负责一个功能,然后通过模块调用来实现。首先
2、调用画圆及画线子模块显示圆形表盘,及时、分、秒针,然后调用秒针移动子模块式电子钟能够运行。在秒针移动子模块中,首先通过cos和sin两个功能模块来确定秒针移动的度数,其次分别对秒、分、时进行擦除重写操作,再分别对表盘及圆心进行刷新,这样就实现了时、分、秒针的动态变化。四.程序流程图开始显示信息调用画线子模块画出时分秒针调用系统实时时钟显示模块Clk显示系统时间调用擦除、重写及角度确定子模块进行指针移动调用renovate及enovate进行表盘及圆心的刷新接收键盘字符是否为q结束YN五.课设原代码:*********堆栈段*********.286;******
3、************************************************STACK_SEGSEGMENTSTACKSTACK_BUFDW120DUP(?)TOPEQU$-STACK_BUFSTACK_SEGENDS;**********数据段**********DATA_SEGSEGMENTPARAquitbufDB0ah,0dh,0ah,0dh,'welcometousethisprogramme!sigleDB80habsxDW0absyDW0sutDW0erroybzDB0r0DW90x0DW320y0DW245count0db0c
4、ount_hourDB11count_minuteDB11yuanxinxDW0yuanxinyDW0sDB0s2DB0s3DB0hourDW0hour2DW0minuteDW0minute2DW0secondDB0second2DB0sin_xDW0sin_xxDW0xDW0yDW0x1DW0xminyDW0yminxDW0xmaxDW0ymaxDW0yminDW0xminDW0sjx_xminyDW0sjx_yminxDW0sjx_xmaxDW0sjx_ymaxDW0sjx_yminDW0sjx_xminDW0yuanxDW0yuanyDW0y1DW0x2D
5、W0y2DW0x3DW0y3DW0DIancolorDB0colorDB2color_hourDB2color_minDB6color_secondDB9color4DB10color5DB11color6DB12backgroundcolorDB1page1DB0y2y1DW0x2x1DW0sjx_y2y1DW0sjx_x2x1DW0DATA_SEGENDS;**********代码段**********CODE_SEGSEGMENTPARAMAINPROCFARASSUMECS:CODE_SEG,DS:DATA_SEGASSUMESS:STACK_SEGST
6、ART:MOVAX,STACK_SEGMOVSS,AXMOVSP,TOPMOVAX,DATA_SEGMOVDS,AXbeg:MOVAX,0012h;显示欢迎信息INT10hMOVDX,0010hCALLb1002LEABP,quitbufCALLmsgbeg2:CALLskin2CALLskin3CALLCLkMOVsecond,DHMOVsecond2,DHMOVcount_minute,11CALLminute_linXORDX,DXMOVAX,minute2MOVCX,12DIVCXMOVCX,AX;分针初始化POPAXADDAX,CXMOVhour2,A
7、XMOVcount_hour,11CALLhour_linCALLCLkMOVDL,DHCALLbcd2XORAH,AHMOVCL,12DIVCLMOVcount_minute,AH;秒针初始化DECcount_minuteXORDX,DXMOVAX,minute2MOVCX,12DIVCX;时针初始化MOVcount_hour,DLDECcount_hourINCsecond2kk3:CLICALLsecond_linSTIJMPksks:MOVAH,1;扫描缓冲区INT16hJZkk3MOVAH,8INT21hJMPkk3;********秒针代码段****
8、**second_lin