美文网首页
CUMT中国矿业大学18级微机原理与接口技术实验考试

CUMT中国矿业大学18级微机原理与接口技术实验考试

作者: Redcarp | 来源:发表于2020-07-13 19:23 被阅读0次

    ⚠感谢我可爱的室友们在实验考试前的一部分学习资料的提供
    ⚠感谢SWDL(大佬)、ZYLDL(大佬)、LXQDL(大佬)
    ⚠捕获一只大佬,同是矿大微机原理与接口技术实验考试https://blog.csdn.net/u011377996/article/details/80957490

    ⭐实验考试要求:
    ⚠不必担心箱子有没有坏,老师在考试前都会测一遍箱子,找出没有问题的箱子给大家用,但是不排除在考试中途坏掉了的可能性...
    (据说后面考试的班级有出现箱子坏了的状况...)
    ⚠可带书,可带U盘(一定要带之前写的代码,考试就是前面芯片使用的大杂烩),甚至拿手机也么的问题(毕竟网上没原题)
    ⚠课程分值占比:20%平时(前三次实验+实验报告)+80%考试
    ⚠考试时间:2小时(如果2h未完成目标,将抽顺序检查成果)
    ⚠考试分组:4人/组,特殊情况3人/组或5人/组,大概率按学号顺序组安排(这个是老师安排,不能自由组队)
    ⚠未完成的情况下:据说考试成绩最高给到75(面对老师的提问回答流畅),然后根据表现酌情减分

    ⭐考试题目(第7套卷子)
    键盘+DAC0832锯齿波+软延时(参考实验二中的第三个 [2-3] 和实验三中的第二个 [3-2] )
    实验原理图还要画下217页的图6.20???
    实验现象:一通电直流电机一直转,从小键盘输入F后,七段LED显示器显示F,直流电机变成锯齿波效果(转 -> 停 -> 转 -> 停),从键盘输入其他字符,七段LED显示器显示输入的字符,但直流电机一直转
    用新箱子注意运行是点开始执行,不是开始调试 -> 连续执行,我们组就被这个问题坑了...

    考试题目(第7套).jpg

    ⭐实物图有4张,都是一样的,角度稍有不同

    实物图1.jpg 实物图2.jpg 实物图3.jpg 实物图4.jpg

    ⭐话不多说,上代码!!!

    ;端口地址
    PORT_A      EQU    0290H;8255A口地址
    PORT_B      EQU    0291H;8255B口地址
    PORT_C      EQU    0292H;8255B口地址
    PORT_CTL    EQU    0293H;8255控制口地址
    
    ;数据段,键盘扫描码表
    DATA SEGMENT
    ;          0      1      2      3      4      5      6      7
    TABLE DB   77H,   7BH,   7DH,   7EH,  0B7H,  0BBH,  0BDH,  0BEH
    ;          8      9      A      B      C      D      E      F
          DB  0D7H,  0DBH,  0DDH,  0DEH,  0E7H,  0EBH,  0EDH,  0EEH
    ;0~F的七段代码编码,实验箱是共阳极接法
    TABLE1 DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H
           DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H
    DATA ENDS
    
    ;代码段
    CODE SEGMENT
    ASSUME CS:CODE, DS:DATA
    START: MOV AX,DATA
           MOV DS,AX
    ;初始化8255A,方式0,B口做输入,A口和C口输出
           MOV DX,PORT_CTL ;指向控制口
           MOV AL,10000010B ;控制字
           OUT DX,AL ;写入控制字
    ;向所有行送0
           MOV DX, PORT_A ;A口输出
           MOV AL,00H
           OUT DX,AL ;向A口各位输出
    ;读列,查看是否所有键均松开
           MOV DX,PORT_B
    WAIT_OPEN:IN AL,DX;键盘状态读入B口
           AND AL,0FH ;只查低四位(列值)
           CMP AL,0FH ;是否都为1?(各键都松开? )
           JNE WAIT_OPEN ;否,继续查
    ;各键均已松开,再查列是否有0,即是否有键按下
    WAIT_PRES:IN AL,DX ;读B口
            AND AL,0FH;只查低四位
            CMP AL,0FH;是否有键按下
            JE  WAIT_PRES;无,等待
    ;有键按下,延时20ms,消抖动
            MOV CX,16EAH
    DELAY:  LOOP DELAY ;延时20ms
    ;再查列,看键是否仍被压着
            IN  AL,DX
            AND AL,0FH
            CMP AL,0FH
            JE  WAIT_PRES;已松开,转出等待压键
    ;键仍被压着,确定哪一个键被压下
            MOV AL,0FEH;先使D0=0
            MOV CL,AL ;CL=1111 1110B
    NEXT_ROW:MOV DX,PORT_A;A口
            OUT DX,AL ;向一行输出低电平
            MOV DX, PORT_B  ;B口
            IN  AL,DX ;读入B口状态
            AND AL,0FH ;只截取列值
            CMP AL,0FH ;是否均为1?
            JNE ENCODE ;否,表示有键按下,转去编码
            ROL CL ,01 ;均为1,使下行输出0
            MOV AL,CL
            JMP NEXT_ROW ;查看下行
    ;已找到有一列为低电平,对压键的行列值进行编码
    ENCODE: MOV BX,000FH ;建立地址指针,先指向F键对应的地址
            IN  AL,DX ;从B口读入行列值
    NEXT_TRY:CMP AL,TABLE[BX] ;读入的行列值与表中查得的相等吗?
            JE  DONE ;相等,转出
            DEC BX ;不等,转向下一个(键值较小者)地址
            JNS NEXT_TRY ;若地址尚未减为负值,继续查
            MOV AH,01 ;若减为负值,置出错码01->AH中
            JMP EXIT ;退出
    DONE:   MOV DX,PORT_C;C口输出
            MOV AL,TABLE1[BX];检查0~F的七段代码表
            OUT DX,AL
            CMP BX,0FH;看这里看这里看这里啊喂!!!这里做出改变,其余和实验[2-3]代码一致,BX中的值与F作比较
            JE DIANJI;看这里看这里看这里啊喂!!!这里做出改变,其余和实验[2-3]代码一致,若输入为F,就跳转电机那段
            MOV BX,500H;将500H存入BX中,用于双层循环延时
    DELAY1: MOV CX,12346;将12356存入CX
    DELAY2: LOOP DELAY2;循环DELAY2,每循环一次,CX自减一次
            DEC BX;BX减1
            JNZ DELAY1;若BX不为0,则跳至DELAY1
            JMP  START;循环检测该程序 
    ;直流电机的程序
    DIANJI:
    ;锯齿波
    BO:     MOV AL,0
    AGAIN:  INC AL;AL=AL+1
            MOV DX,280H
            OUT DX,AL;数据打入输入寄存器,启动D/A转换
            MOV BX,100
    DELAY3: MOV CX,10005;双层循环延时,软延时程序
    LOOP1:  LOOP LOOP1;CX=CX-1
            DEC BX
            JNZ DELAY3
            CMP AL,0
            JNZ AGAIN;AL不为0,继续循环,为零则退出
            OUT DX,AL;数据打入输入寄存器
            JMP BO;循环检测该代码                  
    EXIT:   HLT 
    CODE    ENDS
            END START
    

    ⭐我猜你是在熬夜看代码(噗哈哈哈哈哈哈哈),或者是考场上现学?

    咸鱼.gif 有趣有趣.gif

    ⭐嗷,最好是考前看到这篇文章叭,毕竟下面还有大礼包(5张18级考试真题的图)

    第1套.jpg 第3套.jpg 第4套.jpg 第8套.jpg 第10套.png 慢慢摇.gif
    ⭐晚安,预祝成绩理想!!!加油💪!!!

    相关文章

      网友评论

          本文标题:CUMT中国矿业大学18级微机原理与接口技术实验考试

          本文链接:https://www.haomeiwen.com/subject/npshxktx.html