久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1942|回復: 1
打印 上一主題 下一主題
收起左側

在這個單片機基礎上如何加上雙機通信?求幫助

[復制鏈接]
跳轉到指定樓層
樓主
ID:580346 發表于 2019-7-9 19:36 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
遠端給本機發送01H,本機接受并送回01H;遠端給本機發送AAH,實現以下程序。

#include<reg51.h>
#include<intrins.h>
typedef unsigned char uchar;
typedef unsigned int  uint;
sbit k1=P1^6;
sbit k2=P1^7;
sbit k3=P2^7;
sbit k4=P3^4;
sbit yellowled_nb=P1^4;        //南北黃燈
sbit yellowled_dx=P1^1;        //東西黃燈
uchar code table[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
uchar data dig;        //位選
uchar data led;        //偏移量
uchar data buf[4];
uchar data sec_dx=39;//東西數碼指示值
uchar data sec_nb=39;//南北數碼指示值
uchar data set_timedx=39;
uchar data set_timenb=39;//倒計時設置的鍵值保存
uchar data b;//定時器中斷次數
bit time;//燈狀態循環標志
bit int0_time;//中斷強行標志
bit set;//調時方向切換鍵標志



void delay(int ms)
{
        uint j,k;
        for(j=0;j<ms;j++)
        for(k=0;k<124;k++);
}
void key_to1()
{
        TR0=0;         //關定時器
        if(set==0)
                sec_nb++; //南北加1S
        else
                sec_dx++;//東西加1S
        if(sec_nb==100)
                sec_nb=1;
        if(sec_dx==100)
                sec_dx=1;//加到100置1        
}
void key_to2()
{
        TR0=0;//關定時器
        if(set==0)
                sec_nb--;  //南北減1S
        else
                sec_dx--;  //東西減1S
        if(sec_nb==0)
                sec_nb=99;        
        if(        sec_dx==0 )
                sec_dx=99;//減到1重置99        
}
void key()        //按鍵掃描子程序
{
        if(k1!=1)
        {
                delay(10);
                if(k1!=1)
                {
                        while(k1!=1);
                        key_to1();
                }
        }
        if(k2!=1)
        {
                delay(10);
                if(k2!=1)
                {
                        while(k2!=1);
                        key_to2();
                }
        }
        if(k4!=1)
        {
                delay(10);
                if(k4!=1)
                {
                        while(k4!=1);
                        set=!set;
                }
        }
        if(k3!=1&&int0_time==1)
        {        
                TR0=1;   //啟動定時器
                sec_nb=set_timenb;
                sec_dx=set_timedx;
                int0_time=0;//清標志
        }         
        else if(k3!=1&&int0_time==0)
        {
                TR0=1;
                set_timenb=sec_nb;
                set_timedx=sec_dx; //設置的鍵值返回保存
        }
}
void display()
{
        buf[1]=sec_dx/10; //第1位 東西秒十位
        buf[2]=sec_dx%10; //第2位 東西秒個位
        buf[3]=sec_nb/10; //第3位 南北秒十位
        buf[0]=sec_nb%10; //第4位 南北秒個位
        P0=table[buf[led]];
        delay(2);        //先延時,提前顯示一位了
        P2=dig;
        dig=_crol_(dig,1);
        led++;
        if(led==4)
        {
                led=0;
                dig=0xfe;
        }
}
void main()
{   

        TMOD=0x01;        
        TH0=0x3C;
        TL0=0xB0;
        EA=1;
        ET0=1;
        TR0=1;
        EX0=1;
        EX1=1;
        P1=0Xf3;// 南北通行
        while(1)
        {
                key(); //調用按鍵掃描程序
                display(); //調用顯示程序
        }        
}
void t0() interrupt 1 using 1  //定時中斷子程序
{
        b++;
        if(b==13)          // 定時器中斷次數。
        {
                b=0;
                sec_dx--;
                sec_nb--;
                //南北黃燈閃爍判斷               
                if(sec_nb==3&&time==1)
                {
                        yellowled_nb=1;//南北黃燈亮
                        delay(300);
                        yellowled_nb=0;
                }
                if(sec_nb==2&&time==1)
                {
                        yellowled_nb=1;//南北黃燈亮
                        delay(300);
                        yellowled_nb=0;
                }
                if(sec_nb==1&&time==1)
                {
                        yellowled_nb=1;
                        delay(300);
                        yellowled_nb=0;
                }                 
                //東西黃燈閃判斷            
                if(sec_dx==3&&time==0)
                {
                        yellowled_dx=1;//東西黃燈亮
                        delay(300);
                        yellowled_dx=0;
                }                 
                if(sec_dx==2&&time==0)
                {
                        yellowled_dx=1;//東西黃燈亮
                        delay(300);
                        yellowled_dx=0;
                }
                if(sec_dx==1&&time==0)
                {
                        yellowled_dx=1;
                        delay(300);
                        yellowled_dx=0;
                }                        
                if(sec_dx==0||sec_nb==0) //東西或南北先到達1S時即開始重新計時
                {
                        sec_dx=set_timedx;
                        sec_nb=set_timenb; //第一次循環結束重置
                        if(time==1)
                        {
                                P1=0xF3;  //南北通行
                        }
                        else
                        {
                                P1=0xde; //東西通行
                        }
                        time=!time;   //取反
                }
        }
}
void wb0() interrupt 0 using 1         //東西強行
{
        TR0=0;
        P1=0xDE;
        sec_dx=88;
        sec_nb=88;
        int0_time=1;
        
}
void wb1() interrupt 2 using 1          //南北強行
{
        TR0=0;
        P1=0xF3;
        sec_nb=88;
        sec_dx=88;
        int0_time=1;
         
}


仿真圖.pdf

28.77 KB, 下載次數: 8

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:123289 發表于 2019-7-10 15:18 | 只看該作者
硬件設計不合理,軟件設計也不合理,不能用。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久国产 | 久久久久网站 | 国产精品免费在线 | 亚洲免费大片 | 美女精品一区 | 欧美精品91 | 岛国毛片在线观看 | 在线 丝袜 欧美 日韩 制服 | 嫩草黄色影院 | 日韩一区二区在线视频 | 在线免费观看黄网 | www.操.com | 久久精品黄色 | 无码日韩精品一区二区免费 | 色综合久| 国产精品久久久久一区二区三区 | 成人精品在线观看 | 久久精品一区 | 亚洲精品一区二区 | 在线看一区二区三区 | 精品视频一区二区 | 亚洲国产aⅴ精品 | 久久久久久久久久久久久九 | 日本aⅴ中文字幕 | 国产精品日韩欧美一区二区三区 | 欧美日韩综合 | 久久国产成人 | 国产一区二区精品在线 | 久久久亚洲精品视频 | 免费日本视频 | 综合五月婷 | 久久久久久女 | 成人av免费网站 | 国产99视频精品免视看9 | 天天操人人干 | 久久久久久国产精品 | 一级免费在线视频 | 国产精品久久九九 | 一级免费毛片 | 成人特级毛片 | 久色视频在线 |