📄 display.c
字号:
#include "Config.h"
#include "display.h"
#include "LCD.h"
#include "USART.h"
extern uchar sd[16];
/*******************************************************************************
Init_TA()
定时器A的初始化,定时1秒中断一次
*******************************************************************************/
void Init_TA(void)
{
TACTL = TACLR+TASSEL_1 + ID_3;
TACCR0 = 4096;
TACCTL0 &= ~CCIE;
TACTL |= MC_1;
P1DIR = 0x04;
}
/*******************************************************************************
delay()
延时函数
*******************************************************************************/
extern void delay(uint nn);
/*******************************************************************************
Hex2BcdLong()
十六进制码的转换
*******************************************************************************/
uint Hex2BcdLong(ulnt hex)
{
ulnt temp;
ulnt ret;
uchar ii;
ret=0;
for(ii=0;ii<8;ii++)
{
ret>>=4;
temp=hex%10;
temp <<= 28;
ret|=temp;
hex=hex/10;
}
return(ret);
}
/*******************************************************************************
display()
显示函数
*******************************************************************************/
void display(void)
{
Init_TA();
TACCTL0 = CCIE;
if(TA_Flag)
{
LCDMEM[9] = 0x00; //显示数据域数据 每两位一显,间隔1秒
LCDMEM[8] = 0x00;
delay(400);
TA_Flag = 0;
TA_Add += 1;
Hex2BcdLong(readdata[TA_Add-1]);
LCDMEM[9] = sd[readdata[TA_Add-1] & 0x0F];
LCDMEM[8] = sd[(readdata[TA_Add-1] >>4)&0xF];
if(TA_Add >= r_buf[9])
TA_Add = 0;
}
}
/*******************************************************************************
Timer_A()
定时器A的中断函数
*******************************************************************************/
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
TA_Flag = 1;
TAR = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -