51單片機(jī)A/D轉(zhuǎn)換接口擴(kuò)展,做一個(gè)16進(jìn)制顯示的電壓表
遇到的問(wèn)題如下:第二個(gè)數(shù)碼管不亮,電平跳變都是對(duì)的。
如果在中斷的P1,P2賦值那一塊加上死循環(huán)兩個(gè)數(shù)碼管就都能亮了,
但是不能時(shí)刻測(cè)電壓值了,糾結(jié)。
道編程如下:
#include
unsigned char tab[16] = {
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
unsigned char xdata *ADC;
unsigned char num, s, g, sum;
void delay(unsigned int Delay)
{
unsigned int i;
for(;Delay;Delay--) for(i=0;i<54;i++);
}
void main()
{
IT0 = 1; EX0 = 1; EA = 1;
ADC = 0xf8fb;
*ADC = 0;
while(1) {
P2 = 0x02; P1 = tab[s]; delay(1); P2 = 0xf9;
P2 = 0x04; P1 = tab[g]; delay(1); P2 = 0xf9;
}
}
void A() interrupt 0
{
num = *ADC;
s = num / 16;
g = num % 16;
*ADC = 0;
}
試試看。