(大学计算机作业)实验报告模板

西北师范大学《大学计算机基础》实验报告

西北师范大学《大学计算机基础》实验报告

西北师范大学《大学计算机基础》实验报告

西北师范大学《大学计算机基础》实验报告

西北师范大学《大学计算机基础》实验报告

西北师范大学《大学计算机基础》实验报告

西北师范大学《大学计算机基础》实验报告

西北师范大学《大学计算机基础》实验报告

西北师范大学《大学计算机基础》实验报告

西北师范大学《大学计算机基础》实验报告

西北师范大学《大学计算机基础》实验报告

西北师范大学《大学计算机基础》实验报告

 

第二篇:中山大学实验报告模板+微机交通灯报告

中山大学       实验报告

                  SUN YAT-SEN UNIVERSITY

           院(系)                       学  号                         审批     

           专  业                        实验人                                                  

实验题目:实验八:交通灯控制

 

                                                                           

四.实验流程图

                                                                     

                                                                         

五、实验程序:

data  segment

io8255a        equ 28ah

io8255b        equ 28bh

io8255c        equ 288h

io8253a        equ 280h

io8253b        equ 281h

io8253c        equ 283h

led      db        3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh

mesg1    db        0dh,0ah,'Input a num (1--9),other key is exit:','$'

mesg2    db        0dh,0ah,'Error!','$'

second   db        ?

tl       db        ?

now      db        ?

data ends

code segment

     assume  cs:code,ds:data

start:mov ax,data

      mov ds,ax

     

      mov dx,io8255b        ;8255A口输出,C口输入

      mov ax,89h

      out dx,al

   

      mov dx,io8253c         ;8253计数器0为方式3

      mov al,36h

      out dx,al

      mov dx,io8253a

      mov ax,10000          ;写入计数器0初值10000

      out dx,al

      mov al,ah

      out dx,al

     

      mov ax,cs

      mov ds,ax

      mov dx,offset int3

      mov ax,250bh

      int 21h              ;设置IRQ3的中断矢量         

     

      in al,21h            ;读中断屏蔽寄存器

      and al,0f7h          ;开放IRQ3中断

      out 21h,al

     

      mov ax,data

      mov ds,ax

input:mov dx,offset mesg1    ;显示提示信息

      mov ah,9

      int 21h

     

      mov ax,0c01h           ;清空缓存并读入一个字符

      int 21h

     

      cmp al,'1'             ;检测是否为1--9

      jl exit

      cmp al,'9'

      jg exit

      jmp next

exit: mov dx,2a8h

      mov al,0

      out dx,al

      mov dx,io8255c

      mov al,0

      out dx,al

      mov ah,4ch

      int 21h     

next: sub al,30h             ;字符经过处理后为绿灯亮的秒数,存入second的第二位

      mov bl,10

      mul bl

      sub al,5

      mov second,al

      mov tl,al

     

      sti                    ;开中断

    

ld:   mov al,second          ;亮灯1

      mov ah,0

      mov cx,ax

     

      mov dx,2a8h

      mov al,81h

      out dx,al

      mov now,al

l1:   call delay

      mov ah,0bh

      int 21h

      cmp al,0ffh

      jz input

      loop l1

     

      mov dx,2a8h            ;亮灯2

      mov al,82h

      out dx,al

      mov now,al

      mov cx,5

l2:   mov al,tl

      mov bx,offset led  ;使BX指向段码管首址

      xlat

      mov dx,io8255c

      out dx,al

      call delay

      dec tl

      mov ah,0bh

      int 21h

      cmp al,0ffh

      jz input

      loop l2

     

      mov al,5

      mov tl,al

     

      mov dx,io8255c      ;关数码管

      mov al,0

      out dx,al

     

      mov al,second        ;亮灯3

      mov ah,0

      mov cx,ax

     

      mov dx,2a8h

      mov al,24h

      out dx,al

      mov now,al

l3:   call delay

      mov ah,0bh

      int 21h

      cmp al,0ffh

      jnz next1

      jmp input

next1:loop l3

      mov dx,2a8h            ;亮灯4

      mov al,44h

      out dx,al

      mov now,al

      mov cx,5

l4:   mov al,tl

      mov bx,offset led  ;使BX指向段码管首址

      xlat

      mov dx,io8255c

      out dx,al

      call delay

      dec tl

      mov ah,0bh

      int 21h

      cmp al,0ffh

      jnz next2

      jmp input

next2:loop l4

     

      mov al,5

      mov tl,al

     

      mov dx,io8255c      ;关数码管

      mov al,0

      out dx,al

     

      jmp ld

          

int3: push ax

      push cx

      push dx

      push ds

      mov dx,io8255c      ;关数码管

      mov al,0

      out dx,al

     

      mov dx,2a8h         ;亮两个红灯

      mov al,84h

      out dx,al

           

che:  mov dx,io8255a      ;检查是否关闭紧急开关

      in al,dx

      and al,40h

      cmp al,40h

      jz che

      

      mov dx,2a8h         ;恢复之前的led状态

      mov al,now

      out dx,al

     

      pop ds

      pop dx

      pop cx

      pop ax

      mov al,20h

      out 20h,al

      sti

      iret

           

delay proc near          ;延时子程序

      mov dx,io8253c

      mov al,70h          ;设计数器1为工作方式0

      out dx,al

      mov dx,io8253b

      mov ax,100        ;写入计数器1初值

      out dx,al

      mov al,ah

      out dx,al

ag :  mov dx,io8255a

      in al,dx

      and al,80h

      cmp al,80h

      jnz  ag

yel:  in al,dx

      and al,20h

      cmp al,20h

      jnz back

      mov al,now

      mov ah,0

      push ax

      call yellow

      pop ax

      mov now,al

      mov dx,2a8h

      out dx,al

back: ret

delay endp

yellow proc near

bg:   mov al,42h

      mov now,al

      mov dx,2a8h

      out dx,al

      mov dx,io8253b

      mov ax,50        ;写入计数器1初值

      out dx,al

      mov al,ah

      out dx,al

      mov dx,io8255a

ag2:  in al,dx

      and al,80h

      cmp al,80h

      jnz ag2

     

      mov al,0

      mov now,al

      mov dx,2a8h

      out dx,al

      mov dx,io8253b

      mov ax,50        ;写入计数器1初值

      out dx,al

      mov al,ah

      out dx,al

      mov dx,io8255a

ag3:  in al,dx

      and al,80h

      cmp al,80h

      jnz ag3   

      in al,dx

      and al,20h

      cmp al,20h

      jz bg

      ret      

yellow endp  

code ends

     end start

     

     

     

   

                                                                                                                             


相关推荐