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

上传人:壹****1 文档编号:508607940 上传时间:2022-12-22 格式:DOC 页数:25 大小:367KB
返回 下载 相关 举报
东北大学秦皇岛分校微型接口与技术实验报告_第1页
第1页 / 共25页
东北大学秦皇岛分校微型接口与技术实验报告_第2页
第2页 / 共25页
东北大学秦皇岛分校微型接口与技术实验报告_第3页
第3页 / 共25页
东北大学秦皇岛分校微型接口与技术实验报告_第4页
第4页 / 共25页
东北大学秦皇岛分校微型接口与技术实验报告_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《东北大学秦皇岛分校微型接口与技术实验报告》由会员分享,可在线阅读,更多相关《东北大学秦皇岛分校微型接口与技术实验报告(25页珍藏版)》请在金锄头文库上搜索。

1、精选优质文档-倾情为你奉上微型计算机接口技术实验报告学 号:213*姓 名:提交日期:2016-4-22成 绩:东北大学秦皇岛分校 计算机与通信工程学院2016专心-专注-专业【实验编号】1 【实验名称】实验三 可编程定时器计数器8253【实验内容】1. 可编程定时器计数器8253(一)实验说明实验原理图:实验流程图:ASM程序:ioportequ 0d400h-0280hio8253aequ ioport+280hio8253bequ ioport+281hio8253cequ ioport+283hcode segmentassume cs:codestart:mov dx,io8253c

2、 ;向8253写控制字mov al,36h ;使0通道为工作方式3out dx,almov ax,1000 ;写入循环计数初值1000mov dx,io8253aout dx,al ;先写入低字节mov al,ahout dx,al ;后写入高字节mov dx,io8253cmov al,76h ;设8253通道1工作方式2out dx,almov ax,1000 ;写入循环计数初值1000mov dx,io8253bout dx,al ;先写低字节 mov al,ahout dx,al ;后写高字节mov ah,4ch ;程序退出int 21h code endsend startCPP程序

3、:/*/* 可编程定时器计数器(二) */*/#include#include#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-2

4、87) = 8253 (CS)n);printf(Press any key to begin!nn);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

5、%256);/*送计数初值*/ PortWriteByte(0x281,1000/256);Cleanup();/*关闭设备*/printf(Press any key to exit!);getch();2. 可编程定时器计数器8253(二)实验说明:实验原理图:实验流程图:ACM程序:ioportequ 0d400h-0280hio8253aequ ioport+283hio8253bequ ioport+280hcode segmentassume cs:codestart: mov al,14h ;设置8253通道0为工作方式2,二进制计数 mov dx,io8253a out dx,

6、al mov dx,io8253b ;送计数初值为0FH mov al,0fh out dx,allll: in al,dx ;读计数初值 call disp ;调显示子程序 push dx mov ah,06h mov dl,0ffh int 21h pop dx jz lll mov ah,4ch ;退出 int 21hdisp proc near ;显示子程序 push dx and al,0fh ;首先取低四位 mov dl,al cmp dl,9 ;判断是否=9 jle num ;若是则为0-9,ASCII码加30H add dl,7 ;否则为A-F,ASCII码加37Hnum: a

7、dd dl,30h mov ah,02h ;显示 int 21h mov dl,0dh ;加回车符 int 21h mov dl,0ah ;加换行符 int 21h pop dx ret ;子程序返回 disp endp code endsend startCPP程序:/*/* 可编程定时器计数器(一) */*/#include#include#include ApiEx.h#pragma comment(lib,ApiEx.lib)void main()BYTEdata;if(!Startup()/*打开设备*/printf(ERROR: Open Device Error!n);retur

8、n;PortWriteByte(0x283,0x10);/*设8253计数器0工作方式0,只写低字节*/ PortWriteByte(0x280,0x20);/*写入计数初值32*/ while(!kbhit()/*有键按下则退出*/PortReadByte(0x280,&data); printf(%dn,data);/*打印计数器值*/Cleanup();/*关闭设备*/【实验编号】2 【实验名称】实验五 七段数码管【实验内容】1.七段数码管静态显示实验说明:实验原理图:实验流程图:ACM程序:data segmentioportequ 0d400h-0280hio8255aequ iop

9、ort+288hio8255bequ ioport+28bhled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhmesg1 db 0dh,0ah,Input a num (0-9h):,0dh,0ah,$data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,io8255b ;使8255的A口为输出方式mov ax,80hout dx,alsss: mov dx,offset mesg1 ;显示提示信息mov ah,09hint 21hmov ah,01 ;

10、从键盘接收字符int 21hcmp al,0 ;是否小于0jl exit ;若是则退出cmp al,9 ;是否大于9jg exit ;若是则退出sub al,30h ;将所得字符的ASCII码减30Hmov bx,offset led ;bx为数码表的起始地址xlat ;求出相应的段码mov dx,io8255a ;从8255的A口输出out dx,aljmp sss ;转SSSexit: mov ah,4ch ;返回DOSint 21hcode endsCPP程序:/*/* 七段数码管(一) */*/#include#include#include ApiEx.h#pragma commen

11、t(lib,ApiEx.lib)char led10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/*上面为从0-9对应的段码表*/void main()intout;if(!Startup()/*打开设备*/printf(ERROR: Open Device Error!n);return; PortWriteByte (0x28b,0x80);/*设8255A口C口输出*/ printf(nInput a number (0-9),other key to exit!:n);/*显示提示*/ while(true)out = getch();if(out0x39) break;printf(%cn,out);PortWriteByte(0x288,ledout-48); Cleanup();/*关闭设备*/2.七段数码管动态显示实验说明:实验原理图:实验流程图:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号