|
開(kāi)始是一樣多的,顯示會(huì)有問(wèn)題,但是通過(guò)按鍵10直接跳出來(lái)就正常,后來(lái)數(shù)組元素多+了一個(gè)才正常了,但是想不通為什么要多加一個(gè)才正常,又不是字符串。按鍵返回值得那個(gè)函數(shù)就沒(méi)貼了,包含在anjian.c里面。還有外部函數(shù)調(diào)用我怎么沒(méi)反應(yīng),delay()、key()使用前聲明了extern啊,編譯也通過(guò),下載到單片機(jī)里沒(méi)反應(yīng)。
- #include<reg52.h>
- #include "anjian.c"//按鍵檢測(cè)函數(shù)key()
- #define uint unsigned int
- #define uchar unsigned char
- #define NUM 4//等待按鍵個(gè)數(shù)為NUM
- #define time 10000//按鍵抖動(dòng)延時(shí),大概90ms
- uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
- 0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
- uchar str[NUM+1]={0};//按鍵字符數(shù)組,必須加1,否則會(huì)亂碼!
- void strkey()//按鍵值賦給str[]數(shù)組
- {
- uchar i;
- for(i=0;i<NUM;i++)
- {
- str[i]=key();
- if(str[i]==10)//按鍵10表示確認(rèn)
- {
- break;
- }
- if(str[i]==11)//按鍵11表示取消,數(shù)組清零
- {
- for(i=0;i<NUM;i++)
- str[i]=0;
- i=0;
- str[i]=key();
- }
- }
- }
- void main()
- {
- uchar a,x;
- strkey();
- while(1)
- {
- for(x=0;x<4;x++)//顯示str[]數(shù)組元素到4個(gè)數(shù)碼管
- {
- a=str[x];
- P3=table[a];
- P2=(~(0x01<<x));
- delay(200);
- P2=0xff;
- }
- a=0;
- }
- }
復(fù)制代碼
|
|