




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
汇编语言课程设计 指针式屏显电子钟设计姓 名 刘尊惠 学 号 02045039 班 级 计022班一基本设计要求 1 在屏幕上显示一个适当大小的圆形,再圆形道上均匀的分配着60个点,代表1秒60秒的位置,凡是5倍的点应当比其他的大。 2 以圆中心为轴,画一条斜线代表秒针,采用定时中断方式,每过1秒钟,秒针移动一个位置。 3 定时源可以使用试验箱上的8253。 4 按“ESC”之后,结束演示。二 扩展要求 屏幕上显示时、分、秒针,没有使用中断定时方式,采用的是系统实时时间。三 课设基本思想 屏幕设置为图形方式,采用模块化编程,主模块显示界面信息,每个子模块负责一个功能,然后通过模块调用来实现。 首先调用画圆及画线子模块显示圆形表盘,及时、分、秒针,然后调用秒针移动子模块式电子钟能够运行。 在秒针移动子模块中,首先通过cos和sin两个功能模块来确定秒针移动的度数,其次分别对秒、分、时进行擦除重写操作,再分别对表盘及圆心进行刷新,这样就实现了时、分、秒针的动态变化。四 程序流程图 开始显示信息调用画线子模块画出时分秒针调用系统实时时钟显示模块Clk显示系统时间调用擦除、重写及角度确定子模块进行指针移动调用renovate及enovate进行表盘及圆心的刷新接收键盘字符是否为q结束YN 五课设原代码:* *堆栈段 *.286;*STACK_SEG SEGMENT STACK STACK_BUF DW 120 DUP(?) TOP EQU $-STACK_BUFSTACK_SEG ENDS;* 数据段 *DATA_SEG SEGMENT PARAquitbuf DB 0ah,0dh,0ah,0dh, welcome to use this programme! sigle DB 80h absx DW 0 absy DW 0 sut DW 0erroybz DB 0 r0 DW 90x0 DW 320y0 DW 245 count0 db 0 count_hour DB 11 count_minute DB 11yuanxinx DW 0yuanxiny DW 0 s DB 0s2 DB 0 s3 DB 0hour DW 0hour2 DW 0 minute DW 0minute2 DW 0 second DB 0 second2 DB 0 sin_x DW 0sin_xx DW 0 x DW 0y DW 0x1 DW 0 xminy DW 0yminx DW 0 xmax DW 0 ymax DW 0 ymin DW 0xmin DW 0 sjx_xminy DW 0sjx_yminx DW 0 sjx_xmax DW 0 sjx_ymax DW 0 sjx_ymin DW 0sjx_xmin DW 0 yuanx DW 0yuany DW 0 y1 DW 0x2 DW 0y2 DW 0x3 DW 0y3 DW 0 DIancolor DB 0 color DB 2color_hour DB 2color_min DB 6color_second DB 9 color4 DB 10color5 DB 11color6 DB 12 backgroundcolor DB 1 page1 DB 0y2y1 DW 0 x2x1 DW 0 sjx_y2y1 DW 0 sjx_x2x1 DW 0 DATA_SEG ENDS;* *代码段* CODE_SEG SEGMENT PARAMAIN PROC FAR ASSUME CS:CODE_SEG,DS:DATA_SEG ASSUME SS:STACK_SEGSTART: MOV AX,STACK_SEG MOV SS,AX MOV SP,TOP MOV AX,DATA_SEG MOV DS,AX beg: MOV AX,0012h ;显示欢迎信息 INT 10h MOV DX,0010h CALL b1002 LEA BP,quitbuf CALL msg beg2: CALL skin2 CALL skin3 CALL CLk MOV second,DH MOV second2,DH MOV count_minute,11 CALL minute_lin XOR DX,DX MOV AX,minute2 MOV CX,12 DIV CX MOV CX,AX ;分针初始化 POP AX ADD AX,CX MOV hour2,AX MOV count_hour,11 CALL hour_lin CALL CLk MOV DL,DH CALL bcd2 XOR AH,AH MOV CL,12 DIV CL MOV count_minute,AH ;秒针初始化 DEC count_minute XOR DX,DX MOV AX,minute2 MOV CX,12 DIV CX ;时针初始化 MOV count_hour,DL DEC count_hour INC second2kk3: CLI CALL second_lin STI JMP ks ks: MOV AH,1 ;扫描缓冲区 INT 16h JZ kk3 MOV AH,8 INT 21h JMP kk3;*秒针代码段* second_lin PROC NEAR PUSHa CALL CLk CMP second2,DH JE to_second_quit JMP second_lin_nextto_second_quit:JMP second_quitsecond_lin_next: MOV SIgle,80h MOV second2,DH MOV Color,0 MOV DL,second ;擦除 CALL bcd2 MOV AH,0 MOV CL,6 MUL CL MOV BX,r0 ADD BX,10 CALL renovate MOV DX,yuanx MOV x1,DX MOV DX,yuany MOV y1,DX ADD AX,180 ADD BX,300 CALL renovate MOV DX,yuanx MOV x2,DX MOV DX,yuany MOV y2,DX CALL linex CALL liney MOV SIgle,80h ;重写 MOV AL,color_second MOV color,AL MOV DL,second2 CALL bcd2 MOV AH,0 MOV CL,6 MUL CL MOV BX,r0 ADD BX,10 CALL renovate MOV DX,yuanx MOV x1,DX MOV DX,yuany MOV y1,DX ADD AX,180 ADD BX, 300 CALL renovate MOV DX,yuanx MOV x2,DX MOV DX,yuany MOV y2,DX CALL linex CALL liney CALL yuanxin MOV DL,second2 MOV second,DL CALL minute_lin CALL skin2 MOV CL,second2 MOV second,CL CMP count_minute,11 JE second_kk1 INC count_minute JMP second_quitsecond_kk1: MOV count_minute,0 second_quit: POPa RETsecond_lin ENDP ;*时针代码段* hour_lin PROC NEAR PUSHa CMP count_hour,11 JB tohour_yl JMP hour_lin_nexttohour_yl: MOV SIgle,3 JMP hour_ylhour_lin_next: MOV count_hour,0 MOV SIgle,5 CALL CLk MOV DL,CH CALL bcd2 CMP AL,12 JB hour_kk1 SUB AL,12hour_kk1: MOV CL,30 MUL CL PUSH AX XOR DX,DX MOV AX,minute2 MOV CX,12 DIV CX MOV CX,AX ;minurte2/12 POP AX ADD AX,CX MOV hour2,AX MOV Color,0 ;擦掉 MOV AX,hour MOV BX,r0 ADD BX,20 CALL renovate MOV DX,yuanx MOV x3,DX MOV DX,yuany MOV y3,DX ADD AX,270 ADD BX,400 CALL renovate MOV DX,yuanx ;擦掉 MOV x2,DX MOV DX,yuany MOV y2,DX MOV DX,x0 MOV x1,DX MOV DX,y0 ;擦掉 MOV y1,DX CALL sjx ADD AX,180 CALL renovate MOV DX,yuanx ;擦掉 MOV x2,DX MOV DX,yuany MOV y2,DX SUB BX,100 CALL renovate MOV DX,yuanx MOV x3,DX MOV DX,yuany MOV y3,DX ;擦掉 CALL sjx MOV SIgle,4hour_yl: MOV AL,color_hour;重写 MOV color,AL MOV AX,hour2 MOV BX,r0 ADD BX,70 CALL renovate MOV DX,yuanx MOV x3,DX MOV DX,yuany MOV y3,DX ADD AX,90 ADD BX,600 CALL renovate MOV DX,yuanx MOV x2,DX MOV DX,yuany MOV y2,DX ;重写 ADD AX,180 CALL renovate MOV DX,yuanx MOV x1,DX MOV DX,yuany MOV y1,DX CALL sjxx CALL sjxy ADD AX,270 SUB BX,100 CALL renovate MOV DX,yuanx MOV x3,DX ;重写 MOV DX,yuany MOV y3,DX CALL sjx CALL sjxx CALL sjxy MOV CX,hour2 MOV hour,CXhour_quit: POPa REThour_lin ENDP ;*分针代码段* minute_lin PROC NEAR PUSHa CMP count_minute,11 JB tominute_yl JMP minute_lin_nexttominute_yl: MOV SIgle,0 JMP minute_ylminute_lin_next: INC count_hour CALL CLk MOV DL,CL CALL bcd ;调进制转化函数 MOV CL,6 MUL CL PUSH AX MOV DL,second2 CALL bcd2 XOR AH,AH MOV CL,12 DIV CL MOV CL,AL ;second2/12 POP AX MOV CH,0 ADD AX,CX MOV minute2,AX AAAa1: MOV SIgle,2 MOV Color,0 MOV AX,minute MOV BX,r0 ADD BX,10 CALL renovate MOV DX,yuanx MOV x3,DX MOV DX,yuany MOV y3,DX ADD AX,268 ADD BX,800 CALL renovate MOV DX,yuanx MOV x2,DX MOV DX,yuany MOV y2,DX MOV DX,x0 MOV x1,DX MOV DX,y0 MOV y1,DX CALL sjx ADD AX,180 CALL renovate MOV DX,yuanx MOV x2,DX MOV DX,yuany MOV y2,DX ADD AX,90 SUB BX,200 CALL renovate MOV DX,yuanx MOV x3,DX MOV DX,yuany MOV y3,DX CALL sjx inc count0 cmp count0,5 jnz minute_yl mov count0,0 ; * 重写 * minute_yl: MOV sigle,1 MOV AL,color_min MOV color,AL MOV AX,minute2 MOV BX,r0 ADD BX,30 CALL renovate MOV DX,yuanx MOV x3,DX MOV DX,yuany MOV y3,DX ADD AX,90 ADD BX,900 CALL renovate MOV DX,yuanx MOV x2,DX MOV DX,yuany MOV y2,DX ADD AX,180 CALL renovate MOV DX,yuanx MOV x1,DX MOV DX,yuany MOV y1,DX CALL sjxx CALL sjxy ADD AX,270 SUB BX,200 CALL renovate MOV DX,yuanx MOV x3,DX MOV DX,yuany MOV y3,DX CALL sjxx CALL sjxy MOV CX,minute2 MOV minute,CX CALL hour_lin minute_kk1: minute_quit: POPa RETminute_lin ENDP ;*刷新表盘,*renovate PROC NEAR PUSHa ADD AX,270 PUSH AX CALL SIn MOV DX,0 MOV CX,BX DIV CX CMP SI,1 JE hjian ADD AX,y0 JMP renovate_kk1hjian: MOV CX,y0 SUB CX,AX MOV AX,CXrenovate_kk1: MOV yuany,AX POP AX CALL cos MOV DX,0 MOV CX,BX DIV CX CMP SI,1 JE hjian2 ADD AX,x0 JMP renovate_kk2hjian2: MOV CX,x0 SUB CX,AX MOV AX,CXrenovate_kk2: MOV yuanx,AX POPa RETrenovate ENDP ;*调用系统实时时间* Clk PROC MOV AH,2 INT 1ah RETCLk ENDP ;* *角度变换函数* cos PROC NEAR ADD AX,90 cos_kk1: CALL SIn RETcos ENDP SIn PROC NEAR PUSH CX PUSH DX PUSH BXsin360: CMP AX,90 JA dy90sto0_90: MOV SI,0 JMP pp1dy90: CMP AX,180 JBE z91to180 JMP dy180z91to180: MOV CX,180 SUB CX,AX MOV AX,CX MOV SI,0 JMP pp1z181to270: SUB AX,180 MOV SI,1 JMP pp1z271to360: CMP AX,359 JA zdy359 MOV CX,360 SUB CX,AX MOV AX,CX MOV SI,1 JMP pp1zdy359: SUB AX,360 JMP SIn360 dy180: CMP AX,270 JBE z181
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 3 游戏中的观察 教学设计-2024-2025学年科学一年级上册教科版
- 《1 我们知道的植物》(教学设计)-2024-2025学年教科版科学一年级上册
- 跨境电商纠纷调解平台2025年线上法律咨询服务法律文书处理研究
- 2025年吴兴区绿化植物采购合同
- 农民工的劳务合同样本
- 4.1 交通运输 第一课时 说课稿-2025-2026学年八年级地理上学期人教版
- 2025年北京私营企业劳动合同模板
- 2025年建筑工程委托代理合同参考
- 2025年食品总代理合同范本
- DB65T 3589-2014 碱茅种植技术规程
- 虹桥智慧伴游服务系统项目
- PDCA循环法在提高ICU患者床单元消毒的合格率中的应用
- 浙江省医疗机构制剂许可证换发证检查标准
- GB/T 27696-2011一般起重用4级锻造吊环螺栓
- GB/T 14365-2017声学机动车辆定置噪声声压级测量方法
- 2022年东台市城市建设投资发展集团有限公司招聘笔试试题及答案解析
- 保险金信托基础知识课件
- 高中必修人教A版高中数学必修1指数函数一 完整版课件PPT
- QC080000有害物质管理评审报告
- DB35∕T 2023-2021 生猪无抗饲养技术规范
- 倪海厦人纪之针灸 全
评论
0/150
提交评论