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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3263|回復: 8
收起左側

大佬幫我解釋一下這個單片機程序,最好每一段都能詳細解釋一下

[復制鏈接]
ID:756707 發表于 2020-5-30 17:21 | 顯示全部樓層 |閱讀模式
400黑幣
#include <stc12c5a60s2.h>

#define uchar unsigned char
#define uint unsigned int

#define LongToBin(n) (((n>>21)&0x80)|((n>>18)&0x40)|((n>>15)&0x20)|((n>>12)&0x10)|((n>>9)&0x08)|((n>>6)&0x04)|((n>>3)&0x02)|((n)&0x01))
#define BIN(n) LongToBin(0x##n##)

sbit anjian=P4^5;

sbit P0_0=P0^0;//層
sbit P0_1=P0^1;
sbit P0_2=P0^2;
sbit P0_3=P0^3;
sbit P0_4=P0^4;
sbit P0_5=P0^5;
sbit P0_6=P0^6;
sbit P0_7=P0^7;
sbit P4_6=P4^6;
sbit P1_1=P1^1;
sbit P1_2=P1^2;
sbit P1_3=P1^3;
sbit P1_4=P1^4;
sbit P1_5=P1^5;
sbit P1_6=P1^6;
sbit P1_7=P1^7;

sbit P3_0=P3^0;//豎
sbit P3_1=P3^1;
sbit P3_2=P3^2;
sbit P3_3=P3^3;
sbit P3_4=P3^4;
sbit P3_5=P3^5;
sbit P3_6=P3^6;
sbit P3_7=P3^7;
sbit P2_0=P2^0;
sbit P2_1=P2^1;
sbit P2_2=P2^2;
sbit P2_3=P2^3;
sbit P2_4=P2^4;
sbit P2_5=P2^5;
sbit P2_6=P2^6;
sbit P2_7=P2^7;
sbit P4_4=P4^4;

char moshi=1;
char h=0,v=0;
int t=0;
char zy=0,sj=0,jz=0;

bit ly_flag=0;                                                

