甲醛检测仪软件设计毕业设计 联系客服

发布时间 : 星期一 文章甲醛检测仪软件设计毕业设计更新完毕开始阅读040d6d9032d4b14e852458fb770bf78a65293a99

ADDI=1;//控制命令结束 _nop_(); _nop_(); dat=0;

for(i=0;i<8;i++) {

dat|=ADDO;//收数据 ADCLK=1; _nop_(); _nop_();

ADCLK=0;//形成一次时钟脉冲 _nop_(); _nop_(); dat<<=1;

if(i==7)dat|=ADDO; }

for(i=0;i<8;i++) {

j=0;

j=j|ADDO;//收数据 ADCLK=1; _nop_(); _nop_();

ADCLK=0;//形成一次时钟脉冲 _nop_(); _nop_(); j=j<<7;

ndat=ndat|j; if(i<7)ndat>>=1; }

ADCS=1;//拉低CS端 ADCLK=0;//拉低CLK端

ADDO=1;//拉高数据端,回到初始状态 dat<<=8; dat|=ndat;

return(dat); //return ad k }

/*----------------------点阵字符采集函数--------------------------*/ void tra(uchar *p) //数组dsp[]里面的字符查询后,再储储存到另一个显示数组value[]

void main_Menu()

{ Clr_Scr(); // 先清屏 // CS2=1;CS1=0;

hz_disp16(0,32,1,jiaquan); …… //甲//醛//测//量//数//据//存//储//……

delay(2000); do{

/* k=Adc0832(0); //AD转换结果 l=k/255.0*100.0; ltemp=floor(l); dsw[0]=ltemp/10; dsw[1]=ltemp;

// sprintf(dsw,\ // dsw[0]=1; switch(dsw[0]) {

case 0:

sz_disp16(2,32,1,sz0); break;

case 1:……sz_disp16(2,32,1,sz9); }

switch(dsw[1]) {

case 0:

sz_disp16(2,40,1,sz0); break;

case 1:……sz_disp16(2,40,1,sz9); } */

// sz_disp16(2,40,1,sz0); /* tra(dsw); CS2=1;CS1=0;

sz_disp16(2,56,1,value); */ }

while(P1_3); }

附录四 按键程序

#define nullkey 0 //定义// ……

uchar get_key() //读键// {

uchar pass,kcodebuf;

static uchar lastkcode,keytime=0; 但需要常驻内存.

static uchar havekey=0;

定义为静态变量,外部不可见, //

static uchar keylock=0;

kcodebuf=P1 & 0xff; keytime++;

if (kcodebuf!=lastkcode) keytime=0; if (kcodebuf==0xff)

{ havekey=0;

keylock=0; keytime=0; pass=0; } ……

else pass=nusekey; lastkcode=kcodebuf;

return(pass); }

/*uchar get_key()

else pass=nusekey;

return(pass); } */

附录五 时钟程序

/*--------------------引脚连接-------------------------------------*/ sbit RST2 = P3^5; // 复位线引脚 // sbit CLK = P3^6; // 时钟线引脚 // …… // 其它引脚略……

/*---------------定义时间日期显示缓存 ----------------------*/ unsigned char Curtime[7];

idata unsigned char day,sec,min,hour,date,month,year,hms,n,fla_cou; unsigned char code yejing[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39}; /*------------------子函数声明 (时钟部分 )--------------*/ void InputByte(unsigned char Date);

void WriteTo1302(unsigned char Addr,unsigned char Date); ReadFrom1302(unsigned char Addr); void SetTime(unsigned char *pSecDa); void GetTime(unsigned char Curtime[]); void Init_T0(void); void FlashKey(void);

void Add(void);

void Init_Clock(void); void Refresh(void); void StartMenu(void)

/*------------------------时钟固定汉字显示-----------------------*/ void ClockMsg(void) {

Clr_Scr(); // 先清屏 CS2=1;CS1=0; // 左屏

hz_disp16(1,32,1,xing);…… //星//期// 2// 0// 年//时

CS2=0;CS1=1; // 右屏

hz_disp16(3,0,1,yue);…… //月//日//分//秒 }

/*----------------时钟部分-------------------------------*/ /*----------------函数:写入字节子函数-----------*/ void InputByte(unsigned char dat) {

unsigned char i; ACC = dat;

for(i=8; i>0; i--) {

IO = ACC0;

CLK = 1; //下降沿写入数据// CLK = 0;

ACC = ACC >> 1; } }

/*----------------函数:读出字节子函数-----------*/ OutputByte(void) //上升沿读出数据// ……

/*----------------函数:设置初始时间-------------------*/ void SetTime(unsigned char *pSecDa) { ……

WriteTo1302(0x8e,0x00); // 控制命令,WP=0,写操作 // for(i =7;i>0;i--) {

WriteTo1302(Addr,*pSecDa); // 秒 分 时 日 月 星期 年 // pSecDa++;