亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dabanew.asm

?? 微機系統課程設計 移動靶射擊比賽 源程序
?? ASM
字號:
;***********************;
;*    移動打靶  1.0     *;
;*     作者:黃儒        *;
;*     學號:08005432    *;
;***********************;
;8255CS-288h PB7-PB0接發光二極管L7-L0 PA7接led dp PA6-PA0接led g-a PC7-PC4接led位選 s3-s0
;8253Cs-280h clk0-1Mhz gate0-vcc out0-IRQ
;點陣行選—290h 紅選-298h
;ls244 k0-2,k1-4,k2-6,k3-8,k4-11,k5-13,k6-15,k7-17;
;      D0-18,D1-14,D2-16,D3-12,D4-9,D5-7,D6-5,D7-3
;2A0h~	和!IOR相或接ls244的19,1  ls244的10-GND 20-Vcc
;單脈沖接PC0




ioport		equ 0c800h-0280h
io8253a		equ ioport+280h
io8253b		equ ioport+281h
io8253c		equ ioport+283h

proth	equ	  ioport+290h
protlr	equ      ioport+298h


io8255c		equ ioport+28ah;c口
io8255b		equ ioport+28bh;控制寄存器
io8255a		equ ioport+288h;a口
io8255bb		equ ioport+289h

ls244		equ ioport+2a0h

data segment
int_vect EQU 0dH ;中斷0-7 的向量為:08h-0fh,中斷8-15 的向量為:70h-77h
irq_mask_2_7 equ 011011111b ;中斷掩碼,中斷0-7 時從低至高相應位為零,中斷8-15 時第2 位為零
irq_mask_9_15 equ 011111111b;中斷0-7 時全一,中斷8-15 時從低至高相應位為零
ioport_cent equ 0c400h ;tpc 卡中9054 芯片的io 地址
msgbb db	0dh,0ah,'YiDongDaBa  1.0',0dh,0ah,'$'
msgzz db	0dh,0ah,'Written by HuangRu(08005432)',0dh,0ah,'$'
msgz1 db	0dh,0ah,'8255CS-288h PB7-PB0接發光二極管L7-L0 PA7接led dp PA6-PA0接led g-a PC7-PC4接led位選 s3-s0',0dh,0ah,'$'
msgz2 db	0dh,0ah,'8253Cs-280h clk0-1Mhz gate0-vcc out0-IRQ',0dh,0ah,'$'
msgz3 db	0dh,0ah,'點陣行選-290h 紅選-298h',0dh,0ah,'$'
msgz4 db	0dh,0ah,'ls244 k0-2,k1-4,k2-6,k3-8,k4-11,k5-13,k6-15,k7-17',0dh,0ah,'$'
msgz5 db	0dh,0ah,'ls244 D0-18,D1-14,D2-16,D3-12,D4-9,D5-7,D6-5,D7-3',0dh,0ah,'$'
msgz6 db	0dh,0ah,'2A0h~和!IOR相或接ls244的19,1  ls244的10-GND 20-Vcc   單脈沖接PC0',0dh,0ah,'$'
msgkg db	0dh,0ah,'Press The Switch To Begin The Game!',0dh,0ah,'$'

msg1 db	0dh,0ah,'Start!',0dh,0ah,'$'
msg2 db	0dh,0ah,'Score!',0dh,0ah,'$'
msg3 db	0dh,0ah,'Pressed',0dh,0ah,'$'
msg_choose1 db	0dh,0ah,'7:Hard  8:middle 9:easy',0dh,0ah,'$'
msg_choose2 db	0dh,0ah,'Choose mode(play key 1 or 2 or 3)',0dh,0ah,'$'
sym_end db 0;結束標志
led_now db 0;當前開關狀態
key11 db 0;是否打靶
counter_time db 0;時間計數
counter_mov  db 0;靶移動計數
num_mov db  0;靶移動計時
random_en db 0;隨機使能
counter_max1 db  0;規定時間高位
counter_max2 db  0;規定時間低位
counter_score1 db  0;計分高位
counter_score2 db  0;計分低位
table_key dw 0;開關狀態偏移地址
table_led dw 0;發光二極管表的偏移地址
led_number db 0;發光二極管表碼數目
key_now db 0;當前開關狀態按鍵狀態,用鍵盤打靶時可改為開關狀態對應ascii碼值
key_en db 0;按鍵是否有效

