📄 mjt.c
字号:
#define root
#include"config.h"
static uint8 tt[8];//按键的值的缓存
void LcdDisp(void);
//static volatile BEEP_CONTROL beepBuf;
//12-17 写的程序是仿电源测试架写的状态机程序,还没有完成
//12-19 号把程序做了一下修正,基本上有点模型了
//12-31 程序对蜂鸣器由静态变量的定义进行了更改,使蜂鸣器程序独立开后
//还能正确运行
//080104程序增加了点了删除卡时的显示,还没有处理好
//080108把程序增加了删除卡菜单的处理程序,但是在删除数据这一级还没有处理好
//010109的程序对删除卡的菜单做了处理是可以,另外把24LC04的程序也补了上来,不过没有调试好
//080110的程序对头文件的定义方式做了改进
//080111的程序对局变量的传递还是有错
//080112 的程序对原来的UITASK.C中的消息处理做了优化处理
//12345678 卡号为7b b2 6e
const char HZ_HYSY2[26] = {
0XBB, 0XB6, 0XD3, 0XAD, 0XCA, 0XB9, 0XD3, 0XC3, 0XC3, 0XC5, 0XBD, 0XFB, 0XCA, 0XFD, 0XBE, 0XDD, 0XB4, 0XA6, 0XC0, 0XED, 0XCF, 0XB5, 0XCD, 0XB3, 0XA3, 0XA1
};
void IOINT(void) //IO口初始化
{
ADCON1 = 0x07;
/*
TRISA=0X28;
TRISB=0X00;
TRISC=0XC4;
TRISD=0X00;
TRISE=0X07;
*/
//RA口定义
//RA0 RA1 RA2 LCD使用
TRISA=0X28;
//RB口定义
/* RB2 RB1 RB0
RB3 1 2 3
RB4 4 5 6
RB5 7 8 9
RB6 取消 0 确认
*/
TRISB=0XF8;
PORTB=0XFF;
//RC口定义
// RC0 DATA
// RC1 SCL 待写芯片
//RC2 DATA
//RC3 SCL 母片位置
//RC4 RFDATA 未用
//RC5 BEEP
//RC6 RC7 串口通讯
TRISC=0XDF;
RC5=0;
//RD口定义
//RD LCD 数据
TRISD=0X00;
}
void tmint(void)
{ T0CS=0;
PSA=0; //分频器给定时器
PS2=0;
PS1=1;//分频比为1:16
PS0=1;
T0IF=0;
T0IE=1;
}
/*
void interrupt clkint(void) //定时器中断函数
{ if(T0IF=1) //增加是定时中断时进入
{
TMR0=0xC2;
T0IF=0;
ledadr=ledadr+1;
if (ledadr==10) //定时时间到10MS
{
if(shake_cancel_timer!=0)
shake_cancel_timer--;
if (repeat_key_timer!=0)
repeat_key_timer--;
if (complex_key_timer!=0)
complex_key_timer--;
ledadr=0;
}
}
}
*/
void interrupt clkint(void) //定时器中断函数
{ if(T0IF=1) //增加是定时中断时进入
{
TMR0=0xC2;
T0IF=0;
ledadr=ledadr+1;
if (ledadr==10) //定时时间到10MS
{
TickFlag=1;
if(shake_cancel_timer!=0)
shake_cancel_timer--;
if (repeat_key_timer!=0)
repeat_key_timer--;
if (complex_key_timer!=0)
complex_key_timer--;
ledadr=0;
}
}
}
void pollTask()
{
process_panel_key();
if(current_key!=NO_KEY)
{
nop;
nop;
testkey=current_key;
current_key=NO_KEY;
scan_key_state = KEY_IDLE_STATE;
nop;
nop;
nop;
// beepBuf=BEEP_ONE;
nop;
MessagePush( SYS_KEY_DOWN );
nop;
nop;
}
// 1S定时-------------------------------------------------------------
++secTimeCounter;
nop;
nop;
if(timer500msFlag)
if((secTimeCounter%50)==0)
{
nop;
MessagePush(MES_500MS_TIME);
}
if(secTimeCounter==200)
{
nop;
secTimeCounter=0;
if(timer1sFlag)
MessagePush(MES_SEC_TIME);
}
/*
if(secTimeCounter==500)
{
nop;
nop;
secTimeCounter=0;
if(timer5sFlag)
MessagePush(MES_5SEC_TIME);
}
*/
//喂狗---------------------------------------------------
//运行指示灯------------------------------------------
}
void LcdDisp(void)
{
nop;
*KeyB=testkey;
KeyB++;
// KeyBuf[0]=0x08;
nop;
LCD_Write_Com(0x90+LcdCount);
LCD_Write_Dat(0XA3) ;
LCD_Write_Dat(testkey+0XB0);
LcdCount++;
nop;
nop;
if(LcdCount==8)
{
nop;
nop;
Key( ) ;
MessagePush(MES_COUNEND8);
}
}
void main(void)
{
IOINT( );
GIE=1;
KEYINT();
Lcdint();
KeyB=KeyBuf;
nop;
err_count=50;
tt[0]=0x08;
nop;
EEType=EE8;
MessageInit();
LcdFuc2(26,&HZ_HYSY2);
OPEN_1S_TIMER();
while(1)
{
if(TickFlag==1)
{
TickFlag=0;
nop;
nop;
pollTask();
nop;
nop;
beepControl();
}
nop;
nop;
Task();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -