好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

七段数码管显示实验.doc

15页
  • 卖家[上传人]:枫**
  • 文档编号:430256577
  • 上传时间:2023-04-11
  • 文档格式:DOC
  • 文档大小:473.50KB
  • / 15 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 单片机实验报告 实验九 七段数码管显示实验一、 实验目的1. 学习七段数码管的工作原理;2. 学习数码管与8051单片机的接口方法;3. 掌握动态扫描显示技术二、 实验原理图4.9-1共阴极接法共阳极接法如图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所示表4.9-1 共阴极LED数码管字形代码字型共阴极字形代码字型共阴极字形代码字型共阴极字形代码03FH67DHC39H106H707Hd5EH25BH87FHE79H34FH96FHF71H466HA77H灭00H56DHb7CH*实际上试验中使用的是共阳极数码管,这里就不一一列出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)所示。

      a) 静态显示程序流程图(b) 动态显示程序流程图图4.9-3十位数的段码至A口个位数的段码至A口开始开始返回DOS返回DOS延时并修改要显示的数字三、 实验电路图第一部分电路图:第二部分电路图:四、 实验设备微型计算机、单片机仿真器、实验仪、示波器(各一台);实验连线(若干)五、 实验内容*由于汇编语言程序中已经做了相应的注释,C语言的编程原理与之相同处不再做重复注释,仅作个别注释,请见谅1. 编程在8位数码管上面显示“12345678”8个数字,每经过1秒8个数字循环左移一位显示依次为:1234578、23456781、34567812.......汇编语言程序代码: ORG 0000HSTART: MOV R4,#00HFLASH: 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 ;关显示 MOV A,R2 ;位型左移一位 RL A MOV R2,A INC R0 ;下一个字形 CJNE R0,#38H,GOON MOV R0,#30HGOON: 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: AJMP FLASHTABFLA: ;字形表 DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H,88H DB 83H,0C6H,0A1H,86H,8EHENDC语言程序代码:#includedata unsigned char disadd _at_ 0x30;const unsigned char LED_TAB[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92, 0x82,0xF8,0x80,0x90,0x88,0x83, 0xC6,0xA1,0x86,0x8E};data unsigned char j;void delay(){ unsigned char i=0xFF; while(i--) { ; }}void change_s(){ unsigned char *k; unsigned char m; k=&disadd; m=*k; //显示表移位 *k=*(k+1); *(k+1)=*(k+2); *(k+2)=*(k+3); *(k+3)=*(k+4); *(k+4)=*(k+5); *(k+5)=*(k+6); *(k+6)=*(k+7); *(k+7)=m; j=0x00; //计数值初始化}main(){ unsigned char i; unsigned char disbit; unsigned char *disnum,*n; SP=0x40; j=0x00; n=&disadd; *(n)=0x01; //显示设置初值为1~8 *(n+1)=0x02; *(n+2)=0x03; *(n+3)=0x04; *(n+4)=0x05; *(n+5)=0x06; *(n+6)=0x07; *(n+7)=0x08; while(1) { disbit=0x01; disnum=&disadd; for(i=0;i<8;i++) { P2=0x00; P1=LED_TAB[*disnum]; P2=disbit; delay(); disbit=disbit<<1; disnum++; } j++; if(j==0x3f) { change_s(); //调用显示表移位子程序 } }}2. 用8255的PA口作为段码输出口,编写程序,利用定时器T0作为时间基准控制电子钟走时,电子钟的格式为:XX—XX—XX分钟—秒钟—百分秒汇编语言程序代码: COM_ADD XDATA 0F003H PA_ADD XDATA 0F000H PB_ADD XDATA 0F001H PC_ADD XDATA 0F002H ORG 0000H AJMP START ORG 000BH AJMP T0INT ORG 0030HSTART: MOV SP,#60H ;设置堆栈 MOV TMOD,#01H ;设置定时器T0的控制字 MOV TH0,#0F0H ;设置定时器计数初值 MOV TL0,#07FH MOV R7,#00H ;显示寄存器置初值 MOV R6,#00H MOV R5,#00H MOV R4,#00H MOV R3,#00H MOV R2,#00H MOV 32H,#16 ;设置显示分隔符 MOV 35H,#16 SETB ET0 ;允许中断(T0内部中断) SETB EA SETB TR0 ;开始计数CONTINUE: MOV 37H,R7 ;进位判断,R7表示百分之一秒(之后的以此类推) MOV 36H,R6 CJNE R6,#0AH,NOREACH MOV R6,#00H MOV 36H,R6 INC R5 MOV 34H,R5 CJNE R5,#0AH,NOREACH MOV R5,#00H MOV 34H,R5 INC R4 MOV 33H,R4 CJNE R4,#06H,NOREACH MOV R4,#00H MOV 33H,R4 INC R3 MOV 31H,R3 CJNE R3,#0AH,NOREACH MOV R3,#00H MOV 31H,R3 INC R2 MOV 30H,R2 CJNE R2,#06H,NOREACH MOV R2,#00H MOV 30H,R2 NOREACH: ACALL DISPLAY ;调用显示子程序 AJMP CONTINUE ;中断子程序 T0INT: INC R7 ;R7表示百分之一秒(之后的以此类推) CJNE R7,#0AH,NOREACH_S MOV R7,#00H INC R6NOREACH_S: MOV TH0,#0F0H ;计数完一次后再次置计数初值 MOV TL0,#07FH RETI;数码管显示子程序DISPLAY: MOV R1,#01H ;位型输出指针 MOV R0,#30H MOV DPTR,#COM_ADD MOV A,#80H MOVX @DPTR,A LOPFLA: MOV DPTR,#PB_ADD MOV A,R1 MOVX @DPTR,A MOV DPTR,#TABFLA MOV A,@R0 MOVC A,@A+DPTR ;在程序段中查表得到字形 MOV DPTR,#PA_ADD MOVX @DPTR,A MOV A,#00HWAIT: DEC A CJNE A,#00。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.