欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 哥哥姐姐們幫幫俺一直想不明白這個代碼為什么到第二個黃燈就不再亮了 [打印本頁]

作者: yyyeing    時間: 2023-10-16 02:25
標題: 哥哥姐姐們幫幫俺一直想不明白這個代碼為什么到第二個黃燈就不再亮了
#include<reg51.h>   
#include"intrins.h"
#define uchar unsigned char
#define uint unsigned int

uchar Tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
uchar nt=10,wt=10,sz=0,t,DJS=10,seg=10,tx=5;
bit ms=0;sbit k = P3^0;

sbit we1=P0^0;
sbit we2=P0^1;

sbit NSG=P1^5;
sbit NSY=P1^4;
sbit NSR=P1^3;
sbit WEG=P1^2;
sbit WEY=P1^1;
sbit WER=P1^0;

void delay(uint t);
void display();
void Init_Timer0(void);
void NST();
void WET();
void jstx();void delay(uint t)                  
{
        uchar x,y;
        for(x=0;x<t;x++)   
                for(y=0;y<200;y++);
}void main()
{
        Init_Timer0();
        while(1)
        { if(sz==0)   
                {
                        if(ms==0)
                        {NST();}  
                        if(ms==1)
                        {WET();}
                }display();
        }
       
}void display()
{
                we1=0;
          we2=1;   
                P2=Tab[seg/10];
                delay(5);  
                P2=0x00;   
                we1=1;     
          we2=0;  
                P2=Tab[seg%10];
                delay(5);   
                P2=0x00;          
}

void Init_Timer0(void)
{
        TMOD= 0x01;                       
        TH0=0x3c;      
        TL0=0xb0;
   IP=0x02;     
        TR0=1;  
        ET0=1;  
   EA=1;       
}

void timer0 (void) interrupt 1
{
        TH0=0x3c;
        TL0=0xb0;
        t++;        
        if(t==20)
        {
                DJS--;   
                t=0;
                if(seg==0&&sz%2==0)      
                 {
                         seg=5;
                         sz++;
                 }
                 else if(seg==0&&sz%2==1)  
                 {
                         seg=10;
                         sz++;
                 }
                 switch(sz%2)
                 {
                         case 0:  
                                  NSG=0;
        NSR=1;
        NSY=1;
               
        WER=0;
        WEG=1;
        WEY=1;
                            break;
                         case 1:  
                                  NSG=1;
        NSR=1;
        NSY=0;
               
        WER=0;
        WEG=1;
        WEY=1;
                            break;
                         case 2:
                                  NSG=1;
        NSR=0;
        NSY=1;
               
        WER=1;
        WEG=0;
        WEY=1;
                            break;
                         case 3:  
                                 NSG=1;
        NSR=0;
        NSY=1;
               
        WER=1;
        WEG=1;
        WEY=0;
                            break;
                 }void WET()
{
        seg=DJS;
        NSG=1;
        NSR=0;
        NSY=1;
        WER=1;
        WEG=0;
        WEY=1;
}void NST()
{
        seg=DJS;
        NSG=0;
        NSR=1;
        NSY=1;
               
        WER=0;
        WEG=1;
        WEY=1;

image.jpg (3.46 MB, 下載次數: 121)

image.jpg

作者: liaojiaao    時間: 2023-10-16 08:48
看你仿真圖,只練了led的頭兩位,肯定只亮兩位噻
作者: glinfei    時間: 2023-10-16 08:53
問題應該在這:  switch(sz%2) 怎么會進入 case 3 和case 4 呢?
另外是自己寫的程序嗎?全篇自己寫的人很少了,但即使給自己用也應該寫注釋。
作者: lkc8210    時間: 2023-10-16 09:00
1. 代碼不完整
2. 為啥switch(sz%2)要mod 2?
作者: topsoft    時間: 2023-10-16 09:20
DJS就--了,沒有還原到20;sz就++了,遲早會爆
作者: yyyeing    時間: 2023-10-16 11:08
liaojiaao 發表于 2023-10-16 08:48
看你仿真圖,只練了led的頭兩位,肯定只亮兩位噻

是一開始紅綠燈先亮倒計時倒計時到0再跳到5黃燈亮,但是他就不動了不是應該繼續走程序嗎
作者: yyyeing    時間: 2023-10-16 11:11
glinfei 發表于 2023-10-16 08:53
問題應該在這:  switch(sz%2) 怎么會進入 case 3 和case 4 呢?
另外是自己寫的程序嗎?全篇自己寫的人很 ...

但是他怎么進入到case2就不動了
俺已經絞盡腦汁了
這樣可以嗎

image.jpg (883.53 KB, 下載次數: 129)

image.jpg

作者: yyyeing    時間: 2023-10-16 11:11
lkc8210 發表于 2023-10-16 09:00
1. 代碼不完整
2. 為啥switch(sz%2)要mod 2?

這已經是俺的全部代碼了
作者: yyyeing    時間: 2023-10-16 11:12
topsoft 發表于 2023-10-16 09:20
DJS就--了,沒有還原到20;sz就++了,遲早會爆

但是我看其他人的都是這樣做的
作者: glinfei    時間: 2023-10-16 14:34
yyyeing 發表于 2023-10-16 11:11
但是他怎么進入到case2就不動了
俺已經絞盡腦汁了
這樣可以嗎

它就進不了case2,任何數的2的余數只有0和1,后邊的程序switch 沒問題了,但程序優化空間太大,達到目的再說吧
作者: yyyeing    時間: 2023-10-16 15:24
glinfei 發表于 2023-10-16 14:34
它就進不了case2,任何數的2的余數只有0和1,后邊的程序switch 沒問題了,但程序優化空間太大,達到目的再 ...

好的辛苦你了!




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1