《双色点阵发光二极管显示实验-(中大软院)(6页).doc》由会员分享,可在线阅读,更多相关《双色点阵发光二极管显示实验-(中大软院)(6页).doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-第 1 页双色点阵发光二双色点阵发光二极管显示实验极管显示实验-(中大软院中大软院)-第 2 页实实 验验 报报 告告实实 验验 人人:学学 号号:日日 期期:2011-05-242011-05-24院(系)院(系):软件学院软件学院专业(班级)专业(班级):实验题目实验题目:双色点阵发光二极管显示实验双色点阵发光二极管显示实验一一.实验目的实验目的1、了解双色点阵LED显示器的基本原理。2、掌握PC机控制双色点阵LED显示程序的设计方法。二二.实验原理实验原理点阵LED显示器是将许多LED类似矩阵一样排列在一起组成的显示器件,双色点阵LED是在每一个点阵的位置上有红绿或红黄或红白两种不同颜
2、色的发光二极管。当微机输出的控制信号使得点阵中有些LED发光,有些不发光,即可显示出特定的信息,包括汉字、图形等。车站广场由微机控制的点阵LED大屏幕广告宣传牌随处可见。实验仪上设有一个共阳极88点阵的红黄两色LED显示器,其点阵结构如图所示。该点阵对外引出24条线,其中8条行线,8条红色列线,8条黄色列线。若使某一种颜色、某一个LED发光,只要将与其相连的行线加高电平,列线加低电平即可。例如欲显示汉字“年”,采用逐列循环发光。首先由“年”的点阵轮廓,确定点阵代码(如图所示)根据“年”的点阵代码,确定逐列循环发光的顺序如下:行代码输出 44H;红色列代码输 01H;第一列2个红色LED发光。行
3、代码输出 54H;红色列代码输 02H;第二列3个红色LED发光。行代码输出 54H;红色列代码输 04H;第三列3个红色LED发光。行代码输出 7FH;红色列代码输 08H;第四列7个红色LED发光。行代码输出 54H;红色列代码输 10H;第五列3个红色LED发光。行代码输出 DCH;红色列代码输 20H;第六列5个红色LED发光。行代码输出 44H;红色列代码输 40H;第七列2个红色LED发光。行代码输出 24H;红色列代码输 80H;第八列2个红色LED发光。在步骤之间可插入几ms的延时,重复进行即可在LED上稳定的显示出红色“年”字。若想显示黄色“年”,只需把红色列码改为黄色列码即
4、可。实验电路图:程序流程图:NY开始提示信息有键按下吗?控制 8255 模式,读入数据 alal=01?输出黄色名字-第 3 页三三.实验内容实验内容建立字库,通过点阵显示自己的名字(取两个字),可用拨动开关改变字的颜色。四四.实验器材实验器材1、装有TPC-USB微机接口实验系统集成开发环境的电脑一台。2、USB模块试验台。3、导线若干。五五.实验分析与设计实验分析与设计实验原理中的电路图已由实验箱封装好,无须再接。仅需将CS端口接到相应的地址再通过8255芯片,用K0作为控制开关来控制名字输出颜色。代码如下:;*11588-1.ASM*prothequ280hprotlrequ288hpr
5、otlyequ290hio8255aequ2b0hio8255cequ2b2hio8255requ2b4hDATASEGMENTMESSDBStrike any key,return to DOS!,0AH,0DH,$min1DB00h,01h,02h,03h,04h,05h,06h,07hcountdb0buff1DBbuff2DBDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSET MESSMOVAH,09INT21H;显示提示信息;根据开关来改变字的颜色getmode:movah,01;有
6、无键按下int16hjnzexitmov dx,io8255r;设 8255 为 C 口输入结束输出红色名字-第 4 页mov al,8bhout dx,almov dx,io8255c;从 C 口输入一数据,读取 8 个按键的状态in al,dxand al,01h;获得 K0 的状态cmp al,01h;若 K0 开,将显示红色jzredcmp al,00h;若 K0 关,将显示黄色jz yellowexit:MOVAH,4CH;返回INT21Hred:movcx,80h;显示第一个字的次数d1:movah,01h;初始化列代码pushcxmovcx,0008h;8*8 阵列movsi,o
7、ffset min1next1:moval,simovbx,offset buff1xlat;得到第一行码movdx,prothoutdx,almoval,ah;得到列代码movdx,protlroutdx,al;显示第一列红mov al,0out dx,al;关闭shlah,01incsicall delay;显示一列后延时loopnext1popcxcalldelay;显示一个字后延时loopd1movcx,80h;显示第二个字的次数d2:movah,01h;初始化列代码pushcxmovcx,0008h;8*8 阵列movsi,offset min1next2:moval,simovbx
8、,offset buff2xlat;得到第一行码movdx,prothoutdx,almoval,ah;得到列代码-第 5 页movdx,protlroutdx,al;显示第一列红mov al,0out dx,al;关闭shlah,01incsicall delay;显示一列后延时loopnext2popcxcalldelay;显示一个字后延时loopd2jmpgetmodeyellow:movcx,80hd3:movsi,offset min1movah,01pushcxmovcx,0008hnext3:moval,simovbx,offset buff1xlatmovdx,prothout
9、dx,almoval,ahmovdx,protlyoutdx,almov al,0out dx,alshlah,01incsicall delayloopnext3popcxcalldelayloopd3movcx,80hd4:movsi,offset min1movah,01pushcxmovcx,0008hnext4:moval,simovbx,offset buff2xlatmovdx,prothoutdx,al-第 6 页moval,ahmovdx,protlyoutdx,almov al,0out dx,alshlah,01incsicall delayloopnext4popcxcalldelayloopd4jmpgetmodedelayPROCNEAR;延迟子程序pushcxmovcx,0ffhccc:loopcccpopcxretdelayENDPCODEENDSENDSTART六六.思考题思考题七七.实验心得实验心得