void delay_1ms(uint q)//q shi xing can
{
        uint i,j;
        for(i=0;i<q;i++)
                for(j=0;j<110;j++);
}
void key()
{
        if(anjian==0)
        {
                delay_1ms(5);
                if(anjian==0)
                {
                        while(anjian==0);
                        jz++;
                        if(jz==2)jz=0;
                        if(jz==0){moshi=1;TR0=0;ET0=0;};
                        if(jz==1){moshi=0;ly_flag=1;TR0=1;ET0=1;}
                }        
        }
}
uchar STC_ADC()               
{                                                                                                
     uchar i;
     ADC_RES   = 0;
     ADC_RESL  = 0;
         ADC_CONTR = BIN(10001000);
         i=3;
     while(i--);                                            
     while (1)                     
     {
         if (ADC_CONTR & BIN(10000))   
              {
                             break;
                    }
     }
     ADC_CONTR = BIN(10000000);
           return( ADC_RESL<<2) ;
}
uchar date;
void init()
{
    TMOD= 0x01;                                   
    TL0 = (65536-50000)/256;      
    TH0 = (65536-50000)%256;      
    ET0 = 0;
    TR0 = 0;        
    EA = 1;
}
// PinPu  
void pp()
{
        if(date<=15 && date>0)
        {        
                h=1;
                if(v<h)
                {
                        v=h;        
                        P0=0X01;P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;P1_2=0;P1_1=0;P4_6=0;
                }
        }

        if(date<=30 && date>15)
        {        
                h=2;
                if(v<h)
                {
                        v=h;        
                        P0=0X03;P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;P1_2=0;P1_1=0;P4_6=0;               
                }
        }
        
        if(date<=45 && date>30)
        {
                h=3;
                if(v<h)
                {
                        v=h;
                        P0=0X07;P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;P1_2=0;P1_1=0;P4_6=0;
                }
        }
        if(date<=60 && date>45)
        {
                h=4;
                if(v<h)
                {
                        v=h;
                        P0=0X0F;P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;P1_2=0;P1_1=0;P4_6=0;
                }        
        }
        if(date<=75 && date>60)
        {
                h=5;
                if(v<h)
                {
                        v=h;        
                        P0=0X1F;P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;P1_2=0;P1_1=0;P4_6=0;
                }                        
        }
        if(date<=90 && date>75)
        {
                h=6;
                if(v<h)
                {
                        v=h;        
                        P0=0X3F;P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;P1_2=0;P1_1=0;P4_6=0;        
                }        
        }
        if(date<=105 && date>90)
        {
                h=7;
                if(v<h)
                {
                        v=h;        
                        P0=0X7F;P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;P1_2=0;P1_1=0;P4_6=0;
                }
        }
        if(date<=130 && date>105)
        {
                h=8;
                if(v<h)
                {
                        v=h;        
                        P0=0XFF;P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;P1_2=0;P1_1=0;P4_6=0;
                }
        }
        if(date<=145 && date>130)
        {
                h=9;
                if(v<h)
                {
                        v=h;        
                        P0=0XFF;P4_6=1;P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;P1_2=0;P1_1=0;               
                }        
        }
        if(date<=160 && date>145)
        {
                h=10;                 
                if(v<h)
                {
                        v=h;
                        P0=0XFF;P4_6=1;P1_1=1;P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;P1_2=0;                                                
                }               
        }
        if(date<=175 && date>160)
        {
                h=11;
                if(v<h)
                {
                        v=h;        
                        P0=0XFF;P4_6=1;P1_1=1;P1_2=1;P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;               
                }
        }
        if(date<=190 && date>175)
        {
                h=12;
                if(v<h)
                {
                        v=h;        
                        P0=0XFF;P4_6=1;P1_1=1;P1_2=1;P1_3=1;P1_7=0;P1_6=0;P1_5=0;P1_4=0;                        
                }               
        }
        if(date<=205 && date>190)
        {
                h=13;
                if(v<h)
                {
                        v=h;        
                        P0=0XFF;P4_6=1;P1_1=1;P1_2=1;P1_3=1;P1_4=1;P1_7=0;P1_6=0;P1_5=0;
                }                        
        }
        if(date<=220 && date>205)
        {
                h=14;
                if(v<h)
                {
                        v=h;        
                        P0=0XFF;P4_6=1;P1_1=1;P1_2=1;P1_3=1;P1_4=1;P1_5=1;P1_7=0;P1_6=0;               
                }        
        }
        if(date<=235 && date>220)
        {
                h=15;
                if(v<h)
                {
                        v=h;        
                        P0=0XFF;P4_6=1;P1_1=1;P1_2=1;P1_3=1;P1_4=1;P1_5=1;P1_6=1;P1_7=0;
                }                        
        }
        if(date>235)
        {
                h=16;
                if(v<h)
                {
                        v=h;        
                        P0=0XFF;P4_6=1;P1_1=1;P1_2=1;P1_3=1;P1_4=1;P1_5=1;P1_6=1;P1_7=1;                        
                }                                
        }
}
// SheLing
void sl()
{
        P3_0=0;//J1
        P3_1=0;//J2
        P3_3=0;//J3
        P3_4=0;//J4
        P3_5=0;//J5
        P3_6=0;//J6
        P3_7=0;//J7
        P2_0=0;//J8
        P2_1=0;//J9
        P2_2=0;//J10
        P2_3=0;//J11
        P2_4=0;//J12
        P2_5=0;//J13
        P2_6=0;//J14
        P2_7=0;//J15
        P4_4=0;//J16
}

void main()
{
        P4SW =0Xff;

        P4M0=0xef;//  BIN(11111111)
        P4M1=0x00;        

        P1M0=0xff;
        P1M1=0x00;
         P1ASF =1;        
    AUXR1 =BIN(100);
        init();

        P0M0=0xff;
        P0M1=0x00;
        
        while(1)
        {
                if(moshi==1)dh1();
                //if(moshi==1)dh2();
        
                // pinpu donghua
                if(moshi==0)
                {
                        sl();
                        key();
                        date=STC_ADC();
                        pp();
                        delay_1ms(2);                        
                }
        }
}

