单片机原理及应11LED数码管显示ppt课件_第1页
单片机原理及应11LED数码管显示ppt课件_第2页
单片机原理及应11LED数码管显示ppt课件_第3页
单片机原理及应11LED数码管显示ppt课件_第4页
单片机原理及应11LED数码管显示ppt课件_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学习义务学习义务3 LED数码管显示接口及编程方法学习数码管显示接口及编程方法学习 学习内容学习内容LED数码显示器的构造数码显示器的构造LED数码显示器的显示编码原理数码显示器的显示编码原理单片机与单片机与LED数码显示器接口和编程数码显示器接口和编程学习目的学习目的了解了解LED数码显示器的构造数码显示器的构造掌握掌握LED数码显示器的显示编码原理数码显示器的显示编码原理学会单片机与学会单片机与LED数码显示器接口和编程方法数码显示器接口和编程方法一、一、 LED数码显示器的构造数码显示器的构造 LED数码显示器是数码显示器是1种由种由LED发光二极管组合显示字符的发光二极管组合显示字符的

2、显示器件。它运用了显示器件。它运用了8个个LED发光二极管,其中发光二极管,其中7个用于显个用于显示字符,示字符,1个用于显示小数点,故通常称之为个用于显示小数点,故通常称之为7段段(也有称也有称作作8段段)发光二极管数码显示器。其内部构造如图发光二极管数码显示器。其内部构造如图3-12所示。所示。 LED数码显示器有两种衔接方法:数码显示器有两种衔接方法: 1.共阳极接法共阳极接法 把发光二极管的阳极连在一同构成公共阳极,运用时公共把发光二极管的阳极连在一同构成公共阳极,运用时公共阳极接电源正端阳极接电源正端,每个发光二极管的阴极经过电阻与输入每个发光二极管的阴极经过电阻与输入端相连。端相连

3、。 2.共阴极接法共阴极接法 把发光二极管的阴极连在一同构成公共阴极,运用时公共把发光二极管的阴极连在一同构成公共阴极,运用时公共阴极接地。每个发光二极管的阳极经过电阻与输入端相连。阴极接地。每个发光二极管的阳极经过电阻与输入端相连。二、二、 LED数码显示器的显示段码数码显示器的显示段码 为了显示字符,要为为了显示字符,要为LED显示器提供显示段码显示器提供显示段码(或称字形或称字形代码代码),组成一个,组成一个“8字形字符的字形字符的7段,再加上段,再加上1个小数点个小数点位,合计位,合计8段,因此提供应段,因此提供应LED显示器的显示段码为显示器的显示段码为1个字个字节。各段码位的对应关

4、系如下:节。各段码位的对应关系如下:二、二、 LED数码显示器的显示段码数码显示器的显示段码 十六进制数的显示段码十六进制数的显示段码 三、三、 LED数码显示器的显示方法数码显示器的显示方法 LED数码显示器的显示方法有静态显示和动态显数码显示器的显示方法有静态显示和动态显示两种。示两种。 1.静态显示静态显示 所谓静态显示,就是在同一时辰只显示所谓静态显示,就是在同一时辰只显示1种字符,种字符,或者说被显示的字符在同一时辰是稳定不变的。或者说被显示的字符在同一时辰是稳定不变的。其显示方法比较简单,普通由一个其显示方法比较简单,普通由一个8位口衔接一位口衔接一位显示的字型控制端,只需将显示段

5、码送至段码位显示的字型控制端,只需将显示段码送至段码口,并把位控固定衔接即可。口,并把位控固定衔接即可。1.静态显示静态显示 例例3-9:运用共阴极构造的数码管与单片机的:运用共阴极构造的数码管与单片机的P2口衔接,口衔接,如图如图3-13。 执行执行 MOV P1,#3FH这一语句可在数码管上显示数字这一语句可在数码管上显示数字1。对应的对应的C言语语句是言语语句是P1=0 x3F;,;,3F是是1的共阴极显的共阴极显示代码,同样方法可使其显示其他数字或字符。示代码,同样方法可使其显示其他数字或字符。XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.

6、1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51PROGRAM=GG.hexR110R2120R3120

7、R4120R5120R6120R7120静态显示优点:静态显示优点:稳定、亮度高、直稳定、亮度高、直缺陷:占用口线多、缺陷:占用口线多、不适用于多位显示不适用于多位显示1.静态显示静态显示例例3-10:1位数码管显示。位数码管显示。1在上图中的显示器上轮番显示数字在上图中的显示器上轮番显示数字0F。汇编言语程序如下:。汇编言语程序如下:DDD:MOV R1,#00H ;第一个数字值;第一个数字值 MOV R2,#10H ;显示数字的个数设置;显示数字的个数设置HH: MOV A,R1 ;取要显示的数字;取要显示的数字 MOV DPTR,#TAB ;字型表格首地址送;字型表格首地址送DPTR M

8、OVC A,A+DPTR ;查表,得到与;查表,得到与A中数对应的字型代码中数对应的字型代码 MOV P2,A ;送;送I/O口,静态显示口,静态显示 LCALL DEL ;延时;延时 INC R1 ;调整下一个要显示的数;调整下一个要显示的数 DJNZ R2,HH ;显示计数器值减;显示计数器值减1,未减完时进展下一个数,未减完时进展下一个数 LJMP DDD ;程序循环;程序循环TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;0F的字型代码表的字型代码表DEL: MOV R7,#0FFH

9、;延时程序;延时程序WW: MOV R6,#0FFH DJNZ R6,$ DJNZ R7,WW RET END1.静态显示静态显示2C言语程序:言语程序:/*声明区声明区*/#include#define LED P2void delayms(int);char TAB16= 0 x3f, 0 x06, 0 x5b, 0 x4f, 0 x66, 0 x6d, 0 x7d, 0 x07,0 x7f, 0 x6f, 0 x77, 0 x7c, 0 x39, 0 x5e, 0 x79, 0 x71;/*主程序主程序*/main() int i; while(1) /无限循环无限循环 for(i=0;

10、i16;i+) /个数设置个数设置 LED=TABi; /字型代码由字型代码由LED代表的代表的P2输出输出 delayms(100); /延时延时 /*延时函数延时函数*/void delayms(int x) int i,j; for(i=0;ix;i+) for(j=1;j=600;j+);1.静态显示静态显示 2位数码管静态显示,只需将两个位数码管静态显示,只需将两个8位位I/O口与数码管衔接,口与数码管衔接,分别驱动十位与个位。分别驱动十位与个位。 例例3-11:如图:如图3-14,在两位数码管上显示,在两位数码管上显示100以内的计数以内的计数值。值。XTAL218XTAL119A

11、LE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89

12、C51PROGRAM=1LED.HEXR1220R2220R3220R4220R5220R6220R7220R8220R9220R10220R11220R12220R13220R142201.静态显示静态显示1汇编言语程序汇编言语程序SS: MOV R2,#0 ;显示初值;显示初值JY : MOV A,R2 ;R2中的数送中的数送A,作为被除数,作为被除数MOV B,#10 ;设置;设置B存放器中的数作除数存放器中的数作除数DIV AB ;除法运算,用于分开数据的十位和个位;除法运算,用于分开数据的十位和个位MOV DPTR,#TAB MOVC A,A+DPTR ;除法运算的结果商在;除法运算

13、的结果商在A中,为十位数,查表中,为十位数,查表MOV P3,A ;字型代码由;字型代码由P3输出输出MOV A,B ;除法运算的结果余数由;除法运算的结果余数由B送送A,MOVC A,A+DPTR ;查表;查表MOV P2,A ;个位数显示;个位数显示LCALL DEL ;延时;延时INC R2 ;调整要显示的数;调整要显示的数CJNE R2,#100,JY ;显示完否,未完转到;显示完否,未完转到JY语句语句LJMP SS ;循环;循环DEL: MOV R7,#0FFH ;延时子程序;延时子程序LL: MOV R6,#0FFH DJNZ R6,$ DJNZ R7,LL RET TAB: D

14、B 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END1.静态显示静态显示2C言语程序言语程序/*声明区声明区*/#includevoid delayms(int x);char TAB10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/*主程序主程序*/main() Int k;k=0;while(1) P3=TABk/10; /十位显示十位显示P2=TABk%10; /个位显示个位显示delayms(100); /延时延时k=k+1; /数值加数值加1if(k=100)k=0;

15、/到到100时重回时重回0/*延时函数延时函数*/void delayms(int x) int i,j; for(i=0;ix;i+) for(j=1;j=600;j+);2. 动态显示动态显示 实践运用的实践运用的LED数码显示器位数较多,为了简化线路、降数码显示器位数较多,为了简化线路、降低本钱,大多采用以软件为主的接口方法。对于多位低本钱,大多采用以软件为主的接口方法。对于多位LED数码显示器,通常采用动态扫描显示方法,即逐个地循环数码显示器,通常采用动态扫描显示方法,即逐个地循环点亮各位显示器。这样虽然在任一时辰只需点亮各位显示器。这样虽然在任一时辰只需1位显示器被位显示器被点亮,但

