汇编电子表综合实验报告

时间:2024.4.1

电子表综合实验

http://image.ganjistatic1.com/training/20091130/11/1259552507-4961.gif

姓 名:王    江

班级:F0 80 51 02

学号:5080519046

日 期:2 0 1 1. 1. 5

一、             实验目的

了解并掌握键盘扫描程序的原理及程序实现,掌握8253的记数功能,并结合8259采用中断方式实现时钟的LED显示功能,并且可以独立地与其他的程序模块进行拆分组合实现一定的功能;在学习过程中学会与老师交流,与同学合作,并且努力发挥创新思维,进一步掌握微机课程。

二、             实验要求

1.使用8253 提供时钟,设计1 个定时装置,显示分和秒。

2.在按下特定键时实现特定功能。

按下“A”键--清除计数,显示:00-00

    按下“B”键--启动电子表,实时显示时钟

    按下“C”键--停止键,显示按下时刻时钟不变

    按下“D”键--终止键,熄灭数码管

按下“E”键--设置键,设置时钟初始值

三、             实验创新

我们结合学过的音频发声器,然后想到可以用来报时,于是我们将实现这个功能,也就是当时间增到一个的时间点,我们调用一个独立的发声程序,来实现报时功能。

四、             实验思路

 主程序中对8253进行初始化,使用方式3,每10ms产生一个方波。同时对8259初始化采用IR0、IR1、IR2、IR3、 IR4,每隔10ms刷新一次进行时钟显示。

五、             实验流程图

六、             实验程序

CODE SEGMENT

ASSUME CS:CODE,DS:CODE,SS:CODE

ORG

JMP START

PA0 EQU 0FFE0H           ;8259端口地址

PA1 EQU 0FFE1H

PB0 EQU 0FFE4H          ;82533端口0地址

PB1 EQU 0FFE5H

PB2 EQU 0FFE6H

PBC EQU 0FFE7H          ;8253控制端口地址

ZXK EQU 0FFDCH          ;字形口

ZWK EQU 0FFDDH          ;字位口

IN_KEY EQU 0FFDEH

START: CLI

       MOV AX,OFFSET INT8259

       MOV BX,003CH

       MOV [BX],AX

       MOV BX,003EH

       MOV AX,0000H

       MOV [BX],AX

       MOV AL,3EH     ;8253端口0方式3

       MOV DX,PBC

       OUT DX,AL

       MOV AL,7EH     ;8253端口1方式3

       OUT DX,AL

       MOV AL,13H     ;ICW1

       MOV DX,PA0    

       OUT DX,AL

       MOV AL,08H     ;ICW2

       MOV DX,PA1

       OUT DX,AL

       MOV AL,1FH     ;ICW4

       OUT DX,AL

       MOV AL,0FCH    ;OCW1只允许IR1,IR2

       MOV BP,64H

       MOV AL,00H     ;端口0方波1800,

       MOV DX,PB0     ;输入时钟614.4K,输出10ms

       OUT DX,AL

       MOV AL,18H

       OUT DX,AL

       STI

PROM:   LEA SI,BUF

         CALL KEY

        MOV AL,[SI]

        CMP AL,0AH

        JNZ PROA

        JMP PROM

        CMP AL,0BH

        JNZ PROB

        JMP PROM

        CMP AL,0CH

        JNZ PROC

        JMP PROM

        CMP AL,0DH

        JNZ PROD

        JMP PROM

        CMP AL,0EH

        JNZ PROE

         LEA SI,DISBUF+1

         CMP [SI],00

         JNZ PRON

         INC SI

         CMP [SI],06

         JNZ PRON

         INC SI

         INC SI

         CMP [SI],00

         JNZ PRON

         INC SI

         CMP [SI],00

         JNZ PRON

         CALL ALM1

        JMP PROM

PRON:      LEA SI,DISBUF+1

         CMP [SI],00

         JNZ PROM

         INC SI

         CMP [SI],07

         JNZ PROM

         INC SI

         INC SI

         CMP [SI],00

         JNZ PROM

         INC SI

         CMP [SI],00

         JNZ PROM

         CALL ALM1

        JMP PROM

KEY:       MOV BL,00     

SCAN:       MOV AL,00

        MOV DX,ZWK

        OUT DX,AL

         INC DX

        IN AL,DX

        AND AL,03H

        CMP AL,03H

         JZ SCAN

         MOV CX,14FFH

CYCLE:  LOOP CYCLE    ;去抖动

        MOV CL,0FEH

         MOV CH,8     

FCOL:   MOV AL,CL

        MOV DX,ZWK    ;

         OUT DX,AL

         ROL CL,1        

         INC DX        ;行线地址

         IN  AL,DX

         AND AL,03H

         CMP AL,03H   

         JNZ FROW

         INC BL

         DEC CH

         JNZ FCOL

         JMP DONE

FROW:   ROR AL,1

        JNC PROCE       ;若CF为0,表示这一列有键按下,转到处理程序

        ADD BL,8        ;BL是键值

        JMP FROW

PROCE:  MOV AL,BL

        MOV BX,OFFSET ALTER

        XLAT

        MOV [SI],AL

         RET

PROA:   CLI

         LEA DI,RUNBUF

         MOV [DI],0

         LEA DI,DISBUF

        MOV [DI],10H

        MOV [DI+1],0

        MOV [DI+2],0

        MOV [DI+3],11H

         MOV [DI+4],0

         MOV [DI+5],0

         STI

         RET

PROB:   CLI

         LEA DI,RUNBUF

         MOV [DI],01

         STI

         RET

PROC:   CLI

         LEA DI,RUNBUF

         MOV [DI],0

         STI

         RET

PROD:   CLI

        LEA DI,RUNBUF

         MOV [DI],0

         LEA DI,DISBUF

        MOV [DI],10H

        MOV [DI+1],10H

        MOV [DI+2],10H

        MOV [DI+3],10H

         MOV [DI+4],10H

         MOV [DI+5],10H

         STI

         RET

PROE:   CLI

         LEA DI,RUNBUF

         MOV [DI],0

         LEA SI,DISBUF

         INC SI

         STI

         CALL KEY

         INC SI

         CALL KEY

         INC SI

         INC SI

         CALL KEY

         INC SI

         CALL KEY

         RET

        

INT8259:PUSH SI

         PUSH AX

         DEC BP

         JNZ DISPLAY

         LEA DI,RUNBUF

         CMP [DI],01

         JNZ DISPLAY

         LEA DI,DISBUF

         MOV BP,64H

         INC [DI+5]       

         CMP [DI+5],0AH

         JNZ DISPLAY

         MOV [DI+5],00

         INC [DI+4]

         CMP [DI+4],06

         JNZ DISPLAY

         MOV [DI+4],00

         INC [DI+2]

         CMP [DI+2],0AH

         JNZ DISPLAY

         MOV [DI+2],00

         INC [DI+1]

         CMP [DI+1],06

         JNZ DISPLAY

         MOV [DI+1],00

DISPLAY:CALL DIS

         POP AX

         POP SI

         IRET

DIS:    PUSH DX

         PUSH CX

         PUSH BX

         LEA BX,DISBUF

         MOV CL,20H

DIS1:   MOV AL,[BX]

        PUSH BX

        MOV BX,OFFSET LED

        XLAT

        POP BX

        MOV DX,ZXK          ;字形显示

        OUT DX,AL

        MOV AL,CL

        MOV DX,ZWK          ;字位显示

        OUT DX,AL

        CMP CL,01H

        JZ EXIT

        INC BX

        SHR CL,1

        JMP DIS1

EXIT:   POP BX

         POP CX

         POP DX

        RET

ALM1:   PUSH CX

         CALL L1

         CALL L2

         CALL L3

         CALL L3

         CALL L4

         CALL L5

         CALL L4

         CALL L3

         CALL L2

         CALL L2

         CALL L3

         CALL L2

         CALL L3

         CALL L4

         CALL L5

         CALL L5

         CALL L1

         CALL L2

         CALL L3

         CALL L3

         CALL L4

         CALL L5

         CALL L4

         CALL L3

         CALL L2

         CALL L2

         CALL L3

         CALL L4

         CALL L3

         CALL L2

         CALL L1

         CALL L1

         POP CX

         RET          

L1:     MOV DX,A0    ;C

        MOV AX,0930H

        OUT DX,AL

        MOV AL,AH

         OUT DX,AL

         CALL DELAY

        RET

L2:     MOV DX,A0    ;D

        OUT DX,AL

         MOV AL,AH

             CALL DELAY

             RET

L3:     MOV DX,A0    ;E

             MOV AX,074AH

             OUT DX,AL

             MOV AL,AH

             OUT DX,AL

             CALL DELAY

             RET

L4:     MOV DX,A0    ;F

             MOV AX,06DFH

             OUT DX,AL

             MOV AL,AH

             OUT DX,AL

             CALL DELAY

             RET

