发布时间 : 星期三 文章基于单片机的CO2浓度检测与显示系统设计更新完毕开始阅读3ed59ad2b04e852458fb770bf78a6529647d355f
西安建筑科技大学课程设计(论文)
ADCLK=1; //拉高CLK端 _nop_(); _nop_();
ADCLK=0; //拉低CLK端,形成下降沿1 _nop_(); _nop_();
ADCLK=1; //拉高CLK端 ADDI=channel&0x1; _nop_(); _nop_();
ADCLK=0; //拉低CLK端,形成下降沿2 _nop_(); _nop_();
ADCLK=1; //拉高CLK端 ADDI=(channel>>1)&0x1; _nop_(); _nop_();
ADCLK=0; //拉低CLK端,形成下降沿3 ADDI=1; //控制命令结束 _nop_(); _nop_(); dat=0;
for(i=0;i<8;i++) {
dat|=ADDO; //收数据 ADCLK=1; _nop_(); _nop_();
ADCLK=0; //形成一次时钟脉冲
第 29 页 共 39页
西安建筑科技大学课程设计(论文)
_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[]
第 30 页 共 39页
西安建筑科技大学课程设计(论文)
void main_Menu()
{ Clr_Scr(); // 先清屏 // CS2=1;CS1=0; 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: }
switch(dsw[1]) { case 0:
sz_disp16(2,40,1,sz0); break;
case 1:……sz_disp16(2,40,1,sz9); }
CS2=1;CS1=0;
while(P1_3);
第 31 页 共 39页
西安建筑科技大学课程设计(论文)
}
/*-----------------------时钟程序--------------------------*/ /*-------------------引脚连接-------------------------------------*/ 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}; /*------------------子函数声明 (时钟部分 )--------------*/[7] 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 InputByte(unsigned char dat) {
unsigned char i; ACC = dat;
for(i=8; i>0; i--)
第 32 页 共 39页