
七段数码管程序设计
七段数码管程序设计

5.3单片机控制LED数码管的显示5.3.1LED数码管显示原理bg公共端av公共端可以控制数码体体体体体体体体10aoao管工作与否。bobococO思考为什么?2dodoeoeoDefofodgogodpdpodpo2134cd公共端edp公共端(b)共阳极(a)共阴极(c)外形及引脚
2 5.3 单片机控制LED数码管的显示 5.3.1 LED数码管显示原理 公共端可以控制数码 管工作与否。 思考为什么?

为使LED数码管显示不同字符,要把某些段点亮,就要为数码管各段提供一字节的二进制码,即字型码(也称段码)。习惯上以“a”段对应字型码字节的最低位。各字符段码见表5-1。表5-1LED数码管的字型码显示显示共阴极共阳极共阴极共阳极字符字符字型码字型码字型码字型码0c3FHCOH39HC6H1d06HF9H5EHA1H2E5BHA4H79H86H3F4FHBOH71H8EH4P66H99H73H8CH5U6DH92H3EHC1H6T7DH82H31HCEH707HF8H6EH91Hy8H7FH80H76H89H9L6FH90H38HC7H“灭”A77H88HO0HFFHb...7CH83H.3
为使LED数码管显示不同字符,要把某些段点亮,就要为数码管各 段提供一字节的二进制码,即字型码(也称段码)。习惯上以“a”段 对应字型码字节的最低位。各字符段码见表5-1。 3

·七段数码管和单片机连接:GNDU1R1560193922pFXTAL1PO.0IADOM8P0.11AD1-X1口PO.2IAD218M12MHzXTAL2P0.3/AD3.MCP0.4/AD4C34PO.5IAD5¥33+P0.6/AD6L32R7560RSTP0.7IAD722pF21P2.0/A84Voc22P2.11A9BR6R9P2.2/A10OPSENP2.3/A11ALE220P2.4/A1231EAP2.5IA13P2.6/A14¥28P2.7IA1510P1.0P3.0/RXD10uF11P11P3.1/TXDR8122VP3.2ANTO工1310kP3.3ANT1R14LVocP3.4/TO151P3.5/T116P3.6AVR17P1.7P3.7/RDAT89C51
• 七段数码管和单片机连接:

·#include.void main()while(1)( P0=0x66H;)若想要依次显示0~9如何实现呢?
• #include • void main() • { • while(1) • { P0=0x66H; } • } • 若想要依次显示0~9如何实现呢?

#include.#define uchar usigned charuchar code seg[]={0x3f,0x5b,0x66,0x7d,0x7f,0x06,0x4f0x6d,0x07,0x6f);Ⅱ共阴极段码表voiddelay500ms()void display(){uchari;for(i=0;i<10;i++)(P0=seg[il;delay500ms();)}:void main()3while(1)(display(:)
• #include • #define uchar usigned char uchar code seg[]={0x3f,0x5b,0x66,0x7d,0x7f,0x06,0x4f, 0x6d,0x07,0x6f}; //共阴极段码表 void delay500ms(){} void display() {uchar i; for(i=0;i<10;i++) {P0=seg[i]; delay500ms();} } • void main() • { • while(1) • {display();} • }

5.3.2LED数码管的静态显示与动态显示两种显示方式:静态显示和动态显示。·静态显示,每个字符需要一组串口控制。I/O 口 (1)I/O口 (2)I/O 口(3)I/O口(4)dp gbababadp gbadp gdp gLV+5VIGND
5.3.2 LED数码管的静态显示与动态显示 两种显示方式:静态显示和动态显示。 • 静态显示,每个字符需要一组串口控制

银GND8防06000000000000U1R1470R19XTALIOPOD222DS1DSOR2.470R1820XTAL236OP01R8R3470RPO51ACS470RPOB1A0BOP02P10O91PO.7IA7RSTR9R44Z0R410RAT89C51P11OP2.018OP03P21180R103AR5470R47ORPSENOP04P12OP24/A12R6470RR11470RP2.5/A13P2.6/A14P13OOP05P2.7/A15R12R7470R47ORSEEPR5888P140P1.0P3.0/RXDOP06E512346P3.1TXDR13P324m470RP3P15O2院R1441ORP16OP3.64P1.7P3.7RD图5-82位数码管静态显示的原理电路与仿真8
8 图5-8 2位数码管静态显示的原理电路与仿真

参考程序如下://包含8051单片机寄存器定义的头文件#includevoid main(void)(P0=0x5B;//将数字"2"的段码送P0口P1=0x07;//将数字"7"的段码送P1口while(1)//无限循环.-1优点:程序简单缺点:占用了太多I/0口
参考程序如下: # i n c lude / /包含8051单片机寄存器定义的头文件 v o i d m a i n( void) { P 0 = 0 x5B ; / /将数字"2"的段码送P0口 P 1 = 0 x07 ; / /将数字"7"的段码送P1口 w h i l e(1 ) / /无限循环 ; } 优点:程序简单 缺点:占用了太多I/ O口 9

2.动态显示方式X段码线8位I/O(1)a~dpa~dpa~dpa~dp888X888800C位选线4位I/O(2)
2. 动态显示方式