hwinit.c

来自「Small Device C Compiler 面向Inter8051」· C语言 代码 · 共 89 行

C
89
字号
#include "hw.h"bit b3;code c2=1;data d3, d4=4;xdata x3, x4=5;#define	DIVIDER	(OSC/(64L*BAUD_RATE))void external_startup(void) {  _asm    mov.b	_WDCON,#0	;shut down the watchdog    mov.b	_WFEED1,#0a5h    mov.b	_WFEED2,#05ah;   mov.b	_BCR,#1	;BCR: 8 data, 16 address;   mov.b	_SCR,#1	;SCR: page zero mode  _endasm;  // init serial io  TL1 = RTL1 = -DIVIDER;  TH1 = RTH1 = -DIVIDER >> 8;  TR1 = 1;		/* enable timer 1 */    S0CON = 0x52;		/* mode 1, receiver enable */  IPA4 |= 0x6;		/* maximum priority */  ERI0=1;		/* enable receiver interupts */  TI0==1;               /* transmitter empty */  RI0=0;                /* receiver empty */    //PSWH &= 0xf0;	/* start interupt system */}#define SIMULATOR 1#ifdef SIMULATORvoid putchar(char c) {  c; // hush the compiler  _asm    mov.b r0l, [r7+2]    trap #0EH;  _endasm;}char getchar() {  return 0;}void exit_simulator(void) {  _asm    trap #0FH;  _endasm;}#elsevoid putchar(char c) {  while(!TI0)     ;  S0BUF = c;  TI0 = 0;}char getchar(void) {  char	c;    while (!RI0)     ;  c=S0BUF;  RI0=0;  return c;}int kbhit(void) {  return RI0;}#endifint puts(char *string) {  int chars=0;  while (*string) {    putchar (*string++);    chars++;  }  putchar ('\n');  return chars+1;}

⌨️ 快捷键说明

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