1、电子星系工程pic程序#include#include #define RSPIN PORTBbits.RB5 /Data or Instrument Select#define RWPIN PORTBbits.RB4 /Write or Read#define EPIN PORTBbits.RB3 /6800 mode Enable single#define INPUT PORTBbits.RB2#define cold PORTBbits.RB6#define warm PORTBbits.RB7#define STS PORTAbits.RA0#define CS PORTAbits.
2、RA1#define A0 PORTAbits.RA2#define CE PORTAbits.RA3#define RC PORTAbits.RA4void InterruptHandlerHigh (void);#define uchar unsigned char/宏定义#define uint unsigned int#define K_UP 0X20/定义键值#define K_DOWN 0X21#define K_CLEAR 0X24#define K_OK 0X25#define K_ONE 0X30#define K_FOUR 0X31#define K_SEVEN 0X32#
3、define K_POINT 0X33#define K_TWO 0X34#define K_FIVE 0X43#define K_EIGHT 0X36#define K_ZERO 0X37#define K_THREE 0X38#define K_SIX 0X40#define K_NINE 0X41#define K_SET 0X42#includekey.h/全局变量/unsigned int Timeout;float TEMP_NOW=0.0;float TEMP_SET=21.0;uint T_Count=0;uint S_Count=0;uint P_Count=0;uint N
4、_Count=0;uint M_Count=1;uchar Current_Temp_Display_Buffer= NOW:-23.5 ;uchar set_Temp_Display_Buffer= SET: 21.0 ;int sel=0; void Comparison();/定时/void timer0_init(void) Timeout = 0; INTCON = 0x20; /disable global and enable TMR0 interrupt INTCON2 = 0x84; /TMR0 high priority RCONbits.IPEN = 1; /enable
5、 priority levels TMR0H = 0; /clear timer TMR0L = 0; /clear timer T0CON = 0x82; /set up timer0 - prescaler 1:8 INTCONbits.GIEH = 1; /enable interrupts TRISD = 0; /* configure PORTD for output */ PORTD=0X00; if (Timeout = 1) /timeout? Timeout = 0; /clear timeout indicor Read_Temperature(); Display_Tem
6、perature() ; N_Count=1; / High priority interrupt vector/PIC 中断标准服务程序#pragma code InterruptVectorHigh = 0x08 /中断向量voidInterruptVectorHigh (void) _asm goto InterruptHandlerHigh /jump to interrupt routine _endasm/-/ High priority interrupt routine/中断服务程序#pragma code#pragma interrupt InterruptHandlerHi
7、ghvoidInterruptHandlerHigh () if (INTCONbits.TMR0IF) /check for TMR0 overflow INTCONbits.TMR0IF = 0; /clear interrupt flag Timeout = 1; /indicate timeout void Comparison() if(N_Count&M_Count) if(TEMP_NOWTEMP_SET) cold=1; warm=0; if(TEMP_NOW=TEMP_SET) cold=0; warm=0; uchar int_LM20(); void Read_Tempe
8、rature();void Display_Temperature();void ad_convertor()float temp;OpenADC( ADC_FOSC_32 & ADC_RIGHT_JUST & ADC_8ANA_0REF, ADC_RA0 & ADC_INT_OFF );/ A/D 时钟源,晶振32分频率/ A/D 转换结果右对齐/ A/D 参考电压源,电源工作电压/ 通道选择/ 中断关闭,查询模式Delay10TCYx( 5 ); / Delay for 50TCYConvertADC(); / Start conversionwhile( BusyADC() ); / W
9、ait for completiontemp = ReadADC(); / Read resultCloseADC(); / Disable A/D converterNop();Temp_Value0=temp/256;Temp_Value1=temp%256;void Display_Temperature() uchar t = 150, ng = 0; if(Temp_Value1&0xf8)=0xf8) Temp_Value1 = Temp_Value1; Temp_Value0 = Temp_Value0+1; if(Temp_Value0=0x00) Temp_Value1+;
10、ng = 1; Display_Digit0 = df_TableTemp_Value0&0x0f; CurrentT = (Temp_Value0&0xf0)4) | (Temp_Value1&0x07)4); Display_Digit3 = CurrentT/100; Display_Digit2 = CurrentT%100/10; Display_Digit1 = CurrentT%10; Current_Temp_Display_Buffer11 = Display_Digit0 + 0; Current_Temp_Display_Buffer10 = .; Current_Tem
11、p_Display_Buffer9 = Display_Digit1 + 0; Current_Temp_Display_Buffer8 = Display_Digit2 + 0; Current_Temp_Display_Buffer7 = Display_Digit3 + 0; TEMP_NOW=Display_Digit2*10+Display_Digit1+Display_Digit0*0.1 ; if(Display_Digit3 = 0) Current_Temp_Display_Buffer7 = ; if(Display_Digit2 = 0&Display_Digit3=0)
12、 Current_Temp_Display_Buffer8 = ; if(ng) TEMP_NOW=-(Display_Digit2*10+Display_Digit1+Display_Digit0*0.1); if(Current_Temp_Display_Buffer8 = ) Current_Temp_Display_Buffer8 = -; else if(Current_Temp_Display_Buffer7 = ) Current_Temp_Display_Buffer7 = -; else Current_Temp_Display_Buffer6 = -; unsigned c
13、har Keys_Scan();void set_num();void set();void Delay_key();uchar Keys_Scan();uchar code KeyCodeTable= 0xEE,0xED,0xEB,0xE7,0xDE,0xDD,0xDB,0xD7,0xBE,0xBD,0xBB,0xB7,0x7E,0x7D,0x7B,0x77;void Delay_key() uchar i; for(i=0;i47)&(set_Temp_Display_Buffer1147)&(set_Temp_Display_Buffer947)&(set_Temp_Display_Buffer848)&(set_Temp_Display_Buffer1148)&(set_Temp_Display_Buffer958) set_Temp_Display_Buffer9-=1; else if(set_Temp_Display_Buffer9=48)
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2