資源簡介
014 電流表 仿真 51單片機 proteus仿真

代碼片段和文件信息
/******************************************************************************************
*???????????????????????????????????????????????????????*
*單片機型號:STC89C51/C52?????????????????????????????????????????????????????????????????*
*晶振頻率:11.0592MHz??????? ??????????????????*????????????????????????????????????????????????????????????????????????*
******************************************************************************************/
#include?
#include?
#include?
#include?
#include?
#include?“LCD1602.h“???//LCD1602液晶頭文件
#define?uint?unsigned?int
#define?uchar?unsigned?char
/************端口定義********************/
sbit?CS=P1^0;??????//ADC0832片選
sbit?CLK=P1^1;?????//ADC0832時鐘
sbit?DIO=P1^2;?????//ADC0832輸入輸出
void?delay(uint?t) //延時Xms
{
uchar?ttt;
while(t--)
{
for(ttt=125;ttt<0;ttt++);
}
}
/*****************************************/
/********ADC0832的A/D轉換程序************************/
uchar?Get_AD_Result(uchar?ch)
{
? uchar?idat1=0dat2=0;
CS??=?0;?_nop_();?_nop_();????????? //片選使能,低電平有效
CLK?=?0;?_nop_();?_nop_();?????????? //芯片時鐘輸入
DIO?=?1;?_nop_();?_nop_();
CLK?=?1;?_nop_();?_nop_();
//第1個下降沿之前,設DI=1/0
//選擇單端/差分(SGL/DIF)模式中的單端輸入模式
CLK?=?0;DIO?=?1;?_nop_();?_nop_();
CLK?=?1;?????????_nop_();?_nop_();
//第2個下降沿之前設置DI=0/1選擇CHO/CH1
CLK?=?0;
if(ch==0)
DIO?=?0;? //通道0?內部電壓測試
else?DIO?=?1; //通道1?
_nop_();?_nop_();?
CLK?=?1; ?_nop_();?_nop_();
//第3個下降沿之前設置DI=1
CLK?=?0;DIO?=?1;?_nop_();?_nop_();
???//第4-11個下降沿讀數據(MSB->LSB)
for(i=0;i<8;i++)
{
? CLK?=?1;?_nop_();?_nop_();
CLK?=?0;?_nop_();?_nop_();
dat1?=?dat1?<1?|?DIO;
}
//第11-18個下降沿讀數據(LSB->MSB)
for(i=0;i<8;i++)
{
CLK?=?1;?_nop_();?_nop_();
CLK?=?0;?_nop_();?_nop_();
? dat2?=?dat2?<((uchar)(DIO)< }
CS?=?1;//取消片選一個周期結束
//如果MSB->LSB和LSB->MSB讀取的結果相同則返回讀取的結果否則返回0
return?dat1;
// return?(dat1?==?dat2)???dat1:0;//取消校驗
}
/*****************************************/
/**********主程序*************************/
void?main()
{
char?adc5adc6adc7adc4;
unsigned?long?adcdata=0;
LCD1602_init();
LCD1602_Print(00“Curr(0~100mA):“);
LCD1602_Print(121“mA“);
while(1)
{
/////////////獲取?adc??單位0.1?mA
adcdata=(unsigned?long)(Get_AD_Result(0)*3.922);
/////////////轉換數據
adc4=adcdata%10000/1000;
adc5=adcdata%1000/100;
adc6=adcdata%100/10?;
adc7=adcdata%10/1;
/////////////顯示數據
GotoXY(71);
LCD1602_Write(1adc4+0x30);
LCD1602_Write(1adc5+0x30);
LCD1602_Write(1adc6+0x30);
LCD1602_Write(1‘.‘);
LCD1602_Write(1adc7+0x30);
delay(100);
}??
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-04-24?15:38??014?電流表\
?????文件????????2246??2018-06-18?22:57??014?電流表\alcohol.pdsprj.ANOOP.PC1.workspace
?????文件???????21027??2018-06-18?22:42??014?電流表\Backup?Of?alcohol.pdsbak
?????文件???????21031??2018-06-18?19:14??014?電流表\Last?Loaded?alcohol.pdsbak
?????文件????????5025??2018-03-24?20:56??014?電流表\LCD1602.h
?????文件????????2880??2018-06-18?22:42??014?電流表\main.c
?????文件????????6320??2018-06-18?22:56??014?電流表\main.LST
?????文件???????15542??2018-06-18?22:56??014?電流表\main.OBJ
?????文件???????14674??2018-06-18?22:56??014?電流表\PWM_MOTOS
?????文件????????4040??2018-06-18?22:56??014?電流表\PWM_MOTOS.hex
?????文件??????????45??2018-06-18?22:56??014?電流表\PWM_MOTOS.lnp
?????文件???????14031??2018-06-18?22:56??014?電流表\PWM_MOTOS.M51
?????文件?????????358??2018-06-18?22:56??014?電流表\PWM_MOTOS.plg
?????文件???????56031??2018-06-18?22:43??014?電流表\PWM_MOTOS.uvopt
?????文件???????13231??2018-05-13?17:17??014?電流表\PWM_MOTOS.uvproj
?????文件???????56033??2018-06-18?22:42??014?電流表\PWM_MOTOS_uvopt.bak
?????文件???????????0??2018-05-13?17:17??014?電流表\PWM_MOTOS_uvproj.bak
?????文件???????21026??2018-06-18?22:42??014?電流表\仿真.pdsprj
?????文件?????????328??2019-04-24?15:38??014?電流表\仿真.pdsprj.ANOOP.PC1.workspace
?????文件?????????691??2019-04-24?15:13??說明書.txt
- 上一篇:cameraplugin.aar
- 下一篇:025 四路定時開關 51單片機仿真
評論
共有 條評論