LED数码管显示实验
一、实验目的:(1)进一步掌握8255的工作原理。(2)学习LED数码管的显示原理。(3)熟悉LED数码管显示器的接口设计方法。二、实验设备:MUTⅢ型实验箱、8086CPU模块。三、实验内容:编程实现在六位LED数码管上“E”字跑马灯。四、实验电路原理图:CPU8255A
PA0┆PA7LED6LED5LED4LED3LED2LED1
PB0┆PB5┆
八段LED数码管显示器采用共阴极接法,其段码由8255A的A口输出,通过PA0~PA7分别送给LED1~LED6的段码输入端(LEDA,LEDB,,LEDG,LEDDP)。显示器的位扫描信号经B口输出,通过PB0~PB5提供给数码管的公共极。数码管采用动态扫描的方式显示。
八段LED数码管显示原理:
如下图(a)所示,LED数码管的主要部分是由八段发光二极管构成,这八段发光二极管分别称为abcdefg和DP(小数点)。通过7个发光二极管的不同组合,可以显示数字0~9和字母A~F,从而实现十六进制数的显示。LED数码管可以分为共阳极和共阴极两种结构,图(b)为共阳极结构,数码显示端输入低电平有效,当某一段为低电平时,该段便发光;图(c)为共阴极结构,数码显示端输
f入高电平有效,当某一段得到高电平时,便发光。例如,当a,b,g,e,d为高电平,而其他段为低电平时,则显示数字“2”。
显示段码与各段的对应关系如下图所示。根据对应关系,LED数码管在共阴极结构下,数字“2”的显示段码为01011011B(即5BH)
下表是数字0~9与字母A~F的七段数码管显示段码。
五、实验步骤:(1)实验连线PA0连LEDA,PA1连LEDB,PA2连LEDC,PA3连LEDD,PA4连LEDE,PA5连LEDF,连LEDG,连LEDDP;PB0连LED1,连LED2,连LED3,PA6PA7PB1PB2PB3连LED4,PB4连LED5,PB5连LED6。CS0CS8255(2)编写程序,全速运行,观察实验结果六、参考程序CODESEGMENTASSUMECSCODEORG0100HSTARTMOVDX04A6H8255控制口地址MOVAL80H;A口和B口工作于方式0,输出OUTDXAL
fCOUNTNEXT
MOVCX6循环次数MOVBL11011111B位选码初值:PB50,选中LED6其它灭MOVDX04A0HA口地址MOVAL79H“E”的段码送ALOUTDXAL;显示“E”MOVDX04A2HB口地址MOVALBL送位选码给ALOUTDXALCALLDELAY;延时SARBL,1;位选码右移1位,指向下1位LOOPNEXTJMPCOUNT显示完一轮后再继续显示下一轮MOVSI8FFFHNOPNOPDECSIJNZDELAY1ENDSENDSTART延时子程序
DELAYDELAY1
CODE
程序框图:8255A初始化(写方式控制字)
设置循环次数、位选码初值
A口输出“E”的段码
输出位选码,在1位上显示
延时
改变位选码,指向下1位
N6位显示完?Y
fr