L5:     MOV DX,A0    ;G

             MOV AX,061EH

             OUT DX,AL

             MOV AL,AH

             OUT DX,AL

             CALL DELAY

             RET

L6:     MOV DX,A0    ;A

             MOV AX,0573H

             OUT DX,AL

             MOV AL,AH

             OUT DX,AL

             CALL DELAY

             RET

L7:     MOV DX,A0    ;B

             MOV AX,04DAH

             OUT DX,AL

             MOV AL,AH

             OUT DX,AL

             CALL DELAY

             RET

L8:     MOV DX,A0    ;STOP

             MOV AX,00001H

             OUT DX,AL

             CALL DELAY

             RET

DELAY:  PUSH CX

         MOV CX,2

P:    PUSH CX

        MOV CX,8000H

        LOOP $

        POP CX

        LOOP P

         POP CX

        RET       

ALTER  DB 7H,4H,8H,5H,9H,6H,0AH,0BH,1H,0H,2H,0FH,3H,0EH,0CH,0DH

LED    DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C0H,0A1H,86H,8EH,0FFH,0BFH

BUF    DB ?

RUNBUF DB ?

DISBUF DB ?,?,?,?,?,?

CODE ENDS

END START

七、             实验中出现的问题及解决方案

1、          刚开始我们准备选电子琴,因为比较简单,但是因为有很多人选了电子琴,于是我们改成了电子表,可是我们在显示过程中发现,要让那个时钟在走的时候去调用一个发生程序的话就会占用总线,就不能记数了,于是我们有选用了另外一个芯片来实现这个功能,那就是8255,于是问题就解决了。

2、          在让8253显示时钟的时候,刚开始我对这个怎么把时间加一秒一分没什么概念,而且当我们调用中断的时候也可能会导致8253没有计时和计数,但是经过我们讨论并且参考一些其他程序,我们解决了这个问题,采用中断时刻实现的。

3、          在具体的程序与硬件相连的时候,我们的显示程序都没有显示,查了很多时候都没有办法显示,我想我们的时钟显示程序出了问题,有些问题没有考虑到,还需要改进;虽然我们自己写的程序没有显示,可是,我们找了一个实现其他功能的程序来参考了一下,发现我们有很多地方都想错了,不过在以后的复习考试或者将来走上工作岗位后会进一步学习到相关知识。

八、             实验感想

1、  在这次实验中,觉得同学们在课堂上讲的时候都很有风采,很有气度,很有梦想,也想创新,可是一到了实验室里面,就都不行了,被很多实际的问题束缚住了,看出我们对多块芯片的组合和功能实现掌握不够,还有很多细节需要注意。联系我们的人生吧,大家在课堂上的时候就像我们现在一样,都很有梦想,很有胆量,想要过多么美好的人生,可是一到实验室就都泄了气,走出实验室的时候,好像都成了落水狗一样。但是,我很不希望我们的人生也是这样,最后被生活的刻刀雕刻变了摸样,谁都不认识了。

2、  在这次试验中,老师对我们抱了很大的希望,可是当我们在实验室里面都是失败的时候,老师也一点没有生气,让我们看到了作为一个老师的开阔的心胸,同时也让我们大家深深地觉得应该好好对待自己的梦想。同时,当我们大家都有同样的感觉的时候,我们发现,同学之间的距离近了很多;大学里面。同学之间交流太少了,有这样的机会,真的值得感谢。

九、             课程建议

1、  在上课的时候,我们都是快上课了才看到课件,于是也没怎么预习,希望能在课前看到PPT能预习一下就好了,因为很多时候有一些地方漏掉了没跟上,于是以后的也就跟不上了,但是看到PPT能预习一下,不懂得问一下同学就能跟上了。

2、  上课的时候发现我们都买了新版的教材,老师用的都是旧版教材,新版上很多都没有,希望以后老师给其他同学上课之前能通知一下买哪一种教材,对一个学期的开始是一个重要的开始。

3、  老师的课后作业都差不多没有,这样的话我们下来都打游戏了,没有兴趣去看书巩固,希望在以后的教学课程中,老师最好能找助教,然后布置一些重要的作业,便于同学们课下巩固,这是很重要的,很多同学就是因为没有作业,程序也是抄的,于是天天打游戏,最后嘛,也就不理想了。

4、  微机上机实验刚开始几次还好,老师会挑一些问题来问我们,逼着我们把程序看懂,等待着老师检查,可是后来老师不怎么问问题了,于是同学们也就COPY一下程序,运行一下也就结束了,不懂的同学也就不想弄懂了,会的同学也都不教了,希望以后的教学时,实验的时候最好有两个老师都在,不然也要有一个老师和一个助教,这样可以让跟多的同学可以得到有效的解决。

