main.c
字号:
#include <hidef.h> /* for EnableInterrupts macro */
#include <MC9S08GB60.h> /* include peripheral declarations */
char Num_Table[10] = {
0xFC,0x60,0xDA,0xF2,0x66,
0xB6,0xBE,0xE0,0xFE,0xF6 };
char value[4];
char pPosition;
char Receive_SCI_Byte();
void Transmit_SCI_Byte(char T_Byte);
void Transmit_SCI_String(const char *pString);
char InHex();
void main(void) {
char i;
char Temp[4];
DisableInterrupts; /* Disable Interrupts */
/* Initial_ICG */
ICGC1 = 0x78;
ICGC2 = 0x30; /* Enable the External Crystal = 4 MHz, Bus Frequency = 20 MHz */
/* Initial_SCI1 */
SCI1BDL = 0x82; /* Set Baud Rate for 20MHz Bus Frequency */
SCI1C2 = 0x0C; /* Enalbe SCI R/W */
/* Initialize TPM */
TPM1SC = 0x4F; /* Enable TOF Interrupt and use bus clock */
TPM1MOD = 0x0400;
PTADD = 0xFF; /* Set Port A as output */
PTCDD = 0xFF; /* Set Port C as output */
PTAD = 0xFF;
PTCD = 0xFF;
pPosition = 0;
EnableInterrupts; /* enable interrupts */
for(;;) {
__RESET_WATCHDOG(); /* feeds the dog */
Transmit_SCI_String("\n\r->");
for(i=0;i<4;i++) {
Temp[i] = InHex();
Transmit_SCI_Byte(Temp[i] + '0');
}
for(i=0;i<4;i++) value[i] = Temp[i];
} /* loop forever */
}
/* Reveive a byte from SCI */
char Receive_SCI_Byte(){
while((SCI1S1&0x20) == 0) __RESET_WATCHDOG();
return SCI1D;
}
/* Transmit a byte to SCI */
void Transmit_SCI_Byte(char T_Byte){
while((SCI1S1&0x80) == 0) __RESET_WATCHDOG();
SCI1D = T_Byte;
}
/* Transmit string to SCI */
void Transmit_SCI_String(const char *pString){
char *pTemp = pString;
while(*pTemp != 0) {
Transmit_SCI_Byte(*pTemp++);
__RESET_WATCHDOG();
}
}
/* Get Hex num from SCI, converted from ASCII code */
char InHex() {
char gSCIData;
gSCIData = Receive_SCI_Byte();
gSCIData -= '0';
return gSCIData;
}
interrupt TPM() {
PTAD = ~Num_Table[value[pPosition]];
/* Cycle light the 7 segments LED */
switch(pPosition) {
case 0:
PTCD = 0xFE;
pPosition++;
break;
case 1:
PTCD = 0xFD;
pPosition++;
break;
case 2:
PTCD = 0xFB;
pPosition++;
break;
case 3:
PTCD = 0xF7;
pPosition = 0;
break;
default:
PTCD = 0xFF;
pPosition = 0;
}
TPM1SC_TOF = 0; /* TPM interrupt acknowledge */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -