找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1700|回复: 12
收起左侧

请教个单片机串口通信和定时器问题

[复制链接]
ID:1122364 发表于 2024-5-26 17:09 | 显示全部楼层 |阅读模式
本人小白一枚,如图这个题请问流水闪烁各1s用定时器这一步和两机串口通信怎么联系到一块,谢谢大佬,麻烦详细点谢谢(求求详细点代码)
51hei图片20240526170935.png
回复

使用道具 举报

ID:1122364 发表于 2024-5-26 17:11 | 显示全部楼层
用的Proteus仿真的
回复

使用道具 举报

ID:619259 发表于 2024-5-27 10:42 | 显示全部楼层
U1发送按键标志码,U2接收标志码,定时器+流水灯。各个击破,难度不大。
回复

使用道具 举报

ID:1122364 发表于 2024-5-27 14:31 | 显示全部楼层
cy009 发表于 2024-5-27 10:42
U1发送按键标志码,U2接收标志码,定时器+流水灯。各个击破,难度不大。

哥不会写了帮忙改一下呗谢谢
1.png
2.jpg
3.png
回复

使用道具 举报

ID:123289 发表于 2024-5-27 16:22 | 显示全部楼层
这是两码事。
两机串行通讯,只要开启双方的串行中断,通讯时,约几ms中断一次,完成一个字节的交流。
流水闪烁中人用定时器,每间隔1S处理一下显示就行了。
回复

使用道具 举报

ID:161164 发表于 2024-5-27 23:16 | 显示全部楼层
2024-05-27_231534.png
回复

使用道具 举报

ID:1109793 发表于 2024-5-28 07:23 | 显示全部楼层
就两个状态,用啥串口啊,两个脚各自表示一个状态就行了啊。把两个按键传递到P30和P31就行了吧
回复

使用道具 举报

ID:925236 发表于 2024-5-30 17:04 | 显示全部楼层
第一个ic发送控制信息  0x01 0x02 第二个ic收到后执行 定时器里设定1秒标志位 用for循环
回复

使用道具 举报

ID:619259 发表于 2024-5-30 21:25 | 显示全部楼层
jiesz185 发表于 2024-5-27 14:31
哥不会写了帮忙改一下呗谢谢

流水灯程序不要放在U1,U1只负责发送按键信息,流水灯程序由U2负责。
回复

使用道具 举报

ID:332444 发表于 2024-6-13 14:24 | 显示全部楼层
昨天写了一个非定时的串口实现运行如上图
1.gif
回复

使用道具 举报

ID:332444 发表于 2024-6-13 14:27 | 显示全部楼层
void CKSZ()
{
        SCON=0X50;//串口模式1允许接收
        TMOD=0X21;//T1工作模式2
        PCON=0X00;//波特率不倍增
        TH1=TL1=0XFD;//波特率9600
        TI=RI=0;
        TR1=1;
        IE=0X90;//允许串口中断
        TH0+=0Xdc;//定时器赋初值,定时10ms触发中断,自动补偿方式
        TL0+=0X00;
        TR0=1; //启动定时器T0。
        ET0=1; //开启定时器
        EA=1; //全局中断开关
}
void ZhongDuan() interrupt 1
{
        ++Js;
        TH0+=0Xdc;
        TL0+=0X00;
}

————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/xianfajushi/article/details/139632525
回复

使用道具 举报

ID:332444 发表于 2024-6-13 14:34 | 显示全部楼层
想要看就干脆看个明白从非定时转定时代码基本一样。
#include "reg52.h"
unsigned char code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0,64}; //共阴0~F消隐减号
sbit k1=P3^4;
sbit k2=P3^5;
sbit k3=P3^6;
sbit k4=P3^7;
bit k=0,kk=0;
void CKF(unsigned char C)
{//向串口发送数据
        SBUF=C;
        while(!TI);
        TI=0;
}
void CKS() interrupt 4
{//串口接收数据
        if(RI)
        {
                RI=0;
                if(SBUF=='S'){k=1;kk=0;}
                if(SBUF=='X'){k=0;kk=1;}
                if(SBUF=='L'){k=kk=0;}
        }
}
void CKSZ()
{
        SCON=0X50;//串口模式1允许接收
        TMOD=0X20;//T1工作模式2
        PCON=0X00;//波特率不倍增
        TH1=TL1=0XFD;//波特率9600
        TI=RI=0;
        TR1=1;
        IE=0X90;//允许串口中断
}
void main()
{//缘由https://ask.csdn.net/questions/8117223
        unsigned char Xd=0,ls=0,ys=0,sy=0,sm=0;
        CKSZ();
        while(1)
        {
                if(++ys==0)
                {
                                if(++sy==0)
                                {
                                        if(k)
                                        {
                                                if(ls)ls*=2;else ls=1;
                                                if(sm<9)++sm;else sm=0;
                                        }
                                        if(kk)
                                        {
                                                if(ls)ls/=2;else ls=128;
                                                if(sm)--sm;else sm=9;
                                        }
                                        if(k==kk)ls=k;
                                }
                        P1=ls;//流水灯
                        P2=smgduan[sm];//静态数码管
                }
                if(!k1&&!++Xd)
                {
                        CKF('S');
                        while(!k1);
                }
                if(!k2&&!++Xd)
                {
                        CKF('X');
                        while(!k2);
                }
                if(!k3&&!++Xd)
                {
                        CKF('L');
                        while(!k3);
                }
        }
}
https://blog.csdn.net/xianfajushi/article/details/139620581
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表