8253仿真電路與程序;包括方式0與方式3的仿真與程序.
0.png (31.42 KB, 下載次數: 98)
下載附件
2016-11-13 14:42 上傳
0.png (67.78 KB, 下載次數: 112)
下載附件
2016-11-13 14:41 上傳
仿真工程文件與完整源碼打包下載:
8253仿真.zip
(54.18 KB, 下載次數: 46)
2016-11-11 15:47 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
- code segment
- assume cs:code
- start:
- ;CPU與第一個8253連接時,其四個地址為10h 12h 14h 16h
- mov al, 00010000b ;設置計數器0的控制字,計數初始字寫入時只寫低8位(高8位自動清0),選擇方式0,控制字為二進制格式
- out 16h, al ; 將計數器0的控制字寫入其寄存器,端口地址為三個計時器公用地址26H。
- mov al, 25 ;將計數器0的計數初始字(只寫低8位)給al
- out 10h, al; ;將al內容寫入計數器0的計數初始寄存器CR,其地址為10h
- mov al, 01010000b ;設置計數器1的控制字,計數初始字寫入時只寫低8位(高8位自動清0),選擇方式0,控制字為二進制格式
- out 16h, al ; 將計數器1的控制字寫入其寄存器,端口地址為三個計時器公用地址26H。
- mov al, 50 ;將計數器1的計數初始字(只寫低8位)給al
- out 12h, al ;將al內容寫入計數器1的計數初始寄存器CR,其地址為10h
- mov al, 10010000b ;設置計數器2的控制字,計數初始字寫入時只寫低8位(高8位自動清0),選擇方式0,控制字為二進制格式
- out 16h, al ; 將計數器2的控制字寫入其寄存器,端口地址為三個計時器公用地址26H。
- mov al, 100 ;將計數器2的計數初始字(只寫低8位)給al
- out 14h, al ;將al內容寫入計數器2的計數初始寄存器CR,其地址為10h
-
- ;CPU與第二個8253連接時,其四個地址為20h 22h 24h 26h
- mov al, 00010110b ;設置計數器0的控制字,計數初始字寫入時只寫低8位(高8位自動清0),選擇方式0,控制字為二進制格式
- out 26h, al ; 將計數器0的控制字寫入其寄存器,端口地址為三個計時器公用地址26H。
- mov al, 50 ;將計數器0的計數初始字(只寫低8位)給al
- out 20h, al; ;將al內容寫入計數器0的計數初始寄存器CR,其地址為10h
- mov al, 01010110b ;設置計數器1的控制字,計數初始字寫入時只寫低8位(高8位自動清0),選擇方式0,控制字為二進制格式
- out 26h, al ; 將計數器1的控制字寫入其寄存器,端口地址為三個計時器公用地址26H。
- mov al, 100 ;將計數器1的計數初始字(只寫低8位)給al
- out 22h, al ;將al內容寫入計數器1的計數初始寄存器CR,其地址為10h
- mov al, 10010110b ;設置計數器2的控制字,計數初始字寫入時只寫低8位(高8位自動清0),選擇方式0,控制字為二進制格式
- out 26h, al ; 將計數器2的控制字寫入其寄存器,端口地址為三個計時器公用地址26H。
- mov al, 200 ;將計數器2的計數初始字(只寫低8位)給al
- out 24h, al ;將al內容寫入計數器2的計數初始寄存器CR,其地址為10h
- code ends
- end start
復制代碼
- code segment
- assume cs:code
- Timer0 equ 20h
- Timer1 equ 22h
- Timer2 equ 24h
- Control equ 26h
- start:
- ;CPU與8253連接時,其四個地址為20h 22h 24h 26h
- mov al, 00010110b ;設置計數器0的控制字,計數初始字寫入時只寫低8位(高8位自動清0),選擇方式0,控制字為二進制格式
- out Control, al ; 將計數器0的控制字寫入其寄存器,端口地址為三個計時器公用地址26H。
- mov al, 2 ;將計數器0的計數初始字(只寫低8位)給al
- out Timer0, al; ;將al內容寫入計數器0的計數初始寄存器CR,其地址為10h
- mov al, 01010110b ;設置計數器1的控制字,計數初始字寫入時只寫低8位(高8位自動清0),選擇方式0,控制字為二進制格式
- out Control, al ; 將計數器1的控制字寫入其寄存器,端口地址為三個計時器公用地址26H。
- mov al, 4 ;將計數器1的計數初始字(只寫低8位)給al
- out Timer1, al ;將al內容寫入計數器1的計數初始寄存器CR,其地址為10h
- mov al, 10010110b ;設置計數器2的控制字,計數初始字寫入時只寫低8位(高8位自動清0),選擇方式0,控制字為二進制格式
- out Control, al ; 將計數器2的控制字寫入其寄存器,端口地址為三個計時器公用地址26H。
- mov al, 10 ;將計數器2的計數初始字(只寫低8位)給al
- out Timer2, al ;將al內容寫入計數器2的計數初始寄存器CR,其地址為10h
- code ends
- end start
復制代碼
|