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

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

QQ登錄

只需一步,快速開始

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

logic contention detected on net +5v

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
這是我的電路和錯(cuò)誤還有我的程序


#include<reg52.h>        
//#include<config.h>
#include<intrins.h>
#defineuchar unsigned char
#defineunint unsigned int
externvoid Key_Data(void);
unsignedchar data dis_digit;
unsignedchar key_s,key_v;//定義數(shù)碼管顯示段碼
unsignedchar codedis_code[12]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0xff,0xfd};
ucharLED_flag1=0x01;//定義20個(gè)發(fā)光二極管
ucharLED_flag2=0x01;
ucharLED_flag3=0x01;
ucharLED_flag4=0x01;
ucharLED_flag5=0x01;
ucharLED_flag6=0x01;
ucharLED_flag7=0x01;
ucharLED_flag8=0x01;
ucharLED_flag9=0x01;
ucharLED_flag10=0x01;
ucharLED_flag11=0x01;
ucharLED_flag12=0x01;
ucharLED_flag13=0x01;
ucharLED_flag14=0x01;
ucharLED_flag15=0x01;
ucharLED_flag16=0x01;
ucharLED_flag17=0x01;
ucharLED_flag18=0x01;
ucharLED_flag19=0x01;
ucharLED_flag20=0x01;
ucharSUIJI1=0;
ucharSUIJI2=0;
ucharSUIJI3=0;
ucharMIMAI1,MIMAI2,MIMAI3=0;
ucharKKSJD=0;
ucharflagy1=0;
ucharKKSL=0;
ucharKT_LED1=0xff;
ucharKT_LED2=0xff;
ucharKT_LED3=0xff;
unsignedchar dis_buf[8];
unsignedchar dis_index;
unsignedchar sec100;
charKSJD=1;
sbitK1=P3^6;  //小時(shí)增加
sbitK2=P3^7;  //分鐘增加
sbitK3=P3^5;
sbitLLL1=P2^0;  
sbitLLL2=P2^1;  
sbitLLL3=P1^6;  
sbitLLL4=P1^7;  
sbitLLL5=P2^2;  
sbitLLL6=P2^5;  
sbitLLL7=P2^6;  
sbitLLL8=P2^7;  
sbitLLL9=P1^5;  
charMMJSASJ=0;
charKKKSJJ=0;
charJI0S=0;
bitflag_guanli=1;
ucharPPOP[60];
unsignedchar KKS1;
unsignedchar KKS2;
externunsigned char Count_165[2];
charMMMSW=0;
chardisp_Pattern;   //
bitflag_light=0;
voiddisplay( ) ;
voiddelayms(unsigned char ms) ;
unsignedint KKSM=0;
bitflag_hhs=1;
ucharLLLS1,LLLS2,LLLS3;
charKSLEE[6]={0,0,0,0,0,0};
bitKKS_flag=1;   
//延時(shí)1ms
voiddelay1ms(unsigned int count)
{
     unsigned int i,j;
     for(i=0;i<count;i++)
     for(j=0;j<120;j++);
}              
//延時(shí)子程序
voiddelay(unsigned int z)
{  
     unsigned int x,y;
     for(x=z;x>0;x--)
    for(y=114;y>0;y--);
}                 
//4*4掃描鍵盤
voidKey_scan() //鍵盤掃描函數(shù)Key_scan()
{  
unsignedchar X,Y,Z;
    P3=0xff;
    P3=0x0f; //先對(duì)P3置數(shù) 行掃描
    if(P3!=0x0f)  //判斷是否有鍵按下
{  
delay(1);  //延時(shí)10ms,軟件去干擾
       if(P3!=0x0f)  //確認(rèn)按鍵按下
   {
X=P3;   //保存行掃描時(shí)有鍵按下時(shí)狀態(tài)
     P3=0xf0; //列掃描
Y=P3;   //保存行掃描時(shí)有鍵按下時(shí)狀態(tài)
     Z=X|Y; //取出鍵值
     while(P3!=0xf0);   //按鍵防止抖動(dòng)
     switch (Z)   //判斷鍵值(那一個(gè)鍵按下)
{      
case0x77:KKS2=4;break;  //取消   
case0x7b:KKS2=3;break;  //確定  
case0x7d:KKS2=2;break;  //取包   
case0x7e:KKS2=1;break;  //存包  
case0xbd:KKS1=9,KKS_flag=0;break;  //數(shù)字【5  
case0xbe:KKS1=8,KKS_flag=0;break;  //數(shù)字【8
case0xd7:KKS1=7,KKS_flag=0;break;  //字符【F=  
case0xdb:KKS1=6,KKS_flag=0;break;  //數(shù)字【3  
case0xdd:KKS1=5,KKS_flag=0;break;  //數(shù)字【3  
case0xde:KKS1=4,KKS_flag=0;break;  //數(shù)字【9
case0xe7:KKS1=3,KKS_flag=0;break;  //字符【B+
case0xeb:KKS1=2,KKS_flag=0;break;  //字符【C-
case0xed:KKS1=1,KKS_flag=0;break;  //字符【D*
case0xee:KKS1=0,KKS_flag=0;break;  //字符【E/
}
}
}
}
/*************************************************************
數(shù)
說(shuō)   明:
入口參數(shù):無(wú)
值:
設(shè)   計(jì):                期:
   :                 期:
*************************************************************/
voidmain(void)
{
P0=0xff;
P2=0xff;
TMOD=0x11; //定時(shí)器0,1工作模式1,16位定時(shí)器
TH0=0xFC;
TL0=0x17;
TCON=0x01;
IE=0x8a; //使能timer0,1中斷
TR0=1;
KSLEE[0]=KSLEE[1]=KSLEE[2]=KSLEE[3]=KSLEE[4]=KSLEE[5]=10;//密碼位數(shù)清零
KKSM=5;
flagy1=0;//顯示等待存包狀態(tài)
KKKSJJ=0;//顯示密碼變量清零
while(1)
{
if(MMJSASJ>3)flag_guanli=0;
  Key_scan();//調(diào)用鍵盤檢測(cè)程序
  if(KKS2==2)flagy1=2; //有取包按鍵顯示取包的狀態(tài)
  if(KKS2==1)//顯示存包密碼顯示狀態(tài)
  {
flagy1=1;
}
MIMAI1=KSLEE[1]*10+KSLEE[0];
MIMAI2=KSLEE[3]*10+KSLEE[2];
MIMAI3=KSLEE[5]*10+KSLEE[4];
if(flagy1==0)//存包取密碼
{
if(KKSJD==1)PPOP[0]=SUIJI1,PPOP[1]=SUIJI2,PPOP[2]=SUIJI3,LED_flag1=0,KKSJD=0,SUIJI1=SUIJI2=SUIJI3=0;//1號(hào)柜,密碼到數(shù)組1
if(KKSJD==2)PPOP[3]=SUIJI1,PPOP[4]=SUIJI2,PPOP[5]=SUIJI3,LED_flag1=0,KKSJD=0,SUIJI1=SUIJI2=SUIJI3=0;//2號(hào)柜,密碼到數(shù)組2
if(KKSJD==3)PPOP[6]=SUIJI1,PPOP[7]=SUIJI2,PPOP[8]=SUIJI3,LED_flag1=0,KKSJD=0,SUIJI1=SUIJI2=SUIJI3=0;//3號(hào)柜,密碼到數(shù)組3
if(KKSJD==4)PPOP[9]=SUIJI1,PPOP[10]=SUIJI2,PPOP[11]=SUIJI3,LED_flag1=0,KKSJD=0,SUIJI1=SUIJI2=SUIJI3=0;//4號(hào)柜,密碼到數(shù)組4
if(KKSJD==5)PPOP[12]=SUIJI1,PPOP[13]=SUIJI2,PPOP[14]=SUIJI3,LED_flag1=0,KKSJD=0,SUIJI1=SUIJI2=SUIJI3=0;//5號(hào)柜,密碼到數(shù)組5
if(KKSJD==6)PPOP[15]=SUIJI1,PPOP[16]=SUIJI2,PPOP[17]=SUIJI3,LED_flag1=0,KKSJD=0,SUIJI1=SUIJI2=SUIJI3=0;//6號(hào)柜,密碼到數(shù)組6
if(KKSJD==7)PPOP[18]=SUIJI1,PPOP[19]=SUIJI2,PPOP[20]=SUIJI3,LED_flag1=0,KKSJD=0,SUIJI1=SUIJI2=SUIJI3=0;//7號(hào)柜,密碼到數(shù)組7
if(KKSJD==8)PPOP[21]=SUIJI1,PPOP[22]=SUIJI2,PPOP[23]=SUIJI3,LED_flag1=0,KKSJD=0,SUIJI1=SUIJI2=SUIJI3=0;//8號(hào)柜,密碼到數(shù)組8
if(KKSJD==9)PPOP[24]=SUIJI1,PPOP[25]=SUIJI2,PPOP[26]=SUIJI3,LED_flag1=0,KKSJD=0,SUIJI1=SUIJI2=SUIJI3=0;//9號(hào)柜,密碼到數(shù)組9
if(KKSJD==10)PPOP[27]=SUIJI1,PPOP[28]=SUIJI2,PPOP[29]=SUIJI3,LED_flag1=0,KKSJD=0,SUIJI1=SUIJI2=SUIJI3=0;//10號(hào)柜,密碼到數(shù)組10
if(KKSJD==11)PPOP[30]=SUIJI1,PPOP[31]=SUIJI2,PPOP[32]=SUIJI3,LED_flag1=0,KKSJD=0,SUIJI1=SUIJI2=SUIJI3=0;//11號(hào)柜,密碼到數(shù)組11
if(KKSJD==12)PPOP[33]=SUIJI1,PPOP[34]=SUIJI2,PPOP[35]=SUIJI3,LED_flag1=0,KKSJD=0,SUIJI1=SUIJI2=SUIJI3=0;//12號(hào)柜,密碼到數(shù)組12
if(KKSJD==13)PPOP[36]=SUIJI1,PPOP[37]=SUIJI2,PPOP[38]=SUIJI3,LED_flag1=0,KKSJD=0,SUIJI1=SUIJI2=SUIJI3=0;//13號(hào)柜,密碼到數(shù)組13
if(KKSJD==14)PPOP[39]=SUIJI1,PPOP[40]=SUIJI2,PPOP[41]=SUIJI3,LED_flag1=0,KKSJD=0,SUIJI1=SUIJI2=SUIJI3=0;//14號(hào)柜,密碼到數(shù)組14
if(KKSJD==15)PPOP[42]=SUIJI1,PPOP[43]=SUIJI2,PPOP[44]=SUIJI3,LED_flag1=0,KKSJD=0,SUIJI1=SUIJI2=SUIJI3=0;//15號(hào)柜,密碼到數(shù)組15
if(KKSJD==16)PPOP[45]=SUIJI1,PPOP[46]=SUIJI2,PPOP[47]=SUIJI3,LED_flag1=0,KKSJD=0,SUIJI1=SUIJI2=SUIJI3=0;//16號(hào)柜,密碼到數(shù)組16
if(KKSJD==17)PPOP[48]=SUIJI1,PPOP[49]=SUIJI2,PPOP[50]=SUIJI3,LED_flag1=0,KKSJD=0,SUIJI1=SUIJI2=SUIJI3=0;//17號(hào)柜,密碼到數(shù)組17
if(KKSJD==18)PPOP[51]=SUIJI1,PPOP[52]=SUIJI2,PPOP[53]=SUIJI3,LED_flag1=0,KKSJD=0,SUIJI1=SUIJI2=SUIJI3=0;//18號(hào)柜,密碼到數(shù)組18
if(KKSJD==19)PPOP[54]=SUIJI1,PPOP[55]=SUIJI2,PPOP[56]=SUIJI3,LED_flag1=0,KKSJD=0,SUIJI1=SUIJI2=SUIJI3=0;//19號(hào)柜,密碼到數(shù)組19
if(KKSJD==20)PPOP[57]=SUIJI1,PPOP[58]=SUIJI2,PPOP[59]=SUIJI3,LED_flag20=0,KKSJD=0,SUIJI1=SUIJI2=SUIJI3=0;//20號(hào)柜,密碼到數(shù)組20            
}
KT_LED2=LED_flag1|(LED_flag2<<1)|(LED_flag3<<2)|(LED_flag4<<3)|(LED_flag5<<4)|(LED_flag6<<5)| (LED_flag7<<6);//顯示不同燈的狀態(tài)
KT_LED1=LED_flag8|(LED_flag9<<1)|(LED_flag10<<2)|(LED_flag11<<3)|(LED_flag12<<4)|(LED_flag13<<5)| (LED_flag14<<6);
KT_LED3=LED_flag15|(LED_flag16<<1)|(LED_flag17<<2)|(LED_flag18<<3)|(LED_flag19<<4)|(LED_flag20<<5);
  if(KKS2==3)//等待輸入密碼,然后進(jìn)行密碼比較
{   
if(flag_guanli)//等待輸入密碼,然后進(jìn)行密碼比較
{
MMJSASJ++;
if((PPOP[0]==MIMAI1)&&(PPOP[1]==MIMAI2)&&(PPOP[2]==MIMAI3))MMJSASJ=0,LED_flag1=1;//比較1號(hào)柜密碼
if((PPOP[3]==MIMAI1)&&(PPOP[4]==MIMAI2)&&(PPOP[5]==MIMAI3))MMJSASJ=0,LED_flag2=1;//比較2號(hào)柜密碼
if((PPOP[6]==MIMAI1)&&(PPOP[7]==MIMAI2)&&(PPOP[8]==MIMAI3))MMJSASJ=0,LED_flag3=1;//比較3號(hào)柜密碼
if((PPOP[9]==MIMAI1)&&(PPOP[10]==MIMAI2)&&(PPOP[11]==MIMAI3))MMJSASJ=0,LED_flag4=1;//比較4號(hào)柜密碼
if((PPOP[12]==MIMAI1)&&(PPOP[13]==MIMAI2)&&(PPOP[14]==MIMAI3))MMJSASJ=0,LED_flag5=1;//比較5號(hào)柜密碼
if((PPOP[15]==MIMAI1)&&(PPOP[16]==MIMAI2)&&(PPOP[17]==MIMAI3))MMJSASJ=0,LED_flag6=1;//比較6號(hào)柜密碼
if((PPOP[18]==MIMAI1)&&(PPOP[19]==MIMAI2)&&(PPOP[20]==MIMAI3))MMJSASJ=0,LED_flag7=1;//比較7號(hào)柜密碼
if((PPOP[21]==MIMAI1)&&(PPOP[22]==MIMAI2)&&(PPOP[23]==MIMAI3))MMJSASJ=0,LED_flag8=1;//比較8號(hào)柜密碼
if((PPOP[24]==MIMAI1)&&(PPOP[25]==MIMAI2)&&(PPOP[26]==MIMAI3))MMJSASJ=0,LED_flag9=1;//比較9號(hào)柜密碼
if((PPOP[27]==MIMAI1)&&(PPOP[28]==MIMAI2)&&(PPOP[29]==MIMAI3))MMJSASJ=0,LED_flag10=1;//比較10號(hào)柜密碼
if((PPOP[30]==MIMAI1)&&(PPOP[31]==MIMAI2)&&(PPOP[32]==MIMAI3))MMJSASJ=0,LED_flag11=1;//比較11號(hào)柜密碼
if((PPOP[33]==MIMAI1)&&(PPOP[34]==MIMAI2)&&(PPOP[35]==MIMAI3))MMJSASJ=0,LED_flag12=1;//比較12號(hào)柜密碼
if((PPOP[36]==MIMAI1)&&(PPOP[37]==MIMAI2)&&(PPOP[38]==MIMAI3))MMJSASJ=0,LED_flag12=1;//比較13號(hào)柜密碼
if((PPOP[39]==MIMAI1)&&(PPOP[40]==MIMAI2)&&(PPOP[41]==MIMAI3))MMJSASJ=0,LED_flag14=1;//比較14號(hào)柜密碼
if((PPOP[42]==MIMAI1)&&(PPOP[43]==MIMAI2)&&(PPOP[44]==MIMAI3))MMJSASJ=0,LED_flag15=1;//比較15號(hào)柜密碼
if((PPOP[45]==MIMAI1)&&(PPOP[46]==MIMAI2)&&(PPOP[47]==MIMAI3))MMJSASJ=0,LED_flag16=1;//比較16號(hào)柜密碼
if((PPOP[48]==MIMAI1)&&(PPOP[49]==MIMAI2)&&(PPOP[50]==MIMAI3))MMJSASJ=0,LED_flag17=1;//比較17號(hào)柜密碼
if((PPOP[51]==MIMAI1)&&(PPOP[52]==MIMAI2)&&(PPOP[53]==MIMAI3))MMJSASJ=0,LED_flag18=1;//比較18號(hào)柜密碼
if((PPOP[54]==MIMAI1)&&(PPOP[55]==MIMAI2)&&(PPOP[56]==MIMAI3))MMJSASJ=0,LED_flag19=1;//比較19號(hào)柜密碼
if((PPOP[57]==MIMAI1)&&(PPOP[58]==MIMAI2)&&(PPOP[59]==MIMAI3))MMJSASJ=0,LED_flag20=1;//比較20號(hào)柜密碼
}
flagy1=0;
KSLEE[0]=KSLEE[1]=KSLEE[2]=KSLEE[3]=KSLEE[4]=KSLEE[5]=10;//密碼位數(shù)清零
if((MIMAI1=10)&&(MIMAI2=10)&& (MIMAI3=10))//管理員密碼比較,101010
{
flag_guanli=1;
LED_flag1=LED_flag2=LED_flag3=LED_flag4=LED_flag5=LED_flag6=LED_flag7= LED_flag8= LED_flag9= LED_flag10=0x01;
LED_flag11=LED_flag12=LED_flag13=LED_flag14=LED_flag15=LED_flag16=LED_flag17=LED_flag18=LED_flag19=LED_flag20=0x01;
}
}
if(KKS2==4)//取消返回等待存包狀態(tài)
{
flagy1=0;
KSLEE[0]=KSLEE[1]= KSLEE[2]= KSLEE[3]= KSLEE[4]= KSLEE[5]=10;//密碼位數(shù)清零
KKSM=5;
}
}
}
/********************************************************
數(shù) 名:
說(shuō)   明:中斷程序,顯示時(shí)間
入口參數(shù):無(wú)
//定時(shí)器0中斷服務(wù)程序,用于數(shù)碼管的動(dòng)態(tài)掃描
//dis_index---顯示索引,用于標(biāo)識(shí)當(dāng)前顯示的數(shù)碼管和緩沖區(qū)的偏移量
//dis_digit---位選通值,傳送到P2口用于選通當(dāng)前數(shù)碼管的數(shù)值,如等于0xfe時(shí),
//   選通P2口數(shù)碼管
//dis_buf   --- 顯示緩沖區(qū)基地址
*********************************************************/
voidtimer0( ) interrupt 1
{   
TH0=0xFa;
TL0=0x17;
P2=0xff;
MMMSW++;
if(flagy1==0)
{
SUIJI1++;
if(SUIJI1>99)SUIJI1=0, SUIJI2++;  //
if(SUIJI2>99)SUIJI2=0, SUIJI3++;  //
if(SUIJI3>99)SUIJI3=0;  //
}
if(flagy1==0)  //顯示"……"等待存包
{
if(MMMSW==5)LLL5=0,LLL1=LLL2=LLL3=LLL4=LLL9=LLL6=LLL7=LLL8=1,P0=dis_code[11];  //顯示
if(MMMSW==6)LLL6=0,LLL2=LLL3=LLL4=LLL5=LLL9=LLL7=LLL1=LLL8=1,P0=dis_code[11];  //顯示
if(MMMSW==7)LLL7=0,LLL2=LLL3=LLL4=LLL9=LLL5=LLL6=LLL1=LLL8=1,P0=dis_code[11];  //顯示
if(MMMSW==8)LLL8=0,LLL2=LLL3=LLL4=LLL9=LLL5=LLL6=LLL7=LLL1=1,P0=dis_code[11];  //顯示
if(MMMSW==1)LLL1=0,LLL2=LLL3=LLL4=LLL9=LLL5=LLL6=LLL7=LLL8=1,P0=dis_code[11];  //顯示
if(MMMSW==2)LLL2=0,LLL1=LLL3=LLL4=LLL9=LLL5=LLL6=LLL7=LLL8=1,P0=dis_code[11];  //顯示
if(MMMSW==3)LLL3=0,LLL1=LLL2=LLL4=LLL9=LLL5=LLL6=LLL7=LLL8=1,P0=KT_LED1;  //1
if(MMMSW==9)MMMSW=0,LLL9=0,LLL1=LLL2=LLL3=LLL4=LLL5=LLL6=LLL7=LLL8=1,P0=KT_LED2;  //2
if(MMMSW==4)LLL4=0,LLL1=LLL2=LLL3=LLL9=LLL5=LLL6=LLL7=LLL8=1,P0=KT_LED3;  //3
KKSM=5;
}
if(flagy1==1)  //顯示存包顯示密碼的狀態(tài)
{
if(MMMSW==5)LLL5=0,LLL1=LLL2=LLL3=LLL4=LLL9=LLL6=LLL7=LLL8=1,P0=dis_code[SUIJI1%10];  //顯示
if(MMMSW==6)LLL6=0,LLL2=LLL3=LLL4=LLL5=LLL9=LLL7=LLL1=LLL8=1,P0=dis_code[SUIJI1/10];  //顯示
if(MMMSW==7)LLL7=0,LLL2=LLL3=LLL4=LLL9=LLL5=LLL6=LLL1=LLL8=1,P0=dis_code[SUIJI2%10];  //顯示
if(MMMSW==8)LLL8=0,LLL2=LLL3=LLL4=LLL9=LLL5=LLL6=LLL7=LLL1=1,P0=dis_code[SUIJI2/10];  //顯示
if(MMMSW==1)LLL1=0,LLL2=LLL3=LLL4=LLL9=LLL5=LLL6=LLL7=LLL8=1,P0=dis_code[SUIJI3%10];  //顯示
if(MMMSW==2)LLL2=0,LLL1=LLL3=LLL4=LLL9=LLL5=LLL6=LLL7=LLL8=1,P0=dis_code[SUIJI3/10];  //顯示
if(MMMSW==3)LLL3=0,LLL1=LLL2=LLL4=LLL9=LLL5=LLL6=LLL7=LLL8=1,P0=KT_LED1;  //1
if(MMMSW==9)MMMSW=0,LLL9=0,LLL1=LLL2=LLL3=LLL4=LLL5=LLL6=LLL7=LLL8=1,P0=KT_LED2;  //2
if(MMMSW==4)LLL4=0,LLL1=LLL2=LLL3=LLL9=LLL5=LLL6=LLL7=LLL8=1,P0=KT_LED3;  //3
KKS2=0;
KKSM++;
if(KKSM>2000)KKSM=0,KKKSJJ++,KKSJD=KKKSJJ,flagy1=0;//KKSJD++,flagy1=0;
}
if(flagy1==2)//顯示輸入密碼狀態(tài)
{
if(!KKS_flag)KKS_flag=1,KSLEE[KKSM]=KKS1,KKSM--;
if(KKSM<1)KKSM=0;
if(MMMSW==5)LLL5=0,LLL1=LLL2=LLL3=LLL4=LLL9=LLL6=LLL7=LLL8=1,P0=dis_code[KSLEE[0]];  //顯示
if(MMMSW==6)LLL6=0,LLL2=LLL3=LLL4=LLL5=LLL9=LLL7=LLL1=LLL8=1,P0=dis_code[KSLEE[1]];  //顯示
if(MMMSW==7)LLL7=0,LLL2=LLL3=LLL4=LLL9=LLL5=LLL6=LLL1=LLL8=1,P0=dis_code[KSLEE[2]];  //顯示
if(MMMSW==8)LLL8=0,LLL2=LLL3=LLL4=LLL9=LLL5=LLL6=LLL7=LLL1=1,P0=dis_code[KSLEE[3]];  //顯示
if(MMMSW==1)LLL1=0,LLL2=LLL3=LLL4=LLL9=LLL5=LLL6=LLL7=LLL8=1,P0=dis_code[KSLEE[4]];  //顯示
if(MMMSW==2)LLL2=0,LLL1=LLL3=LLL4=LLL9=LLL5=LLL6=LLL7=LLL8=1,P0=dis_code[KSLEE[5]];  //顯示
if(MMMSW==3)LLL3=0,LLL1=LLL2=LLL4=LLL9=LLL5=LLL6=LLL7=LLL8=1,P0=KT_LED1;  //1
if(MMMSW==9)MMMSW=0,LLL9=0,LLL1=LLL2=LLL3=LLL4=LLL5=LLL6=LLL7=LLL8=1,P0=KT_LED2;  //2
if(MMMSW==4)LLL4=0,LLL1=LLL2=LLL3=LLL9=LLL5=LLL6=LLL7=LLL8=1,P0=KT_LED3;  //3
     }
    }
/********************************************************
數(shù) 名:delayms(unsigned char ms)
說(shuō)   明:延時(shí)程序
入口參數(shù):無(wú)
值:
設(shè)   計(jì):                 期:
   :                 期:
*********************************************************/
voiddelayms(unsigned char ms)
//延時(shí)子程序
{  unsigned char i;
   while(ms--)
{   for(i=0;i<120;i++);
   }
  }
/********************************************************
*模塊名稱:165數(shù)據(jù)的檢測(cè)
*函數(shù)功能:
*出口函數(shù):void Key_Data(void)
*出口參數(shù):Count_165[1]放低8,Count_165[2]放高8
*模塊說(shuō)明:
*********************************************************/
#include<reg52.h>        //SFR declarations   
#include<stdio.h>
#include<intrins.h>
#defineuchar unsigned char
#defineuint unsigned int
sfrWDT_CONTR=0xE1;
sbitCLK=P1^3;    //時(shí)鐘,上升沿有效
sbitSO=P1^5;    //數(shù)據(jù)輸出
sbitSH_LD=P1^4;    //移位/置入控制,為低電平時(shí),并行數(shù)據(jù)A-H被移入寄存器;為高時(shí),并行置數(shù)被禁止
sbitCLK1=P2^3;    //時(shí)鐘,上升沿有效
sbitSO1=P3^2;    //數(shù)據(jù)輸出
sbitSH_LD1=P2^2;    //移位/置入控制,為低電平時(shí),并行數(shù)據(jù)A-H被移入寄存器;為高時(shí),并行置數(shù)被禁止
uintKeyPort(void);     //申明進(jìn)行數(shù)據(jù)傳送
voidKey_Data(void);   //申明讀取165端數(shù)據(jù)
externvoid dog();     //定義
uintLedData=0xFFFF;
ucharCount_165[2];    //定義輸出
/********************************************************
*模塊名稱:uint KeyPort(void)
*函數(shù)功能:
*出口函數(shù):無(wú)
*出口參數(shù):無(wú)
*模塊說(shuō)明:進(jìn)行數(shù)據(jù)傳送
*********************************************************/
uintKeyPort(void)     
{   uchar i;
uint key;
WDT_CONTR=0x3d;
SH_LD=0;
_nop_();_nop_();
SH_LD=1;
for(i=0;i<16;i++)    //低位開始
{    CLK=0;
    key>>=1;
    if(SO)
      key|=0x7fff;
CLK=1;}
returnkey;
}
/********************************************************
*模塊名稱:void Key_Data(void)
*函數(shù)功能:
*入口函數(shù):key
*出口參數(shù):HC_165_H,HC165_L
*模塊說(shuō)明:讀取165端數(shù)據(jù)
*********************************************************/
voidKey_Data(void)           //讀取165端數(shù)據(jù)程序
{   uint buff_data;
   buff_data=KeyPort();
   Count_165[0]=buff_data&0xff;
Count_165[1]=(buff_data>>8)&0xff;}
#include<reg52.h>
#include<ABSACC.H>
#definea8255_PA   XBYTE[0x7F7C]   /*PA口地址*/
#definea8255_PB   XBYTE[0x7F7D]   /*PB口地址*/
#definea8255_PC   XBYTE[0x7F7E]   /*PC口地址*/
#definea8255_CON  XBYTE[0x7F7F]   /*控制字口地址*/
unsignedchar IO_flags;  /*用于表示PA、PB、PC的當(dāng)前輸入壯體內(nèi)容不能被其他程序改寫,操作時(shí)ACC= IO_flags */
sbit  IO_flagsA=ACC^0;  /*PA的當(dāng)前輸入輸出狀態(tài),置位表示輸入,復(fù)位表示輸出*/
sbit  IO_flagsB=ACC^1;  /*PB的當(dāng)前輸入輸出狀態(tài)*/
sbit  IO_flagsC=ACC^2;  /*PC的當(dāng)前輸入輸出狀態(tài)*/
unsignedchar const cfg_table[8]={
          0x80, /*10000000b,     ;c=out   b=out  a=out*/
          0x90, /*10010000b,     ;c=out   b=out  a=in*/
          0x82, /*10000010b,     ;c=out   b=in   a=out*/
          0x92, /*10010010b,     ;c=out   b=in   a=in*/
          0x89, /*10001001b,     ;c=in    b=out  a=out*/
          0x99, /*10011001b,     ;c=in    b=out  a=in*/
          0x8B, /*10001011b,     ;c=in    b=in   a=out*/
          0x9B, /*10011011b,     ;c=in    b=in   a=in*/};
