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

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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1805|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

簡(jiǎn)單的交通燈,為什么進(jìn)不了中斷

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
#include <reg52.h>

#define u8 unsigned int
#define u16 unsigned char
#define GPIO_dig P0
#define GPIO_traffic P1

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

sbit RED_1=P1^0;
sbit GREEN_1=P1^1;
sbit RED_2=P1^2;
sbit YELLOW_2=P1^3;
sbit GREEN_2=P1^4;
sbit RED_3=P1^5;
sbit YELLOW_3=P1^6;
sbit GREEN_3=P1^7;
sbit RED_4=P3^1;
sbit GREEN_4=P3^0;

u8 code smgduan[17]=
{0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};

u8 DisplayData[8];
u8 second;

void delay(u16 z)
{
    while(z--);
}

void DigDisplay()
{
    u8 i;
    for(i=0; i<8; i++)
    {
        switch(i)
        {
            case(0):
                LSA=0;LSB=0;LSC=0; break;//顯示第0位
            case(1):
                LSA=1;LSB=0;LSC=0; break;//顯示第1位
            case(2):
                LSA=0;LSB=1;LSC=0; break;//顯示第2位
            case(3):
                LSA=1;LSB=1;LSC=0; break;//顯示第3位
            case(4):
                LSA=0;LSB=0;LSC=1; break;//顯示第4位
            case(5):
                LSA=1;LSB=0;LSC=1; break;//顯示第5位
            case(6):
                LSA=0;LSB=1;LSC=1; break;//顯示第6位
            case(7):
                LSA=1;LSB=1;LSC=1; break;//顯示第7位            
        }
        GPIO_dig=DisplayData[i];
        delay(100);
        GPIO_dig=0x00;
    }
}

void Time0Init()
{
    TMOD|=0x01;
    TH0=0xFC;
    TL0=0x18;
    EA=1;
    ET0=1;
    TR0=1;
}

void main()
{
    second=1;
    Time0Init();
    while(1)
    {
        if(second==70)
        {
            second=1;
        }
        if(second < 31)
        {
            DisplayData[0] = 0x00;
            DisplayData[1] = 0x00;
            DisplayData[2] = smgduan[(30 - second) % 100 / 10];
            DisplayData[3] = smgduan[(30 - second) %10];
            DisplayData[4] = 0x00;
            DisplayData[5] = 0x00;
            DisplayData[6] = DisplayData[2];
            DisplayData[7] = DisplayData[3];
            DigDisplay();

            GPIO_traffic=0xff;
            RED_4=1;
            GREEN_4=1;

            GREEN_2=0;
            GREEN_1=0;
            RED_3=0;
            RED_4=0;
        }        

        else if(second < 36)
        {
            DisplayData[0] = 0x00;
            DisplayData[1] = 0x00;
            DisplayData[2] = smgduan[(35 - second) % 100 / 10];
            DisplayData[3] = smgduan[(35 - second) %10];
            DisplayData[4] = 0x00;
            DisplayData[5] = 0x00;
            DisplayData[6] = DisplayData[2];
            DisplayData[7] = DisplayData[3];
            DigDisplay();

            GPIO_traffic=0xff;
            RED_4=1;
            GREEN_4=1;

            GREEN_1=0;
            YELLOW_2=0;
            YELLOW_3=0;
            RED_4=0;
        }        

        else if(second < 66)
        {
            DisplayData[0] = 0x00;
            DisplayData[1] = 0x00;
            DisplayData[2] = smgduan[(65 - second) % 100 / 10];
            DisplayData[3] = smgduan[(65 - second) %10];
            DisplayData[4] = 0x00;
            DisplayData[5] = 0x00;
            DisplayData[6] = DisplayData[2];
            DisplayData[7] = DisplayData[3];
            DigDisplay();

            GPIO_traffic=0xff;
            RED_4=1;
            GREEN_4=1;
            
            RED_1=0;
            RED_2=0;
            GREEN_3=0;
            GREEN_4=0;
        }        

        else
        {
            DisplayData[0] = 0x00;
            DisplayData[1] = 0x00;
            DisplayData[2] = smgduan[(70 - second) % 100 / 10];
            DisplayData[3] = smgduan[(70 - second) %10];
            DisplayData[4] = 0x00;
            DisplayData[5] = 0x00;
            DisplayData[6] = DisplayData[2];
            DisplayData[7] = DisplayData[3];
            DigDisplay();

            GPIO_traffic=0xff;
            RED_4=1;
            GREEN_4=1;
            
            YELLOW_2=0;
            RED_1=0;
            YELLOW_3=0;
            GREEN_4=0;   
        }
    }
}

void Time0() interrupt 1
{
    static u16 a;
    TH0=0xFC;
    TL0=0x18;
    a++;
    if(a == 1000)
    {
        a=0;
        second ++;
    }
}



IMG20180221224747.jpg (4.86 MB, 下載次數(shù): 33)

IMG20180221224747.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:284681 發(fā)表于 2018-2-21 22:50 | 只看該作者
數(shù)碼管不走路
回復(fù)

使用道具 舉報(bào)

板凳
ID:284696 發(fā)表于 2018-2-22 08:45 | 只看該作者
要開(kāi)中斷的
回復(fù)

使用道具 舉報(bào)

地板
ID:231046 發(fā)表于 2018-2-22 08:46 | 只看該作者
void main()
{
    second=1;
  //  Time0Init();
不用調(diào)用
回復(fù)

使用道具 舉報(bào)

5#
ID:213173 發(fā)表于 2018-2-22 09:48 | 只看該作者
因?yàn)槟闶褂玫臄?shù)據(jù)類型與宏定義數(shù)據(jù)類型不一致,char是8位,int是16位.
#define u8 unsigned int
#define u16 unsigned char
void Time0() interrupt 1
{
    static u16 a;
    TH0=0xFC;
    TL0=0x18;
    a++;
    if(a == 1000)  //超過(guò)255
    {
        a=0;
        second ++;
    }
}
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91看片网 | 成人福利在线视频 | 日韩蜜桃视频 | 国产精品日韩在线观看一区二区 | 一二三在线视频 | 日韩国产在线 | 久久久夜 | 亚洲图片视频一区 | 久草福利 | 午夜精品久久久久久久 | 欧美精品在线免费观看 | 久久国产精品一区二区三区 | 色就是色欧美 | 日韩一区二区在线视频 | 亚洲午夜网 | 成人激情视频免费在线观看 | 日本天堂一区二区 | 狠狠干av| 色婷婷影院 | 色性av | 欧美精品二区 | 欧美综合一区 | 久久久久免费观看 | 精品毛片 | 欧美久久天堂 | 男女激情网站免费 | 日韩成人一区 | 亚洲一区二区三区免费观看 | 国产欧美一区二区三区在线看蜜臀 | 久久国内精品 | 成人在线免费av | 欧美日韩视频在线 | 久久99精品久久久久子伦 | 男人的天堂一级片 | 伊人久麻豆社区 | 网络毛片 | 亚洲视频一区在线观看 | 成人在线免费网站 | 欧美日韩久久精品 | 久久狠狠 | 精彩视频一区二区三区 |