學(xué)習(xí)單片機(jī)的日記
void delay(uint z) 延時(shí)函數(shù)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
啊哈,清明結(jié)束,把串口和AD轉(zhuǎn)換學(xué)完了,但是都是晚上學(xué)完的,沒網(wǎng)絡(luò)寫,那兩個(gè)以后復(fù)習(xí)的時(shí)候再補(bǔ)上,花了兩天學(xué)完液晶。話說最近課還真緊,剩下課余時(shí)間來(lái)完成吧。看大三師兄們都在學(xué)一種芯片,STM32(一種高性能的ARM)芯片,比51單片機(jī)先進(jìn)多了,好想學(xué)啊,但是我一定要先精通51,學(xué)完我要做很多基于51的產(chǎn)品,學(xué)會(huì)制作PCB板,每天慢慢試著學(xué)模電和數(shù)電,好興奮啊。加油了??!
液晶是什么東西呢?大家也都懂得,他是一種高分子材料,今天我就簡(jiǎn)單的介紹下1602液晶的程序控制
1602液晶有16個(gè)引腳每個(gè)引腳都有自己的作用 ,突然覺得要介紹好多東西,有線沒錢了,無(wú)線圖片上傳不了,以后再補(bǔ)上思想
#include
啊哈,清明結(jié)束,把串口和AD轉(zhuǎn)換學(xué)完了,但是都是晚上學(xué)完的,沒網(wǎng)絡(luò)寫,那兩個(gè)以后復(fù)習(xí)的時(shí)候再補(bǔ)上,花了兩天學(xué)完液晶。話說最近課還真緊,剩下課余時(shí)間來(lái)完成吧。看大三師兄們都在學(xué)一種芯片,STM32(一種高性能的ARM)芯片,比51單片機(jī)先進(jìn)多了,好想學(xué)啊,但是我一定要先精通51,學(xué)完我要做很多基于51的產(chǎn)品,學(xué)會(huì)制作PCB板,每天慢慢試著學(xué)模電和數(shù)電,好興奮啊。加油了??!
液晶是什么東西呢?大家也都懂得,他是一種高分子材料,今天我就簡(jiǎn)單的介紹下1602液晶的程序控制
1602液晶有16個(gè)引腳每個(gè)引腳都有自己的作用 ,突然覺得要介紹好多東西,有線沒錢了,無(wú)線圖片上傳不了,以后再補(bǔ)上思想
#include
#define uint unsigned int
#define uchar unsigned char
sbit lcden=P2^7;
sbit lcdrs=P2^5;
sbit rw=P2^6;
uchar code table[]="Oh! my baby!";
uchar code table1[]="WWW.TXMCU.COM";
uchar num,num1;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com)
{
lcdrs=0;
rw=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_data(uchar date)
{
lcdrs=1;
rw=0;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
lcden=0;
write_com(0x38);
write_com (0x0e);
write_com(0x06);
write_com(0x01);
write_com(0x80+0x10);
}
void main()
{
init();
for(num=0;num<12;num++)
{
write_data(table[num]);
delay(5);
}
write_com(0x80+0x53);
for(num=0;num<13;num++)
{
write_data(table1[num]);
delay(5);
}
for(num=0;num<16;num++)
{
write_com(0x18);
delay(20);
}
while(1);
}
今天4月14號(hào),今天看了I^2C總線,感覺挺難的,好不容易編出來(lái)個(gè)程序但是竟然無(wú)法執(zhí)行,唉。。。最近覺得芯片時(shí)序圖對(duì)于編程很重要,慢慢來(lái)吧,太晚了,今天也沒時(shí)間寫思想了
#include
今天4月14號(hào),今天看了I^2C總線,感覺挺難的,好不容易編出來(lái)個(gè)程序但是竟然無(wú)法執(zhí)行,唉。。。最近覺得芯片時(shí)序圖對(duì)于編程很重要,慢慢來(lái)吧,太晚了,今天也沒時(shí)間寫思想了
#include
#define uchar unsigned char
sbit sda=P3^6;
sbit scl=P1^5;
uchar a;
void delay( )
{ ;; }
void delay1(uchar x)
{
uchar a,b;
for(a=x;a>0;a--)
for(b=100;b>0;b--);
}
void start()
{
sda=1;
delay();
scl=1;
delay();
sda=0;
delay();
}
void stop()
{
sda=0;
delay();
scl=1;
delay();
sda=1;
delay();
}
void respons()
{
uchar i;
scl=1;
delay();
while((sda==1)&&(i<250))i++;
scl=0;
delay();
}
void init()
{
sda=1;
delay();
scl=1;
delay();
}
void write_byte(uchar date)
{
uchar i,temp;
temp=date;
for(i=0;i<8;i++)
{
temp=temp<<1;
scl=0;
delay();
sda=CY;
delay();
scl=1;
delay();
// scl=0;
// delay();
}
scl=0;
delay();
sda=1;
delay();
}
uchar read_byte()
{
uchar i,j,k;
scl=0;
delay();
sda=1;
delay();
for(i=0;i<8;i++)
{
scl=1;
delay();
if(sda==1)
j=1;
else
j=0;
k=(k<<1)|j;
scl=0;
delay();
}
return k;
}
void main()
{
init();
start();
write_byte(0xa0);
respon();
write_byte(3);
respon();
write_byte(0xfe);
respons();
stop();
delay1(100);
start();
write_byte(0xa0);
respon();
write_byte(3);
respon();
start();
write_byte(0xa1);
respon();
a=read_byte();
stop();
P0=a+5;
while(1);
}
評(píng)論