//**************************************************** // Module : Blink // Description: Flash Display LED on Eval Board //*************************************************** //char P3_4 @ bit [0xB4]; //define bit, Port 3 bit 4 'display' led //unsigned char ucLength=0x20; //char temp2 @ bit [0x3b]; //unsigned char temp2; // Global variable //void INT0_int (void); void main (void); void lcdfreq (void); //extern unsigned char delaytest(unsigned char ucDelay); extern unsigned char initialize(void); extern unsigned char loop1(void); extern unsigned char bplcd(void); //********************************************* // Function: INT0_int // Input: void // output: void // description: INT 0 Interrup: // Increases the variable length by 0x10 each interrupt until 0x80 is reached //********************************************* //void INT0_int (void) @0x03 //interrupt 0 vector //{ //ucLength--; //if(ucLength<=0x10) // ucLength=0x30; //} //void temp2 (void) @0x3C //********************************************* // Function: main // Input: void // output: void //********************************************* void main(void) { unsigned char temp2 @ data [0x3c]; unsigned char offsetl @ data [0x3d]; unsigned char offseth @ data [0x3e]; unsigned char gain @ data [0x3f]; unsigned char lowdac @ data [0x40]; unsigned char highdac @ data [0x41]; unsigned char count @ data [0x42]; unsigned char temp @ data [0x43]; unsigned char temp1 @ data [0x44]; unsigned char savelow @ data [0x45]; unsigned char savehi @ data [0x46]; unsigned char start_line_set @ data [0x47]; unsigned char page_add_set @ data [0x48]; unsigned char column_add_high @ data [0x49]; unsigned char column_add_low @ data [0x4A]; unsigned char templcd @ data [0x4B]; unsigned char templcd1 @ data [0x4C]; unsigned char sample0_63 @ data [0x4D]; unsigned char page @ data [0x4E]; unsigned char bcd @ data [0x4F]; unsigned char hdatal @ data [0x50]; unsigned char hdatah @ data [0x51]; unsigned char savelowdac @ data [0x54]; unsigned char savehighdac @ data [0x55]; unsigned char oldtemp @ data [0x56]; unsigned char oldtemp1 @ data [0x57]; unsigned char savelowdac1 @ data [0x58]; unsigned char savehighdac1 @ data [0x59]; unsigned char count1 @ data [0x5A]; unsigned char temph @ data [0x5B]; unsigned char templ @ data [0x5C]; unsigned char th1save @ data [0x5D]; unsigned char tl1save @ data [0x3B]; unsigned char word1h @ data [0x5E]; unsigned char word1l @ data [0x5F]; unsigned char word2h @ data [0x60]; unsigned char word2l @ data [0x61]; unsigned char word3h @ data [0x62]; unsigned char word3l @ data [0x63]; unsigned char word4h @ data [0x64]; unsigned char word4l @ data [0x65]; unsigned char ix @ data [0x65]; unsigned char pressureh @ data [0x66]; unsigned char pressurel @ data [0x67]; unsigned char temperatureh @ data [0x68]; unsigned char temperaturel @ data [0x69]; unsigned char output @ data [0x6A]; unsigned char hour1 @ data [0x6B]; unsigned char oldtemph @ data [0x6C]; unsigned char freqh1 @ data [0x6D]; unsigned char freqh2 @ data [0x6E]; unsigned char freql1 @ data [0x6F]; unsigned char freql2 @ data [0x70]; unsigned char addcount @ data [0x71]; unsigned char average @ data [0x72]; unsigned long c1;// @ xdata [0x1300]; signed long c2;// @xdata [0x1304]; unsigned short word1;// @xdata [0x1308]; unsigned short word2;// @xdata [0x130A]; unsigned short word3;// @xdata [0x130C]; unsigned short word4;// @xdata [0x130E]; signed short highfreq @ xdata [0x1200]; signed short lowfreq @ xdata [0x1220]; signed long ut1;// @ xdata [0x1310]; signed long dt;// @ xdata [0x1314]; signed long d1;// @ xdata [0x1318]; signed long d2;// @ xdata [0x131C] ; signed long c3;// @ xdata [0x1320] ; signed long c4;// @ xdata [0x1324] ; signed long c5;// @ xdata [0x1328] ; signed long c6;// @ xdata [0x132C]; //signed long ab[500]; signed long tempbp;// @ xdata [0x1330] ; signed long offs;// @ xdata [0x1334] ; signed long sens;// @ xdata [0x1338] ; signed long x;// @ xdata [0x133C] ; signed long p;// @ xdata [0x1340] ; unsigned long templong;// @ xdata [0x1344]; signed short ab[50] @ xdata [0x3000]; ab[40]=0; ab[41]=0; ab[42]=0; ab[43]=0; ab[44]=0; ab[45]=0; ab[46]=0; ab[47]=0; ab[48]=0; //CFG841=(CFG841 & 0x0FE) ; //CLEARS CFG841.0, THIS ASSIGNS EXTERNAL MEMORY STARTING AT 0000H CFG841=(CFG841 & 0x07F) ; //CLEARS CFG841.7, THIS ASSIGNS LOWER 256 BYTES TO DATA AND STACK // EX0 = 1; // Enable INT0 Interrupt // IT0 = 1; // INT0 interrupt edge triggered // EA = 0; // Enable Interrupts (void)initialize(); //-------------Must change back to 0x014 before calling ASM DPCON = 0x010; //ab[400]=1; word1 =( word1h*256+word1l); word2 = (word2h*256+word2l); word3 = (word3h*256+word3l); word4 = (word4h*256+word4l); //word1 = 50426; //word2 = 9504; //word3 = 48029; //word4 = 55028; d1 = pressureh*256+pressurel; d2 = temperatureh*256+temperaturel; //c1 =( (word1)/2) & 32767; c1=((word1)/2)&32767; c2 = (word3 & 63)*64+(word4 & 63); c3 = (word4 & 65472)/64; c4 = (word3 & 65472)/64; c5 = (word1 & 1) * 1024 + ((word2 & 65472)/64); c6 = (word2 & 63); //c1 = 25213; //c2 = 1908; //c3 = 859; //c4 = 750; //c5 = 148; //c6 = 32; //d1 = 17000; //d2 = 22500; ut1 = 8*c5+20224; dt = d2 - ut1; tempbp = 200+(dt*(c6+50))/4096; //was tempbp offs = c2 * 4 + ((c4 - 512) * dt) /4096; //was offs sens = c1 + ((c3) * (dt))/1024 + 24576; //was sens x= (sens * (d1 - 7168)) /16384 - offs; //was x p= (x * 10)/32 + 250 * 10; templong =(1000* p)/1333; templong = (templong+5)/10; hdatah =templong/256; hdatal = templong & 255; DPCON = 0x014; (void)bplcd(); for(;;) { DPCON = 0x010; ix = ix+1; if (ix >=10) { //word1=ab[1]; //word2 = ab[2]; //word3 = ab[3]; //word4 = ab[4]; //templong = (freqh1*256+freqh2)-(freql1*256+freql2); //templong = templong *(savehighdac1 *256+savelowdac1); templong = ab[16-savehighdac1]-ab[16-savehighdac1+1]; templong = templong *(255-savelowdac1)/256; templong = ab[16-savehighdac1]-templong; //templong = templong/4096; //templong = templong +freql1*256+freql2; templong = templong * 128; templong = templong/100; ab[40]=ab[41]; ab[41]=ab[42]; ab[42]=ab[43]; ab[43]=ab[44]; ab[44]=ab[45]; ab[45]=ab[46]; ab[46]=ab[47]; ab[47]=ab[48]; ab[48]=templong; templong=(ab[40]/9+ab[41]/9+ab[42]/9+ab[43]/9+ab[44]/9+ab[45]/9+ab[46]/9+ab[47]/9+ab[48]/9); //word4h = word3h; //word4l = word3l; //word3h = word2h; //word3l = word2l; //c4 = c2 & 255; //c5 = c3 & 255; word1h = (templong/256 & 255); word1l = templong & 255; //word1h = (pressureh/4+word2h/4+word3h/4+word4h/4); //word1l = (pressurel/4+word2l/4+word3l/4+word4l/4); //word1h = (c2/16+15*c4/16) & 255; //word1l = (c3/16+15*c5/16) & 255; ix=0; } DPCON = 0x014; (void)loop1(); } }