charrd_PA(void);      /*PA*/
charrd_PB(void);      /*PB*/
charrd_PC(void);      /*PC*/
voidwd_PA(unsigned char PA_data);  /*PA*/
voidwd_PB(unsigned char PB_data);  /*PB*/
voidwd_PC(unsigned char PC_data);  /*PC*/
voidPABC_config(void)          /*8255控制字*/
{a8255_CON=cfg_table[IO_flags]; }
    char rd_PA(void)               /*PA*/
    { unsigned char PA_data;
    ACC= IO_flags;  /*把狀態(tài)標(biāo)志字讀到ACC便于進(jìn)行位操作*/
do {   IO_flagsA=1;   /*PA狀態(tài)標(biāo)志位為高輸入*/
      IO_flags=ACC;
     PABC_config();   /*調(diào)用配置子程序,完成對(duì)8255的設(shè)置*/
     ACC= IO_flags;  }
   while(IO_flagsA==0);   /*判斷狀態(tài)標(biāo)志位是否為高*/
                         /*控制字設(shè)置完成*/
   PA_data=a8255_PA;  /*PA口的數(shù)據(jù)讀到PA_data*/
   return(PA_data);     /*返回PA_data*/     }
char rd_PB(void)               /*PB*/
    { unsigned char PB_data;
    ACC= IO_flags;  /*把狀態(tài)標(biāo)志字讀到ACC便于進(jìn)行位操作*/
do {   IO_flagsB=1;   /*PB狀態(tài)標(biāo)志位為高輸入*/
      IO_flags=ACC;
     PABC_config();   /*調(diào)用配置子程序,完成對(duì)8255的設(shè)置*/
     ACC= IO_flags;  }
   while(IO_flagsB==0);   /*判斷狀態(tài)標(biāo)志位是否為高*/
                         /*控制字設(shè)置完成*/
   PB_data=a8255_PB;  /*PB口的數(shù)據(jù)讀到PB_data*/
   return(PB_data);     /*返回PB_data*/     }
charrd_PC(void)               /*PC*/
    { unsigned char PC_data;
    ACC= IO_flags;  /*把狀態(tài)標(biāo)志字讀到ACC便于進(jìn)行位操作*/
do {   IO_flagsC=1;   /*PC狀態(tài)標(biāo)志位為高輸入*/
      IO_flags=ACC;
     PABC_config();   /*調(diào)用配置子程序,完成對(duì)8255的設(shè)置*/
     ACC= IO_flags;  }
   while(IO_flagsC==0);   /*判斷狀態(tài)標(biāo)志位是否為高*/
                         /*控制字設(shè)置完成*/
   PC_data=a8255_PC;  /*PC口的數(shù)據(jù)讀到PC_data*/
   return(PC_data);     /*返回PC_data*/     }
          void wd_PA(unsigned char PA_data)    /*PA*/
  { ACC= IO_flags;  /*把狀態(tài)標(biāo)志字讀到ACC便于進(jìn)行位操作*/
    { IO_flagsA=0;  /*PA狀態(tài)標(biāo)志位為低輸入*/
  IO_flags=ACC; /*位操作完成,ACC的內(nèi)容寫回狀態(tài)標(biāo)志字*/
     PABC_config();   /*調(diào)用配置子程序,完成對(duì)8255的設(shè)置*/
     ACC= IO_flags;  }
   while(IO_flagsA==1);   /*判斷狀態(tài)標(biāo)志位是否為高;為高,設(shè)置未完成,需重新設(shè)置*/
     a8255_PA =PA_data;  /*PA_data的內(nèi)容讀到PA*/
                             }
   void wd_PB(unsigned char PB_data)     /*PB*/
  { ACC= IO_flags;  /*把狀態(tài)標(biāo)志字讀到ACC便于進(jìn)行位操作*/
    { IO_flagsB=0;  /*PB狀態(tài)標(biāo)志位為低輸入*/
  IO_flags=ACC; /*位操作完成,ACC的內(nèi)容寫回狀態(tài)標(biāo)志字*/
     PABC_config();   /*調(diào)用配置子程序,完成對(duì)8255的設(shè)置*/
     ACC= IO_flags;  }
   while(IO_flagsB==1);   /*判斷狀態(tài)標(biāo)志位是否為高;為高,設(shè)置未完成,需重新設(shè)置*/
     a8255_PB =PB_data;  /*PB_data的內(nèi)容讀到PB*/
                             }
   void wd_PC(unsigned char PC_data)     /*PB*/
  { ACC= IO_flags;  /*把狀態(tài)標(biāo)志字讀到ACC便于進(jìn)行位操作*/
    { IO_flagsC=0;  /*PC狀態(tài)標(biāo)志位為低輸入*/
  IO_flags=ACC; /*位操作完成,ACC的內(nèi)容寫回狀態(tài)標(biāo)志字*/
     PABC_config();   /*調(diào)用配置子程序,完成對(duì)8255的設(shè)置*/
     ACC= IO_flags;  }
   while(IO_flagsC==1);   /*判斷狀態(tài)標(biāo)志位是否為高;為高,設(shè)置未完成,需重新設(shè)置*/
     a8255_PC =PC_data;  /*PC_data的內(nèi)容讀到PB*/
                             }
