本 科 毕 业 设 计
UCHAR i; UINT ret;
//UCHAR max_id,min_id,max_value,min_value; ADMUX =0x40; //ADCSRA |=0X86; ADCSRA=_BV(ADEN);
For(i=0;i<0;i++) {
ADCSRA|=BV(ADSC); _DELAY_LOOP_1(60); while(ADCSRA&_BV(ADSC); _delay_loop_1(60); Ret=ADCL;
Ret |=(UINT)(ADCH<<8); Adc_result[i]=ret; } Ret=0
For (i=1;i<10;i++) {
Ret+=adc_result[i]: } Ret /=9;
第 36 页 共44 页
本 科 毕 业 设 计
ADCSRA=0; Return ret; }
#ifUART0_EN>0 UCHAR Uart_Init(void) {
Cil(): //UBRRL=51; //UBRRH=0x80; //UCSRC=0X86;
UCSRC=(1< Return(UART_INT_SUCCESS): UART_INT_SUCCESS } #endif #ifUART0_EN>0 UCHAR Uart_Send(UCHAR*buf,UCHar len) { UCHAR i; If(len==0) { Return(UART_SEND_DATA_LENGTH_ERROR); 第 37 页 共44 页 本 科 毕 业 设 计 UART_SEND_DATA_LENGTH_ERROR } //EA=0; //TI=0; FOR(i=0;i While(!(UCSRA&(1< //DELAY_1MS(25); Returu(UART_SEND_SUCCESS); } #endif #if(UCHAR Uart_Data_Inf(uchar*data_len) { If(Uart_Data_Flag==1) { *data_len==8; Return(UART_INF_GET_SUCCESS); } else { 第 38 页 共44 页 本 科 毕 业 设 计 Return(UART_INF_GET_FAIL); } } #endif #ifUART0 EN>0 UCHAR Uart_Read(UCHAR*buf,UCHAR len) { If(len==0) { Return(UART_READ_LENGTH_ERROR); } Else { UCHAR cnt=0 While(cnt *buf++=Uart_value[cnt]; Cnt++; } Uart_Data_Flag=0; For(cnt=0;cnt Uart_Value[cnt]=0; } 第 39 页 共44 页 本 科 毕 业 设 计 Return(cnt); } } #endif SIGNAL(SIG_UART_RECV) { UCHAR temp; //Es0=0; Temp=UDR; IF(temp==0x55) { Uart_value[0]=temp; Uart_Value_Cnt,=1; } Else If(Uart_Value_Cnt<8) { Uart_Value[Uart_Value_Cnt]=temp; Uart_Value_Cnt++; If(Uart_Value_Cnt==7) { Uart_Data_Flag=1; Uart_Value_Cnt=0l } } 第 40 页 共44 页