❶ 如何用單片機控制液晶顯示器呀,怎麼接線……
液晶顯示器有字元型,如1602,這個液晶顯示器目前是統一的,引腳和命令字都 是統一的。接線如下圖所示
❷ 單片機可以用圖形化編程嗎
單片機可以用匯編語言編程,也可以用高級語言C、Basic編程,也可以用圖形化語言編程。工業控制中普遍採用可編程式控制制器,其CPU模塊內的微控制器往往是普通的單片機,而可編程式控制制器可以梯形圖編程,或者用流程圖編程。
現在的智能教育機器人控制器均用單片機,而這些機器人的編程大多支持流程圖編程。上海廣茂達電子信息有限公司的能力風暴系列機器人採用VJC可視化流程圖與C語言編程;中鳴機器人系列採用機器人快車軟體編程。
該軟體也是可視化流程圖與C語言編程;西米亞公司的樂高系列、博思威龍機器人、美國的VEX系列機器人、雙龍公司的機器人DIY系列均可以採用可視化流程圖與C語言編程。而這些機器人的控制系統核心均為單片機。
由此可知,普通單片機的開發一定可以採用流程圖編程。其實,機器人的流程圖編制軟體可以反過來作為相應單片機的編程軟體。下面用一個實例詳細說明單片機如何用圖形化編程。
❸ 單片機電路設計(單片機用電池供電):
設計如下:讓A.B 兩點為輸入檢測腳 ,可以用循環檢測的方式去檢測這兩個腳的狀態,1MS 一次都可以的了。如果還想響應的更快,那可以用中斷的方式去做。CD 兩點用輸出腳去做就可以了。
電路設計:電路(電子線路)是由電氣設備和元器件按一定方式聯接起來,為電流流通提供了路徑的總體,也叫電子網路。電路的大小可以相差很大,小到矽片上的集成電路,大到輸電網。電路(英文:Electrical circuit)或稱電子迴路,是由電氣設備和元器件,按一定方式聯接起來,為電荷流通提供了路徑的總體,也叫電子線路或稱電氣迴路,簡稱網路或迴路。如電阻、電容、電感、二極體、三極體和開關等,構成的網路。
❹ c51單片機程序實例
#include<reg51.h>
#defineucharunsignedchar
uchartab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};//0到9
ucharnum,cnt,disn;
ucharkeyval,disk;
ucharled[]={1,2,3,4};
voiddealdat(uchara)
{
led[0]=0;
led[1]=0;
led[2]=0;
led[3]=0;
led[a]=disk;
}
voiddelay(unsignedinta)
{
unsignedinti,j;
for(i=0;i<a;i++)
for(j=0;j<1000;j++);
}
voidt0isr()interrupt1
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
switch(num)
{
case0:P2=0x01;break;
case1:P2=0x02;break;
case2:P2=0x04;break;
case3:P2=0x08;break;
default:break;
}
P0=~tab[led[num]];
num++;
num&=0x03;
cnt++;
if(cnt>100)
{
cnt=0;
disn++;
disn%=4;
dealdat(disn);
}
}
ucharkbscan(void)
{
unsignedcharsccode,recode;
P3=0x0f;//發0掃描,列線輸入
if((P3&0x0f)!=0x0f)//有鍵按下
{
// delay(20);//延時去抖動
if((P3&0x0f)!=0x0f)
{
sccode=0xef;//逐行掃描初值
while((sccode&0x01)!=0)
{
P3=sccode;
if((P3&0x0f)!=0x0f)
{
recode=(P3&0x0f)|0xf0;
return((~sccode)+(~recode));
}
else
sccode=(sccode<<1)|0x01;
}
}
}
return0;//無鍵按下,返回0
}
voidgetkey(void)
{
unsignedcharkey;
key=kbscan();
if(key==0){keyval=0xff;return;}
switch(key)
{
case0x11:keyval=7;break;
case0x12:keyval=4;break;
case0x14:keyval=1;break;
case0x18:keyval=10;break;
case0x21:keyval=8;break;
case0x22:keyval=5;break;
case0x24:keyval=2;break;
case0x28:keyval=0;break;
case0x41:keyval=9;break;
case0x42:keyval=6;break;
case0x44:keyval=3;break;
case0x48:keyval=11;break;
case0x81:keyval=12;break;
case0x82:keyval=13;break;
case0x84:keyval=14;break;
case0x88:keyval=15;break;
default:keyval=0xff;break;
}
}
main()
{
TMOD=0x11;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
TR0=1;
ET0=1;
EA=1;
while(1)
{
getkey();
if(keyval!=0xff)disk=keyval;
delay(10);
}
}