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

📄 system.h

📁 以ST公司CPU为核心的彩色电视机的完整源程序。
💻 H
字号:
#ifndef _SYSTEM
#define _SYSTEM

/************************************************************************/
/*      ST9 family core control registers release 4.0                   */
/*         ST9 family Core Control Register                             */
/*                                                                      */
/************************************************************************/

/****************************************/
/* REGISTER FILE GROUPS DEFINITION      */
/****************************************/

#define BK00 ((unsigned char)0 )                                /* r0 to r7  in group 0 */
#define BK01 ((unsigned char)1 )                                /* r8 to r15 in group 0 */
#define BK10 ((unsigned char)2 )                                /* r0 to r7  in group 1 */
#define BK11 ((unsigned char)3 )                                /* r8 to r15 in group 1 */
#define BK20 ((unsigned char)4 )                                /* r0 to r7  in group 2 */
#define BK21 ((unsigned char)5 )                                /* r8 to r15 in group 2 */
#define BK30 ((unsigned char)6 )                                /* r0 to r7  in group 3 */
#define BK31 ((unsigned char)7 )                                /* r8 to r15 in group 3 */
#define BK40 ((unsigned char)8 )                                /* r0 to r7  in group 4 */
#define BK41 ((unsigned char)9 )                                /* r8 to r15 in group 4 */
#define BK50 ((unsigned char)10)                                /* r0 to r7  in group 5 */
#define BK51 ((unsigned char)11)                                /* r8 to r15 in group 5 */
#define BK60 ((unsigned char)12)                                /* r0 to r7  in group 6 */
#define BK61 ((unsigned char)13)                                /* r8 to r15 in group 6 */
#define BK70 ((unsigned char)14)                                /* r0 to r7  in group 7 */
#define BK71 ((unsigned char)15)                                /* r8 to r15 in group 7 */
#define BK80 ((unsigned char)16)                                /* r0 to r7  in group 8 */
#define BK81 ((unsigned char)17)                                /* r8 to r15 in group 8 */
#define BK90 ((unsigned char)18)                                /* r0 to r7  in group 9 */
#define BK91 ((unsigned char)19)                                /* r8 to r15 in group 9 */
#define BKA0 ((unsigned char)20)                                /* r0 to r7  in group A */
#define BKA1 ((unsigned char)21)                                /* r8 to r15 in group A */
#define BKB0 ((unsigned char)22)                                /* r0 to r7  in group B */
#define BKB1 ((unsigned char)23)                                /* r8 to r15 in group B */
#define BKC0 ((unsigned char)24)                                /* r0 to r7  in group C */
#define BKC1 ((unsigned char)25)                                /* r8 to r15 in group C */
#define BKD0 ((unsigned char)26)                                /* r0 to r7  in group D */
#define BKD1 ((unsigned char)27)                                /* r8 to r15 in group D */
#define BKE0 ((unsigned char)28)                                /* r0 to r7  in group E */
#define BKE1 ((unsigned char)29)                                /* r8 to r15 in group E */
#define BKF0 ((unsigned char)30)                                /* r0 to r7  in group F */
#define BKF1 ((unsigned char)31)                                /* r8 to r15 in group F */

#define BK_SYS  BKE0                                            /* Group system definition */
#define BK_F    BKF0                                            /* page register definition */


/************************/
/* SYSTEM REGISTERS     */
/************************/

register volatile unsigned int  FCW asm("RR230");               /* Flags and control word. */

register volatile unsigned char CICR asm("R230");               /* Central interrupt control register. */

#define Im_gcenm ((unsigned char)0x80)                          /* Global counter enable bit mask */
#define Im_tlipm ((unsigned char)0x40)                          /* Top level interrupt pending mask. */
#define Im_tlim  ((unsigned char)0x20)                          /* Top level interrupt mask. */
#define Im_ienm  ((unsigned char)0x10)                          /* Interrupt enable flag mask. */
#define Im_iamm  ((unsigned char)0x08)                          /* Interrupt arbitration mode mask. */
#define Im_cpl2m ((unsigned char)0x04)                          /* Current priority level bit 2 mask. */
#define Im_cpl1m ((unsigned char)0x02)                          /* Current priority level bit 1 mask. */
#define Im_cpl0m ((unsigned char)0x01)                          /* Current priority level bit 0 mask. */
#define Im_cplm  ( Im_cpl2m|Im_cpl1m|Im_cpl0m )                 /* Current priority level */

register volatile unsigned char FLAGR asm("R231");              /* Flags register. */

#define FLm_cm   ((unsigned char)0x80)                          /* Carry flag mask. */
#define FLm_zm   ((unsigned char)0x40)                          /* Zero flag mask. */
#define FLm_sm   ((unsigned char)0x20)                          /* Sign flag mask. */
#define FLm_vm   ((unsigned char)0x10)                          /* Overflow flag mask. */
#define FLm_dm   ((unsigned char)0x08)                          /* Decimal adjust flag mask. */
#define FLm_hm   ((unsigned char)0x04)                          /* Half carry flag mask. */
#define FLm_ufm  ((unsigned char)0x02)                          /* User flag 1 mask. */
#define FLm_dpm  ((unsigned char)0x01)                          /* Data/program memory mask. */

register volatile unsigned int  RPP asm("RR232");               /* Register pointer pair. */

register volatile unsigned char RP0R asm("R232");               /* Register pointer # 0. */

#define RPm_rp0sm ((unsigned char)0x04)                         /* Register pointer selector mask */

register volatile unsigned char RP1R asm("R233");               /* Register pointer # 1. */

#define RPm_rp1sm ((unsigned char)0x04)                         /* Register pointer selector mask */

register volatile unsigned char PPR asm("R234");                /* Page pointer register. */

register volatile unsigned char MODER asm("R235");              /* Mode register. */

#define MOm_sspm    ((unsigned char)0x80)                       /* System stack pointer mask (Int/Ext). */
#define MOm_uspm    ((unsigned char)0x40)                       /* User stack pointer mask (Int/Ext). */
#define MOm_div2m   ((unsigned char)0x20)                       /* External clock divided by 2 mask. */
#define MOm_prs2m   ((unsigned char)0x10)                       /* Internal clock prescaling bit 2 mask. */
#define MOm_prs1m   ((unsigned char)0x08)                       /* Internal clock prescaling bit 1 mask. */
#define MOm_prs0m   ((unsigned char)0x04)                       /* Internal clock prescaling bit 0 mask. */
#define MOm_prsm    ( MOm_prs2m|MOm_prs1m|MOm_prs0m )           /* Internal clock prescaler */
#define MOm_brqenm  ((unsigned char)0x02)                       /* Bus request enable mask. */
#define MOm_himpm   ((unsigned char)0x01)                       /* High impedence enable mask. */

register volatile unsigned int  USPR asm("RR236");              /* User stack pointer. */
register volatile unsigned char USPHR asm("R236");              /* User stack pointer, msb. */
register volatile unsigned char USPLR asm("R237");              /* User stack pointer, lsb. */

register volatile unsigned int  SSPR asm("RR238");              /* System stack pointer. */
register volatile unsigned char SSPHR asm("R238");              /* System stack pointer, msb. */
register volatile unsigned char SSPLR asm("R239");              /* System stack pointer, lsb. */


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -