|
第九集数码管 一、数码管介绍: 数码管本质上就是几个LED灯共同组成的8字形显示器,如图1,8个LED
他有很多样式。可以显示数字,部分字母及符号。可分为共阴极和共阳极两种。试验箱上为8位8字形共阴极数码管如图2.
数码管引脚通过两个74HC595芯片与单片机的引脚连接,单片机控制数码管的显示。 任务1:数码管静态显示数字 利用数组保存数码管断码表: 0x3F, /*'0', 0*/ 0x06, /*'1', 1*/ 0x5B, /*'2', 2*/ 0x4F, /*'3', 3*/ 0x66, /*'4', 4*/ 0x6D, /*'5', 5*/ 0x7D, /*'6', 6*/ 0x07, /*'7', 7*/ 0x7F, /*'8', 8*/ 0x6F, /*'9', 9*/ 0x77, /*'A', 10*/ 0x7C, /*'B', 11*/ 0x39, /*'C', 12*/ 0x5E, /*'D', 13*/ 0x79, /*'E', 14*/ 0x71, /*'F', 15*/ 0x40, /*'-', 16*/ 0x00, /*' ', 17*/ 0x80, /*'.', 18*/ 定义数组Unsigned char SEG_NUM[]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D,0x7D,0x07, 0x7F, 0x6F, }; 定义变量: #define HC595_SER P34//数据引脚 #define HC595_SCK P32//时钟引脚 #define HC595_RCK P35//移出引脚 输出函数 Void send_595(unsigned char date) { Unsigned char i; For(i=0;i<8;i++) { Date <<=1; //将数据右移一位,则最高位的移入CY HC595_SER = CY; //先把数据写到引脚上 HC595_SCK = 1; //给一个上升沿信号 HC595_SCK = 0; //复位 } } Void display_seg(unsigned char i1,unsigned char i2) { Send_595(i1); //数码管断码输出,高电平点亮 Send_595(i2); //数码管位码输出,低电平点亮 HC595_RCK = 1; HC595_RCK = 0; } Void seg_task(void) { Display_seg(seg_num[0],0xfe); } 在主函数中调用seg_task()函数,就可以实现静态显示数字了。
|