云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 基于ADC0809的数字电压表 - 图文

基于ADC0809的数字电压表 - 图文

  • 62 次阅读
  • 3 次下载
  • 2025/6/22 1:15:17

南京信息工程大学

/* 写入字节函数 */ /******************************************************************/ void ShowChar(unsigned char pos,unsigned char c) {

unsigned char p; if (pos>=0x10)

p=pos+0xb0; //是第二行则命令代码高4位为0xc else

p=pos+0x80; //是第二行则命令代码高4位为0x8 WriteCommand (p);//写命令 WriteData (c); //写数据 }

/******************************************************************/ /* 写入字符串函数 */ /******************************************************************/ void ShowString (unsigned char line,char *ptr,uchar num) {

unsigned char l,i; l=line<<4;

for (i=0;i

ShowChar (l++,*(ptr+i));//循环显示16个字符 }

/******************************************************************/

- 13 -

南京信息工程大学

/* 初始化函数 */ /******************************************************************/ void InitLcd() {

delayms(15);

WriteCommand(0x38); //display mode WriteCommand(0x38); //display mode WriteCommand(0x38); //display mode WriteCommand(0x06); //显示光标移动位置 WriteCommand(0x0c); //显示开及光标设置 WriteCommand(0x01); //显示清屏 }

/******************************************************************/ /* AD转换 */ /******************************************************************/ void adc0809() {

oe=0; delayus(20); ale_start=0; delayus(20); ale_start=1; delayus(20);

- 14 -

南京信息工程大学

ale_start=0; //ale和start正脉冲,锁存地址,同时启动AD转换

while(!eoc); //等待转换结束 oe=1;

//输出使能

delayus(20);

value=adcdat; //value 采集到的电压值的数字量 delayms(50); oe=0;

delayms(300);

}

/**************************************

AD转换后进行数据处理比较

***************************************/ void compare(void) { adc0809(); tt=value*1500/255; delayms(10);

}

/**************************************

刷新当前显示

***************************************/ void new_disp_buf(void)

- 15 -

范围0~255 南京信息工程大学

{ }

/**************************************

当前电压显示

compare();

//'1'

disp_buf[0]=disp_table[tt/1000];

disp_buf[1]=disp_table[tt00/100]; //'2' disp_buf[2]=disp_table[10]; //'.'

disp_buf[3]=disp_table[tt0/10]; //'du' disp_buf[4]=disp_table[tt];

//

disp_buf[5]=disp_table[11]; // V

***************************************/ void displaycurrent(void) { }

void main() {

new_disp_buf(); //显示前先刷新缓冲区 ShowString (0,ptr1,16); //在第一行显示 ShowString (1,disp_buf,6); //第二行显示

InitLcd(); EA=1; ET0=1;

- 16 -

搜索更多关于: 基于ADC0809的数字电压表 - 图文 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

南京信息工程大学 /* 写入字节函数 */ /******************************************************************/ void ShowChar(unsigned char pos,unsigned char c) { unsigned char p; if (pos>=0x10) p=pos+0xb0; //是第二行则命令代码高4位为0xc else p=pos+0x80; //是第二行则命令代码高4位为0x8 WriteCommand (p);//写命令 WriteData (c); //写数据 } /********

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com