📄 stccoinboxnew.c
字号:
/***************************************************/
/*
for 12MHz UART 232 ////////////////////////////////
project name: coinbox:
Functions:four Leds for total coins or show the machine run time
JYD-6129B pin define:
1、9 5v;
2、10 GND;
3、DI;
4、/CLK
5、/CS
6、LED+(BACKLIGHT)3.1V
7、LED-
8、11
深圳市晶裕电子有限公司
*/
/**************备忘录******************
COM0 COM1 COM2 COM3
S0
S1 T11 T9 T10 T12
S2 T8 T5 T6 T7
S3 T4 T1 T2 T3
S4 T14 S9 S10 S11
S5 S1 S2 S3 S8
S6 S4 S5 S6 S7
S7 时间 币值 设置 总数
S8 1F 1G 1E 1D
S9 1A 1B 1C COL1
S10 2F 2G 2E 2D
S11 2A 2B 2C COL2
S12 3F 3G 3E 3D
S13 3A 3B 3C S12
S14 4F 4G 4E 4D
S15 4A 4B 4C T13
S16 L2 L15 L16 L1
S17 L3 L13 L14 L4
S18 L5 L11 L12 L6
S19 L7 L9 L10 L8
手法:T1,T2,T3,T4;
幅度:T5,T6,T7;
速度:T8,T9,T10,T11,T12,T13;
T14: 以上三个参数都显示;
S1~S7 按摩椅运动方向指示;
L1~L16背部运行位置指示;
S8~S12腿脚运行位置指示;
AT_send();
GsmSend();
AT_cmgd();
AT_cnmi();
**************备忘录******************/
/***************************************************/
//#include<reg52.h>
#include "AT89X52.h"
#include<intrins.h>
//#include<w77c32.h>
//#include "gb2unicode_char.h"
//xt
#include "string.h"
sfr WDT_CONTR=0xE1;
#define uchar unsigned char
#define uint unsigned int
//#define User_PassWord[4] ((uchar xdata)0x0) /*定义数据指针,片内或片外*/
//#define RecBuufer1 ((uchar xdata)0x0); /*定义数据指针,片内或片外*/
#define PhoneNumLen 13
#define NUMBASE 48 //ASCII "0",hex:0x30
#define On 1
#define Off 0
#define TRUE 1
#define HIGH 1
#define LOW 0
#define FALSE 0
#define MaxLowLevel 15 //4
#define MaxHighLevel 25 //50
#define PassWordFlashOnTime 320
#define PassWordFlashOffTime 400
#define WriteCommand 0xa0
#define ReadCommand 0xa1
#define Nop _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_()
#define KeyMaxHighLevel 15 //4
#define KeyMaxLowLevel 15 //
#define TriacOn 0
#define TriacOff 1
#define SOI 0x7e
#define EOI 0x0d
#define M_GetCommand 0x30//0x00
#define M_AckCommand 0x31//0x01
#define M_SetState 0x32//0x02
#define S_SendCommand 0x33//0x03
#define DATAH 0x30
#define DATAL 0x33
#define DATAACK 0x38
#define GETH 0x30
#define GETL 0x30
#define KeyUp 0xb0//S4
#define KeyDown 0xc0//S3
#define KeyEsc 0xe0//S1
#define KeyOk 0xd0//S2
#define KeyOff 0xf0//0xf0
#define Key_A 0x60//S9
#define Key_B 0x70//S8
#define Key_C 0x50//S10
#define Key_D 0x80//S7
#define Key_E 0x90//S6
#define Key_F 0xa0//S5
#define NOP() Nop
//xt
#define b 0x37
#define r 0x22//xt
#define A 0x7e//xt
#define C 0x0f//0x8b
#define L 0x07//0x0b
#define E 0x2f//xt
#define F 0x2e
#define t 0x30////0x24
//#define nLedValueA3 Lcddis[8]
//#define nLedValueA2 Lcddis[9]
//#define nLedValueA1 Lcddis[8]
//#define nLedValueA0 Lcddis[9]
#define TargeCodeOn Lcddis[4]|=0x80
#define TargeCodeOff Lcddis[4]&=0x7f
#define SmsCenterOn Lcddis[6]|=0x80
#define SmsCenterOff Lcddis[6]&=0x7f
#define UserIDOn Lcddis[8]|=0x80
#define UserIDOff Lcddis[8]&=0x7f
#define SuperIDOn Lcddis[9]|=0x80
#define SuperIDOff Lcddis[8]&=0x7f
#define MaxMoneyOn Lcddis[1]|=0x01
#define MaxMoneyOff Lcddis[1]&=0xfe
#define ClockSetOn Lcddis[1]|=0x04
#define ClockSetOff Lcddis[1]&=0xfb
#define SendTimeOn Lcddis[1]|=0x08
#define SendTimeOff Lcddis[1]&=0xf7
#define LieTimeOn Lcddis[1]|=0x02//Lcddis[3]=Lcddis[3]|0x80//时间
#define LieTimeOff Lcddis[1]&=0xfd
//#define MoneyOn Lcddis[1]=Lcddis[1]|0x04//币值
#define InitTimeOn Lcddis[0]|=0x40//Lcddis[3]=Lcddis[3]|0xa0//时间设置//InitTimeOn
#define InitTimeOff Lcddis[0]&=0xbf
#define InitMoneyOn Lcddis[0]|=0x80//Lcddis[3]=Lcddis[3]|0x60//币值设置;InitMoneyOn
#define InitMoneyOff Lcddis[0]&=0x7f
#define TotalMoneyOn Lcddis[0]|=0x20//Lcddis[3]=Lcddis[3]|0x50//币值总数TotalMoney
#define TotalMoneyOff Lcddis[0]&=0xdf
#define TotalTimeOn Lcddis[0]|=0x10//Lcddis[3]=Lcddis[3]|0x90//时间总数TotalTime
#define TotalTimeOff Lcddis[0]&=0xef
//#define No_DispParameter Lcddis[4]&=0x80;Lcddis[5]&=0x00//Lcddis[0]&=0x0f;Lcddis[1]&=0xf0;Lcddis[4]&=0x7f;Lcddis[6]&=0x7f;Lcddis[8]&=0x7f;Lcddis[9]&=0x7f//Lcddis[0]&=0x0f;Lcddis[1]&=0xf0;Lcddis[4]&=0x7F;Lcddis[6]&=0x7F;Lcddis[8]&=0x7F;Lcddis[9]&=0x7F以上参数不显示
#define DotOff Lcddis[5]&=0x7f;Lcddis[7]&=0x7f //Lcddis[6]=Lcddis[6]&0xef;Lcddis[5]=Lcddis[5]&0xef //
#define DotOn1 Lcddis[5]|=0x80
#define DotOn2 Lcddis[7]|=0x80//Lcddis[5]|=0x80//Lcddis[7]|=0x80//;
#define DispOn Lcddis[10]=0xff;Lcddis[3]=0xff;Lcddis[2]=0xff; Lcddis[1]|=0xf0//Lcddis[2]|=0x08; Lcddis[3]|=0x01//幅度显示
#define DispOff Lcddis[3]&=0x00; Lcddis[2]&=0x00;Lcddis[1]=Lcddis[1]|0xf0//幅度消失
#define PCF8563 0xA2 /*定义器件地址*/
#define WRADDR 0x00
#define RDADDR 0x02
#define TimeCoin1Address 0x06
#define TimeCoin2Address 0x08
#define SetMenuStatusAddress 0x0a
#define SmsMangerCenterCodeAddress 0x10
#define User_PassWordAddress 0x20
#define Supervisor_PassWordAddress 0x30
#define SmsSendTimeAddress 0x40
#define MoneyFullAddress 0x50
#define TotalCoinAddress 0x60
#define SmsCenterCodeAddress 0x70
#define InitLogoAddress 0x90
//#define Rec_Buffer1Size 100
//#define Send_Buffer1Size 100
#define MaxCenterCode 11
#define MaxSendTimePosition 5
//#define Key_Delaytimes 5
//uchar nKeyStatus=0;
//uchar nKeyTimer=0;
//uchar PreKeyValue,CurKeyValue;
//uchar xdata RXD1_Buffer[100]_at_ 0;
//uchar xdata TXD1_Buffer[30];// _at_ 110;
//uchar TXD1_SendWrite,TXD1_SendRead;
//uchar RXD1_RecWrite=0,RXD1_RecRead=0;
//uchar Sms_CodingMode;
uchar code LcddisMask[] = {0xf0,0x0f,0x00,0x80,0x80,0x00,0xff,0xff,0x80,0x80,0x00} ;
//uchar code LcddisMask[] = {0x00,0x00,0x08,0xf0,0xff,0xff,0x00,0x00,0x00,0x00} ;
uchar xdata g8563_Store[9]={0x00,0x12,0x00,0x00,0x12,0x16,0x06,0x10,0x07}; /*定义发送缓冲区*/
// 控制状态寄存器1、 控制状态寄存器2、秒、分、时、日、星期、月/世纪、年
sbit bSensorCheck = P2^3;
sbit bLcdData = P2^2;
sbit bLcdClock = P2^1;
sbit bLcdCS = P2^0;
//sbit bCoinPower = P0^0;
sbit bCoinPower = P3^4;
sbit bSpeak = P3^3;
sbit bSda = P3^6;//P3^7;
sbit bScl = P3^5;//P3^6;
//sbit bUp = P1^3;
//sbit bDown = P1^7; //bCheckTotalSW = P1^7;
//sbit bCoinReceiveA = P1^4;
sbit bCoinReceiveA =P0^4;
//xt
//sbit bSensorCheck = P2^3;
//sbit bLED1 = P3^7;//P4^0
sbit bGsmLed = P2^7;
//sbit bCoinPower = P3^4;
//sbit bSet = P3^5;
//sbit bSpeak = P3^3;
//sbit bSda = P3^6;//P3^7;
//sbit bScl = P3^5;//P3^6;
//sbit bCoinReceiveA = P1^1;//P4^2;
sbit IGT = P0^2;//启动GSM
sbit bGsmVout=P0^1;
/////////////模拟串口定义//////////////////////
sbit BT_SND =P1^3;
sbit BT_REC =P1^2;
sbit bKey_Test =P1^1;
#define MODE_QUICK
#define F_TM F0
#define TIMER1_ENABLE TL1=TH1; TR1=1;
#define TIMER1_DISABLE TR1=0;
sbit ACC0= ACC^0;
sbit ACC1= ACC^1;
sbit ACC2= ACC^2;
sbit ACC3= ACC^3;
sbit ACC4= ACC^4;
sbit ACC5= ACC^5;
sbit ACC6= ACC^6;
sbit ACC7= ACC^7;
//发送一个字符
void PSendChar(uchar inch)
{ TR0=0;
ET0=0;
ES=0;
#ifdef MODE_QUICK
ACC=inch;
F_TM=0;
BT_SND=0; //start bit
TIMER1_ENABLE; //启动
while(!F_TM);
BT_SND=ACC0; //先送出低位
F_TM=0;
while(!F_TM);
BT_SND=ACC1;
F_TM=0;
while(!F_TM);
BT_SND=ACC2;
F_TM=0;
while(!F_TM);
BT_SND=ACC3;
F_TM=0;
while(!F_TM);
BT_SND=ACC4;
F_TM=0;
while(!F_TM);
BT_SND=ACC5;
F_TM=0;
while(!F_TM);
BT_SND=ACC6;
F_TM=0;
while(!F_TM);
BT_SND=ACC7;
F_TM=0;
while(!F_TM);
BT_SND=1;
F_TM=0;
while(!F_TM);
TIMER1_DISABLE; //停止timer
TR0=1;
ET0=1;
ES=1;
#else
ET0=0;
TR0=0;
uchar nCnt;
nCnt=0;
F_TM=0;
BT_SND=0; //start bit
TIMER1_ENABLE; //启动
while(!F_TM);
while(nCnt<8)
{
if(inch&1)
{
BT_SND=1;
}
else
{
BT_SND=0;
}
F_TM=0;
while(!F_TM);
nCnt++;
inch>>=1;
}
BT_SND=1;
F_TM=0;
while(!F_TM);
#endif
TIMER1_DISABLE; //停止timer
TR0=1;
ET0=1;
ES=1;
}
/*
//接收一个字符
uchar PGetChar()
{
ET0=0;
#ifdef MODE_QUICK
TIMER1_ENABLE;
F_TM=0;
while(!F_TM); //等过起始位
ACC0=BT_REC;
TL1=TH1;
F_TM=0;
while(!F_TM);
ACC1=BT_REC;
F_TM=0;
while(!F_TM);
ACC2=BT_REC;
F_TM=0;
while(!F_TM);
ACC3=BT_REC;
F_TM=0;
while(!F_TM);
ACC4=BT_REC;
F_TM=0;
while(!F_TM);
ACC5=BT_REC;
F_TM=0;
while(!F_TM);
ACC6=BT_REC;
F_TM=0;
while(!F_TM);
ACC7=BT_REC;
F_TM=0;
while(!F_TM)
{
if(BT_REC)
{
break;
}
}
TIMER1_DISABLE; //停止timer
ET0=1;
TR0=1;
return ACC;
#else
uchar rch,nCnt;
TIMER1_ENABLE;
F_TM=0;
nCnt=0;
rch=0;
while(!F_TM); //等过起始位
while(nCnt<8)
{
rch>>=1;
if(BT_REC)
{
rch|=0x80;
}
nCnt++;
F_TM=0;
while(!F_TM);
}
F_TM=0;
while(!F_TM)
{
if(BT_REC)
{
break;
}
}
TIMER1_DISABLE; //停止timer
return rch;
#endif
ET0=1;
}
//检查是不是有起始位
bit StartBitOn()
{
return (BT_REC==0);
}
*/
/////////////模拟串口定义////////////////////
//xt
//xt
bit bOneSecond,bTotalCoinCheck,bTxd0_SendPermit,bERR;
uchar keydata1,keydata;
uchar pdata nKeyHighLevelCounter,nKeyLowLevelCounter,nKeyProcessStep;
uchar pdata nKeyProcessStep2;
uchar pdata nSearchIndex,nCoinSetIndex,nKeyLowLevel2Counter;
unsigned int nTimeSetValue,nTimeSet,nKeyHighLevel2Counter;
//uchar idata Tempvalue[2],nSetMenuStatustime[1];
//uchar idata dispdata;
uchar xdata SetMenuStatus[4]={0,0,1,1};
uchar xdata InitLogo;
unsigned int pdata Cointime;
unsigned int pdata GsmDelayTime=0;
unsigned int pdata nBuzzDelayTime=0,nflashOnOffDelayTime=0;
unsigned int pdata nTansmitMoneyFull_Delay=0;
unsigned int pdata nSpeakDelay=0;nSpeakFlashTime=0;
uint pdata StartUpDelayTime=0;
unsigned int pdata PassWordDelay=0;
unsigned int pdata Delay_ms=0;
//uchar nLedValueA0,Lcddis[8];
uchar xdata nDisCount;
uchar xdata Lcddis[12];
uchar nLcdDisplay1,nLcdDisplay2;
bit bSendBit,bShowLED,bShowMoneyTotalPermit;
bit bLcdDisplayChange ,bRest,bKeyCoin;
uchar idata Rxd0_DataLength;
/////////////////////////////////////
////////////////////////////////////////
bit bPermit_Transmit=0,bTansmitMoneyFull_Permit=0,bTransmit_Delay=0,bTansmitMoneyFull_Delay=1,bTansmitMoneyFull_Delay1Minute=0;
//bit bClearTotalCoinPermit=0,bClearTotalNumberPermit=0;
bit bSpeakPermit=0;
bit bEepromErasePermit=0;
bit bDelay20mS=0;
//bit bDelay160mS=0;
//bit bDelay1S=0;
//bit bDelay3S=0;
//bit bStartGsm=1;
bit bStartTC35iPermit=0;
bit bBuzzDelayPermit=0;
bit bBuzzDelayPermit1=0;
bit bStartUp_Gsm=0;
bit ack_flag;
bit bdisp;
bit bKeyok_Set=1;
bit bPulseSecondCount=1;
bit bPulseFirstCount=0;
bit bLcdClearPermit=0;
//bit bBill_Permit=0;
bit bCoin_Permit=1;
uint idata nPulseDelayTime=0;
uint xdata nEepromEraseDelayTime=0;
//uint xdata nFirstTime=0;
uchar xdata nPulseSort=0;
uint xdata nPulseTime[2]={0,0};
unsigned int idata ReceiveTime;
uchar timesum,coinsum,keystatus;//string,
signed char Init_CoinValue,Init_BackTime,Init_TimeValue;
//uchar nTotalCointimeA[3];
/////////////////////////////////////////
//part A
uchar nHigh_CheckCoinCounter,nLow_CheckCoinCounter,nCheckLevelStep,nScanCount;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -