第一个单片机程序

#include <REG52.H>                /* special function register declarations   */
                                  /* for the intended 8051 derivative         */

#include <stdio.h>                /* prototype declarations for I/O functions */


#ifdef MONITOR51                         /* Debugging with Monitor-51 needs   */
char code reserve [3] _at_ 0x23;         /* space for serial interrupt if     */
#endif                                   /* Stop Exection with Serial Intr.   */
                                         /* is enabled                        */
sfr AUXR= 0x8e;

#define mainclk 11059200
#define   bsp 9600  
void main (void) {

/*------------------------------------------------
Setup the serial port for 1200 baud at 16MHz.
------------------------------------------------*/
//unsigned long int mainclk=11059200;
//unsigned long int   bsp =9600;    
    unsigned char   k =0;
     PCON=0x80; //Power Control        SMOD  SMOD0  LVDF  POF   GF1    GF0   PD   IDL    0001,0000
      SCON=0x50; //Serial Control        SM0/FE SM1   SM2   REN   TB8   RB8    TI    RI    0000,0000
    AUXR=AUXR|0x40; //Auxiliary Register  T0x12 T1x12 UART_M0x6 BRTR S2SMOD BRTx12 EXTRAM S1BRS  0000,0000

     TH1=TL1=256-(unsigned char)((unsigned long int )mainclk/((unsigned long int )bsp*(32/2)) ) ;
     TMOD=(TMOD&0x0f)|0x20;
     TR1=1;
   //  ES=1;
  //   EA=1;


//#if 0  //MONITOR51
 //   SCON  = 0x50;             /* SCON: mode 1, 8-bit UART, enable rcvr      */
 //   TMOD |= 0x20;               /* TMOD: timer 1, mode 2, 8-bit reload        */
 //   TH1   = 221;                /* TH1:  reload value for 1200 baud @ 16MHz   */
 //   TR1   = 1;                  /* TR1:  timer 1 run                          */
   TI    = 1;                  /* TI:   set TI to send first char of UART    */
//#endif


  while (1)
        {
    P1 ^= 0x01;                 /* Toggle P1.0 each time we print */
   printf ("Hello World\n");   /* Print "Hello World" */
    /*      
            for(k=0;k<245;k++)
             {
                  TI=0;
                 SBUF=k;
                 while(TI==0);
       }
        */  

  }
}

“`

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值