5、  还有就是因为后来都是只有一个老师检查实验了,同学们很多问题很没有时间问老师,结果一等就到了下课了,强烈要求老师能请助教老师也来帮助同学们解决问题,相信学校也会同意你们的申请的。

6、  最后,一个学期下来,真的很感谢两位老师的毫无保留的教导,同学们都能感受到两位老师的工作热情还有对同学们认真负责的态度,从老师们的身上,我们也学到了很多,衷心地祝愿两位老师在以后的工作中能越来越好,也能培养出更加优秀的人才,为交大乃至中国的下一代准备精兵利器。谢谢

                                         

更多相关推荐:
电子束的偏转与聚焦(北京科技大学物理实验报告)

北京科技大学实验预习报告实验名称电子束的偏转与聚焦实验目的研究带电粒子在电场和磁场中偏转和聚焦的规律了解电子束线管的构造和工作原理实验原理A电子束流的产生与控制通过阴极K发射电子控制栅极G是一个顶端有小孔的圆筒...

实验九、电子束的偏转

605舍海霞晓珍春云文静实验九电子束的偏转实验时间20xx1125

电子束电偏转实验报告册

实验项目名称电子射线束的电偏转和磁偏转学号姓名班级实验序号时间第周星期第节课联系方式实验目的1研究带电粒子在电场及磁场中偏转的规律2了解电子阴极射线管的结构和原理3学会用外加磁场的方法使示波管中的电子射线束产生...

电子荷质比的测定(实验报告)

大学物理实验报告实验名称磁聚焦法测电子荷质比实验日期20xx0424实验人员袁淳20xx02120xx6实验目的大学物理实验报告磁聚焦法测电子荷质比1了解电子在电场和磁场中的运动规律2学习用磁聚焦法测量电子的荷...

扫描电镜实验报告

扫描电镜实验报告姓名xxx专业xxx学号xxxxxxxx一实验目的1了解扫描电镜的构造及工作原理2学习扫描电镜的样品制备3学习扫描电镜的操作3利用扫描电镜对铝粉的形貌进行观察二实验原理扫描电镜原理是由电子枪发射...

物理设计实验---电子束实验

物理设计实验电子束实验摘要根据电荷在磁场中的运动特点分析了电子束的磁聚焦原理推导了测量电子荷质比的计算公式并测量电子荷质比附带舟山地磁水平分量测量关键词地磁磁聚焦电子荷质比螺旋运动测量物理学方面的一些常数是物理...

电子束实验

电选二电子束实验随着近代科学的发展电子技术的应用已深入到各个领域关于带电粒子在电场磁场中运动规律已成为掌握现代科学技术必不可少的居处知识我们常用示波器中的示波管又名阴极射线管来研究带电粒子在电场磁场中运动的归路...

电子测量课程实验报告

福建农林大学计算机与信息学院课程名称姓名系专业年级学号指导教师职称信息工程类实验报告电子测量技术电子信息工程系电子信息工程年月日实验项目列表福建农林大学计算机与信息学院信息工程类实验报告系电子信息工程系专业电子...

SEM实验报告

Lab1扫描电镜与能谱仪的原理及应用一实验目的1熟悉扫描电子显微镜的结构与工作原理2熟悉试样制备的要求3了解真空镀碳膜仪真空镀铂膜仪的操作步骤及状态参数了解扫描电子显微镜的操作规程熟悉二次电子像与背散射电子像的...

SEM实验报告

扫描电镜的操作一实验目的1熟悉SEM的一些基本操作2对样品表面显微结构进行观察二仪器用具SEMJSMEMP800日本电子株式会社导电胶电脑及相关软件等三实验原理从电子枪阴极发出的直径20m30m的电子束受到阴阳...

实验3.TEM(投射电镜)_实验报告.

湖北大学化学化工学院硕士研究生实验报告课程名称现代测试技术实验实验项目透射电子显微镜观察聚合物的微相分离结构专业班级20xx应用化学姓名叶青学号20xx111106000700

SEM实验报告

扫描电镜实验报告化工学院化学工程105班陈维030100890一实验目的1了解扫描电镜的用途结构及基本原理2了解扫描电镜的样品制备3上机操作利用扫描电镜电子信号观察打印纸的形貌二实验仪器钨丝扫描电镜最大放大倍数...

电子束实验实验报告(50篇)