理工大学七段数码管显示实验.docx
文本预览下载声明
单片机原理报告
姓 名: 于川平
班 级: 通信14-1
学 号: 3140731132
指导老师: 张彪
一、实验目的
?
1.学习七段数码管的工作原理;
2.学习数码管与8051单片机的接口方法;
3.掌握动态扫描显示技术。
?
二、实验原理
?
如图
4.9-1
所示,LED数码管由7个发光二极管组成,此外,还有一个圆点型发光二极管(在图中以dp表示),用于显示小数点。通过七段发光二极管亮暗的不同组合,可以显示多种数字、字母以及其它符号。LED数码管中的发光二极管共有两种连接方法:
?1)共阴极接法:把发光二极管的阴极连在一起构成公共阴极。使用时公共阴
极接地,这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电平的
则不点亮。实验中使用的LED显示器为共阴极接法。
2)共阳极接法:把发光二极管的阳极连在一起构成公共阳极。使用时公共阳
极接+5V。这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。
?为了显示数字或符号,要为LED显示器提供代码,因为这些代码是为显示字形的,因此称之为字形代码。七段发光二极管,再加上一个小数点位,共计八段。因此提供给LED显示器的字形代码正好一个字节。若a、b、c、d、e、f、g、dp?8个显示段依次对应一个字节的低位到高位,即D0、D1、D2、D3、D4、D5、D6、D7,则用共阴极LED数码管显示十六进制数时所需的字形代码如表4.9-1所示。
2、动态显示?
按图4.9-2(b)连接线路,通过交替选中LED1和LED0循环显示两位十进制数。七段数码管段码连接不变,位码驱动输入端S1、S0接8255A?C口的PC1、PC0,通过C口的这两位交替输出1和0,以便交替选中LED1和LED0,从而实现两位十进制数的交替显示。请编程实现在两个LED数码管上循环显示00?99,程序流程图如图4.9-3(b)所示
?1.?静态显示:数码管为共阴极,通过BCD码译码驱动器CD4511驱动,其输入端A~D输入4位BCD码,位码输入低电平选中。按图4-1连接好电路,将8255的A口PA0~PA3与七段数码管LED1的BCD码驱动输入端A1~D1相连,8255的A口PA4~PA7与七段数码管LED2的BCD码驱动输入端A2~D2相连,8255的B口PB0~PB3与七段数码管LED3的BCD码驱动输入端A3~D3相连,8255的B口PB4~PB7与七段数码管LED4的BCD码驱动输入端A4~D4相连,8255的C口PC0~PC3分别与七段数码管LED4~LED4的位驱动输入端DG1~DG4相连。编程从键盘上每输入4个0~9数字,在七段数码管LED4~LED4上依次显示出来。
三、?编程提示?
1.?由于DVCC卡使用PCI总线,所以分配的IO地址每台微机可能都不用,编程时需要了解当前的微机使用那段IO地址并进行处理。?
2.?对实验内容1,七段数码管字型代码与输入的关系如下表
?对实验内容1,七段数码管字型代码与输入的关系如下表
?
四、实验设备?
微型计算机、单片机仿真器、实验仪、示波器(各一台);?实验连线(若干)。?
实验内容
编程在8位数码管上面显示8个数字,每经过1秒8个数字循环左移一位显示。依次为:123457834567812.......?汇编语代码:??
ORG??0000H
?START:
??MOV??R4,#00H?
FLASH:??
MOV??R2,#01H?
MOV??R0,#30H
MOV??DPTR,#TABFLA????
LOPFLA:??MOV??A,R2
MOV??P2,A??
MOV??A,@R0??
MOVC?A,@A+DPTR????????
MOV??P1,A
MOV??R3,#0??
DJNZ?R3,$?????????
MOV??P1,#0FFH???
??RL??A??
MOV??R2,A??
INC??R0???
?CJNE?R0,#38H,
GOON??
MOV??R0,#30H?
GOON:??
CJNE?A,#01H,LOPFLA??????
INC??R4?
?CJNE?R4,#7FH,GOON1?
MOV??A,30H????????
MOV??30H,31H??
MOV??31H,32H??
MOV??32H,33H??
MOV??33H,34H??
MOV??34H,35H??
MOV??35H,36H??
MOV??36H,37H???
MOV??37H,A??
MOV??R4,#00H?
GOON1:?
显示全部