?? da.c
字號:
#include<reg51.h>
#include<stdio.h>
sbit SEL1=P3^4;
sbit SEL2=P3^5;
sbit SEL3=P3^6;
sbit SEL4=P3^7;
sbit OE=P2^4;
unsigned char ADC0808;
unsigned char ledmap[20]= // 共陰數碼管
{
0x3f,0x06,0x5b,0x4f,0x66, // 0,1,2,3,4,
0x6d,0x7d,0x07,0x7f,0x6f, // 5,6,7,8,9
0xbf,0x86,0xdb,0xcf,0xe6, // 帶點的0——9
0xed,0xfd,0x87,0xff,0xef, //
};
unsigned int getdata;
void ext_int0_init(void);
void delay(unsigned int t);
void disp();
void main(void)
{
ext_int0_init(); // 外部中斷初始化
EA=1;
while(1)
{
P2=0x00; // 0808初始化
delay(10);
P2=0x08; // 通道瑣存 0808所有的寄存器清零
delay(10);
P2=0x00; // 開始AD轉換
delay(10); // 等待轉換
disp();
}
}
void ext_int0_init(void) //
{
IT0=1;
EX0=1;
}
void disp()
{
P1=getdata;
P1=ledmap[0]; // 通道顯示
SEL1=0;
delay(10);
SEL1=1;
delay(10);
P1=ledmap[getdata*100/51/100%10+10]; // 百位 (小數點位)
SEL2=0;
delay(10);
SEL2=1;
delay(10);
P1=ledmap[getdata*100/51/10%10]; // 十位
SEL3=0;
delay(10);
SEL3=1;
delay(10);
P1=ledmap[getdata*100/51%10]; // 個位
SEL4=0;
delay(10);
SEL4=1;
delay(10);
}
void ext_int0(void) interrupt 0 using 1 // 讀轉換的數據
{
OE=1;
getdata=P0;
OE=0;
}
void delay(unsigned int t)
{
while(--t);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -