//
{ } else {
for(n=0;n<4;n++)
{ draw_bmp(n*2,20,96,0,menu_led[n].display); }
select_item(user_choosen);
//标记出当前菜单项.
switch(temp_choosen) { case 0:
draw_bmp(0,20,96,0,measurearray); //“开始测量”数组
break;
??
default:
}
for(n=0;n
select_item(user_choosen+1);
} }
draw_bmp((n+1)*2,20,32,0,menu_led[n].display);
break;
void select_item(uchar n) {
draw_bmp(n*2,2,16,0,curflag);
}
void start_measure_function(void) //开始测量函数// {main_Menu(); } ??
44
/*----------------主函数-------------------*/ main() {
init_cpu(); Init_Clock(); init_lcd();
Disp_Img(FirstPage);
delay(2000); //延时// ClockMsg(); Refresh(); delay(2500); Clr_Scr(); main_Menu(); Clr_Scr(); main_menu_initial(); measure_menu_initial(); store_menu_initial(); time_menu_initial();
communication_menu_initial();
while(1)
//读键.
{ keyval=get_key();
led_menu_pro(); }
} // 适当延时防止因为不断查忙而耗费大量CUP资源 //
附录三 ADC0832程序
#define uint unsigned int //常量/变量定义//
45
uchar k,i,j; float xdata lv;
sbit ADCS =P3^1; //ADC0832 chip seclect //接口定义// ?? //其它引脚略??
uchar xdata dsw[20]; //存放sprintf转换字符 uchar xdata value[149]; //点阵字符储存 uchar code table[]={ //字符查表
0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*\??};//采集并返回
unsigned int Adc0832(unsigned char channel) //AD转换,返回结果 {
uchar i=0; uchar j; uint dat=0; uchar ndat=0;
if(channel==0)channel=2; if(channel==1)channel=3; ADDI=1; _nop_(); _nop_();
ADCS=0;//拉低CS端 _nop_(); _nop_();
ADCLK=1;//拉高CLK端 _nop_(); _nop_();
ADCLK=0;//拉低CLK端,形成下降沿1 _nop_();
46
_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;//形成一次时钟脉冲 _nop_(); _nop_(); dat<<=1;
if(i==7)dat|=ADDO; }
for(i=0;i<8;i++) {
47
相关推荐: