




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#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.RA1#define A0 PORTAbits.RA2#define CE PORTAbits.RA3#define RC PORTAbits.RA4void InterruptHandlerHigh (void);#define uchar unsigned char/宏定义#define uint unsigned int#defineK_UP 0X20/定义键值#defineK_DOWN 0X21#defineK_CLEAR 0X24#defineK_OK 0X25#defineK_ONE 0X30#defineK_FOUR 0X31#defineK_SEVEN 0X32#defineK_POINT 0X33#defineK_TWO 0X34#defineK_FIVE 0X43#defineK_EIGHT0X36#defineK_ZERO0X37#defineK_THREE0X38#defineK_SIX 0X40#defineK_NINE0X41#defineK_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_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 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_Temperature() ; 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 InterruptHandlerHighvoidInterruptHandlerHigh () 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_Temperature();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() ); / Wait 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+;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_Temp_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)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 char 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_Buffer948)&(set_Temp_Display_Buffer858) set_Temp_Display_Buffer8-=1;else if(set_Temp_Display_Buffer8=48) set_Temp_Display_Buffer8=57; if(K_ONE = key)while(Keys_Scan() = K_ONE);set_Temp_Display_Buffer11=1;sel+;if(K_TWO = key)while(Keys_Scan() = K_TWO);set_Temp_Display_Buffer11=2;sel+;if(K_THREE = key)while(Keys_Scan() = K_THREE);set_Temp_Display_Buffer11=3;sel+;if(K_FOUR = key)while(Keys_Scan() = K_FOUR);set_Temp_Display_Buffer11=4;sel+;if(K_FIVE = key)while(Keys_Scan() = K_FIVE);set_Temp_Display_Buffer11=5;sel+;if(K_SIX = key)while(Keys_Scan() = K_SIX);set_Temp_Display_Buffer11=6;sel+;if(K_SEVEN = key)while(Keys_Scan() = K_SEVEN);set_Temp_Display_Buffer11=7;sel+;if(K_EIGHT = key)while(Keys_Scan() = K_EIGHT);set_Temp_Display_Buffer11=8;sel+;if(K_NINE = key)while(Keys_Scan() = K_NINE);set_Temp_Display_Buffer11=9;sel+;if(K_ZERO = key)while(Keys_Scan() = K_ZERO);set_Temp_Display_Buffer11=0;sel+;if(K_OK = key)while(Keys_Scan() = K_OK);TEMP_SET=(set_Temp_Display_Buffer8-48)*10+(set_Temp_Display_Buffer9-48)+(set_Temp_Display_Buffer11-48)*0.1;sel=0;M_Count=1;if(sel=1)key = Keys_Scan();if(K_CLEAR = key)while(Keys_Scan() = K_CLEAR);set_Temp_Display_Buffer8 = ;set_Temp_Display_Buffer9 = ;set_Temp_Display_Buffer10= ;set_Temp_Display_Buffer11= ; M_Count=0;cold=0;warm=0;sel=0; if(K_ONE = key)while(Keys_Scan() = K_ONE);set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=1;sel+;if(K_TWO = key)while(Keys_Scan() = K_TWO);set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=2;sel+;if(K_THREE = key)while(Keys_Scan() = K_THREE);set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=3;sel+;if(K_FOUR = key)while(Keys_Scan() = K_FOUR);set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=4;sel+;if(K_FIVE = key)while(Keys_Scan() = K_FIVE);set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=5;sel+;if(K_SIX = key)while(Keys_Scan() = K_SIX);set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=6;sel+;if(K_SEVEN = key)while(Keys_Scan() = K_SEVEN);set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=7;sel+;if(K_EIGHT = key)while(Keys_Scan() = K_EIGHT);set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=8;sel+;if(K_NINE = key)while(Keys_Scan() = K_NINE);set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=9;sel+;if(K_ZERO = key)while(Keys_Scan() = K_ZERO);set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=0;sel+;if(sel=2)key = Keys_Scan(); if(K_CLEAR = key)while(Keys_Scan() = K_CLEAR);set_Temp_Display_Buffer8 = ;set_Temp_Display_Buffer9 = ;set_Temp_Display_Buffer10= ;set_Temp_Display_Buffer11= ; M_Count=0;cold=0;warm=0;sel=0; if(K_POINT = key)while(Keys_Scan() = K_POINT);set_Temp_Display_Buffer9=set_Temp_Display_Buffer10 ;set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=.;sel+;if(sel=3)key = Keys_Scan(); if(K_CLEAR = key)while(Keys_Scan() = K_CLEAR);set_Temp_Display_Buffer8 = ;set_Temp_Display_Buffer9 = ;set_Temp_Display_Buffer10= ;set_Temp_Display_Buffer11= ; M_Count=0;cold=0;warm=0;sel=0; if(K_ONE = key)while(Keys_Scan() = K_ONE);set_Temp_Display_Buffer8=set_Temp_Display_Buffer9 ;set_Temp_Display_Buffer9=set_Temp_Display_Buffer10 ;set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=1;sel+;if(K_TWO = key)while(Keys_Scan() = K_TWO);set_Temp_Display_Buffer8=set_Temp_Display_Buffer9 ;set_Temp_Display_Buffer9=set_Temp_Display_Buffer10 ;set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=2;sel+;if(K_THREE = key)while(Keys_Scan() = K_THREE);set_Temp_Display_Buffer8=set_Temp_Display_Buffer9 ;set_Temp_Display_Buffer9=set_Temp_Display_Buffer10 ;set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=3;sel+;if(K_FOUR = key)while(Keys_Scan() = K_FOUR);set_Temp_Display_Buffer8=set_Temp_Display_Buffer9 ;set_Temp_Display_Buffer9=set_Temp_Display_Buffer10 ;set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=4;sel+;if(K_FIVE = key)while(Keys_Scan() = K_FIVE);set_Temp_Display_Buffer8=set_Temp_Display_Buffer9 ;set_Temp_Display_Buffer9=set_Temp_Display_Buffer10 ;set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=5;sel+;if(K_SIX = key)while(Keys_Scan() = K_SIX);set_Temp_Display_Buffer8=set_Temp_Display_Buffer9 ;set_Temp_Display_Buffer9=set_Temp_Display_Buffer10 ;set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=6;sel+;if(K_SEVEN = key)while(Keys_Scan() = K_SEVEN);set_Temp_Display_Buffer8=set_Temp_Display_Buffer9 ;set_Temp_Display_Buffer9=set_Temp_Display_Buffer10 ;set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=7;sel+;if(K_EIGHT = key)while(Keys_Scan() = K_EIGHT);set_Temp_Display_Buffer8=set_Temp_Display_Buffer9 ;set_Temp_Display_Buffer9=set_Temp_Display_Buffer10 ;set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=8;sel+;if(K_NINE = key)while(Keys_Scan() = K_NINE);set_Temp_Display_Buffer8=set_Temp_Display_Buffer9 ;set_Temp_Display_Buffer9=set_Temp_Display_Buffer10 ;set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=9;sel+;if(K_ZERO = key)while(Keys_Scan() = K_ZERO);set_Temp_Display_Buffer8=set_Temp_Display_Buffer9 ;set_Temp_Display_Buffer9=set_Temp_Display_Buffer10 ;set_Temp_Display_Buffer10=set_Temp_Display_Buffer11 ;set_Temp_Display_Buffer11=0;sel+;if(sel=4)key = Keys_Scan(); if(K_CLEAR = key)while(Keys_Scan() = K_CLEAR);set_Temp_Display_Buffer8 = ;set_Temp_Display_Buffer9 = ;set_Temp_Display_Buffer10= ;set
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 质量检验标准手册
- 德语甄别考试题及答案
- 老人护理考试题库及答案大全及答案
- 智能制造领域承诺书(7篇)
- 企业人力资源规划与招聘标准化流程
- 售后服务维修流程标准化作业手册
- 周末日记记录生活点滴11篇范文
- 环境保护工作承诺保证承诺书9篇
- 工业品质量控制标准及检测模板
- 不锈钢板材采购协议
- 研究生新生入学教育课件
- 2024年国家电投集团黄河公司招聘笔试参考题库含答案解析
- 航海英语会话(一)
- 道路工程安全技术交底
- 高三数学备课组高考数学经验总结
- 鼎捷T100-V1.0-票据资金用户手册-简体
- 城乡规划管理与法规系列讲座城乡规划的监督检查
- 第一单元知识盘点(含字词、佳句、感知、考点) 四年级语文上册 (部编版有答案)
- 钻井工程钻柱课件
- 小学硬笔书法课教案(1-30节)
- 周口市医疗保障门诊特定药品保险申请表
评论
0/150
提交评论