点亮静态数码管1.74HC138译码器
如图: Y4:1 0 0 Y5: 1 0 1 Y6: 1 1 0 Y7: 1 1 1 当输入为100时,Y4打开,依次类推。 2.数码管要点亮一个数码管,要知道一个位码和段码;(位类似一个旅店的位置,段类似一个这个房间的钥匙)位码:想点亮数码管的位置端码:想点亮的内容要想点亮一个数码管,要先确定位码(确定位置),然后在确定断码(确定要点亮的内容) 段码共阳数码管段码unsigned char code SEG_CODE[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; 位码当二进制的1在什么位置时,什么位置的数码管亮。 代码#include <REGX52.H>
#include <intrins.H>
unsigned char code sum[18] =
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,
0xbf,0x7f}; //段选码
void HC138(unsigned char n);
unsigned char i = 0x01;
int j;
void DisplayShow(unsigned char post , unsigned char show);
void showed();
void main(){
showed();
}
void HC138(unsigned char n){
switch(n){
case 6:
P2 = (P2 & 0x1f) | 0xc0;
break;
case 7:
P2 = (P2 & 0x1f) | 0xe0;
break;}
}
void DisplayShow(unsigned char post , unsigned char show){
HC138(6);
P0 = (0x01 << post); //位操作
HC138(7);
P0 = show;
}
void showed(){
DisplayShow(0,sum[2]); //第一个位置显示“2”
Delay1000ms();
}
|