Технические разделы





Физическое тестирование

//TEMP_NOW_now: SSPSTATbits.CKE=1; //SMBUS spec for TC74

bits.SEN=1; //write to TC74(SSPCON2bits.SEN==1){};=0b10011010; //send TC74 ADDRESS (write)

ssprw();

while (SSPCON2bits.ACKSTAT==1) {}; //ack?

=cmd_byte;=WREG; //send COMMAND byte (config)();(SSPCON2bits.ACKSTAT==1) {}; //ack?

bits.RSEN=1; //send repeated start(SSPCON2bits.RSEN==1) {};=0b10011011; //send TC74 ADDRESS (read)(); //module idle?(SSPCON2bits.ACKSTAT==1) {}; //ack?

bits.RCEN=1; //enable receive mode(SSPCON2bits.RCEN==1) {};

=SSPBUF; //retrieve config reg or temp reg

bits.ACKDT=1; //send NOT-ACKbits.ACKEN=1;(SSPCON2bits.ACKEN==1){};

bits.PEN=1; //stop(SSPCON2bits.PEN==1){};=WREG;(cmd_byte==1) { //config command OR temp command=tempw;

_asm 0x40 //is temp ready ?? 0x40

_endasm(STATUSbits.Z==0) {goto get_temp;}_byte=0x00;temp_now;

}

=tempw;(temperature,tempv_char);_char[6]=tempv_char[0]; tempt_char[7]=tempv_char[1];_1();(i=0;i<ptr_count;i++)

{_char=tempt_char[i];_wr=temp_char;_write();

} //for i_2();_pos=9;_char_2();

}while(select==1);

}

//----------------- CLOCK ------------------------------------------clock (void)

{temp_char;i,n;(select==0){};

CON=0x0F;=0;minutes=0;hours=0;{bits.TMR1IF=0;H=0x68;L=0x00;

++;(seconds-60==0) {++;=0;

}(minutes-60==0){++;=0;

}(hours-13==0){=0;

}(scroll==0) clock_set();

clock_draw();

_2();

ptr_pos=7;_char_2();(PIR1bits.TMR1IF==0){if (scroll==0) clock_set();};

} while (select==1);

}

clock_set(void)

{(scroll==0){};(select==1) {(scroll==1) {_draw();_2();_pos=12;_char_2();(select==0) {minutes++;}(minutes-60==0){++;=0;

} //if(hours-13==0){hours=0;}

} //while(scroll==0){};(scroll==1) {_draw();_2();_pos=13;_char_2();(select==0) {hours++;}(hours-13==0){hours=0;}

}(scroll==0){};(scroll==1) {_draw();_2();_pos=14;_char_2();(select==0)

{goto clock_set_end;}

}

}_set_end: while (select==0){};

}

clock_draw(void)

{temp_char;i,n;=seconds;=10;(temph,tempv_char);(temph<10) {tempc_char[n]=zero[0];_char[n+1]=tempv_char[0];}{tempc_char[n]=tempv_char[0]; tempc_char[n+1]=tempv_char[1];}=minutes;=7;(temph,tempv_char);(temph<10) {tempc_char[n]=zero[0];_char[n+1]=tempv_char[0];}{tempc_char[n]=tempv_char[0]; tempc_char[n+1]=tempv_char[1];}=hours;=4;(temph,tempv_char);(temph<10) {tempc_char[n]=zero[0];_char[n+1]=tempv_char[0];}{tempc_char[n]=tempv_char[0]; tempc_char[n+1]=tempv_char[1];}_1();(i=0;i<ptr_count;i++)

{_char=tempc_char[i];_wr=temp_char;_write();

} //for i

}

stan_char_1(void)

{i;temp_char;_1();(i=0;i<ptr_count;i++)

{_char=stan_table[ptr_pos][i];_wr=temp_char;_write();

}

}stan_char_2(void)

{i;temp_char;_2();(i=0;i<ptr_count;i++)

{_char=stan_table[ptr_pos][i];_wr=temp_char;_write();

}

p18lcd.asm

********************************************************************

;* Microchip Technology Inc. 2002 *

;* Revised on 5/6/03 - Removed Linker file declaration *

;* Assembler version: 2.0000 *

;* Filename: *

;* p18lcd.asm *

;********************************************************************p=18f442

#include p18f442.inc

#define LCD_D4 PORTD, 0; LCD data bits

#define LCD_D5 PORTD, 1

#define LCD_D6 PORTD, 2

#define LCD_D7 PORTD, 3

#define LCD_D4_DIR TRISD, 0 ; LCD data bits

#define LCD_D5_DIR TRISD, 1

#define LCD_D6_DIR TRISD, 2

#define LCD_D7_DIR TRISD, 3

#define LCD_E PORTA, 1; LCD E clock

#define LCD_RW PORTA, 2; LCD read/write line

#define LCD_RS PORTA, 3; LCD register select line

#define LCD_E_DIR TRISA, 1

#define LCD_RW_DIR TRISA, 2

#define LCD_RS_DIR TRISA, 3

#define LCD_INS 0

#define LCD_DATA 1_LCD_DATA UDATAres 1res 1_wr res 1_rd res 1

GLOBAL temp_wrCODE_10x80temp_wri_writeLCDLine_1_20xC0temp_wri_writeLCDLine_2

;write data_write;temp_wr,TXREG;TXSTA,TRMT;$-2LCDBusySTATUS, CLCDWrited_write;instruction_writeLCDBusySTATUS, CLCDWrite i_write

rlcd macro MYREGISTERMYREGISTER == 1STATUS, CLCDReadSTATUS, CLCDReadPORTALCD_E_DIR;configure control linesLCD_RW_DIRLCD_RS_DIRb'00001110'ADCON10xff; Wait ~15ms @ 20 MHzCOUNTER0xFFdelayDelayXCyclesCOUNTER,Flil1b'00110000'; #1 Send control sequencetemp_wrSTATUS,CLCDWriteNibble

Перейти на страницу: 1 2 3 4

Еще статьи по технике и технологиям

Часы реального времени
В современном мире ни один электрический прибор не обходится без использования микроконтроллеров. Равно как и не обходится без визуализации информации с помощью LCD дисплеев. В данном курсовом проекте также используют ...

Синтез систем автоматизированного управления
Автоматическое управление в технике, совокупность действий, направленных на поддержание или улучшение функционирования управляемого объекта без непосредственного участия человека в соответствии с заданной целью управления. Автоматическ ...

© 2012-2021 | www.bjhdh.site