voidset_PC(unsigned char PC_num)
   {  ACC= IO_flags;
       IO_flagsC=0;
       ACC= IO_flags;
PC_num=PC_num<<1;
PC_num=(PC_num|0x01);
a8255_CON=PC_num; }
voidclr_PC(unsigned char PC_num)
   {  ACC= IO_flags;
       IO_flagsC=1;
       ACC= IO_flags;
PC_num=PC_num<<1;
PC_num=(PC_num&0xFE);
a8255_CON=PC_num; }
voidmain1(void)
{set_PC(0x01) ;        }


2222.png (35.89 KB, 下載次數(shù): 59)

電路圖

電路圖

錯(cuò)誤.png (75.17 KB, 下載次數(shù): 76)

錯(cuò)誤

錯(cuò)誤

2222.png (35.89 KB, 下載次數(shù): 74)

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

使用道具 舉報(bào)

沙發(fā)
ID:196002 發(fā)表于 2017-5-4 20:42 | 只看該作者
該怎么解決呢?請(qǐng)大神指教
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日日夜夜精品视频 | 91久久综合 | 久热m3u8 | 亚洲精品一区二区三区蜜桃久 | 欧美多人在线 | 国产一区二区三区在线视频 | 精品1区2区 | 美人の美乳で授乳プレイ | 一级毛片视频免费观看 | 国产二区av| 国产毛片在线看 | 国产精品国产精品国产专区不卡 | www.久久.com | 欧美日韩电影一区二区 | 久久一级大片 | 国产精品久久久久久久久久久久 | 欧美一级大片 | 日韩av一二三区 | 中文字幕在线观看日韩 | 精品在线免费看 | 一区二区三区av夏目彩春 | 亚洲精品乱码久久久久久久久 | 中文字幕视频在线 | 日韩成人一区 | 免费在线播放黄色 | 亚洲精品中文字幕av | 99re国产 | 精品成人佐山爱一区二区 | 一级欧美黄色片 | 婷婷综合色 | 97免费视频在线观看 | 日本在线综合 | 日本一区二区三区免费观看 | 亚洲一区在线日韩在线深爱 | 国产色网 | 欧美精品网站 | 2022国产精品 | 久久久久国产一区二区 | 欧美一区二区 | 精品国产乱码久久久久久图片 | 成人国产精品 |