❶ 搶答器所用單片機原型是什麼
「搶答器」實際上就是一種簡單的邏輯電路,可以通過應用現成的單片機通過編寫程序簡單實現而已。
❷ 51單片機缺少功能原型怎麼解決
尋找第三方的功能原型庫、參考其他單片機橘彎局的功能原型鬧高等。
1、在網上搜索是否有圓讓其他人已經編寫了對應的功能原型,可以直接調用,節省自己的時間。
2、找不到51單片機的功能原型,可以尋找其他單片機的相似功能原型,並進行修改和適配,以滿足自己的需求。
❸ 單片機 此代碼scan_key老是提示缺少函數原型讓重新定義如何重新定義
解決辦法:
在#include <AT89X52.H>下增加一行
unsigned char scan_key(viod)
就可以了。
出錯原因:
函數調用前需要先申明此函數。
舉一反三:
函數多的時候建議做成頭文件,直接包含這個頭文件就可以了。例如此處可以新建一個頭文件:<driver.h>,內容如下:
#include <AT89X52.H>
unsigned char scan_key(viod);
unsigned char scan_key(viod)
{
unsigned char scan,col,rol,tmp;
bit flag=0;
scan=0xef;
for(col=0;col<4;col++)
{
P0=scan;
tmp=P0;
switch(tmp&0x0f)
{
case 0x0e:rol=0;flag=1;break;
case 0x0d:rol=1;flag=1;break;
case 0x0b:rol=2;flag=1;break;
case 0x07:rol=3;flag=1;break;
}
if(flag==1) break;
scan=(scan<<1)+1;
}
while(tmp!=0x0f)
{
P0=0x0f;
tmp=P0;
}
return(rol*4+col);
}
然後在你可以在主程序里包含此頭文件,主程序就會簡潔許多,內容如下:
#include <driver.h>
unsigned char table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
void delay10ms(void)
{
unsigned char i,j;
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}
void main()
{
unsigned char tmp,key;
P1=0x00;
while(1);
{
while(tmp==0x0f)
{
P0=0x0f;
tmp=P0;
}
delay10ms();
P0=0x0f;
tmp=P0;
if(tmp==0x0f);
key = scan_key( );
P1 = table[key];
}
}