📄 altayso.c
字号:
#include "Driver_CD4052_V3.0.h"
/**********************************
STDIO Function
**********************************/
/**********************************
BASIC Function
**********************************/
/* 1.0ms */
void delay (unsigned int ms)
{
unsigned int i;
for(; ms>0; ms--)
{
for(i=0; i<114; i++);
}
}
void Delay()
{
delay(30);
}
void InitHW()
{
//void InitIO()
P0 = 0xff;
P1 = 0xff;
P2 = 0xff;
P3 = 0xff;
//void InitInterrupt()
TCON = 0x00; /* Default */
IE = 0x90; /* EA=1--总中断允许;ES(IE.4)=1--串口中断开放;ES=0--串口中断关闭;EX0=0--中断INT0关闭 */
IP = 0x00; /* Default */
PCON = 0x00; /* Default */
//void InitRS()
SCON = 0x50; /* SM1=1,REN=1-->mode=1,receive enabled */
TMOD = 0x20; /* Timer1.m1=1-->Timer1.mode=2 */
TH1 = 0xFD; /* Baud Rate = 9600bps */
ES = 1; /* ES=1; Enable Serial */
TR1 = 1; /* Start Timer1 */
//TI = 1; /* Ready to send */
//RI = 1; /* Ready to receive */
}
void EntryItem(unsigned char c)
{
//重新进入工程模式 (B *#360#)
Press_B;
delay(100);
Press_NONE;
Press_E;Press_NONE;
delay(100);
Press_STAR;Press_NONE;
Press_SHARP;Press_NONE;
Press_3;Press_NONE;
Press_6;Press_NONE;
Press_0;Press_NONE;
Press_SHARP;Press_NONE;
//选择进入测试项目 (D A)
while (c>0) {
Press_D;Press_NONE;
c--;
}
Press_A;Press_NONE;
}
/**********************************
TEST Function
**********************************/
char Test_Keypad()
{
P2=P2&0xC0|0x3E;P0=P0&0xFC|0x00;delay(5);Press_NONE;
P2=P2&0xC0|0x3E;P0=P0&0xFC|0x01;delay(5);Press_NONE;
P2=P2&0xC0|0x3E;P0=P0&0xFC|0x02;delay(5);Press_NONE;
P2=P2&0xC0|0x3E;P0=P0&0xFC|0x03;delay(5);Press_NONE;
P2=P2&0xC0|0x3D;P0=P0&0xF3|0x00;delay(5);Press_NONE;
P2=P2&0xC0|0x3D;P0=P0&0xF3|0x04;delay(5);Press_NONE;
P2=P2&0xC0|0x3D;P0=P0&0xF3|0x08;delay(5);Press_NONE;
P2=P2&0xC0|0x3D;P0=P0&0xF3|0x0C;delay(5);Press_NONE;
P2=P2&0xC0|0x3B;P0=P0&0xCF|0x00;delay(5);Press_NONE;
P2=P2&0xC0|0x3B;P0=P0&0xCF|0x10;delay(5);Press_NONE;
P2=P2&0xC0|0x3B;P0=P0&0xCF|0x20;delay(5);Press_NONE;
P2=P2&0xC0|0x3B;P0=P0&0xCF|0x30;delay(5);Press_NONE;
P2=P2&0xC0|0x37;P0=P0&0x3F|0x00;delay(5);Press_NONE;
P2=P2&0xC0|0x37;P0=P0&0x3F|0x40;delay(5);Press_NONE;
P2=P2&0xC0|0x37;P0=P0&0x3F|0x80;delay(5);Press_NONE;
P2=P2&0xC0|0x37;P0=P0&0x3F|0xC0;delay(5);Press_NONE;
P2=P2&0xC0|0x2F;P3=P3&0xCF|0x00;delay(5);Press_NONE;
P2=P2&0xC0|0x2F;P3=P3&0xCF|0x10;delay(5);Press_NONE;
P2=P2&0xC0|0x2F;P3=P3&0xCF|0x20;delay(5);Press_NONE;
P2=P2&0xC0|0x1F;P3=P3&0x3F|0x00;delay(5);Press_NONE;
P2=P2&0xC0|0x1F;P3=P3&0x3F|0x40;delay(5);Press_NONE;
P2=P2&0xC0|0x1F;P3=P3&0x3F|0x80;delay(5);Press_NONE;
P2=P2&0xC0|0x1F;P3=P3&0x3F|0xC0;delay(5);Press_NONE;
return 1;
}
/**********************************
BASIC Variable
**********************************/
unsigned char RXC;
/**********************************
MAIN Function
**********************************/
void main(void)
{
InitHW();
while(1)
{
;
}
}
/**********************************
Serial Interrupt Function
**********************************/
void serial() interrupt 4
{
if(RI ==1)
{
RI = 0;
RXC = SBUF;
switch(RXC)
{
/* Recieve Test Result From 61(0x0F): 1111 1111 */
case Init51HW:
InitHW();
break;
case Key_trace:
Test_Keypad();
break;
/* Time Out (0~7.5s) Commands From 61(0x10 - 0x1F):0001 0000 ~ 0001 1111 */
case Semi_0:
ioTimeOut = 0;
delay(0);
ioTimeOut = 1;
break;
case Semi_1:
ioTimeOut = 0;
delay(500);
ioTimeOut = 1;
break;
case Semi_2:
ioTimeOut = 0;
delay(1000);
ioTimeOut = 1;
break;
case Semi_3:
ioTimeOut = 0;
delay(1500);
ioTimeOut = 1;
break;
case Semi_4:
ioTimeOut = 0;
delay(2000);
ioTimeOut = 1;
break;
case Semi_5:
ioTimeOut = 0;
delay(2500);
ioTimeOut = 1;
break;
case Semi_6:
ioTimeOut = 0;
delay(3000);
ioTimeOut = 1;
break;
case Semi_7:
ioTimeOut = 0;
delay(3500);
ioTimeOut = 1;
break;
case Semi_8:
ioTimeOut = 0;
delay(4000);
ioTimeOut = 1;
break;
case Semi_9:
ioTimeOut = 0;
delay(4500);
ioTimeOut = 1;
break;
case Semi_10:
ioTimeOut = 0;
delay(5000);
ioTimeOut = 1;
break;
case Semi_11:
ioTimeOut = 0;
delay(5500);
ioTimeOut = 1;
break;
case Semi_12:
ioTimeOut = 0;
delay(6000);
ioTimeOut = 1;
break;
case Semi_13:
ioTimeOut = 0;
delay(6500);
ioTimeOut = 1;
break;
case Semi_14:
ioTimeOut = 0;
delay(7000);
ioTimeOut = 1;
break;
case Semi_15:
ioTimeOut = 0;
delay(7500);
ioTimeOut = 1;
break;
/* Keys_Code(0x20-0x5F): 0010 0000 ~ 0101 1111 */
case Key_NONE:
Press_NONE;
break;
case Key_PowerSUB:
Press_E;
break;
case Key_PowerADD:
Press_E;delay(4500);Press_NONE;
break;
case Key_E:
Press_E;Press_NONE;
break;
case Key_A:
Press_A;Press_NONE;
break;
case Key_B:
Press_B;Press_NONE;
break;
case Key_STAR:
Press_STAR;Press_NONE;
break;
case Key_SHARP:
Press_SHARP;Press_NONE;
break;
case Key_3:
Press_3;Press_NONE;
break;
case Key_6:
Press_6;Press_NONE;
break;
case Key_0:
Press_0;Press_NONE;
break;
case Key_U:
Press_U;Press_NONE;
break;
case Key_D:
Press_D;Press_NONE;
break;
case Key_L:
Press_L;Press_NONE;
break;
case Key_R:
Press_R;Press_NONE;
break;
case Key_O:
Press_K;Press_NONE;
break;
case Key_F:
Press_F;Press_NONE;
break;
case Key_G:
Press_G;Press_NONE;
break;
case Key_S:
Press_S;Press_NONE;
break;
case Key_1:
Press_1;Press_NONE;
break;
case Key_2:
Press_2;Press_NONE;
break;
case Key_4:
Press_4;Press_NONE;
break;
case Key_5:
Press_5;Press_NONE;
break;
case Key_7:
Press_7;Press_NONE;
break;
case Key_8:
Press_8;Press_NONE;
break;
case Key_9:
Press_9;Press_NONE;
break;
/* Entry_Item(0x60-0x7F): 0110 0000 ~ 0111 1111 */
case Entry_Mode:
Press_B;delay(100);Press_NONE;
Press_E;Press_NONE;delay(100);
Press_STAR;Press_NONE;
Press_SHARP;Press_NONE;
Press_3;Press_NONE;
Press_6;Press_NONE;
Press_0;Press_NONE;
Press_SHARP;Press_NONE;
break;
case Entry_Auto:
EntryItem(Item_Auto);
break;
case Entry_Fireware:
EntryItem(Item_Fireware);
break;
case Entry_LCD:
EntryItem(Item_LCD);
break;
case Entry_Vibrator:
EntryItem(Item_Vibrator);
break;
case Entry_Speaker:
EntryItem(Item_Speaker);
break;
case Entry_Keypad:
EntryItem(Item_Keypad);
break;
case Entry_AudioPath:
EntryItem(Item_AudioPath);
break;
case Entry_MP3:
EntryItem(Item_MP3);
break;
case Entry_StereoSound:
EntryItem(Item_StereoSound);
break;
case Entry_HPAudioPath:
EntryItem(Item_HPAudioPath);
break;
case Entry_TFlashCard:
EntryItem(Item_TFlashCard);
break;
case Entry_ClearUserInfo:
EntryItem(Item_ClearUserInfo);
break;
case Entry_ESN:
EntryItem(Item_ESN);
break;
case Entry_TestInfo:
EntryItem(Item_TestInfo);
break;
case Entry_Battery:
EntryItem(Item_Battery);
break;
case Entry_Recorder:
EntryItem(Item_Recorder);
break;
case Entry_Radiogram:
EntryItem(Item_Radiogram);
break;
case Entry_Default:
EntryItem(Item_Default);
break;
/* Nothing to do */
default:
break;
}
}
}
/**********************************
ExtInt0 Function
**********************************/
/*void int0() interrupt 0
{
EX0 = 0;
EX0 = 1;
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -