/******************************************************************/
/* 文件名称:RF */
/* 加载文件 */
/******************************************************************/
#include<reg51.h>
#include<absacc.h>
/*公用函数---------------------------------------------------------*/
#define uchar unsigned char
#define uint unsigned int
uchar chnn;
#define IN0 XBYTE[0x7ff8+chnn]
unsigned char TempBuffer[10];
unsigned int temp;
unsigned char getdata; //存放读入数据
/*LCD1602----------------------------------------------------------*/
#define Data P2 //数据端口
sbit LcdRs=P3^1;
sbit LcdRw=P3^3;
sbit LcdEn=P3^4;
/*ADC0808----------------------------------------------------------*/
sbit EOC = P3^2; //忙信号
sbit Clk = P3^5; //时钟信号
/******************************************************************/
/* lcd1602 */
//ms函数***********************************************************/
void delayms(unsigned int ms){
unsigned int i,j;
for(i=0;i<ms;i++)
for(j=0;j<125;j++);
}
//us函数************************************************************/
void delayus(uint us){
while(us--);
}
//写指令************************************************************/
void Lcd_Com(unsigned char com){
delayms(1);
LcdRs=0;LcdRw=0;LcdEn=0;
Data=com;
delayms(1);LcdEn=1;
delayms(1);LcdEn=0;
}
//写数据************************************************************/
void Lcd_Dat(unsigned char dat){
delayms(1);
LcdRs=1;LcdRw=0;LcdEn=0;
Data=dat;
delayms(1);LcdEn=1;
delayms(1);LcdEn=0;
}
//初始化************************************************************/
void lcd_init(){
delayms(15);
Lcd_Com(0x38);delayms(5);
Lcd_Com(0x08);delayms(5);
Lcd_Com(0x01);delayms(5);
Lcd_Com(0x06);delayms(5);
Lcd_Com(0x0c);delayms(5);
}
//X Y 数据************************************************************/
void Lcd_Char(unsigned char X,unsigned char Y,unsigned char Recdata){
unsigned char address;
if (Y == 0) address = 0x80 + X;
else address = 0xc0 + X;
Lcd_Com(address);
Lcd_Dat(Recdata);
}
//显示****************************************************************/
int Lcdplay(unsigned char *Data,int pos){
while((*Data)!='\0'){
switch(*Data){
default:{
Lcd_Char(pos%16, pos/16,*Data);
pos++;
break;
}
}
Data++;
}
}
/******************************************************************/
/* ADC0808 */
//CLOCK时钟信号****************************************************/
void Time(void) interrupt 3 using 0{
TH1=(65536-200)/256;
TL1=(65536-200)%256;
Clk=~Clk;
}
//频率500HZ********************************************************/
void TimeInitial(){
TMOD=0x10;
TH1=(65536-200)/256;
TL1=(65536-200)%256;
EA=1; ET1=1; TR1=1;
}
//数据转换********************************************************/
uchar ad_action(uchar chn){
uchar read_data;
chnn=chn;
IN0=chn;
delayus(15);
read_data=IN0;
return read_data;
}
//数据转换********************************************************/
void IntToStr(unsigned int t, unsigned char *str){
unsigned char dispdata[4]; char i, j;
dispdata[0]=(t/1000)%10; //取得整数值到数组
dispdata[1]=(t/100)%10;
dispdata[2]=(t/10)%10;
dispdata[3]=(t/1)%10;
for(i=0; i<4; i++) //转成ASCII码
dispdata[i]=dispdata[i]+'0';
for(i=0; dispdata[i]=='0' && i<=2; i++);
for(j=0; j<i; j++){ *str=' '; str++; } //填充空格
for(; i<4; i++){ *str=dispdata[i]; str++; } //加入有效的数字
*str='\0';
}
/******************************************************************/
/* 主程序 */
//主程序***********************************************************/
void main(){
unsigned char p;
unsigned char xdata *ad_adr;
lcd_init();
Lcdplay("X",0);
Lcdplay("Y",8);
Lcdplay("Z",16);
ad_adr = &IN0;
TimeInitial();
while(1){
*ad_adr = 0; p=p; p=p;
while(EOC==0);
IntToStr(ad_action(0)*1.0/255*100,&TempBuffer[0]);
Lcdplay(&TempBuffer[0],1);
IntToStr(ad_action(1)*1.0/255*100,&TempBuffer[1]);
Lcdplay(&TempBuffer[1],9);
IntToStr(ad_action(2)*1.0/255*100,&TempBuffer[2]);
Lcdplay(&TempBuffer[2],17);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
电压测量proteus仿真(ADC0808+LCD1602)
共14个文件
bak:2个
dsn:1个
hex:1个
5星 · 超过95%的资源 需积分: 16 114 下载量 9 浏览量
2010-05-16
13:04:48
上传
评论 5
收藏 61KB RAR 举报
温馨提示
有详细的Proteus仿真原理图+c51源代码,AD采样+LCD输出显示。
资源推荐
资源详情
资源评论
收起资源包目录
电压测量proteus仿真(ADC0808+LCD1602).rar (14个子文件)
ADC0809+LCD1602三路电压测量
V_TEST.hex 5KB
V_TEST.Opt 1KB
V_TEST.c 5KB
V_TEST 4KB
V_TEST_Opt.Bak 1KB
V_TEST.LST 10KB
测电压.PWI 768B
Last Loaded 测电压.DBK 137KB
V_TEST.plg 868B
测电压.DSN 140KB
V_TEST.Uv2 2KB
V_TEST.M51 12KB
V_TEST.OBJ 5KB
V_TEST_Uv2.Bak 2KB
共 14 条
- 1
shaoyizhe2006
- 粉丝: 72
- 资源: 23
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 信呼OA系统2.1.7版源码
- 3122080306 邹子轩 实验报告二.docx
- 基于STM32 NUCLEO板设计彩色LED照明灯(纯cubeMX开发)(大赛作品,文档完整,可直接运行)
- 发那科工业机器人保养大全
- Sphere.h
- REMD固有时间尺度分解信号分量可视化(Matlab完整源码和数据)
- 嵌入式系统双单片机STC89C52+STC15W104多功能学习板电路图可扩展 适用于单片机初学者和教学
- 基于STM32蓝牙控制小车系统设计(硬件+源代码+论文)大赛作品
- XILINXFPGA源码基于Spartan3火龙刀系列FPGA开发板VGA测试例程
- Java聊天室的设计与实现【尚学堂·百战程序员】
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页