标题:
ADC0832数字电压表单片机例程代码与proteus仿真
[打印本页]
作者:
xwhdyhm
时间:
2018-1-3 15:27
标题:
ADC0832数字电压表单片机例程代码与proteus仿真
ADC0832数字电压表例程代码,附件中自取
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(17.76 KB, 下载次数: 76)
下载附件
2018-1-10 03:27 上传
数字电压表单片机源程序如下:
#include<reg52.h>
#include <intrins.h>
#include <delay.h>
#include <lcd1602.h>
#include <adc0832.h>
#include <led.h>
#include<stdio.h>
unsigned char code dianya[]="0123456789";
unsigned char i,Volt=0;
unsigned int V=0,bai,shi,ge,temp=0;
float vprint;
/*------------------------------------------------
串口通讯初始化
------------------------------------------------*/
void UART_Init(void)
{
SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收
TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重装
TH1 = 0xFD; // TH1: 重装值 9600 波特率 晶振 11.0592MHz
TR1 = 1; // TR1: timer 1 打开
//EA = 1; //打开总中断
//ES = 1; //打开串口中断
TI=1;
} //这一块与上位机通信的还没编写好!!
/*------------------------------------------------
显示
------------------------------------------------*/
void display(void)
{ LCD_Write_Char(6,1,dianya[bai]);
LCD_Write_Char(7,1,0x2e);
LCD_Write_Char(8,1,dianya[shi]);
LCD_Write_Char(9,1,dianya[ge]);
}
main(void)
{ UART_Init();
LCD_Init();
LCD_Write_String(3,0," Volt Peak");
while(1)
{ V= Adc0832(0); //刚开始一瞬间这个值有变化
Volt=Adc0832(0);//到这里不会有变化了
if(temp<Volt)temp=Volt;
vprint=(float)(temp*5.0/255);
// Send adc results to the serial interface
printf("Volt Peak: %7.3f\n",vprint);
V=(unsigned int)((temp*100)/51);
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
proteus数字电压表.rar
(84.99 KB, 下载次数: 101)
2018-1-3 15:26 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1