#include<stc15f.h>
#include<intrins.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define FOSC 12000000L
#define BAUD 9600
#define READ 0
#define WRITE 1
#define S1_S0 0x40 //P_SW1.6
#define S1_S1 0x80 //P_SW1.7
#define buz P43
#define NONE_PARITY 0 //无校验
#define ODD_PARITY 1 //奇校验
#define EVEN_PARITY 2 //偶校验
#define MARK_PARITY 3 //标记校验
#define SPACE_PARITY 4 //空白校验
#define PARITYBIT EVEN_PARITY //定义校验位
uchar year,month,date,hour,fen;
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
uchar num=0;
uchar buzy=0;
sbit N1=P3^3;
sbit N2=P4^0;
sbit N3=P5^5;
sbit N4=P5^4;
/**********发送函数*******************/
void send(uchar dat)
{
SBUF=dat;
while(!TI);
TI=0;
}
/**********发送字符串*****************/
void SendString(char*s)
{
while(*s)
{
send(*s++);
}
}
/*********中断初始化函数**************/
void uartinit()
{
#if (PARITYBIT == NONE_PARITY)
SCON=0x50; //工作模式一:8位可变波特率
#elif (PARITYBIT == ODD_PARITY)||(PARITYBIT==EVEN_PARITY)||(PARITYBIT==MARK_PARITY)
SCON=0xda; //9位可变波特率,校验位初始为1
#elif (PARITYBIT == SPACE_PARITY)
SCON=0xd2; //9位可变波特率,校验位初始为0
#endif
T2L=(65536-(FOSC/4/BAUD));
T2H=(65536-(FOSC/4/BAUD))>>8;
AUXR=0x14; //T2为1T模式,并启动定时器2
AUXR|=0x01; //选择定时器2为串口1的波特率发生器
ES=1; //使能串口1中断
EA=1;
}
/*********** 1ms延时函数 *************/
void Delay(void) //@12.000MHz
{
uchar i, j;
i = 12;
j = 169;
do
{
while (--j);
} while (--i);
}
/****************时钟读取函数***************/
void rtc_read(void)
{
year =XBYTE[0xfe09];
month=XBYTE[0xfe08];
date =XBYTE[0xfe07];
hour =XBYTE[0xfe04];
fen =XBYTE[0xfe02];
}
/***********显示函数****************/
void display(uchar a)
{
uchar shi,ge;
shi=a/16;
ge=a%16;
XBYTE[0xfdff]=table[shi];
P33=0;
Delay();
P33=1;
XBYTE[0xfdff]=0xff; //第一段
XBYTE[0xfdff]=table[ge];
P40=0;
Delay();
P40=1;
XBYTE[0xfdff]=0xff; //第二段
}
/*************主函数*************/
void main()
{
uartinit();
while(1)
{
if(buzy==1)
{
send(num++);
buzy=0;
}
display(num);
}
}
void intter() interrupt 4
{
if(RI) //检测是否接收完成
{
num = SBUF; //num 取出接收缓存器的值
RI = 0;
buzy=1;
}
}
uart.zip_uart通讯_串口和时钟联合_获取PC串口_C51
版权申诉
63 浏览量
2022-09-24
08:14:54
上传
评论
收藏 28KB ZIP 举报
JonSco
- 粉丝: 69
- 资源: 1万+
评论0