微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 学习单片机的日记

学习单片机的日记

时间:11-30 来源:互联网 点击:

for(x=z;x>

for(y=110;y>

elay(10);

temp=P1;

temp=temp&0xf0;

if(temp!=0xfe)

{

temp=P1;

switch(temp)

{

case 0xeb:num=9;

break;

case 0xdb:num=10;

break;

case 0xbb:num=11;

break;

case 0x7b:num=12;

break;

}

dula=1;

P0=table[num-1];

dula=0;

}

}

P1=0xf7;

temp=P1;

temp=temp&0xf0;

if(temp!=0xf0)

{

delay(10);

temp=P1;

temp=temp&0xf0;

if(temp!=0xfe)

{

temp=P1;

switch(temp)

{

case 0xe7:num=13;

break;

case 0xd7:num=14;

break;

case 0xb7:num=15;

break;

case 0x77:num=16;

break;

}

dula=1;

P0=table[num-1];

dula=0;

}

}

}

}


void delay(uint z) 延时函数

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}
啊哈,清明结束,把串口和AD转换学完了,但是都是晚上学完的,没网络写,那两个以后复习的时候再补上,花了两天学完液晶。话说最近课还真紧,剩下课余时间来完成吧。看大三师兄们都在学一种芯片,STM32(一种高性能的ARM)芯片,比51单片机先进多了,好想学啊,但是我一定要先精通51,学完我要做很多基于51的产品,学会制作PCB板,每天慢慢试着学模电和数电,好兴奋啊。加油了!!
液晶是什么东西呢?大家也都懂得,他是一种高分子材料,今天我就简单的介绍下1602液晶的程序控制
1602液晶有16个引脚每个引脚都有自己的作用 ,突然觉得要介绍好多东西,有线没钱了,无线图片上传不了,以后再补上思想
#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号,今天看了I^2C总线,感觉挺难的,好不容易编出来个程序但是竟然无法执行,唉。。。最近觉得芯片时序图对于编程很重要,慢慢来吧,太晚了,今天也没时间写思想了
#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);

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top