STC8A8K64D4 Series Manual
-
void UartSend(char dat)
{
while (busy);
busy = 1;
SBUF = dat;
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
F32K = (int code *)0xeff5; // STC8A8K60S4
UartInit();
ES = 1;
EA = 1;
P_SW2 = 0x80;
UartSend(F32K_ADDR >> 8); // Read high byte of 32K frequency
UartSend(F32K_ADDR); // Read low byte of 32K frequency
while (1);
}
Assembly code
;Operating frequency for test is 11.0592MHz
CPUIDBASE EQU 0FDE0H
ID_ADDR EQU CPUIDBASE + 00H
VREF_ADDR EQU CPUIDBASE + 07H
F32K_ADDR EQU CPUIDBASE + 09H
T22M_ADDR EQU CPUIDBASE + 0BH ;22.1184MHz
T24M_ADDR EQU CPUIDBASE + 0CH ;24MHz
T20M_ADDR EQU CPUIDBASE + 0DH ;20MHz
T27M_ADDR EQU CPUIDBASE + 0EH ;27MHz
T30M_ADDR EQU CPUIDBASE + 0FH ;30MHz
T33M_ADDR EQU CPUIDBASE + 10H ;33.1776MHz
T35M_ADDR EQU CPUIDBASE + 11H ;35MHz
T36M_ADDR EQU CPUIDBASE + 12H ;36.864MHz
T40M_ADDR EQU CPUIDBASE + 13H ;40MHz
T45M_ADDR EQU CPUIDBASE + 14H ;45MHz
VRT6M_ADDR EQU CPUIDBASE + 15H ;VRTRIM_6M
VRT10M_ADDR EQU CPUIDBASE + 16H ;VRTRIM_10M
VRT27M_ADDR EQU CPUIDBASE + 17H ;VRTRIM_27M
VRT44M_ADDR EQU CPUIDBASE + 18H ;VRTRIM_44M
AUXR DATA 8EH
P_SW2 DATA 0BAH