数字电压表的课程设计报告 - 图文(6)

2019-04-09 14:17

智能仪表综合课程设计

{

dis1>>= 1; if (DO) dis1|= 0x80; else dis1|= 0x00; _nop_(); Clk=1; _nop_(); Clk=0; }

if(dis0==dis1) //两次结束数据比较,若相等 date=dis0; //则赋值给dat

_nop_();

CS=1; //释放ADC0832

DO=1; //拉高输出端,方便下次通道选择DI端有效 Clk=1; //拉高时钟 return date; }

/*********************************************** 数据转换程序

功能:将0-255级换算成0.00-5.00的电压数

***********************************************/ void convert(uchar a) {

uint temp; //特别注意这里需定义int型(余数将大于255)

dis[0]=a/51; //取个位 temp=aQ; temp=temp*10;

dis[1]=temp/51; //取小数点后第一位 temp=tempQ;

24

智能仪表综合课程设计

}

temp=temp*10;

dis[2]=temp/51; //取小数点后第二位

/***************************************** LCD1602驱动程序

******************************************/ void delay(uchar z) { }

void write_cmd(uchar cmd)//lcd1602写命令函数 { }

void write_date(uchar date)//lcd1602写数据函数 {

lcdrs=1;

lcdrw=0; //选择数据寄存器 lcden=1;

P0=date; //写数据 delay(5);

lcden=0; //使能拉低 lcden=1; lcdrs=0;

lcdrw=0; //选择指令寄存器 lcden=1;

P0=cmd; //写数据 delay(5);

lcden=0; //使能拉低 lcden=1; uint x,y; for(x=z;x>0;x--)

for(y=122;y>0;y--);

25

智能仪表综合课程设计

}

void init_lcd1602()//lcd1602初始化 { }

/***************************************** 显示函数

*****************************************/ void display(void) { }

/************************************************ 主函数

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

void main(void)

uchar i;

write_cmd(0x80); for(i=0;i<3;i++) { }

write_date('V'); //最后一位后显示字符'V'

if(i==1) write_date('.'); //第二位显示小数点 write_date (0x30+dis[i]); delay(5);

write_cmd(0x01); //清屏 write_cmd(0x38); //功能设置 write_cmd(0x0c); //显示设置

write_cmd(0x06); //输入方式从左到右 delay(1);

26

智能仪表综合课程设计

{

CH=0; //选择通道0或1 init_lcd1602();//液晶1602显示初始化 while(1) //主循环 { date=ADC0832(CH);//启动ADC0832转换并接受数据

delay(1);

convert(date); display(); } }

//数据转换成BCD码

//显示数值 27


数字电压表的课程设计报告 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:NanoScope Analysis 简易使用说明

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: