wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5868|回復: 2
收起左側

基于RTX51_TINY實時操作系統交通燈設計 附源程序原理圖

[復制鏈接]
ID:327295 發表于 2020-8-18 16:55 | 顯示全部樓層 |閱讀模式
在原有的單片機交通燈控制基礎上加上RTX51 Tiny實時操作系統,使得系統更具有實時性。
RTX51 Tiny是一種實時操作系統(RTOS),可以用它來建立多個任務(函數)同時執行的應用。嵌入式應用系統經常有這種需求。RTOS可以提供調度、維護、同步等功能。
實時操作系統能靈活的調度系統資源,像CPU和存儲器,并且提供任務間的通信。RTX51 Tiny是一個功能強大的RTOS,且易于使用,它用于8051系列的微控制器。
RTX51 Tiny的程序用標準的C語言構造,由Keil C51 C編譯器編譯。用戶可以很容易的定義任務函數,而不需要進行復雜的棧和變量結構配置,只需包含一個指定的頭文件。

Altium Designer畫的PCB和原理圖:
51hei.png 51hei.png
本帖在原有的交通燈設計上加以改進為基于51tiny的交通燈設計,模擬十字路口交通燈包括時間顯示和指示燈,并且可以通過按鍵設置模式和定時時間源碼如下:
#include "stc12c5a60s2.h"
#include "rtx51tny.h"
#define uchar unsigned char
#define uint unsigned int
uchar smg[6] = {10, 10, 10, 10, 10, 10};
uchar code table1[12] = {0x77, 0x42, 0x3e, 0x5e, 0x4b, 0x5d, 0x7d, 0x46, 0xff, 0x5f, 0x00, 0x08};
uchar code table2[6] = {0xf5, 0xed, 0xdd, 0xbd, 0xfc,0x7d};
bit busy = 0;                        //忙標志位                          
uchar nb = 29;                                                 //南北時間
uchar dx = 29;                                                 //東西時間
uchar bx = 1;                                                 //南北燈切換標志
uchar bx1 = 1;                                                 //東西燈切換標志
uchar led[8] = {1,1,1,1,1,1,1,1};
uchar sw = 0;                                                   //界面切換標志
uchar turn = 10;                                         //轉彎時間
uchar nb1 = 30;
uchar dx1 = 30;
//創建任務
void Main_task(void) _task_ 0
{
        P0 = 0x00;
        //P10 = 1;
        //P10 = 0;
        //P2 = 0x00;
        //P0 = 0xff;
        //P2 = 0x80;
        //P2 = 0x00;
        os_create_task(1);
        os_create_task(2);
        os_create_task(3);
        os_create_task(4);
        os_create_task(5);


    os_delete_task(0);
}


//數碼管
void Smg_task(void) _task_ 1
{
   static uchar i = 0;
   while (1)
   {
               if (!busy)
                {
                        busy = 1;
                        P1 = table2[ i];               
                        P0 = table1[smg[ i]];
                        P12 = 1;
                        P12 = 0;
                        busy =0;
                        i++;
                        i %= 6;
                }
                os_wait2(K_TMO, 40);
   }
}


//LED
void Led_task(void) _task_ 2
{
   uchar i = 0;


   while (1)
   {
               if (!busy)
                {
                        busy = 1;
                        
                        P11 = 1;
                        P00 = led[0];
                        P01 = led[1];
                        P02 = led[2];
                        P03 = led[3];
                        P04 = led[4];
                        P05 = led[5];
                        P06 = led[6];
                        P07 = led[7];
                           P11 = 0;
                        busy = 0;
                }
                if(sw == 2)
                {
                        led[2] = !led[2];
                        led[6] = !led[6];
                        for (i=0; i<30; i++)
                        os_wait2(K_TMO, 200);        
                }
                for (i=0; i<20; i++)
                os_wait2(K_TMO, 200);
        }
}


//按鍵
uchar Scan_Key3(void)
{
        uchar value = 20;


        if (P32 == 0)
        {
                value = 1;
        }
        if (P33 == 0)
        {
                value = 2;
        }
        if (P34 == 0)
        {
                value = 3;
        }
        return value;
}


//紅綠燈路口
void display_task(void) _task_ 3
{
        uchar i;


        while(1)
        {
                if (!sw)
                {
                        smg[0] = nb / 10;
                        smg[1] = nb % 10;
                        smg[2] = dx / 10;
                        smg[3] = dx % 10;
                        if (nb >= 6 && nb == 1)
                        {
                                led[0] = 0;
                                P30 = 0;        
                        }
                        if(nb >= 6 && nb == 0)
                        {
                                if (nb < 15 && nb > 5)
                                {
                                        led[3] = 0;
                                }
                                led[1] = 0;
                                P31 = 0;
                        }
                        if (nb < 5)
                        {
                                led[3] = 1;
                        }
                        if(nb < 6 && nb >= 0 && bx == 1)
                        {
                                led[2] = 0;
                                led[0] = 1;
                                led[1] = 1;
                                led[3] = 1;
                        }
                        if (nb == 0 || nb > dx1)
                        {
                                nb = nb1;
                                if (bx == 1)
                                {
                                        led[1] = 0;
                                        led[0] = 1;
                                        led[2] = 1;
                                        P30 = 1;
                                        bx = 0;
                                }
                                else
                                {
                                        led[0] = 0;
                                        led[1] = 1;
                                        led[2] = 1;
                                        led[3] = 1;
                                        P31 = 1;
                                        bx = 1;
                                }
                        }
                        if (dx >= 6 && bx1 == 0)
                        {
                                led[4] = 0;
                                P36 = 0;        
                        }
                        if(dx >= 6 && bx1 == 1)
                        {
                                if (dx < 15 && dx > 5)
                                {
                                        led[7] = 0;
                                }
                                led[5] = 0;
                                P37 = 0;
                        }
                        if (dx < 5)
                        {
                                led[7] = 1;
                        }
                        if(dx < 6 && dx >= 0 && bx1 == 0)
                        {
                                led[6] = 0;
                                led[4] = 1;
                                led[5] = 1;
                                led[7] = 1;
                        }
                        if (dx == 0 || dx > dx1)
                        {
                                dx = dx1;
                                if (bx1 == 0)
                                {
                                        led[5] = 0;
                                        led[6] = 1;
                                        led[7] = 1;
                                        led[4] = 1;
                                        P36 = 1;
                                        bx1 = 1;
                                }
                                else
                                {
                                        led[4] = 0;
                                        led[6] = 1;
                                        led[7] = 1;
                                        led[5] = 1;
                                        P37 = 1;
                                        bx1 = 0;
                                }
                        }
                        dx--;
                        nb--;
                        for (i=0; i<50; i++)
                        os_wait2(K_TMO, 200);
                }
        }
}


void Key_task(void) _task_ 4
{
   uchar value;
   static uchar key_value[4] = {11, 11, 11, 11};
   static uchar j = 0;


   while (1)
   {
                value = Scan_Key3();
                if (value != 20)
                {
                        while(Scan_Key3() != 20);
                        switch (value)
                        {
                                //設置:界面切換
                                case 1:
                                        sw++;        
                                                if (sw == 1)
                                                {
                                                        for(j = 0; j < 8;j++)
                                                        {
                                                                 led[j] = 1;
                                                        }
                                                        led[2] = 0;
                                                        led[6] = 0;
                                                }
                                                if (sw == 2)
                                                {
                                                ;
                                                }
                                                if (sw == 3)
                                                {
                                                        led[2] = 1;
                                                        led[6] = 1;
                                                        led[1] = led[5] = 0;
                                                }
                                                if (sw == 4)
                                                {
                                                        led[1] = led[5] = 1;
                                                        led[0] = led[4] = 0;
                                                }
                                                if (sw == 5)
                                                {
                                                        led[0] = 1;
                                                        led[4] = 1;
                                                        key_value[0] = dx1 / 10;
                                                        key_value[1] = dx1 % 10;
                                                        key_value[2] = nb1 / 10;
                                                        key_value[3] = nb1 % 10;
                                                }
                                                if (sw == 6)
                                                {
                                                        //dx = 0;
                                                        //nb = 0;
                                                        //dx1 = 0;
                                                        //nb1 = 0;
                                                        sw = 0;
                                                        led[2] = 1;
                                                        //key_value[0] = key_value[1] = key_value[2] = key_value[3] =11;
                                                    //smg[1] = smg[2] = smg[3] = smg[4] = smg[6] = smg[7] = 10;
                                                }
                                        break;
                                case 2:         
                                        if (sw == 5){
                                        dx1++;
                                        nb1++;
                                        if (nb1 > 30)
                                        {
                                                nb1 = 30;
                                        }
                                        if (dx1 > 30)
                                        {
                                                dx1 = 30;
                                        }
                                       
                                                key_value[0] = nb1 / 10;
                                                key_value[1] = nb1 % 10;
                                                key_value[2] = dx1 / 10;
                                                key_value[3] = dx1 % 10;
                                        }
                                        break;
                                case 3:
                                        if (sw == 5){
                                        dx1--;
                                        nb1--;
                                        if ( dx1 < 1)
                                        {
                                                dx1 = 1;
                                        }
                                        if (nb1 < 1)
                                        {
                                                nb1 = 1;
                                        }
                                                key_value[0] = nb1 / 10;
                                                key_value[1] = nb1 % 10;
                                                key_value[2] = dx1 / 10;
                                                key_value[3] = dx1 % 10;
                                        }
                                        break;
                                default:         break;
                        }
                        if (sw){
                                smg[0] = key_value[0];
                                smg[1] = key_value[1];
                                smg[2] = key_value[2];
                                smg[3] = key_value[3];
                        }
                }
                os_wait2(K_TMO, 200);
                os_wait2(K_TMO, 200);
                os_wait2(K_TMO, 200);
                os_wait2(K_TMO, 200);
        }
}


void toll_task(void) _task_ 5
{
        while(1)
        {
        smg[4] = (dx1 + 10) / 10;
        smg[5] = (dx1 + 10) % 10;
        os_wait2(K_TMO, 200);
        }
}
51hei.png

交通燈硬件.zip

843.92 KB, 下載次數: 36, 下載積分: 黑幣 -5

交通燈程序.zip

117.2 KB, 下載次數: 51, 下載積分: 黑幣 -5

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:45225 發表于 2020-11-1 16:00 | 顯示全部樓層
樓主辛苦了,學習一下
回復

使用道具 舉報

ID:853072 發表于 2022-4-15 15:26 | 顯示全部樓層
不錯不錯,可以研究一下
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
国产精品网站在线| 在线观看免费播放网址成人| 国产三级电影在线| 色综合天天爱| 五月婷婷激情综合网| 国产精品久久久久久久9999| 国内av免费观看| 色婷婷综合视频| 青春草在线视频| 亚洲影视在线| 日韩欧美卡一卡二| 日本视频一区在线观看| 九九精品在线观看视频| 天堂中文av| 欧美国产一级| 在线日韩国产精品| 久久av一区二区三区漫画| 中文字幕av播放| 偷偷要 色偷偷| 欧美激情偷拍自拍| 欧美影视一区在线| 麻豆传媒一区二区| 亚洲黄色一区二区| 韩国中文免费在线视频| 国产日韩欧美一区二区三区在线观看| 欧美一级二级三级蜜桃| 亚洲视频在线二区| 免费在线不卡av| 蜜芽在线免费观看| 久久国产精品色| 中文字幕日韩专区| 亚洲成人福利在线观看| 亚州欧美精品suv| 国产香蕉久久| 亚洲国产精品激情在线观看| 国产97在线亚洲| 色婷婷在线影院| 国产乱xxⅹxx国语对白| 久久久久久影院| 91麻豆精品国产91久久久资源速度 | 在线成人中文字幕| 中国丰满人妻videoshd| 亚洲另类图片另类电影| 97精品国产综合久久久动漫日韩 | 18深夜在线观看免费视频| 国产精品视频一区二区免费不卡| 96sao在线精品免费视频| 亚洲一级片在线观看| 国产中文一区二区| 久久精品视频5| aaa大片在线观看| 国产xxx精品视频大全| 久久免费观看视频| 欧洲女同同性吃奶| 色网址在线观看| 国产亚洲精品午夜高清影院| 极品视频在线| 久久一日本道色综合| 日本sm极度另类视频| 性欧美13一14内谢| 久草网在线视频| 视频一区视频二区中文字幕| 日韩最新中文字幕电影免费看| 福利视频999| 九色视频网址| 99精品电影| 日韩美女视频一区二区在线观看| 国产无限制自拍| 先锋影音欧美四级| 草草视频在线一区二区| 色综合久久综合| 一区二区日本| 动漫av一区二区三区| 激情中国色综合| 亚洲一区二区三区四区的| 久久久久久久久久久一区| 自拍偷拍18p| 是的av在线| 国精品一区二区| 精品精品国产高清一毛片一天堂| 妞干网在线免费视频| 91网站免费| 波多野结衣在线观看一区二区三区| 91麻豆精品91久久久久久清纯| 僵尸世界大战2 在线播放| 欧美亚洲另类在线观看| 国产精品午夜一区二区三区| 欧美岛国在线观看| 特级丰满少妇一级| 97cao在线| 亚洲影院在线| 精品国产一区二区三区久久| 青青草成人免费视频| 男人天堂午夜在线| 精品亚洲成a人在线观看| 欧美一级片久久久久久久| 欧美日韩三级在线观看 | 免费成人网www| 精品国产乱码久久久久久夜甘婷婷 | 成熟亚洲日本毛茸茸凸凹| 国产精品三级美女白浆呻吟| 欧美一级视频免费观看| 色吧亚洲日本| 一区二区三区免费看视频| 在线视频91| 青青青青久久精品国产一百度| 精品一二三区| 一区二区亚洲欧洲国产日韩| av在线网站观看| 超碰免费97在线观看| 久久久美女艺术照精彩视频福利播放| 久久av免费观看| 姝姝窝人体www聚色窝| 国产成人调教视频在线观看| 日韩精品视频三区| chinese麻豆新拍video| 欧美美乳在线| 国产日韩精品一区二区浪潮av| 国产亚洲精品美女久久久m| 女人18毛片一区二区三区| 日本午夜精品| 欧美韩日一区二区三区四区| 国产精品三区www17con| 黄色av免费观看| 伊人成综合网伊人222| 亚洲欧美国产另类| 亚洲精品午夜视频| 欧美videosex性欧美黑吊| 亚洲www啪成人一区二区麻豆| 日韩av综合在线观看| 国产对白在线| 成人激情免费网站| 久热国产精品视频一区二区三区| 日日夜夜中文字幕| 亚洲欧美伊人| 51精品在线观看| 国模私拍一区二区| 精品av导航| 亚洲人成五月天| 懂色av蜜桃av| 在线观看网站免费入口在线观看国内 | 欧美日韩成人| 午夜精品视频网站| 国产精品第六页| 青青操综合网| 日韩视频精品在线| 天堂中文在线网| 国产劲爆久久| 最近中文字幕日韩精品| 久久免费视频6| 伊人久久大香伊蕉在人线观看热v 伊人久久大香线蕉综合影院首页 伊人久久大香 | 色综合一个色综合亚洲| 牛夜精品久久久久久久| 欧美一区二区视频| 亚洲精品精品亚洲| 日本www在线播放| 在线国产中文字幕| 亚洲欧洲精品一区二区精品久久久 | 欧美激情亚洲色图| 露脸国产精品自产在线播| 亚洲深夜影院| 成人中文字幕在线观看| 欧亚成年男女午夜| 久久国产精品久久久久久电车| 成人乱人伦精品视频在线观看| 蜜桃视频污在线观看| 欧美三区在线| 91精品久久久久久久久久另类| 欧美一区二不卡视频| 在线高清一区| 91精品啪aⅴ在线观看国产| 久草中文视频| 蜜桃av一区二区在线观看| 精品一区二区国产| 青娱乐在线视频观看| 国产成人在线观看免费网站| 亚洲国产高清国产精品| 99re6在线视频| 久久久美女毛片| 国产成人精品视频免费看| 欧美欧美欧美| 精品久久久久久久久久ntr影视| 91网址在线观看精品| 美足av综合网| 欧美成人综合网站| 免看一级a毛片一片成人不卡| 伊人精品久久| 精品国产一区二区精华| 欧美人妻精品一区二区三区| 精品国产一区二区三区成人影院 | 在线成人性视频| 97影视大全免费追剧大全在线观看| 中文字幕一区在线观看视频| 欧美三级午夜理伦三级富婆| 中文字幕有码在线视频| 制服丝袜av成人在线看| 免费黄色国产视频| 国产精品tv| 欧美亚洲伦理www| 污视频在线免费| 青娱乐精品在线视频| 亚洲精品在线观看免费| julia京香一区二区三区| 一区二区成人在线视频| 逼特逼视频在线观看| a∨色狠狠一区二区三区| 日韩在线免费av| 国产高清第一页| 久久综合图片| 亚洲欧美精品在线观看| 中文字幕中文字幕在线中文字幕三区 | 成人av在线影院| 男人用嘴添女人下身免费视频| 91在线直播| 91精品啪在线观看国产60岁| 男女羞羞免费视频| 欧美日韩高清| 国产原创欧美精品| 摸bbb搡bbb搡bbbb| 中文字幕在线不卡| 性色av蜜臀av浪潮av老女人 | 91av视频在线观看| 热re久久精品国产99热| 91婷婷韩国欧美一区二区| 爱情岛论坛成人| 欧美成人片在线| 日韩一区二区免费电影| 中日韩精品视频在线观看| 日韩在线观看一区 | 免费a在线观看| 91精品国产91热久久久做人人| 国产亚洲精品码| 欧美日韩综合| 亚洲v日韩v欧美v综合| 免费在线超碰| 欧美电视剧在线看免费| 一区二区视频免费观看| 日韩精品一二区| 精品久久久久久无码中文野结衣| 免费a级毛片在线播放| 亚洲精品黄网在线观看| 国产a级免费视频| 韩国视频一区二区| 99免费视频观看| 亚洲一区二区三区四区| 性视频1819p久久| 自己做鸭怎么接单寻找客源| 亚洲伦在线观看| 粉嫩精品久久99综合一区| 不卡在线一区| 精品久久精品久久| jizzjizz视频| 蜜桃av一区二区| 日韩一级性生活片| 美女扒开腿让男人桶爽久久软| 久久精品国产亚洲| 欧美色婷婷天堂网站| 国产精品女主播在线观看| 久久久亚洲av波多野结衣| 国产欧美日韩在线观看视频| 国产区日韩欧美| 偷拍25位美女撒尿视频在线观看| 日韩视频在线永久播放| 国产精品永久久久久久久久久| 韩国三级电影一区二区| 中文字幕亚洲影院| 国产成人福利av| 国产精品亚洲不卡a| 日本免费不卡| 亚洲欧美综合另类中字| 在线天堂中文www官网| 国产精品欧美极品| 999精品视频在线观看播放| 欧美另类综合| 国产一区二区三区在线免费| 台湾佬中文娱乐久久久| 国产精品igao视频| 女人体1963| 精品sm捆绑视频| 婷婷在线观看视频| 亚洲人成人一区二区在线观看 | 欧美综合在线视频观看| 午夜精品视频在线观看一区二区| 二区三区四区高清视频在线观看| 另类美女黄大片| 黄色免费大片| 51午夜精品国产| 好吊视频一二三区| 国产精品久久影院| 超碰手机在线观看| 日韩电影一区二区三区四区| 182午夜在线观看| 色综合久久中文| 亚洲精品久久久久久一区二区| 精精国产xxxx视频在线野外| 国产不卡视频在线| 未来日记在线观看| 色妞欧美日韩在线| 狠狠色噜噜狠狠狠| 91精品国产综合久久精品app| www.亚洲黄色| 1区2区3区精品视频| 日韩精品乱码久久久久久| 国产做a爰片久久毛片| 少妇户外露出[11p]| 女主播福利一区| 人妻熟女一二三区夜夜爱| 超碰精品在线观看| 五月婷婷一区| 日韩成人亚洲| 国产成人成网站在线播放青青| 欧美激情黑人| 国产不卡视频在线| 国产小视频在线播放| 久久久久久久久久久国产| 秋霞福利视频| 中文字幕亚洲第一| 精品国产www| 不卡视频免费播放| 成人涩涩小片视频日本| 另类欧美日韩国产在线| 熟妇人妻久久中文字幕| 99热免费精品| 日韩欧美色视频| 欧美不卡在线| www.夜夜爽| 婷婷久久综合| 国产又猛又黄的视频| 欧美日韩激情在线一区二区三区| 日韩精品视频在线观看视频| japanese色系久久精品| 婷婷视频在线播放| 美女久久精品| 伊人久久99| 深夜福利一区二区三区| 一区二区三区免费看| 欧美系列精品| 亚洲欧洲日韩综合二区| 青娱乐极品盛宴一区二区| 欧洲一区二区在线| 欧美性www| 亚洲人成网站在线播放2019| 高清精品久久| 中文字幕一区二区三区四区五区 | 欧洲天堂在线观看| 69av在线视频| 国产一二在线观看| 国产美女扒开尿口久久久| 18加网站在线| 92看片淫黄大片看国产片| 国产盗摄在线视频网站| www.久久爱.cn| 中文字幕在线视频久| 开心色怡人综合网站| 岛国精品在线| 一区二区不卡在线观看| 国产精品网址| 日本人体一区二区| 国产精品99久久精品| 在线视频观看91| 校园春色综合网| 国产成人福利在线| 成人午夜视频在线观看| 精品美女久久久久| 亚洲欧美日本在线| 亚洲第一视频在线播放| 在线视频观看一区| 国产精彩自拍| 亚洲欧美第一页| 一级毛片视频| 日本精品性网站在线观看| 视频在线观看入口黄最新永久免费国产| 97人人模人人爽人人少妇| 国产成人精品亚洲日本在线观看| 特级西西444www大精品视频| 另类尿喷潮videofree| 国产精品igao| 亚欧成人精品| 国产精品久久久久久久精| 欧美国产成人在线| www.国产欧美| 欧美顶级少妇做爰| www.尤物.com| 美日韩精品免费视频| av中文在线| 国产一区二区精品在线| 韩国一区二区三区视频| 国产91在线免费| 亚洲国产片色| 国产3级在线观看| 成人h精品动漫一区二区三区| 无码人妻一区二区三区线| 性做久久久久久久久| 欧美xxxxbbbb| 正在播放欧美视频| 亚洲色欧美另类| 日韩限制级电影在线观看| 免费福利片在线观看| 51精品在线观看| 亚洲一区资源|