文档详情

东北大学秦皇岛分校微型接口及技术实验报告.doc

发布:2018-12-06约1.3万字共23页下载文档
文本预览下载声明
微型计算机接口技术实验报告 学 号: 213**** 姓 名: 提交日期: 2016-4-22 成 绩: 东北大学秦皇岛分校 计算机与通信工程学院 2016 【实验编号】 1 【实验名称】 实验三 可编程定时器计数器8253 【实验内容】 1. 可编程定时器计数器8253(一) 实验说明 实验原理图: 实验流程图: ASM程序: ioport equ 0d400h-0280h io8253a equ ioport+280h io8253b equ ioport+281h io8253c equ ioport+283h code segment assume cs:code start:mov dx,io8253c ;向8253写控制字 mov al,36h ;使0通道为工作方式3 out dx,al mov ax,1000 ;写入循环计数初值1000 mov dx,io8253a out dx,al ;先写入低字节 mov al,ah out dx,al ;后写入高字节 mov dx,io8253c mov al,76h ;设8253通道1工作方式2 out dx,al mov ax,1000 ;写入循环计数初值1000 mov dx,io8253b out dx,al ;先写低字节 mov al,ah out dx,al ;后写高字节 mov ah,4ch ;程序退出 int 21h code ends end start CPP程序: /******************************/ /* 可编程定时器/计数器(二) */ /******************************/ #includestdio.h #includeconio.h #include ApiEx.h #pragma comment(lib,ApiEx.lib) void main() { printf(--------------------EXP9_3_8253_2---------------------\n); printf(1. 8253 (CLK0) === (1MHz) or (2MHz)\n); printf(2. TPC (+5V) === 8253 (GATE0,GATE1)\n); printf(3. 8253 (OUT0) === 8253 (CLK1)\n); printf(4. 8253 (OUT1) === LJB (Ui)\n); printf(5. I/O (280-287) === 8253 (CS)\n); printf(Press any key to begin!\n\n); getch(); if(!Startup()) /*打开设备*/ { printf(ERROR: Open Device Error!\n); return; } PortWriteByte(0x283,0x36); /*写方式字通道0方式3*/ PortWriteByte(0x280,1000%256); /*送计数初值*/ PortWriteByte(0x280,1000/256); PortWriteByte(0x283,0x76); /*设置计数器1方式字*/ PortWriteByte(0x281,1000%256); /*送计数初值*/ PortWriteByte(0x281,1000/256); Cleanup(); /*关闭设备*/ printf(Press any key to exit!); getch(); } 2. 可编程定时器计数器8253(二) 实验说明: 实验原理图: 实验流程图: ACM程序: ioport equ 0d400h-0280h io8253a equ ioport+283h io8253b equ ioport+280h code segment assume cs:code start: mov al,14h ;设置8253通道0为工作方式2,二进制计数 mov dx,io8253a out dx,al mov dx,io8253b ;送计数初值为0FH mov al,0fh out dx,al lll: in al,dx ;读计数初值 call disp ;调显示
显示全部
相似文档