基于单片机酒精浓度测试毕业论文 - 图文(5)

2020-05-08 08:58

桂林电子科技大学毕业设计(论文)报告用纸 第 42 页 共 54 页

uchar LCD_Code[] =\

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

void lcd_delay(uchar delaytime) { }

void write_lcd_command(uchar write_command) { } { }

lcd_delay(40); RS=0; RW=0;

LCDPORT=write_command; EN=1; EN=0;

while(delaytime)delaytime--;

void write_lcd_data(uchar write_data)

lcd_delay(40); RS=1; RW=0;

LCDPORT=write_data; EN=1; EN=0;

void Display_One_Char( uchar x,uchar y,uchar dat) //x表示行,y表示列 {

switch(x) {

case 0: write_lcd_command(0x80+y); break; case 1: write_lcd_command(0xc0+y); }

break;

write_lcd_data(dat); }

void Display_List_Char(uchar x,uchar y,uchar *str) {

桂林电子科技大学毕业设计(论文)报告用纸 第 43 页 共 54 页

switch(x) {

case 0:

write_lcd_command(0x80+y); break;

case 1: write_lcd_command(0xc0+y); }

while (*str!='\\0') { }

write_lcd_data(*str); str++; break;

}

void xs_int(unsigned int shuju,bit t) //显示一个数字 {unsigned char huancun[6]={0}; unsigned char biaozhi=0,i; if (shuju < 10) biaozhi = 1; else if(shuju < 100) biaozhi = 2; else if(shuju < 1000) biaozhi = 3; else if(shuju < 10000) biaozhi = 4; else if(shuju < 65535) biaozhi = 5; switch(biaozhi)

{case 5:huancun[5] = shuju/10000; case 4:huancun[3] = shuju000/1000; case 3:huancun[2] = shuju00/100; case 2:huancun[1] = shuju0/10; case 1:huancun[0] = shuju; break;

default:break; }

for(i=6;i>1;i--)

{if(i==5)Display_One_Char(1,10,'.');

else Display_One_Char(t,15-i,0x30+huancun[i-1]); } Display_One_Char(t,15,'V'); }

void initial_lcd1602(void) {

//初始化LCD1602

uchar i; EN=0;

桂林电子科技大学毕业设计(论文)报告用纸 第 44 页 共 54 页

for(i=200;i>0;i--) lcd_delay(248);

write_lcd_command(0x38);

//0x38命令,双行显示,显示5x7的点阵字符

for(i=4;i>0;i--) lcd_delay(248); write_lcd_command(0x38); 符 }

for(i=4;i>0;i--)

lcd_delay(248);

write_lcd_command(0x0c); for(i=4;i>0;i--) lcd_delay(248);

write_lcd_command(0x06); for(i=4;i>0;i--)

lcd_delay(248);

write_lcd_command(0x01); for(i=4;i>0;i--) lcd_delay(248);

//再写一次0x38命令,双行显示,显示5x7的点阵字

//无光标,不闪烁

//光标右移,文字不移动

//清屏

四:AD转换程序

#include\

#include

//******************adc0832****************************// sbit CS=P3^1; //使能。 sbit CLK=P3^2;//时钟 sbit Do=P3^3; // 数据输出 sbit Di=P3^3;//数据输入

unsigned char CH=0x02;

//通道的选择:0x02就是单通道0;0x03就是单通道1; //0x00就是双通道ch0=“+”; ch0=“-” //0x01就是双通道ch0=“-”; ch0=“+”

//*****************************************************// unsigned char ADconv(void) {unsigned char i;

unsigned int data_f=0,data_c=0; Di=1; CS=1;

_nop_(); CS=0;

Di=1; ;//芯片使能之前的初始化。第一个下降沿 CLK=1; _nop_();

桂林电子科技大学毕业设计(论文)报告用纸 第 45 页 共 54 页

_nop_();

/****************************************/ CLK=0; // 确定通道模式、第2个下降沿 _nop_(); _nop_();

CLK=1;

Di=(bit)(0x02&CH); //设定通道初始化 _nop_(); CLK=0; _nop_();

_nop_(); CLK=1;

Di=(bit)(0x01&CH); //设定通道初始化 .第3个下降沿 _nop_();

_nop_();

CLK=0; //AD转化的初始化完成。 Di=1; CLK=1; _nop_(); _nop_(); CLK=0; _nop_(); CLK=1;

for(i=8;i>0;i--)//得到一个正常排序的8位数据 { data_f|=Do; data_f<<=1; CLK=1; _nop_(); _nop_(); CLK=0; _nop_();

}

for(i=8;i>0;i--)//得到一个反序排列的8位数据 {

data_c<<=1; data_c|=Do; _nop_(); CLK=1; _nop_(); _nop_(); CLK=0;

桂林电子科技大学毕业设计(论文)报告用纸 第 46 页 共 54 页

_nop_(); }

CLK=0; _nop_(); _nop_(); CLK=1; _nop_(); _nop_();

CLK=0; _nop_(); _nop_(); CLK=1; _nop_(); CS=1; _nop_(); _nop_(); return data_f; }

五:时钟程序

#include #include

sbit DS1302_CLK = P3^5; sbit DS1302_IO = P3^6; sbit DS1302_RST = P3^7;

uchar lcd_dat[]={\ 6\

uchar lcd_time[]={\

uchar wr_data[8]={0x09,0x09,0x26,0x06,0x22,0x59,0x50}; uchar readtimeR[8]; void delays(uint n) {

while(n--);

}

/***************************************************************************** 函数功能:写DS1302一个字节子程序 入口参数:


基于单片机酒精浓度测试毕业论文 - 图文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:IAUP暨AUAP高等教育国际化论坛隆重举行

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

马上注册会员

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