16、是由于人眼具有视觉残留效应,看起来与全部显点亮,但是由于人眼具有视觉残留效应,看起来与全部显示器继续点亮的效果根本一样示器继续点亮的效果根本一样(在亮度上要有差别在亮度上要有差别),如图,如图3-15。 2. 动态显示动态显示 假设要在同一时辰显示不同的字符,从电路上看,假设要在同一时辰显示不同的字符,从电路上看,这是办不到的。因此只能利用人眼对视觉的残留这是办不到的。因此只能利用人眼对视觉的残留效应,采用动态扫描显示的方法,逐个地循环点效应,采用动态扫描显示的方法,逐个地循环点亮各位数码管,每位显示亮各位数码管,每位显示1ms左右,使人看起来左右,使人看起来就好象在同时显示不同的字符一样。就

17、好象在同时显示不同的字符一样。 在进展动态扫描显示时,往往事先并不知道应显在进展动态扫描显示时,往往事先并不知道应显示什么内容,这样也就无从选择被显示字符的显示什么内容,这样也就无从选择被显示字符的显示段码。为此,普通采用查表的方法,由待显示示段码。为此,普通采用查表的方法,由待显示的字符经过查表得到其对应的显示段码。的字符经过查表得到其对应的显示段码。2. 动态显示动态显示 下面引见动态扫描显示程序编程方法。下面引见动态扫描显示程序编程方法。 例例3-12:以下电路图:以下电路图3-16,共阴极数码管衔,共阴极数码管衔接时,利用动态扫描方法在六位数码管上显示出接时,利用动态扫描方法在六位数码

18、管上显示出稳定的稳定的123456。XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014

19、P3.7/RD17P3.6/WR16P3.5/T115U180C51PROGRAM=6SMGDT.hexR1200R2200R3200R4200R5200R6200R7200R82002. 动态显示动态显示1汇编言语程序:汇编言语程序:DT:MOV P3,#0FFH ;每扫描一位每扫描一位前先关显示前先关显示MOV P2,#06H ;1的字型代码的字型代码由由P2口输出口输出MOV P3,#0FEH ;位控由位控由P3口口输出输出,以下每位控制左移一位以下每位控制左移一位LCALL DL ;每位显示中短每位显示中短暂停留暂停留MOV P3,#0FFHMOV P2,#5BHMOV P3,#0FD

20、HLCALL DLMOV P3,#0FFHMOV P2,#4FHMOV P3,#0FBHLCALL DLMOV P3,#0FFHMOV P2,#66HMOV P3,#0F7HLCALL DLMOV P3,#0FFHMOV P2,#6DHMOV P3,#0EFHLCALL DLMOV P3,#0FFHMOV P2,#7DHMOV P3,#0DFHLCALL DLLJMP DTDL: MOV R6,#0FFH ;每位停留每位停留延时延时 DJNZ R6,$ RET END 2. 动态显示动态显示2C言语程序:言语程序:/*声明区声明区*/ 2. 动态显示动态显示#include /51单片机头文件

21、单片机头文件#define uint unsigned int /宏定义宏定义#define uchar unsigned char /宏定义宏定义uchar code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77; /数码管显示编码数码管显示编码void delay(uint); /声明延时函数声明延时函数/*主程序主程序*/void main() while(1) P3=0 xff; /送位数据前封锁一切显示送位数据前封锁一切显示 P2=table1; /送段数据送段数据 P3=0 xfe;

22、/位控制位控制 delay(10); /每位显示停留一段小延时每位显示停留一段小延时,以下同以下同 P3=0 xff; P2=table2; P3=0 xfd; delay(10); P3=0 xff; P2=table3; P3=0 xfb; delay(10); P3=0 xff; P2=table4; P3=0 xf7; delay(10); P3=0 xff; P2=table5; P3=0 xef; delay(10); P3=0 xff; P2=table6; P3=0 xdf; delay(10);/*延时子函数延时子函数*/void delay(uint z) /延时子函数延时

23、子函数uint x,y;for(x=z;x0;x-)for(y=110;y0;y-); 本例显示数据有本例显示数据有6位,每位数码管对应位,每位数码管对应1位位有效显示数据。在动态扫描显示过程中,每有效显示数据。在动态扫描显示过程中,每位数码管的有一个短暂的显示时间,这由调位数码管的有一个短暂的显示时间,这由调用延时子程序来实现。用延时子程序来实现。2. 动态显示动态显示扫描中的位控制输出可由移位方法处理,使程序更为简化。扫描中的位控制输出可由移位方法处理,使程序更为简化。例例3-13 上例的简化程序上例的简化程序汇编言语程序汇编言语程序DT: MOV R5,#06 ;显示位数显示位数 MOV

24、 DPTR,#TAB ;取显示代码表道地址取显示代码表道地址 MOV R2,#1 ;首个显示数值存在首个显示数值存在R2 MOV R3,#0FEH ;第一位的位控制输出保管在第一位的位控制输出保管在R3中中XG: MOV A,R2 ;取出要显示的数值取出要显示的数值 MOVC A,A+DPTR ;运用查表指令找到对应的字型代码运用查表指令找到对应的字型代码MOV P3,#0FFH ;每扫描一位前先关显示每扫描一位前先关显示MOV P2,A ;字型代码由字型代码由P2口输出口输出MOV P3,R3 ;位控由位控由P3口输出口输出,LCALL DL ;每位显示中短暂停留每位显示中短暂停留INC R