led1 db 80h,40h,20h,10h,08h,04h,02h,01h,02h,04h,08h,10h,20h,40h;發光二極管輸出
led2 db 80h,20h,08h,02h,01h,04h,10h,40h;發光二極管輸出
key1 db 80h,40h,20h,10h,08h,04h,02h,01h,02h,04h,08h,10h,20h,40h;當前發光二極管對應的開關狀態,用鍵盤打靶時可改為對應的ascii碼
key2 db 80h,20h,08h,02h,01h,04h,10h,40h;當前發光二極管對應的開關狀態,用鍵盤打靶時可改為對應的ascii碼
led   DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;七段數碼管斷碼



csreg dw ?
ipreg dw ? ;舊中斷向量保存空間
data ends



stacks segment
db 100 dup (?)
stacks ends


code segment
assume cs:code,ds:data,ss:stacks,es:data
main proc far
;Enable Local Interrupt Input
.386
start:	cli
mov ax,data
mov ds,ax
mov es,ax
mov ax,stacks
mov ss,ax

	mov dx,io8255b   ;將8255設為A口輸出,c7-4out,c3-0in
	mov al,81h
	out dx,al

	mov dx,io8253c     ;向8253寫控制字
	mov al,34h       ;使0通道為工作方式3
	out dx,al
	mov ax,60000     ;寫入循環計數初值60000
	mov dx,io8253a
	out dx,al        ;先寫入低字節
	mov al,ah
	out dx,al        ;后寫入高字節
	
mov dx,ioport_cent+68h ;設置 tpc 卡中9054 芯片io 口,使能中斷
in ax,dx
or ax,0900h
out dx,ax
mov al,int_vect ;保存原中斷向量
mov ah,35h
int 21h
mov ax,es
mov csreg,ax
mov ipreg,bx
mov ax,cs ;設置新中斷向量
mov ds,ax
mov dx,offset int_proc
mov al,int_vect
mov ah,25h
int 21h
in al, 21h ;設置中斷掩碼
and al, irq_mask_2_7
out 21h, al
in al, 0a1h
and al, irq_mask_9_15

out 0a1h, al

 mov ax,data
 mov ds,ax;ds指向數據段
 mov dx,offset msgbb	;顯示提示信息
	mov ah,09
	int 21h
 mov dx,offset msgzz	;顯示提示信息
	mov ah,09
	int 21h
 mov dx,offset msgz1	;顯示提示信息
	mov ah,09
	int 21h
 mov dx,offset msgz2;顯示提示信息
	mov ah,09
	int 21h
 mov dx,offset msgz3	;顯示提示信息
	mov ah,09
	int 21h
 mov dx,offset msgz4	;顯示提示信息
	mov ah,09
	int 21h
 mov dx,offset msgz5;顯示提示信息
	mov ah,09
	int 21h
 mov dx,offset msgz6;顯示提示信息
	mov ah,09
	int 21h


mov dx,offset msgkg	;顯示提示信息
	mov ah,09
	int 21h


read_start: mov dx,io8255c
	in al,dx
	 mov dx,io8255c
	in al,dx

	test al,01h
	jz read_start

	 mov ax,data
 	mov ds,ax;ds指向數據段

	mov dx,offset msg1	;顯示提示信息
	mov ah,09
	int 21h

restart1: mov ax,data
 mov ds,ax;ds指向數據段
 
 
 mov dx,offset msg_choose1	;顯示提示信息
	mov ah,09
	int 21h
read_choose:  mov ah,07h
  int 21h
  cmp al,37h;h
  jnz  choose1
   mov  num_mov,15;耙移動計時,
   jmp read_choose2n
choose1: cmp al,38h;m
    jnz  choose2
   mov  num_mov,30;耙移動計時,
   jmp read_choose2n
choose2: cmp al,39h;e
     jnz read_choose
        mov  num_mov,50;耙移動計時,
 
read_choose2n:  mov dx,offset msg_choose2;顯示提示信息
	mov ah,09
	int 21h


read_choose2:  mov ah,07h
  int 21h
 cmp al,31h;1
    jnz  choose22
	mov random_en,0
   mov table_key,offset key1;開關表偏移地址
 mov table_led , offset led1;發光二極管表的偏移地址
 mov led_number ,14;發光二極管表數目
   jmp csh
choose22: cmp al,32h;2
    jnz choose23
	mov random_en,0

   mov table_key,offset key2;開關表偏移地址
 mov table_led , offset led2;發光二極管表的偏移地址
 mov led_number ,8;發光二極管表數目
   jmp csh

choose23: cmp al,33h;3
    jnz read_choose2
	mov random_en,1
	  mov table_key,offset key1;開關表偏移地址
 mov table_led , offset led1;發光二極管表的偏移地址


;初始化數據
  csh:
mov sym_end , 0;結束標志
 mov led_now,0
 
 mov key11 ,0
 
 mov    counter_time,0;時間計數
 mov counter_mov ,0;靶移動計數
  

 mov counter_max1 , 09h;規定時間高位
 mov counter_max2,09h;規定時間低位
 mov  counter_score1,0;計分高位
 mov counter_score2 ,  0;計分低位

 
 mov key_now , 0
 mov key_en ,0;按鍵是否有效
 mov si,0

  sti
	
 main2: mov dx,io8255c
	in al,dx
	 mov dx,io8255c
	in al,dx

	test al,01h;是否結束程序
	jnz exit
	
;************顯示部分*********************************		 
display0: mov al,00h;全部禁止顯示
 mov dx,io8255c		
 out dx,al

 mov bx,offset led
 mov al,counter_max1
	xlat
 mov dx,io8255a
 out dx,al;送斷碼

 mov al,80h;送位碼
 mov dx,io8255c		
 out dx,al
 call delay
 
display1: mov al,00h;全部禁止顯示
 mov dx,io8255c		
 out dx,al

 mov bx,offset led

 mov al,counter_max2
	xlat
 mov dx,io8255a
 out dx,al;送斷碼


 mov al,40h;送位碼
 mov dx,io8255c		
 out dx,al

 call delay

display2: mov al,00h;全部禁止顯示
 mov dx,io8255c		
 out dx,al

 mov bx,offset led

 mov al,counter_score1
	xlat
 mov dx,io8255a
 out dx,al;送斷碼


 mov al,20h;送位碼
 mov dx,io8255c		
 out dx,al
  call delay
 

display3: mov al,00h;全部禁止顯示
 mov dx,io8255c		
 out dx,al

 mov bx,offset led

 mov al,counter_score2
	xlat
 mov dx,io8255a
 out dx,al;送斷碼


 mov al,10h;送位碼
 mov dx,io8255c		
 out dx,al
 call delay
 cmp key11,01h;軌跡顯示,是否有鍵按下
 jnz llll
 mov dx, protlr;有鍵按下(打靶)
 mov al,key_now	
	out dx,al
	mov dx,proth 
	mov al,0ffh
	out dx,al
	call delay
	mov key11,00h
	jmp main1
  llll: mov dx, protlr;未打靶
 mov al,led_now	
	out dx,al
	mov dx,proth 
	mov al,80h
	out dx,al

;*************以上為顯示部分*****************88888888	


main1: cmp sym_end,1
	jnz main12
	jmp main2;一輪結束
main12:  cmp key_en,01h
	 jz main13
	jmp main2;按鍵無效
main13:
	mov dx,ls244        ;讀開關狀態
	in al,dx
	
	
main11:
	
	test al,0ffh
	jz main2;是否打靶
	mov key_now,al
	mov key11,01h

	mov bx,table_key
	mov ax,si
	xlat
	cmp al,key_now
	jz main111;對應鍵按下
	jmp main2
main111: cmp key_en,01h
	 jnz main2


        mov dx,offset msg2	;顯示提示信息
	mov ah,09
	int 21h

  cmp counter_score2,9
	jnz main112
	mov counter_score2,0;得分
	dec counter_score2
	inc counter_score1
 main112:	inc counter_score2
	and key_en,00h;以后按鍵無效
	 jmp main2



exit: cli
mov bl, irq_mask_2_7 ;恢復中斷掩碼
not bl
in al, 21h
or al, bl
out 21h, al
mov bl, irq_mask_9_15
not bl
in al, 0a1h
or al, bl
out 0a1h, al
mov dx,ipreg ;恢復原中斷向量
mov ax,csreg
mov ds,ax
mov ah,25h
mov al,int_vect
int 21h
mov dx,ioport_cent+68h ;設置 tpc 卡中9054 芯片io 口,關閉中斷
in ax,dx
and ax,0f7ffh
out dx,ax
mov ax,4c00h
int 21h

main endp



int_proc proc far ;中斷處理程序
cli
push ax
push dx
push ds
	
	mov ax,data ;ds指向數據段
	mov ds,ax



	
	cmp sym_end,01h
	jz exit1;一輪結束
