你有基于单片机的数字电压表的程序吗?
答案:2 悬赏:30
解决时间 2021-02-28 20:38
- 提问者网友:多余借口
- 2021-02-28 04:46
你有基于单片机的数字电压表的程序吗?
最佳答案
- 二级知识专家网友:抱不住太阳的深海
- 2021-02-28 05:01
#include <regx51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit ST = 0xb2;
sbit OE = 0xb0;
uchar code led_7seg[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void Delayms(uint n)
{
unsigned int i,j;
for(j=n;j>0;j--)
for(i=112;i>0;i--);
}
void display(uint data1)
{
P0=led_7seg[data1/100];
P2=0xfd;
if(data1/100==0) P0_7=1; else P0_7=0;//小数点显示
Delayms(1);
P2=0xff;
P0=led_7seg[data1%100/10];
P2=0xfb;
Delayms(1);
P2=0xff;
P0=led_7seg[data1%10];
P2=0xf7;
Delayms(1);
P2=0xff;
}
uint VOL;
void main(void)
{
VOL=0;
IT1=1;
EX1=1;
EA=1;
ST=0;
OE=0;
while(1)
{
display(VOL);
}
}
void _int1(void) interrupt 2
{
OE=1;
VOL=P1*2;
ST=0;
OE=0;
ST=1;
_nop_();
ST=0;
}
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit ST = 0xb2;
sbit OE = 0xb0;
uchar code led_7seg[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void Delayms(uint n)
{
unsigned int i,j;
for(j=n;j>0;j--)
for(i=112;i>0;i--);
}
void display(uint data1)
{
P0=led_7seg[data1/100];
P2=0xfd;
if(data1/100==0) P0_7=1; else P0_7=0;//小数点显示
Delayms(1);
P2=0xff;
P0=led_7seg[data1%100/10];
P2=0xfb;
Delayms(1);
P2=0xff;
P0=led_7seg[data1%10];
P2=0xf7;
Delayms(1);
P2=0xff;
}
uint VOL;
void main(void)
{
VOL=0;
IT1=1;
EX1=1;
EA=1;
ST=0;
OE=0;
while(1)
{
display(VOL);
}
}
void _int1(void) interrupt 2
{
OE=1;
VOL=P1*2;
ST=0;
OE=0;
ST=1;
_nop_();
ST=0;
}
全部回答
- 1楼网友:魅世女王
- 2021-02-28 06:08
我有
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