25、2 ;调整显示的数值调整显示的数值MOV A,R3RL A ;每位控制左移一位;每位控制左移一位MOV R3,A ;位控制由;位控制由R3保管保管DJNZ R5,XG ;保证显示位数保证显示位数LJMP DTDL: MOV R6,#0FFH ;每位停留延时每位停留延时 DJNZ R6,$ RET TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END 2. 动态显示动态显示C言语程序言语程序/*声明区声明区*/#include /52单片机头文件单片机头文件#define uint unsigned int /宏定义宏定义#define ucha

26、r unsigned char /宏定义宏定义uchar code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f; /数码管显示编码数码管显示编码void delay(uint);/*主程序主程序*/void main()uchar i,wei; while(1) wei=0 xfe; /位控初始值位控初始值 for(i=1;i7;i+) /共共6位位P3=0 xff; /送位数据前封锁一切显示送位数据前封锁一切显示 P2=tablei; /送字型代码送字型代码P3=wei; /送段数据送段数据 wei=(w

27、ei0;x-) for(y=110;y0;y-); 2. 动态显示动态显示 例例3-14:六位数码管显示:六位数码管显示 汇编言语编程。汇编言语编程。 内存内存30H、31H、32H中的小于中的小于100的数依次在六的数依次在六位数码管上显示。位数码管上显示。 要显示十进制数,就必需先将其进展进制转换,要显示十进制数,就必需先将其进展进制转换,将其分解成十位数和个位数存于显示缓冲区将其分解成十位数和个位数存于显示缓冲区70H75H单元中,再查表得到其字形代码送到显单元中,再查表得到其字形代码送到显示器。示器。2. 动态显示动态显示MOV 30H,#XX ;先设置要显示的数据给;先设置要显示的数

28、据给3个内个内存单元存单元 MOV 31H,#XX MOV 32H,#XXJZZH: MOV A,30H ;取第一个内存单元的数;取第一个内存单元的数给给A存放器作为被除数存放器作为被除数 MOV B,#10 ;10送给送给B存放器,作为除数存放器,作为除数 DIV AB ;做除法;做除法 MOV 70H,A ;十位数商存入;十位数商存入70H单元单元 MOV 71H,B ;个位数余数存入;个位数余数存入71H单元单元JZZH1:MOV A,31H ;分解第二个单元的数;分解第二个单元的数 MOV B,#10 DIV AB MOV 72H,A MOV 73H,BJZZH2:MOV A,32H

29、;分解第三个单元的数;分解第三个单元的数 MOV B,#10 DIV AB MOV 74H,A MOV 75H,BDISP: MOV R0,#70H ;显示缓冲区的第;显示缓冲区的第1 个单个单元的地址给元的地址给R0 MOV R4,#6 ;R4作为显示数据个数的计数作为显示数据个数的计数存储器存储器 MOV R3,#0FEH ;显示扫描位控制的初始值;显示扫描位控制的初始值给给R3 MOV DPTR,#TABWW: MOV A,R0 ;间接寻址,取要显示的数据;间接寻址,取要显示的数据 MOVC A,A+DPTR ;查表,得到相应的字型码;查表,得到相应的字型码 MOV P3,#0FFH ;

30、关显示;关显示 MOV P2,A ;字型码由;字型码由P2口输出口输出 MOV A,R3 ;取位控制码;取位控制码 MOV P3,A ;由;由P3口输出控制相应位显示口输出控制相应位显示 RL A ;位控制字左移,指向下一位;位控制字左移,指向下一位 MOV R3,A ;存储位控制字;存储位控制字 INC R0 ;调整显示缓冲单元指针;调整显示缓冲单元指针 LCALL YS DJNZ R4,WW ;计数器内容减;计数器内容减1,完成一切,完成一切数据显示扫描数据显示扫描 LJMP JZZH ;反复扫描,得到稳定显示;反复扫描,得到稳定显示YS: MOV R7,#0FFH ;延时;延时 DJNZ

31、 R7,$ RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND2. 动态显示动态显示C言语编程言语编程将将a、b、c分别代表的时间时、分、秒显示在分别代表的时间时、分、秒显示在6位数码位数码管上。设时间为管上。设时间为15:30:25。/*声明区声明区*/#include /52单片机头文件单片机头文件#define uint unsigned int /宏定义宏定义#define uchar unsigned char /宏定义宏定义uchar code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f; /数码管显示编码数码管显示编码void delay(uint);/*主程序主程序*/void main() uchar w

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论