int1:	inc counter_time
	inc counter_mov
	mov al,num_mov
	cmp counter_mov,al;是否到靶移動時間
	jnz int2
	mov counter_mov,00h
	cmp random_en,01h
	jnz ran1
	call iRand;調用隨機子程序
	jmp int3
 ran1:	inc si
	mov ax,si
	 cmp al,led_number;是否到表頂
	jnz int3
	mov si,0
   int3: mov key_en,01h	
	mov key11,00h
       mov dx,ls244        ;讀開關狀態
	in al,dx
	mov key_now,al
	mov bx,table_key
	mov ax,si
	xlat
	cmp al,key_now
	jnz int31;對應鍵未按下
	mov key_en,00h;以后按鍵無效
	mov dx,offset msg3	;顯示提示信息pressed
	mov ah,09
	int 21h

	int31:

     mov bx,table_led;輸出靶	
		mov ax,si
		xlat
		mov led_now,al;記錄放光二極管狀態
		mov dx,io8255bb
		out dx,al;輸出靶
		mov dx,protlr	
		out dx,al
		mov dx,proth 
		mov al,80h
		out dx,al


int2:	cmp counter_time,100;是否到一秒
	jnz exit1
	mov counter_time,00h
	cmp counter_max2,00h ;一秒到,低位是否為0
	jnz int22
	cmp counter_max1,00h;低位是0,高位是否為0
	jnz int221;
		mov sym_end,1;一輪結束
		jmp exit1
	int221:	mov counter_max2,09h;低位0,高位不為0
			dec counter_max1
			jmp exit1
	int22: 	dec  counter_max2;一秒到,低位不為0

   


exit1:
	mov al,20h ;Send EOI
out 0a0h,al
out 20h,al
pop ds
pop dx
pop ax
sti
iret
int_proc endp
iRand       proc  near;隨機數子程序
          push ax
	push dx
	push ds  
	mov ah,2ch;取系統時間做種子
	int 21h
	mov ax,dx
        mov   cx,   23                   ;   X   =   cx   =   23   
          mul   cx                           ;   ax   =   ax   *   X   
          add   ax,   7                     ;   ax   =   ax   +   Y   (Y   =   7)   
          mov  cx,14  
          xor   dx,   dx                 ;   dx   =   0   
          div   cx                           ;   ax   =   ax   mod   Z   (余數在dx里面)   
          add   dx,  0             ;   修正產生的隨機數的范圍   
          mov   si,   dx                 ;   si  =   Rand_Number   
	pop ds
   pop dx
	pop ax

          ret   
  iRand       endp   

delay	  PROC	NEAR                           ;延遲子程序
	  push	cx
	  mov	cx,0ffffh
ccc:	  loop	ccc
	  pop	cx
	  ret
delay   ENDP	  
code ends
end start



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性欧美巨大黑白大战| 午夜精品在线视频一区| 国产一区日韩二区欧美三区| 日韩精品一区二区三区中文精品| 日本成人超碰在线观看| 日韩精品一区二区三区中文精品| 日本色综合中文字幕| 国产成人啪免费观看软件| 欧美精选一区二区| 欧美人成免费网站| 久久嫩草精品久久久精品一| 国产精品热久久久久夜色精品三区 | 欧美日韩激情一区| 日韩美女主播在线视频一区二区三区 | 色综合一个色综合亚洲| 亚洲一区二区3| 日韩免费高清视频| 99久久综合精品| 亚洲午夜在线视频| 欧美电影免费观看高清完整版在 | 中文字幕高清不卡| 91年精品国产| 免费成人性网站| 国产精品毛片久久久久久| 精品视频免费看| 国产成人丝袜美腿| 亚洲高清中文字幕| 中国色在线观看另类| 欧美日韩国产成人在线91| 国产露脸91国语对白| 亚洲成人福利片| 中文字幕国产精品一区二区| 在线电影院国产精品| 国产激情一区二区三区四区| 亚洲一区二区中文在线| 国产午夜亚洲精品羞羞网站| 欧美另类z0zxhd电影| 岛国av在线一区| 青青青伊人色综合久久| 亚洲丝袜另类动漫二区| 精品88久久久久88久久久| 欧美日韩一区二区三区不卡| 成人综合婷婷国产精品久久蜜臀| 五月天婷婷综合| 亚洲精品乱码久久久久久| 久久久久综合网| 欧美一区二区三区在| 91激情在线视频| 成人污视频在线观看| 精油按摩中文字幕久久| 婷婷激情综合网| 一区二区三区国产豹纹内裤在线 | 日韩午夜激情视频| 99re热这里只有精品视频| 国产伦精品一区二区三区免费迷| 午夜影院在线观看欧美| 亚洲免费av网站| 国产精品第13页| 久久久久97国产精华液好用吗| 7777精品伊人久久久大香线蕉| 91片在线免费观看| 本田岬高潮一区二区三区| 亚洲午夜久久久久久久久电影院 | 91老司机福利 在线| 成人免费av网站| 国产激情91久久精品导航| 精品一区二区在线看| 久久国产三级精品| 美女视频黄频大全不卡视频在线播放| 亚洲二区在线观看| 午夜精品福利在线| 婷婷成人综合网| 蜜臀av一级做a爰片久久| 男男视频亚洲欧美| 蜜桃在线一区二区三区| 蜜桃av一区二区在线观看| 另类小说综合欧美亚洲| 奇米综合一区二区三区精品视频| 日韩综合一区二区| 热久久免费视频| 精品无人码麻豆乱码1区2区| 国产一区二区精品久久| 国产成人午夜视频| av不卡在线播放| 91麻豆视频网站| 欧美性色欧美a在线播放| 欧美日韩视频专区在线播放| 欧美美女bb生活片| 日韩欧美电影一二三| 久久久久国产成人精品亚洲午夜| 欧美激情资源网| 亚洲欧洲制服丝袜| 午夜精品一区在线观看| 琪琪一区二区三区| 高清不卡一区二区| 色综合久久综合网97色综合| 欧美日韩国产片| 精品福利一二区| 国产精品短视频| 亚洲一二三区在线观看| 免费在线观看一区| 丰满少妇在线播放bd日韩电影| 99国产精品久| 欧美男生操女生| 日韩一级在线观看| 国产精品水嫩水嫩| 亚洲影院理伦片| 精品亚洲porn| 91视频免费观看| 日韩午夜激情视频| 亚洲欧洲精品一区二区三区不卡| 亚洲成人激情自拍| 粉嫩久久99精品久久久久久夜| 色视频一区二区| 26uuu亚洲| 亚洲综合久久久| 国产精品自产自拍| 欧美在线观看一二区| 久久综合狠狠综合| 亚洲一级二级在线| 国产精品1区2区| 欧美日韩国产bt| 亚洲国产成人私人影院tom| 午夜欧美电影在线观看| 丁香五精品蜜臀久久久久99网站| 欧美日韩在线亚洲一区蜜芽| 欧美国产日韩a欧美在线观看 | 日韩免费观看2025年上映的电影 | 欧美精品v国产精品v日韩精品| 国产免费成人在线视频| 五月综合激情婷婷六月色窝| 风间由美一区二区av101| 欧美日韩一区成人| 最近日韩中文字幕| 国产精品亚洲а∨天堂免在线| 5858s免费视频成人| 亚洲视频网在线直播| 韩国精品久久久| 3d动漫精品啪啪| 亚洲尤物视频在线| 99精品国产视频| 国产日韩欧美一区二区三区综合| 日韩精品成人一区二区在线| 91看片淫黄大片一级| 国产亚洲精品精华液| 久久福利视频一区二区| 欧美日韩视频在线一区二区| 国产精品久久精品日日| 国产黄人亚洲片| 日韩精品一区二区三区蜜臀| 天堂蜜桃一区二区三区| 色久综合一二码| 亚洲桃色在线一区| 99精品在线观看视频| 国产欧美日韩卡一| 国产大陆精品国产| 国产视频亚洲色图| 国产传媒日韩欧美成人| 国产欧美日韩三区| 高清免费成人av| 中文字幕乱码久久午夜不卡| 成人久久视频在线观看| 国产精品系列在线| 成人午夜视频在线| 国产精品情趣视频| 99久久久国产精品| 自拍偷拍国产亚洲| 91在线观看一区二区| 亚洲色图第一区| 日本道精品一区二区三区| 亚洲精选在线视频| 欧美三级电影在线看| 石原莉奈在线亚洲二区| 538prom精品视频线放| 日本美女一区二区| 久久综合给合久久狠狠狠97色69| 国产黄色91视频| 中文字幕在线不卡视频| 欧美一区二区三区思思人| 蜜桃在线一区二区三区| 久久一区二区三区国产精品| 国产suv精品一区二区883| 成人欧美一区二区三区| 欧美亚一区二区| 美女性感视频久久| 国产亚洲精品资源在线26u| 成人激情免费视频| 亚洲欧美激情一区二区| 欧美三级韩国三级日本三斤| 美女视频黄频大全不卡视频在线播放| 欧美精品一区二区三区四区| 99视频精品免费视频| 亚洲不卡在线观看| 国产精品第13页| 欧美日韩在线不卡| 韩国女主播一区二区三区| 亚洲视频在线一区| 欧美一区二区三区影视| 成人黄色在线视频| 亚洲成av人片在www色猫咪|