⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.c

📁 用protues+keil Uv3模拟仿真一个杆的重心位置
💻 C
字号:
#include <AT89X51.H>
#define  L    300              //表示300cm
#define  PE  2                       /*5V/256=0.0195V 转换精度,没有用上*/
			
#define ST  P3_2
#define OE  P3_0
#define EOC P3_1
void main()
{unsigned char data ADC_1,ADC_2; /*存放转换后的数据*/
int data j;
float data k,m,n;
unsigned char data i,LED_0=0,LED_1=0,LED_2=0,LED_3=0;              /*存放三个数码管的段码*/
char code DIS_1[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//不带点0 1 2 3 4 5 6 7 8 9
char code DIS_2[]={0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF};//带点

/*TMOD=0x01;
TH0=255-12;
TL0=255-12;
ET0=1,EA=1,TR0=1;
*/
while (1)
{
//采集传感器A的数据
P3_4=0,P3_5=0,P3_6=0;
ST=0;
ST=1;
ST=0;
while (!EOC) ;
OE=1;
ADC_1=P1;
OE=0;

//采集传感器B的数据
P3_4=1,P3_5=0,P3_6=0;
ST=0;
ST=1;
ST=0;
while (!EOC);
OE=1;
ADC_2=P1;
OE=0;

m=ADC_1,n=ADC_2;
k=m*L/(m+n);
j=k*10;

LED_3=j/1000;
LED_0=j/100%10;
LED_1=j/10%10;
LED_2=j%10;

for(i=0;i<100;i++)
{P0=DIS_1[LED_3];
P2_0=0;}
P2_0=1;

for(i=0;i<100;i++)
{P0=DIS_1[LED_0];
P2_1=0;}
P2_1=1;

for(i=0;i<100;i++)
{P0=DIS_2[LED_1];
P2_2=0;}
P2_2=1;

for(i=0;i<100;i++)
{P0=DIS_1[LED_2];
P2_3=0;}
P2_3=1;
}
}
/*void CLOCK () interrupt 1
{P2_4=~P2_4;}*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -