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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2004|回復: 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

回復

使用道具 舉報

ID:123289 發表于 2019-7-10 15:18 | 顯示全部樓層
硬件設計不合理,軟件設計也不合理,不能用。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久草高清视频 | 黄色一级大片在线观看 | 污片在线观看 | 日韩在线播放av | 国产精品国产三级国产aⅴ中文 | 亚洲欧美一区二区在线观看 | 麻豆一区一区三区四区 | 国产亚洲精品久久久优势 | 成人在线视频免费观看 | 亚洲电影一级片 | 国产丝袜一区二区三区免费视频 | 91一区二区三区在线观看 | 久久成人免费视频 | 久久69精品久久久久久国产越南 | www97影院| 亚洲交性 | 99中文字幕 | 91久久精品一区二区二区 | 啪啪av| 91麻豆精品国产91久久久久久久久 | 精品久久影院 | 精品国产一区二区三区久久 | 97国产超碰| 国产福利91精品一区二区三区 | 一区二区日本 | 国产精品精品久久久 | 丁香综合| 91网站在线看 | 一区二区三区亚洲视频 | 日韩三级免费网站 | 中文字幕精品视频 | 国产婷婷在线视频 | 91久久精品 | 国产成人免费视频网站高清观看视频 | 国产成人在线视频 | 91精品久久久久久久久久入口 | 搞黄网站在线观看 | 中文字幕视频在线观看 | 亚洲欧美另类在线观看 | 国产一区 在线视频 | 99亚洲精品 |