微机原理,可编程并行接口、七段数码管

上传人:第*** 文档编号:34259915 上传时间:2018-02-22 格式:DOC 页数:6 大小:1.50MB
返回 下载 相关 举报
微机原理,可编程并行接口、七段数码管_第1页
第1页 / 共6页
微机原理,可编程并行接口、七段数码管_第2页
第2页 / 共6页
微机原理,可编程并行接口、七段数码管_第3页
第3页 / 共6页
微机原理,可编程并行接口、七段数码管_第4页
第4页 / 共6页
微机原理,可编程并行接口、七段数码管_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《微机原理,可编程并行接口、七段数码管》由会员分享,可在线阅读,更多相关《微机原理,可编程并行接口、七段数码管(6页珍藏版)》请在金锄头文库上搜索。

1、可编程并行接口一、实验目的掌握 8255 方式 0 的工作原理及使用方法。二、实验内容1实验电路如图 20,8255C 口接逻辑电平开关 K0K7,A 口接 LED 显示电路L0L7。2. 编程从 8255C 口输入数据,再从 A 口输出.三、编程提示1、8255 控制寄存器端口地址 28BHA 口的地址 288H C 口的地址 28AH2、参考流程图(见图 21):ioportequ 0d400h-0280hio8255a equ ioport+288hio8255b equ ioport+28bhio8255c equ ioport+28ahcode segmentassume cs:co

2、destart: mov dx,io8255b ;设8255为C口输入,A口输出mov al,8bhout dx,alinout: mov dx,io8255c ;从C口输入一数据in al,dxmov dx,io8255a ;从A口输出刚才自C口out dx,al ;所输入的数据mov dl,0ffh ;判断是否有按键mov ah,06hint 21hjz inout ;若无,则继续自C口输入,A口输出mov ah,4ch ;否则返回DOSint 21hcode endsend start/*/* 可编程并行接口(一) */*/#include #include #include ApiEx

3、.h#pragma comment(lib,ApiEx.lib)void main() BYTEdata;printf(-EXP10_4_8255-0-n);printf(1. 8255 (PA0-PA7) = TPC (L0-L7)n);printf(2. I/O (288-28F) = 8255 (CS)n);printf(3. TPC (K0-K7) = 8255 (PC0-PC7)n);printf(Press any key to begin!nn);getch();if(!Startup() /*打开设备*/printf(ERROR: Open Device Error!n);re

4、turn;printf(Press any key to exit!);while(!kbhit() /*有键按下则退出*/PortWriteByte(0x28b,0x8b); /*设8255为方式0,C口输入,A口输出*/PortReadByte(0x28a,PortWriteByte(0x288,data); /*将C口输入的数据自A口输出*/Cleanup(); /*关闭设备*/七段数码管一、实验目的掌握数码管显示数字的原理二、实验内容静态显示:按图 22 连接好电路,将 8255 的 A 口 PA0PA6 分别与七段数码管的段码驱动输入端 a相连,位码驱动输入端 S1 接+5V(选中)

5、 ,S0、dp 接地(关闭) 。编程从键盘输入一位十进制数字(09) ,在七段数码管上显示出来。三、编程提示实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。data segmentioport equ 0d400h-0280hio8255a equ ioport+288hio8255b equ 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

6、 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 ;从键盘接收字符int 21hcmp al,0 ;是否小于0jl exit ;若是则退出cmp al,9 ;是否大于9jg exit ;若是则退出sub al,30h ;将所得字符的ASCII码减30Hmov bx,offset led ;bx为数码表的起始地址xlat

7、;求出相应的段码mov dx,io8255a ;从8255的A口输出out dx,aljmp sss ;转SSSexit: mov ah,4ch ;返回DOSint 21hcode ends#include#include#include ApiEx.h#pragma comment(lib,ApiEx.lib)char led10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/*上面为从0-9对应的段码表*/void main()int out;if(!Startup() /*打开设备*/printf(ERROR: Open Devic

8、e 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(); /*关闭设备*/实验总结:通过本次实验我深刻的理解了可编程并行接口的应用,以及常用控制,以及七段数码管的使用,和编程。为以后的学习打下了坚实的基础。让我更加全面的了解了微机原理的简单应用。

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

当前位置:首页 > 办公文档 > 解决方案

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