void InitTimer0() interrupt 1
{
    TL0 = (65536-10000)/256;   
    TH0 = (65536-10000)%256;      
        t++;
        if(t==3)
        {
                t=0;
                if(v==0);
                else v--;

                if(v==16){P1_7=1;}        
                if(v==15){P1_7=0;}        
                if(v==14){P1_7=0;P1_6=0;}        
                if(v==13){P1_7=0;P1_6=0;P1_5=0;}
                if(v==12){P1_7=0;P1_6=0;P1_5=0;P1_4=0;}        
                if(v==11){P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;}        
                if(v==10){P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;P1_2=0;}        
                if(v==9) {P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;P1_2=0;P1_1=0;}        
                if(v==8) {P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;P1_2=0;P1_1=0;P4_6=0;}        
                if(v==7) {P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;P1_2=0;P1_1=0;P4_6=0;P0=0X7F;}//        
                if(v==6) {P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;P1_2=0;P1_1=0;P4_6=0;P0=0X3F;}//               
                if(v==5) {P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;P1_2=0;P1_1=0;P4_6=0;P0=0X1F;}//        
                if(v==4) {P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;P1_2=0;P1_1=0;P4_6=0;P0=0X0F;}//        
                if(v==3) {P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;P1_2=0;P1_1=0;P4_6=0;P0=0X07;}//
                if(v==2) {P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;P1_2=0;P1_1=0;P4_6=0;P0=0X03;}//               
                if(v==1) {P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;P1_2=0;P1_1=0;P4_6=0;P0=0X01;}//               
                if(v==0) {P1_7=0;P1_6=0;P1_5=0;P1_4=0;P1_3=0;P1_2=0;P1_1=0;P4_6=0;P0=0X00;}//               
        }                                
}

回復

使用道具 舉報

ID:213173 發表于 2020-5-30 21:34 | 顯示全部樓層
樓主在哪里找來這么糟糕透頂的程序,不會有人閑得無聊去研究。
回復

使用道具 舉報

ID:756707 發表于 2020-5-31 10:56 | 顯示全部樓層
wulin 發表于 2020-5-30 21:34
樓主在哪里找來這么糟糕透頂的程序,不會有人閑得無聊去研究。

某寶上面買的一個廣州塔的程序,
回復

使用道具 舉報

ID:639106 發表于 2020-6-1 09:19 | 顯示全部樓層
是用什么單片機的
回復

使用道具 舉報

ID:739545 發表于 2020-6-1 15:56 | 顯示全部樓層
這代碼看著蛋疼。初學者寫的。不過雖然邏輯幼稚,但是行文還算規范
回復

使用道具 舉報

ID:776149 發表于 2020-6-11 22:15 | 顯示全部樓層
你在那個寶上買還是問好有沒有注釋,這個費時間還麻煩
回復

使用道具 舉報

ID:436885 發表于 2020-6-12 01:16 | 顯示全部樓層
按鍵+AD+比較處理
回復

使用道具 舉報

ID:744327 發表于 2020-6-12 08:51 | 顯示全部樓層
按鍵控制流水燈程序。宏定義,位操作,按鍵檢測,定時器使用
回復

使用道具 舉報

ID:745153 發表于 2020-6-12 09:51 | 顯示全部樓層
控制流水燈的程序,看著有點頭疼啊
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日日日操| 久久91av| 国产97碰免费视频 | 午夜精品一区二区三区在线观看 | 青青草免费在线视频 | 欧洲精品码一区二区三区免费看 | 欧美激情精品久久久久久免费 | 伊人狼人影院 | 免费不卡av| 婷婷色在线 | 日韩国产欧美在线观看 | www.97国产 | 成人三区 | 国产精品一区在线 | 久久久不卡网国产精品一区 | 黄色一级大片在线免费看产 | 日本不卡一区二区三区在线观看 | 午夜精品在线 | 久久久爽爽爽美女图片 | 国产色黄| av免费网站在线观看 | 亚洲日本一区二区三区四区 | 国产成在线观看免费视频 | 草草视频在线播放 | 福利一区二区在线 | 成人黄色a | 成人精品一区二区三区中文字幕 | www日韩高清 | 国产精品国产a | 日本三级电影在线免费观看 | 91av视频在线 | 国产精品久久久久无码av | 国产一区精品 | 在线看黄免费 | 国产日韩中文字幕 | 又黄又爽的网站 | 国产目拍亚洲精品99久久精品 | 欧美一级艳情片免费观看 | av资源在线看 | a看片| 精品中文视频 |