📄 heat.c
字号:
//;*************************************************
//;* heat.c **
//;*************************************************
//;* 本程序为热敏电阻输入处理模块程序
//;* 将温度值在LCD特定位置显示
//;* 占用I/O RA1,RB5,RB4,RB3
//;* 使用RAM
//;* 程序包括:
//;* - tempdeal 热敏电阻输入处理子程序
//;* - heattab 温度值校准表
//;*
//;* 入口参数 无
//;* 出口参数 TempH,TempL (温度值)
//;*************************************************
#include <pic18.h> // ;定义所用单片机的头文件
#define TSRCLK TRISD5
#define TRCLK TRISD4
#define TSER TRISD3
#define SRCLK RD5
#define RCLK RD4
#define SER RD3
void preled(void)
{
TSRCLK=0;
TRCLK=0;
TSER=0;
SRCLK=0;
RCLK=0;
SER=0;
}
void moniled (unsigned char led_data)
{
//MONILED; 入口参数LED_DATA,需要为
//;芯片全部在时钟上升沿完成动作,故需在低电平期间完成数据的变化。先发送高位
unsigned char i;
for(i=8;i!=0;i--)
{
if(led_data&0x80)
SER=1;
else
SER=0;
led_data<<=1;
asm("nop");
SRCLK=1;
asm("nop");
SRCLK=0;
}
RCLK=0;
asm("nop");
RCLK=1;
RCLK=0;
}
void delay(unsigned int i)
{
while(i)
{
NOP();
--i;
}
}
void iniheat458()
{
TRISA1=1;//RA1输入
ADCON1=0;
ADCON0=0;
ADCS0=1;//设置转换时钟
CHS0=1;//设置通道为RA1
PCFG2=1;//0100,设置各通道属性及参考电压为VDD,VSS
ADON=1;//使能AD
}
unsigned char tempdeal()
{
const char heattab[255]={
0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,
6,6,6,7,7,7,8,8,8,9,9,0xa,0xa,0xb,0xb,0xc,0xc,
0xd,0xd,0xe,0xe,0xf,0xf,0xf,0x10,0x10,0x10,
0x11,0x11,0x12,0x12,0x12,0x13,0x13,0x14,0x14,0x14,
0x15,0x15,0x15,0x16,0x16,0x16,0x17,0x17,0x18,0x18,
0x19,0x19,0x1a,0x1a,0x1b,0x1b,0x1c,0x1c,0x1c,
0x1d,0x1d,0x1d,0x1e,0x1e,0x1f,0x1f,0x20,0x20,
0x21,0x21,0x22,0x22,0x23,0x23,0x24,0x24,0x25,0x25,
0x26,0x26,0x27,0x28,0x29,0x29,0x2a,0x2a,0x2b,0x2b,
0x2c,0x2d,0x2e,0x2f,0x30,0x32
};
unsigned char temp;
GODONE=1;
while(GODONE);
ADRESH-=0x3A;
temp=heattab[(ADRESH)];
return temp;
}
void main()
{
const char ledtab[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F }; //定义依次显示"0"~"9"的数组元素
unsigned char temp,temph,templ;
preled();
iniheat458();
while(1)
{
temp=tempdeal();
temph=temp/10;
templ=temp%10;
moniled(ledtab[templ]);
moniled(ledtab[temph]);
delay(65535);//延时1S
delay(65535);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -