找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索

請(qǐng)教個(gè)單片機(jī)串口通信和定時(shí)器問題

查看數(shù): 1758 | 評(píng)論數(shù): 12 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁(yè)<-左 右->
    組圖打開中,請(qǐng)稍候......
發(fā)布時(shí)間: 2024-5-26 17:09

正文摘要:

本人小白一枚,如圖這個(gè)題請(qǐng)問流水閃爍各1s用定時(shí)器這一步和兩機(jī)串口通信怎么聯(lián)系到一塊,謝謝大佬,麻煩詳細(xì)點(diǎn)謝謝(求求詳細(xì)點(diǎn)代碼)

回復(fù)

ID:332444 發(fā)表于 2024-6-13 14:34
想要看就干脆看個(gè)明白從非定時(shí)轉(zhuǎn)定時(shí)代碼基本一樣。
#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消隱減號(hào)
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)
{//向串口發(fā)送數(shù)據(jù)
        SBUF=C;
        while(!TI);
        TI=0;
}
void CKS() interrupt 4
{//串口接收數(shù)據(jù)
        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];//靜態(tài)數(shù)碼管
                }
                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
ID:332444 發(fā)表于 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;//定時(shí)器賦初值,定時(shí)10ms觸發(fā)中斷,自動(dòng)補(bǔ)償方式
        TL0+=0X00;
        TR0=1; //啟動(dòng)定時(shí)器T0。
        ET0=1; //開啟定時(shí)器
        EA=1; //全局中斷開關(guān)
}
void ZhongDuan() interrupt 1
{
        ++Js;
        TH0+=0Xdc;
        TL0+=0X00;
}

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

                            版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接和本聲明。
                        
原文鏈接:https://blog.csdn.net/xianfajushi/article/details/139632525
ID:332444 發(fā)表于 2024-6-13 14:24
昨天寫了一個(gè)非定時(shí)的串口實(shí)現(xiàn)運(yùn)行如上圖

1.gif (226.07 KB, 下載次數(shù): 19)

1.gif
ID:619259 發(fā)表于 2024-5-30 21:25
jiesz185 發(fā)表于 2024-5-27 14:31
哥不會(huì)寫了幫忙改一下唄謝謝

流水燈程序不要放在U1,U1只負(fù)責(zé)發(fā)送按鍵信息,流水燈程序由U2負(fù)責(zé)。
ID:925236 發(fā)表于 2024-5-30 17:04
第一個(gè)ic發(fā)送控制信息  0x01 0x02 第二個(gè)ic收到后執(zhí)行 定時(shí)器里設(shè)定1秒標(biāo)志位 用for循環(huán)
ID:1109793 發(fā)表于 2024-5-28 07:23
就兩個(gè)狀態(tài),用啥串口啊,兩個(gè)腳各自表示一個(gè)狀態(tài)就行了啊。把兩個(gè)按鍵傳遞到P30和P31就行了吧
ID:161164 發(fā)表于 2024-5-27 23:16

ID:123289 發(fā)表于 2024-5-27 16:22
這是兩碼事。
兩機(jī)串行通訊,只要開啟雙方的串行中斷,通訊時(shí),約幾ms中斷一次,完成一個(gè)字節(jié)的交流。
流水閃爍中人用定時(shí)器,每間隔1S處理一下顯示就行了。
ID:619259 發(fā)表于 2024-5-27 10:42
U1發(fā)送按鍵標(biāo)志碼,U2接收標(biāo)志碼,定時(shí)器+流水燈。各個(gè)擊破,難度不大。
ID:1122364 發(fā)表于 2024-5-26 17:11
用的Proteus仿真的

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表