久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機做的萬用表仿真 功能很全面
[打印本頁]
作者:
xu37479333
時間:
2017-3-27 10:48
標題:
51單片機做的萬用表仿真 功能很全面
51單片機萬用表仿真原理圖:
萬用表.gif
(1.66 MB, 下載次數: 152)
下載附件
2017-3-30 04:22 上傳
萬用表直流電壓測量程序:
#include<reg52.h>
#include"Delay.h"
#include<KEY_FUNCTION_DEFINE.H>
#include<measure_define.h>
#include"AD.h"
#include"LCD.h"
extern uchar disp_value[5];
extern uchar key_number;
uchar code DC_disp[]="DC VOL Measure ";
uchar code DC_disp2[]="value= ";
uchar code DC_disp3[]="1 ";
sbit Buzz=P3^7;
void DC_VOL_measure(void) //直流電壓測量函數
{ uchar ADTemp,num;
float ValueTemp;
WriteCom(0x01);
WriteCom(0x80); //顯示
for(num=0;DC_disp[num]!='\0';num++)
{
WriteData(DC_disp[num]);
Delay(10);
}
WriteCom(0x80+0x40); //顯示
for(num=0;DC_disp2[num]!='\0';num++)
{
WriteData(DC_disp2[num]);
Delay(10);
}
do{ //高電壓選擇端,20V~200V電壓選擇測量
s1=0;
s2=0;
s3=1;
Delay(10);
ADTemp=ADSample(DC_VOL_adder); //直流電壓的采樣
if(ADTemp>253)
{ Buzz=0;
WriteCom(0x80+0x46); //顯示
for(num=0;DC_disp3[num]!='\0';num++)
{WriteData(DC_disp3[num]);
Delay(10);
}
}
else
{
ValueTemp=ValueConver(ADTemp); //采樣值轉換為對應的電壓值
ValueTemp=ValueTemp*100; //電壓值乘以對應的比例值
FloatToChar(ValueTemp); //電壓值轉換為字符型
WriteCom(0x80+0x46); //顯示
for(num=0;num<5;num++)
{
WriteData(disp_value[num]);
Delay(10);
}
WriteData('V');
WriteData(' ');
}
} while((ADTemp>25)&&(key_number==1));
do //中端電壓選擇端,4V~40V電壓選擇端
{
s1=0;
s2=1;
s3=0;
Delay(50);
ADTemp=ADSample(DC_VOL_adder); //直流電壓的采樣
ValueTemp=ValueConver(ADTemp); //采樣值轉換為對應的電壓值
ValueTemp=ValueTemp*10; //電壓值乘以對應的比例值
FloatToChar(ValueTemp); //電壓值轉換為字符型
WriteCom(0x80+0x46); //顯示
for(num=0;num<5;num++)
{
WriteData(disp_value[num]);
Delay(10);
}
WriteData('V');
WriteData(' ');
} while((ADTemp>25)&&(ADTemp<253)&&(key_number==1));
do //小端電壓選擇端,0~4V電壓選擇端
{
s1=1;
s2=0;
s3=0;
Delay(10);
ADTemp=ADSample(DC_VOL_adder); //直流電壓的采樣
ValueTemp=ValueConver(ADTemp); //采樣值轉換為對應的電壓值
FloatToChar(ValueTemp); //電壓值轉換為字符型
WriteCom(0x80+0x46); //顯示
for(num=0;num<5;num++)
{
WriteData(disp_value[num]);
Delay(10);
}
WriteData('V');
WriteData(' ');
} while((ADTemp<253)&&(key_number==1));
}
復制代碼
#include<reg52.h>
#include"Delay.h"
#include<KEY_FUNCTION_DEFINE.H>
#include<measure_define.h>
#include"AD.h"
#include"LCD.h"
extern uchar disp_value[5];
extern uchar key_number;
extern uchar code DC_disp3[];
uchar code RES_disp[]="RES Measure ";
uchar code RES_disp2[]="value= ";
void Res_measure(void)
{
uchar ADTemp,num;
float ValueTemp;
WriteCom(0x01); //清屏
WriteCom(0x80); //顯示
for(num=0;RES_disp[num]!='\0';num++)
{
WriteData(RES_disp[num]);
Delay(10);
}
WriteCom(0x80+0x40); //顯示
for(num=0;RES_disp2[num]!='\0';num++)
{
WriteData(RES_disp2[num]);
Delay(10);
}
do{ //先選通20K通道
s1=0;
s2=0;
s3=1;
Delay(50);
ADTemp=ADSample(Res_adder); //讀采樣值
if(ADTemp>253)
{ WriteCom(0x80+0x46); //顯示
for(num=0;DC_disp3[num]!='\0';num++)
{
WriteData(DC_disp3[num]);
Delay(50);
}
}
else
{
ValueTemp=ValueConver(ADTemp); //采樣值0~255轉換為電壓值0~2v
ValueTemp=ValueTemp/2 ; //電壓轉換為電阻值
ValueTemp=ValueTemp*20000; //電阻值乘以對應的檔位
FloatToChar(ValueTemp); //浮點電壓值轉換為字符型數字
WriteCom(0x80+0x46); //顯示的地址
for(num=0;num<5;num++)
{
WriteData(disp_value[num]); //顯示數值
Delay(10);
}
WriteData('R');
WriteData(' ');
}
} while((ADTemp>25)&&(key_number==4)); //采樣電壓值大于0.2V
do{ //選通2K通道
s1=0;
s2=1;
s3=0;
Delay(50); //讀采樣值
ADTemp=ADSample(Res_adder);
ValueTemp=ValueConver(ADTemp); //采樣值0~255轉換為電壓值0~2v
ValueTemp=ValueTemp/2; //電壓轉換為電阻值
ValueTemp=ValueTemp*2000; //電阻值乘以對應的檔位
FloatToChar(ValueTemp);
WriteCom(0x80+0x46);
for(num=0;num<5;num++)
{
WriteData(disp_value[num]);
Delay(10);
}
WriteData('R');
WriteData(' ');
} while((ADTemp>25)&&(ADTemp<254)&&(key_number==4));//采樣電壓值大于0.2v小于2v
do{
s1=1; //選通200歐通道
s2=0;
s3=0;
Delay(50);
ADTemp=ADSample(Res_adder); //AD采樣
ValueTemp=ValueConver(ADTemp); //將0~255的數值轉換為0~2V的電壓值
ValueTemp=ValueTemp/2; //電壓轉換為電阻值
ValueTemp=ValueTemp*200; //電阻乘以相對應的檔位值
FloatToChar(ValueTemp); //電阻值轉換為字符型
WriteCom(0x80+0x46); //顯示電阻值
for(num=0;num<5;num++)
{
WriteData(disp_value[num]);
Delay(10);
}
WriteData('R');
WriteData(' ');
} while((ADTemp<253)&&(key_number==4)); //采樣電壓值小于2v
}
復制代碼
顯示程序:
#include<reg52.h>
#include"LCD.h"
#define datasend P0 //P0口數據送LCD1602
sbit LcdRs=P2^0; //1602數據、命令控制端
sbit LcdEn=P2^1; //1602使能端
uchar mytable0[]=" my design" ;
uchar mytable1[]="wan yong biao";
uchar code line0[]="welcome you";
uchar code line1[]="Value= V";
unsigned char disp_value[5]={'0','0','0','0','0'};
//寫命令
void WriteCom(unsigned char Com)
{
LcdRs=0; //低電平選擇為寫指令
datasend=Com; //把指令寫入P0口
Delay(5); //參考時序圖
LcdEn=1; //開使能
Delay(5); //讀取指令
LcdEn=0; //關閉使能
}
//寫數據
void WriteData(unsigned char Data)
{
LcdRs=1; //高電平選擇為寫數據
datasend=Data; //把數據寫入P0口
Delay(5); //參考時序圖
LcdEn=1; //開使能
Delay(5); //讀取指令
LcdEn=0; //關閉使能
}
//初始化
void LcdInit(void)
{ uchar num;
LcdEn=0;
WriteCom(0x38); //設置16x2顯示,5x7點陣顯示,8位數據接口
WriteCom(0x0c); //00001DCB,D(開關顯示),C(是否顯示光標),B(光標閃爍,光標不顯示)
WriteCom(0x06); //000001N0,N(地址指針+-1)
WriteCom(0x01); //清屏指令 每次顯示下一屏內容時,必須清屏
WriteCom(0x80+0x01); //第一行,頂格顯示
for(num=0;num<10;num++)
{
WriteData(mytable0[num]);
Delay(10);
}
WriteCom(0x80+0x40); //第二行,從第一格開始顯示
for(num=0;num<13;num++)
{
WriteData(mytable1[num]);
Delay(10);
}
Delay(1000);
WriteCom(0x01); //清屏指令 每次顯示下一屏內容時,必須清屏
WriteCom(0x80);
for(num=0;num<8;num++)
{
WriteData(line0[num]);
Delay(10);
}
WriteCom(0x80+0x40);
for(num=0;num<12;num++)
{
WriteData(line1[num]);
Delay(10);
}
}
//將浮點數據轉換為字符型數組
void FloatToChar(float Data)
{
uchar Temp1[5];
uchar Temp2[3];
unsigned int IntData,Temp;
float FloatData;
unsigned char i=0,j=0,k=0;
IntData=(unsigned int)Data;
FloatData=Data-IntData;
//整數部分
if(IntData==0)
{
Temp1[i]=0;
i++;
}
while(IntData)
{
Temp1[i]=IntData%10;
i++;
IntData=IntData/10;
}
//小數部分
while((FloatData>0.001)&&(j<3))
{
FloatData=FloatData*10;
Temp=(int)FloatData;
Temp2[j]=Temp;
j++;
FloatData=FloatData-Temp;
}
while(i>0)
{
disp_value[k]=Temp1[i-1]+'0';
i--;
k++;
}
disp_value[k]='.';
i=0;
k++;
while(i<j)
{
disp_value[k]=Temp2[i]+'0';
i++;
k++;
}
}
復制代碼
0.png
(65.93 KB, 下載次數: 120)
下載附件
2017-3-30 04:23 上傳
下載:
http://www.zg4o1577.cn/bbs/dpj-80194-1.html
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
欧美jizzhd精品欧美巨大免费
|
视频一二区
|
欧美www在线
|
精品av天堂毛片久久久借种
|
亚洲一区二区三区视频免费观看
|
久久毛片
|
亚洲欧美一区二区三区国产精品
|
欧美一级欧美一级在线播放
|
欧美电影在线观看网站
|
视频二区在线观看
|
福利网址
|
亚洲 中文 欧美
|
在线成人免费视频
|
久久久久亚洲精品
|
亚洲高清在线
|
大学生a级毛片免费视频
|
aaaa日韩
|
国产一区二区三区免费
|
一区二区三区日韩
|
亚洲天堂一区
|
97在线观看
|
日韩在线观看网站
|
成人免费视频在线观看
|
91豆花视频
|
国产www在线
|
亚洲精品一区二区三区
|
日韩一级免费看
|
一区二区福利视频
|
久久国产欧美日韩精品
|
高清视频一区二区三区
|
国产欧美在线
|
欧美日韩精品一区
|
亚洲欧洲一区二区
|
欧美日韩在线一区二区
|
久久久久久91香蕉国产
|
一级片免费视频
|
国产999精品久久久影片官网
|
曰韩一二三区
|
天天色影视综合
|
精品成人免费一区二区在线播放
|
日韩一区二区三区在线视频
|