點亮靜態數碼管
1.png (446.89 KB, 下載次數: 71)
下載附件
2021-3-8 15:57 上傳
1.74HC138譯碼器
2.png (151.73 KB, 下載次數: 64)
下載附件
2021-3-8 15:57 上傳
如圖: 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();
}
|