51的串口简单发送接收

[复制链接]
查看1337 | 回复36 | 2022-8-31 14:24:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
#include "reg52.h"

sbit WEI = P2^7;
sbit DUA = P2^6;

#define uint unsigned int
#define uchar unsigned char
   
void UART_Init(void);
void SMG_Init(uchar i);

uchar code DuanMa[] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F,};
uchar code WeiMa[] = {0xef,0xdf,0xbf};
uchar ff;

void main(void)
{
    UART_Init();
   
    while(1)
    {
        ;
    }
}

void UART_Init(void)
{
    EA = 1;
    ES = 1;
    TMOD = TMOD & 0xff;
    TMOD = TMOD | 0x20;
    SM0 = 0;
    SM1 = 1;
    REN = 1;
    TH1 = 0xfd;
    TL1 = 0xfd;
    TR1 = 1;
}

void SMG_Init(uchar i)
{
    static uchar Num;
   
    Num = i;
   
    WEI = 1;
    P0 = WeiMa;
    WEI = 0;
   
    switch(i)
    {
        case 0: DUA = 1; P0 = DuanMa[Num / 100]; DUA = 0; break;
        case 1: DUA = 1; P0 = DuanMa[Num / 100 % 10]; DUA = 0; break;
        case 2: DUA = 1; P0 = DuanMa[Num % 10]; DUA = 0; break;
    }
}

void InitterruptUART(void)        interrupt 4
{
    uchar cnt;
    uchar temp;
   
    TH1 = 0xfd;
    TL1 = 0xfd;
    cnt++;
    SMG_Init(ff);
   
    if(RI == 1)
    {
        RI = 0;
        
        ff = SBUF;
        temp = ff;
        SBUF = temp++;
        
        if(TI == 1)
        {
            TI = 0;
        }
    }
}
回复

使用道具 举报

暗中观察 | 2022-8-31 16:01:33 | 显示全部楼层
回想起了当初学51的日子,简单而单纯
回复

使用道具 举报

bidinghong | 2022-8-31 19:03:58 | 显示全部楼层
回复

使用道具 举报

yangxf0120 | 2022-8-31 19:22:47 | 显示全部楼层
谢谢分享51的串口简单发送接收
回复

使用道具 举报

魏伟 | 2022-8-31 19:24:43 | 显示全部楼层
回复

使用道具 举报

mester | 2022-8-31 21:30:50 | 显示全部楼层
回复

使用道具 举报

brilliance | 2022-9-1 08:13:21 | 显示全部楼层
回复

使用道具 举报

13131 | 2022-9-1 08:15:04 | 显示全部楼层
回复

使用道具 举报

| 2022-9-1 08:16:39 | 显示全部楼层
回复

使用道具 举报

闪耀的空白 | 2022-9-1 08:23:14 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

3

主题

0

回帖

8

积分

一级逆天

积分
8

终身成就奖