📄 main.c
字号:
#include <msp430x14x.h>
#include "DS18B20.h"
//不同的底层接口,只需改变宏定义即可
#define LCD_COM_DDR P2DIR //液晶com端控制口,其中低四位为COM端控制口.高四位为S端控制口
#define LCD_COM_PORT P2OUT
#define LCD_SEG_DDR_A P3DIR //液晶S端控制口
#define LCD_SEG_PORT_A P3OUT
unsigned char lcd_scan[4] = {0xf1,0xf2,0xf4,0xf8};//com端扫描时端口所赋的值
unsigned char LcdSeg[11] = {0xED,0x28,0xB5,0xB9,0x78,0xD9,0xDD,0xA8,0xFD,0xF9,0x00};//显示译码,0~9,灭
unsigned char temp[6];//6个数字的显示缓冲区
unsigned char digit[8];//经组合后的S端码存放区
unsigned char lcd_count = 0;
int main(void)
{
char i;
long count_a,count = 0;
LCD_SEG_DDR_A = 0xff;//Px口为输出口
LCD_COM_DDR |= 0xf0;//Px口的高四位输出
WDTCTL = WDTPW +WDTHOLD; // Stop Watchdog Timer
initialize_clk();
for(;;)
{
count = ReadTemperature();
count_a = count;
for(i = 0;i<6;i++)//将一个数诼位分离,并译成相应的段码
{
temp[i] = LcdSeg[count_a%10];
count_a /= 10;
}
temp[4] = temp[4] + 0x02;//为该位数字加上一个点,这是给某位数加点的方法
//每次一个COM信号时,对6个液晶码进行扫描,digit[0]~digit[7]是对6个段码在每一次com信号来时的组合
digit[0] = (temp[3]&0x03) |((temp[2]<<2)&0x0c)|((temp[1]<<4)&0x30)|((temp[0]<<6)&0xc0);
digit[1] = ((temp[3]>>2)&0x03)|(temp[2]&0x0c) |((temp[1]<<2)&0x30)|((temp[0]<<4)&0xc0);
digit[2] = ((temp[3]>>4)&0x03)|((temp[2]>>2)&0x0c)|(temp[1]&0x30) |((temp[0]<<2)&0xc0);
digit[3] = ((temp[3]>>6)&0x03)|((temp[2]>>4)&0x0c)|((temp[1]>>2)&0x30)|(temp[0]&0xc0);
digit[4] = ((temp[5]<<4)&0x30)|((temp[4]<<6)&0xc0);
digit[5] = ((temp[5]<<2)&0x30)|((temp[4]<<4)&0xc0);
digit[6] = (temp[5]&0x30) |((temp[4]<<2)&0xc0);
digit[7] = ((temp[5]>>2)&0x30)|(temp[4]&0xc0);
/*********************************定时调用下面代码即可,可以放在定时中断中,************************************/
if(lcd_count<4)
{
LCD_COM_DDR = lcd_scan[lcd_count];
LCD_COM_PORT = (digit[lcd_count+4]&0xf0);//Px口的高四位输出段码,低四位为0
LCD_SEG_PORT_A = digit[lcd_count];
}
else
{
LCD_COM_DDR = lcd_scan[lcd_count-4];
LCD_COM_PORT = ((~digit[lcd_count])&0xf0)|(lcd_scan[lcd_count-4]&0x0f);
LCD_SEG_PORT_A = ~digit[lcd_count-4];
}
++lcd_count;
if(lcd_count == 8)
{
lcd_count = 0;
}
/***********************************************************************************************************/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -