📄 mymainedited1
字号:
#pragma SFR //special function register
#pragma NOP
#pragma DI
#pragma EI
/*
**PROJECT = HDTV REMOTE CONTROL RECEPTION PROCESSING
**MODULE = MyMainModi.c
**SHORT DESC. = Main programme
**DEVICE = UPD789417
**VERSION = 0.1
**DATE = 03.07.2003
**LAST CHANGE = -
*/
#include "MyDefine.h"
#include "Main.h"
#include "MyCommIO.h"
#include <string.h>
#define s_g_LCDLEDCTL P0.1 //set to 0 when initialized
#define s_g_LCDPWRCTL P0.2 //set to 0 when initialized
#define s_g_RST P9.0
extern void InitReceive();
Uchar getASCII(Uchar dataCode);
Uchar getIrKey(Uchar dataCode);
extern bit g_btRPT; //g_btRPT -- RePeaT(flag for repeat valid time)
extern bit g_btRMDTSET; //g_btRMDTSET -- ReMote DaTa SET
extern sreg Uchar g_TempRMDATA;
//2003-10-30 10:49
extern void GetDataFromReception();
extern void CommReceptionEnabled();
extern void InitializeCom();
extern void SetDataTransmitBuffer();
extern Uchar g_bufTransmit[SERIAL_BUF_TRANSMIT]; //Transmit buffer
extern sreg Uchar *g_p_bufTransmit;
extern Uchar g_keyValue;
//extern Uchar hanZiByteAmount; //2003-10-30 15:20
//2003-10-30 10:49
bit g_btReceptionEnd;
bit g_btTransmitStart;
bit btHanziEnable;
//2003-10-30 10:50
Uchar *ChinCharStr;
//main programme for test
int main(void)
{
Uchar keyValue;
Uchar keyASCIIValue;
char pinYin[7];
char pinYinVar[7] = {0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00};
Uchar letterCnt = 0;
DI();
PCC = 0X00; //fx:5.0MHz(0.2us)(Processor clock control register)
SCKM = 0x01; //not use subsystem clock(Suboscillation mode register)
CSS = 0x00; //use main system clock(Subclock contol register)
PM0 = 0xF0; //PORT0 is all set to output mode--
//P0.0:LCD_E2; P0.1:LCD_Ctl; P0.2:LCD_VDD(WR_Ctl);
//P0.3:unused
PM2 = 0x14; //PORT2 is set to 00010100b.
//output mode-P2.0:MAX_Power_ctl;P2.1:TXD;P2.3:unused;
// P2.5:IIC_SCK;P2.6:IIC_SYNC;P2.7:unused;
//input mode-P2.2:RXD; P2.4/INTP0:Infrared Reception;
PM4 = 0xFF; //PORT4 is set to input mode(switch DIP-8).
//PORT5.3 is set to output mode, and PORT5.0~PORT5.2 are unused.
PM5 = 0xFC;
PM8 = 0x00; //PORT8 is all set to output mode.
//PORT9 including only PORT9.0, PORT9.1, PORT9.2 and PORT9.3,
//is all set to output mode.
PM9 = 0x00;
//PU00:PU0.0(PORT0)--doesn't use on-chip pull-up resistor;
//PU04:PU0.4(PORT4)--uses on-chip pull-up resistor.
PU0 = 0x10;
//input mode-P2.2:RXD; P2.4/INTP0:Infrared Reception.
//The others are output mode. P2.5, P2.6 用外部上拉(不用内部的上拉).
PU1 = 0x14;
PU2 = 0x00; //PORT8&PORT9 don't use on-chip pull-up resistor
LCDM0.7 = 0x00; //LCD Display OFF(LCD Display Mode Register)
LPS0 = 0x00; //PORT8 and PORT9 are used as ports
ADCS0 = 0x00; //disable AD conversion
PIF0 = 0;
PMK0 = 1; //disable INTP0
//注意须加入看门狗定时器:1、启动看门狗定时器;2、每隔一段程序看门狗清零。
CR01 = 0x1c; //Resolution -- 51.2 us
TMC01 = 0x82; //8bitTimer1 is set to 1.5ms
CR02 = 0x74; //Resolution -- 25.6 us 03-7-3 15:12
TMC02 = 0x82; //8bitTimer2 is set to 3ms and disabled.
//2003-9-25 14:26
TMMK01 = 0; // Enable INTTM1
TMMK02 = 0; // Enable INTTM2
InitReceive();
InitializeCom();
s_g_LCDPWRCTL = 1;
s_g_LCDLEDCTL = 1;
EI();
s_g_RST = 0;
s_g_RST = 1; //置为
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -