资源简介
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单片机仿真
相关资源
- 025 四路定时开关 51单片机仿真
- 基于51单片机的16X16点阵电子琴
- 基于Proteus的7107仿真
- 光敏电阻测试数码管显示
- 课程设计 51单片机电机PID调速打包k
- 51单片机+Nokia5110 实现点菜收银系统
- 用51单片机产生PWM控制直流小电机
- 基于51单片机DHT11温湿度检测和串口通
- 万年历 Proteus 液晶显示
- 基于51单片机的16*16点阵显示汉字
- 51单片机舵机角度控制程序
- 基于proteus的8086音乐播放器
- 基于51单片机的测量放大电路,简单实
- 12864液晶屏控制器为ks0108的proteus仿真
- 5V量程电压表汇编程序
- 51单片机步进电机正反转调速1602显示
- 51单片机做的温度计和AD采样,用的
- 基于51单片机的8路AD电压采集与测量
- 51单片机上的CRC8和CRC16的源码
- 基于P89C51单片机的多路数据采集系统
- 51单片机串口控制舵机
- 基于AT89S52单片机数码管显示数字钟含
- 基于51单片机的电器定时开关C程序
- 数控直流电流源打包的
- 51单片机做的音乐播放仿真+工程
- 51单片机控制乒乓球游戏
- 两个proteus仿真6位数显频率计数器和
- 51单片机多个超声波测距
- 80c51单片机4位数码管计算器设计
- 步进电机驱动代码TB6600+57BYG250B+51单片
评论
共有 条评论