#include "n76e003.h"
#include "stdio.h"
#define uint32 unsigned int
//typedef unsigned int uint32;
void delay_us(int n) {
int m;
for (m=0;m
}
void delay_ms(int j) {
int k;
for (k=0;k
delay_us(1000);
}
void P0_P1_Mode(void) {
P0M1=0x3A; P0M2=0x3B; //设置P0
P1M1=0xA0; P1M2=0xBF; //设置P1
}
sbit s1 = P0^0;
sbit s2 = P1^0;
sbit s3 = P1^1;
sbit s4 = P1^2;
sbit s5 = P1^3;
sbit s6 = P1^4;
void UART0_Init(uint32 Baud) //设置串口0 {
P0_P1_Mode();
ES=1; //使能所有中断
ES=1; //串口0中断使能
ET1=0; //关闭定时器1中断
SCON = 0x52; //串口0选择模式1 SM0=0 SM1=1 REN=1 TI=1
T3CON|=0x00; //选择定时器1 BRCK=0
PCON |=0x80; //定时器1的波特率加倍 SMOD=1
CKCON|=0x10; //定时器1的时钟源为系统时钟 T1M=1
TMOD |=0x20; //定时器1选择模式2 8位计数器,数值从TH1自动重装载入TL1 M1=1 M0=0 2^8=256
#ifdef FOSC_160000
TH1 = 256 - (1000000/Baud+1);
/*16 MHz */
#endif
TCON |=0x40; //定时器1启动 TR1=1
}
void Send_Data_UART0(int a) {
TI=0;
SBUF=a; //串口0数据缓存寄存器
while(TI==0);
}
int main() {
s1=1;
s2=1;
s3=1;
s4=1;
s5=1;
s6=1;
UART0_Init(9600);
while(1) {
if(s1=0) {
Send_Data_UART0(1);
}
delay_ms(10);
if(s2=0) {
Send_Data_UART0(2);
}
delay_ms(10);
if(s3=0) {
Send_Data_UART0(3);
}
delay_ms(10);
if(s4=0) {
Send_Data_UART0(4);
}
delay_ms(10);
if(s5=0) {
Send_Data_UART0(5);
}
delay_ms(10);
if(s6=0) {
Send_Data_UART0(6);
}
delay_ms(10);
}
}
|