⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stccoinboxnew.c

📁 投币按摩椅驱动程序
💻 C
📖 第 1 页 / 共 5 页
字号:
/***************************************************/
/* 
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 + -