標(biāo)題:
51單片機(jī)簡(jiǎn)易電壓表程序
[打印本頁(yè)]
作者:
aliao12356
時(shí)間:
2020-6-17 14:15
標(biāo)題:
51單片機(jī)簡(jiǎn)易電壓表程序
#include <reg51.h>
#define uchar unsigned char
uchar code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
uchar count,getdata;
unsigned int voltage;
sbit ST_A=P3^0;
sbit EOC=P3^1;
sbit OE=P3^2;
sbit CLK=P3^3;
sbit ADD_A=P3^5;
sbit ADD_B=P3^6;
sbit ADD_C=P3^7;
void delayms(uchar ms)//鏁扮爜綆℃壂鎻忓歡鏃?
{
uchar i,j;
for (j=ms;j>0;j--)
for (i=60;i>0;i--);
}
void display (void)
{
P2=0xff;
P0=dispcode[voltage/100]+0x80;
P2=0Xfb;
delayms(10);
P2=0xff;
P0=dispcode[voltage%100/10];
P2=0Xfd;
delayms(10);
P2=0xff;
P0=dispcode[voltage%10];
P2=0Xfe;
delayms(10);
}
main()
{
IE=0x8a;
TMOD=0x21;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH1=256-2;
TL1=256-2;
TR0=1;
TR1=1;
ST_A=0;
OE=0;
ADD_A=0;
ADD_B=0;
ADD_C=0;
while(1)
{voltage=getdata*100;
voltage=voltage/51;
display();
}
}
void time0() interrupt 1
{count++;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(count==20)
{ count=0;
ST_A=1;
ST_A=0;
while(EOC==0);
OE=1;
getdata=P1;
OE=0;
}
}
void time1() interrupt 3
{
CLK=~CLK;
}
作者:
theleaving
時(shí)間:
2023-9-27 09:46
請(qǐng)問(wèn)這里具體用到的ADC芯片還有沒(méi)有介紹啊?
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1