欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2861|回復: 2
打印 上一主題 下一主題
收起左側

求稱重范圍為3KG的電子秤,proteu仿真圖及c語言程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:339390 發表于 2018-5-31 15:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
500黑幣

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:264287 發表于 2018-6-25 15:56 | 只看該作者
電子秤

電子秤資料.7z

225.44 KB, 下載次數: 10, 下載積分: 黑幣 -5

電子稱

回復

使用道具 舉報

板凳
ID:362226 發表于 2018-6-30 12:29 | 只看該作者
#include<reg51.h>
#include<intrins.h>
#include <absacc.h>
#include <math.h>
#define uchar unsigned char
#define uint unsigned int
#define BUSY 0x7f //常量定義
#define DATAPORT P0
sbit ADCS =P3^5;
sbit ADDI =P3^7;
sbit ADDO =P3^7;
sbit ADCLK =P3^6;
sbit LED1=P2^0;
sbit LED2=P2^1;
sbit LED3=P2^2;
sbit LED4=P2^3;
sbit LED5=P2^4;
sbit LED6=P2^5;

uint x1,y1,z1=0,w1,temp1;
uchar ad_data,k,n,m,e,num,s; //采樣值存儲sbit beep =P3^0;
char press_data; //標度變換存儲單元unsigned char press_ge=0; //顯示值個位unsigned char press_shifen=0; //顯示值十分位unsigned char press_baifen=0; //顯示值百分位unsigned char press_qianfen=0; //顯示值千分位unsigned char press_shi=0; //顯示值十位unsigned char press_dian=0; //顯示值小數點
void delay(uint);
uchar Adc0832(unsigned char channel);
void alarm(void);
void data_pro(void);
int x;
//定義數碼管共陽極的段碼
uchar code
dispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f,0x ff};
void delayms (unsigned int x)
{
unsigned char j;
while (x--)
{
for (j=0;j<123;j++){;}

}
}
/**********main funcation************/
void main(void)
{
uchar num=0;
while(1)
{
P0=0xff;
P0=dispcode[press_qianfen];LED1=0;LED2=0;LED3=0;LED4=0;LED5=0;LED6=1; delayms(5);
P0=0xff;
P0=dispcode[press_baifen] ;LED1=0;LED2=0;LED3=0;LED4=0;LED5=1;LED6=0; delayms(5);
P0=0xff;
P0=dispcode[press_shifen] ;LED1=0;LED2=0;LED3=0;LED4=1;LED5=0;LED6=0; delayms(5);
P0=0xff;
P0=dispcode[press_dian] ;LED1=0;LED2=0;LED3=1;LED4=0;LED5=0;LED6=0; delayms(5);
P0=0xff;
P0=dispcode[press_ge] ;LED1=0;LED2=1;LED3=0;LED4=0;LED5=0;LED6=0; delayms(5);
P0=0xff;
P0=dispcode[press_shi] ;LED1=1;LED2=0;LED3=0;LED4=0;LED5=0;LED6=0; delayms(5);
ad_data =Adc0832(0); //采樣值存儲單元初始化為0
data_pro();
}
}

//讀ADC0832函數
//采集并返回
uchar Adc0832(unsigned char channel) //AD轉換,返回結果{
uchar i=0;
uchar j;
uint dat=0;
uchar ndat=0;
if(channel==0)channel=2;
if(channel==1)channel=3;
ADDI=1;
_nop_();
_nop_();
ADCS=0;//拉低CS端
_nop_();
_nop_();
ADCLK=1;//拉高CLK端
_nop_();
_nop_();
ADCLK=0;//拉低CLK端,形成下降沿1
_nop_();
_nop_();
ADCLK=1;//拉高CLK端
ADDI=channel&0x1;
_nop_();
_nop_();
ADCLK=0;//拉低CLK端,形成下降沿2
_nop_();

_nop_();
ADCLK=1;//拉高CLK端
ADDI=(channel>>1)&0x1;
_nop_();
_nop_();
ADCLK=0;//拉低CLK端,形成下降沿3 ADDI=1;//控制命令結束
_nop_();
_nop_();
dat=0;
for(i=0;i<8;i++)
{
dat|=ADDO;//收數據
ADCLK=1;
_nop_();
_nop_();
ADCLK=0;//形成一次時鐘脈沖
_nop_();
_nop_();
dat<<=1;
if(i==7)dat|=ADDO;
}
for(i=0;i<8;i++)
{
j=0;
j=j|ADDO;//收數據
ADCLK=1;
_nop_();
_nop_();

ADCLK=0;//形成一次時鐘脈沖
_nop_();
_nop_();
j=j<<7;
ndat=ndat|j;
if(i<7)ndat>>=1;
}
ADCS=1;//拉低CS端
ADCLK=0;//拉低CLK端
ADDO=1;//拉高數據端,回到初始狀態
dat<<=8;
dat|=ndat;
return(dat); //return ad k
}
void data_pro(void)
{
unsigned int;
float press;
if(0<ad_data<256)
{
int vary=ad_data;
press=(0.01961*vary);
temp1=(int)(press*2000); //放大2000倍
press_shi=temp1/10000; //取電壓值十位
press_ge=(temp1%10000)/1000; //取電壓值個位
press_shifen=((temp1%10000)%1000)/100; //取電壓值十分位
press_baifen=(((temp1%10000)%1000)%100)/10; //取電壓值百分位
press_qianfen=(((temp1%10000)%1000)%100)%10; //取電壓值千分位
press_dian=10; //取電壓值小數點
1
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表