?? mjt.c
字號:
#define root
#include"config.h"
static uint8 tt[8];//按鍵的值的緩存
void LcdDisp(void);
//static volatile BEEP_CONTROL beepBuf;
//12-17 寫的程序是仿電源測試架寫的狀態(tài)機(jī)程序,還沒有完成
//12-19 號把程序做了一下修正,基本上有點(diǎn)模型了
//12-31 程序?qū)Ψ澍Q器由靜態(tài)變量的定義進(jìn)行了更改,使蜂鳴器程序獨(dú)立開后
//還能正確運(yùn)行
//080104程序增加了點(diǎn)了刪除卡時(shí)的顯示,還沒有處理好
//080108把程序增加了刪除卡菜單的處理程序,但是在刪除數(shù)據(jù)這一級還沒有處理好
//010109的程序?qū)h除卡的菜單做了處理是可以,另外把24LC04的程序也補(bǔ)了上來,不過沒有調(diào)試好
//080110的程序?qū)︻^文件的定義方式做了改進(jìn)
//080111的程序?qū)肿兞康膫鬟f還是有錯(cuò)
//080112 的程序?qū)υ瓉淼腢ITASK.C中的消息處理做了優(yōu)化處理
//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 確認(rèn)
*/
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 數(shù)據(jù)
TRISD=0X00;
}
void tmint(void)
{ T0CS=0;
PSA=0; //分頻器給定時(shí)器
PS2=0;
PS1=1;//分頻比為1:16
PS0=1;
T0IF=0;
T0IE=1;
}
/*
void interrupt clkint(void) //定時(shí)器中斷函數(shù)
{ if(T0IF=1) //增加是定時(shí)中斷時(shí)進(jìn)入
{
TMR0=0xC2;
T0IF=0;
ledadr=ledadr+1;
if (ledadr==10) //定時(shí)時(shí)間到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) //定時(shí)器中斷函數(shù)
{ if(T0IF=1) //增加是定時(shí)中斷時(shí)進(jìn)入
{
TMR0=0xC2;
T0IF=0;
ledadr=ledadr+1;
if (ledadr==10) //定時(shí)時(shí)間到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定時(shí)-------------------------------------------------------------
++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);
}
*/
//喂狗---------------------------------------------------
//運(yùn)行指示燈------------------------------------------
}
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();
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -