#include <REG52.H>//片内寄存器定义
#include <stdio.h>//输入输出函数库
sbit inc_BUTTON = P1^0; // 加1按钮
sbit dec_BUTTON = P1^3; // 减1按钮
sbit clr_BUTTON = P1^6; // 清0按钮
void initUart(void);/*初始化串口波特率,使用定时器1*/
/*********** main C **************/
void main (void)
{
unsigned long ulTimer; // 延时设定的循环次数
unsigned char ucCounter=0; //打印输出计数
initUart();// 为了使用printf语句,要初始化串口
while (1) {
P2=ucCounter;
printf ("%bx ",ucCounter); /* Print ucCounter */
printf ("Hello World!\n"); /* Print "Hello World" */
if(inc_BUTTON==0) ucCounter++; // 加1
if(dec_BUTTON==0) ucCounter--; // 减1
if(clr_BUTTON==0) ucCounter=0; // 清0
for (ulTimer=0; ulTimer<2000; ulTimer++){}//延时
}
}
/********** 初始化串口波特率 ************/
//为了使用串行口带格式输出函数printf,串口必须初始化
void initUart(void)/*初始化串口波特率,使用定时器1*/
{
/* Setup the serial port for 9600 baud at 11.0592MHz */
SCON = 0x50; /* SCON: mode 1, 8-bit UART, enable rcvr */
TMOD |= 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */
TH1 = 0xfd; /* TH1: reload value for 9600 baud @ 11.0592MHz */
TR1 = 1; /* TR1: timer 1 run */
TI = 1; /* TI: set TI to send first char of UART */
}