电子发烧友网 > 控制/MCU > 正文

单片机采用串行方式对LCD12864的驱动

2018年11月12日 15:19 次阅读

file&: lcd.h

Description: LCD12864 驱动 ,采用串行方式,

Author:kassey@126.comJuly,22th,2005

********************************************/

#i nclude

#i nclude

sbit SCLK =P1^3 //E

sbit SID =P1^4; //RW

sbit RST =P1^2; // low acTIve 可以不用,也就是说,只用两条线和LCD通信

#define ROW1 0x80

#define ROW2 0x90

#define ROW3 0x88

#define ROW4 0x98

单片机采用串行方式对LCD12864的驱动

unsigned char code AC_TABLE[]={

0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, //第一行汉字位置

0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, //第二行汉字位置

0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, //第三行汉字位置

0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f, //第四行汉字位置

};

/*****************************************

FucnTIon: delay10US(char x)

DescripTIon: delay for 10 us

Parameter: x

Author:kassey@126.com

Date: July,7th,2005

*****************************************/

void delay10US(uchar x)

{

uchar k;

for(k=0;k

}

/*****************************************

FucnTIon: delay1MS(char x)

Description: delay for 10 us

Parameter: x delay for 1MS

Author:kassey@126.com

Date: July,7th,2005

*****************************************/

void delay1MS(uchar x)

{

uchar k,j;

x=x《《1;

for(k=0;k for(j=0;j《255;j++)_nop_();

}

void SendByteLCD(uchar WLCDData)

{

uchar i;

for(i=0;i《8;i++)

{

if((WLCDData《else SID=0;

SCLK=0;

SCLK=1

}

}

SPIWR(uchar Wdata,uchar RS)

{

SendByteLCD(0xf8+(RS《《1));

SendByteLCD(Wdata&0xf0);

SendByteLCD((Wdata《《4)&0xf0);

}

void SendCMD(uchar CMD)

{

SPIWR(CMD,0);

delay10US(90);//8155来模拟串行通信,所以,加上8155的延时,

}

void SendData(uchar Data)

{

SPIWR(Data,1);

}

void LCDInit()

{

RST=0;

delay1MS(50);

RST=1;

SendCMD(0x30);//功能设置,一次送8位数据,基本指令集

SendCMD(0x0C);//0000,1100 整体显示,游标off,游标位置off

SendCMD(0x01);//0000,0001 清DDRAM

SendCMD(0x02);//0000,0010 DDRAM地址归位

SendCMD(0x80);//1000,0000 设定DDRAM 7位地址000,0000到地址计数器AC//

SendCMD(0x04);//点设定,显示字符/光标从左到右移位,DDRAM地址加 一//

SendCMD(0x0C);//显示设定,开显示,显示光标,当前显示位反白闪动

}

/*****************************

清文本区

*****************************/

void LcmClearTXT( void )

{

unsigned char i;

SendCMD(0x30); //8BitMCU,基本指令集合

SendCMD(0x80); //AC归起始位

for(i=0;i《64;i++)

SendData(0x20);

}

/*****************************

发送字符串

*****************************/

void PutStr(unsigned char row,unsigned char col,unsigned char *puts)

{

SendCMD(0x30); //8BitMCU,基本指令集合

SendCMD(AC_TABLE[8*row+col]); //起始位置

while(*puts != ‘\0’) //判断字符串是否显示完毕

{

if(col==8) //判断换行

{ //若不判断,则自动从第一行到第三行

col=0;

row++;

}

if(row==4) row=0; //一屏显示完,回到屏左上角

SendCMD(AC_TABLE[8*row+col]);

SendData(*puts); //一个汉字要写两次

puts++;

SendData(*puts);

puts++;

col++;

}

}

/*****************************

绘图

*****************************/

void PutBMP(unsigned char *puts)

{

unsigned int x=0;

unsigned char i,j;

SendCMD(0x34); //8Bit扩充指令集,即使是36H也要写两次

SendCMD(0x36); //绘图ON,基本指令集里面36H不能开绘图

for(i=0;i《32;i++) //12864实际为256x32

{

SendCMD(0x80|i); //行位置

SendCMD(0x80); //列位置

for(j=0;j《32;j++) //256/8=32 byte

{ //列位置每行自动增加

SendData(puts[x]);

x++;

}

}

}

void ClearScreen()

{ uchar i,j,x,y;

LCDInit();

SendCMD(0x3e);// RE=1 扩展指令选择 G=1 开图形显示

x=0x80;

y=0x80;

for(j=0;j《64;j++)

{

y=0x80;

SendCMD(x);

SendCMD(y);

for(i=0;i《32;i++)

{

SendData(0x00);

}

x=x+1;

}

}

void Sendint(uint dd)

{

SendData(dd》》8);

SendData(dd);

}

/*****************************

打点 x=0:128; y=0:64;

*****************************/

void Gra(uchar x,uchar y)

{

uchar xx,yy;

SendCMD(0x34);

SendCMD(0x36);

xx=x/16;

yy=63-y;

if(yy》=32){xx=xx+8;yy-=32;}

SendCMD(0x80+yy);

SendCMD(0x80+xx);

Sendint(0x8000》》(x%16));

}

uchar code IBM[]=

{

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x7F,0xFF,0xFF,0x87,0xFF,0xFF,0xFF,0xF0,0x00,0xFF,0xFF,0xE0,0x00,0x07,0xFF,0xFE,

0x7F,0xFF,0xFF,0x87,0xFF,0xFF,0xFF,0xF0,0x00,0xFF,0xFF,0xE0,0x00,0x0F,0xFF,0xFE,

0x7F,0xFF,0xFF,0x87,0xFF,0xFF,0xFF,0xF8,0x00,0xFF,0xFF,0xE0,0x00,0x0F,0xFF,0xFE,

0x7F,0xFF,0xFF,0x87,0xFF,0xFF,0xFF,0xFC,0x00,0xFF,0xFF,0xF0,0x00,0x1F,0xFF,0xFE,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x7F,0xFF,0xFF,0x87,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xF8,0x00,0x3F,0xFF,0xFE,

0x7F,0xFF,0xFF,0x87,0xFF,0xFF,0xFF,0xFF,0x80,0xFF,0xFF,0xFC,0x00,0x7F,0xFF,0xFE,

0x7F,0xFF,0xFF,0x87,0xFF,0xFF,0xFF,0xFF,0x80,0xFF,0xFF,0xFC,0x00,0x7F,0xFF,0xFE,

0x7F,0xFF,0xFF,0x87,0xFF,0xFF,0xFF,0xFF,0x80,0xFF,0xFF,0xFC,0x00,0x7F,0xFF,0xFE,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0xFF,0xC0,0x00,0x0F,0xF8,0x00,0xFF,0xC0,0x03,0xFF,0xFE,0x01,0xFF,0xFF,0x00,

0x00,0xFF,0xC0,0x00,0x0F,0xF8,0x00,0xFF,0xC0,0x03,0xFF,0xFF,0x01,0xFF,0xFF,0x00,

0x00,0xFF,0xC0,0x00,0x0F,0xF8,0x00,0xFF,0xC0,0x03,0xFF,0xFF,0x03,0xFF,0xFF,0x00,

0x00,0xFF,0xC0,0x00,0x0F,0xF8,0x00,0xFF,0x80,0x03,0xFF,0xFF,0x83,0xFF,0xFF,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0xFF,0xC0,0x00,0x0F,0xFF,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0xCF,0xFF,0xFF,0x00,

0x00,0xFF,0xC0,0x00,0x0F,0xFF,0xFF,0xFE,0x00,0x03,0xFF,0xFF,0xEF,0xFF,0xFF,0x00,

0x00,0xFF,0xC0,0x00,0x0F,0xFF,0xFF,0xFE,0x00,0x03,0xFF,0xFF,0xEF,0xFF,0xFF,0x00,

0x00,0xFF,0xC0,0x00,0x0F,0xFF,0xFF,0xFC,0x00,0x03,0xFF,0xBF,0xFF,0xFB,0xFF,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0xFF,0xC0,0x00,0x0F,0xFF,0xFF,0xFC,0x00,0x03,0xFF,0x8F,0xFF,0xF3,0xFF,0x00,

0x00,0xFF,0xC0,0x00,0x0F,0xFF,0xFF,0xFE,0x00,0x03,0xFF,0x87,0xFF,0xE3,0xFF,0x00,

0x00,0xFF,0xC0,0x00,0x0F,0xFF,0xFF,0xFE,0x00,0x03,0xFF,0x87,0xFF,0xE3,0xFF,0x00,

0x00,0xFF,0xC0,0x00,0x0F,0xFF,0xFF,0xFF,0x00,0x03,0xFF,0x87,0xFF,0xC3,0xFF,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0xFF,0xC0,0x00,0x0F,0xF8,0x00,0xFF,0x80,0x01,0xFF,0x83,0xFF,0x83,0xFF,0x00,

0x00,0xFF,0xC0,0x00,0x0F,0xF8,0x00,0xFF,0xC0,0x01,0xFF,0x81,0xFF,0x03,0xFF,0x00,

0x00,0xFF,0xC0,0x00,0x0F,0xF8,0x00,0xFF,0xC0,0x01,0xFF,0x81,0xFF,0x03,0xFF,0x00,

0x00,0xFF,0xC0,0x00,0x0F,0xF8,0x00,0xFF,0xC0,0x01,0xFF,0x80,0xFF,0x03,0xFF,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x7F,0xFF,0xFF,0x87,0xFF,0xFF,0xFF,0xFF,0xC0,0xFF,0xFF,0xC0,0x7E,0x03,0xFF,0xFE,

0x7F,0xFF,0xFF,0x87,0xFF,0xFF,0xFF,0xFF,0xC0,0xFF,0xFF,0xC0,0x7C,0x03,0xFF,0xFE,

0x7F,0xFF,0xFF,0x87,0xFF,0xFF,0xFF,0xFF,0xC0,0xFF,0xFF,0xC0,0x3C,0x03,0xFF,0xFE,

0x7F,0xFF,0xFF,0x87,0xFF,0xFF,0xFF,0xFF,0x80,0xFF,0xFF,0xC0,0x3C,0x03,0xFF,0xFE,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x7F,0xFF,0xFF,0x87,0xFF,0xFF,0xFF,0xFE,0x00,0xFF,0xFF,0xC0,0x18,0x03,0xFF,0xFE,

0x7F,0xFF,0xFF,0x87,0xFF,0xFF,0xFF,0xFE,0x00,0xFF,0xFF,0xC0,0x18,0x03,0xFF,0xFE,

0x7F,0xFF,0xFF,0x87,0xFF,0xFF,0xFF,0xFC,0x00,0xFF,0xFF,0xC0,0x08,0x03,0xFF,0xFE,

0x7F,0xFF,0xFF,0x87,0xFF,0xFF,0xFF,0xF8,0x00,0xFF,0xFF,0xC0,0x00,0x03,0xFF,0xFE,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

};

void Put(uchar *p)

{

uchar xx,yy

for(yy=0;yy《32;yy++)

for(xx=0;xx《8;xx++)

{

SendCMD(0x80+yy); //y 按位

SendCMD(0x80+xx);//x 按16位

SendData(*p);

p++;

SendData(*p);

p++;

}

for(yy=0;yy《32;yy++)

for(xx=8;xx《16;xx++)

{

SendCMD(0x80+yy); //y 按位

SendCMD(0x80+xx);//x 按16位

SendData(*p);

p++;

SendData(*p);

p++;

}

}

void Clear()

{ uchar i,j;

LCDInittest();

SendCMD(0x34);

SendCMD(0x3e);// RE=1 扩展指令选择 G=1 开图形显示

for(j=0;j《16;j++)

for(i=0;i《32;i++)

{

SendCMD(0x80+i);

SendCMD(0x80+j);

SendData(0x00);

SendData(0x00);

}

}

void main()

{

LCDInittest();

LcmClearBMP();

Put(IBM);

while(1)

{

}

}

技术专区

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播
收藏 人收藏
分享:

评论

相关推荐

如何测试单片机的数据类型字节数

i = sizeof(char);//char是一字节的变量 if(i == 1) { ...

发表于 2018-11-12 15:13 8次阅读
如何测试单片机的数据类型字节数

stm32出口的应用

发表于 2018-11-12 14:58 29次阅读
stm32出口的应用

单片机中断源情况大汇总 嵌入式时代已经到来

嵌入式时代已经来了,不要纠结要不要踏入嵌入式的领域了,

发表于 2018-11-12 10:44 33次阅读
单片机中断源情况大汇总 嵌入式时代已经到来

AD7685用单片机IO模拟四线SPI通讯,输入5v模拟电压时得到16位二进制数都是零

发表于 2018-11-12 09:33 8次阅读
AD7685用单片机IO模拟四线SPI通讯,输入5v模拟电压时得到16位二进制数都是零

51单片机教程书籍推荐,本教材含教学视频+例程代码+学习资料+扫码应用

发表于 2018-11-11 12:29 354次阅读
51单片机教程书籍推荐,本教材含教学视频+例程代码+学习资料+扫码应用

基于12864液晶屏实现多功能数字时钟的实验设计

首先来看看所需要的清单:51单片机STC12C5A60S2、12864液晶屏、温度传感器DS18B2...

发表于 2018-11-10 11:37 56次阅读
基于12864液晶屏实现多功能数字时钟的实验设计

基于51单片机使数码管静态显示数字5555

利用单片机及某些数字电路块的结合,可以实现静态字符的显示。本例是利用74LS164八位移位寄存器(串...

发表于 2018-11-10 11:33 53次阅读
基于51单片机使数码管静态显示数字5555

基于深联华单片机芯片的医用输液器智能控制系统设计

众所周知,我国人口众多,医疗资源稀缺,医院时常人满为患。输液作为一种重要的治疗手段,其受众面是非常之...

发表于 2018-11-10 11:30 62次阅读
基于深联华单片机芯片的医用输液器智能控制系统设计

单片机教程(接口技术、应用设计、常用工具)

发表于 2018-11-09 17:23 525次阅读
单片机教程(接口技术、应用设计、常用工具)

iPhone X/XS系列耳机线控IC三合一音频药丸转接头—深圳单片机方案开发

发表于 2018-11-09 16:20 28次阅读
iPhone X/XS系列耳机线控IC三合一音频药丸转接头—深圳单片机方案开发

单片机学习资料分享那些是你还不会的呢

发表于 2018-11-09 15:30 184次阅读
单片机学习资料分享那些是你还不会的呢

如何提高单片机系统的可靠性

提高单片机系统可靠性的方法与措施很多。一般地,应根据系统所面临的具体的可靠性问题,针对引起或影响系统...

发表于 2018-11-09 15:20 72次阅读
如何提高单片机系统的可靠性

stm32学习方法及资料

发表于 2018-11-09 13:20 291次阅读
stm32学习方法及资料

怎么使用新的MCU写程序

发表于 2018-11-09 12:39 77次阅读
怎么使用新的MCU写程序

云龙51单片机视频教程+源码+课件 零基础入门学习

发表于 2018-11-09 11:51 255次阅读
云龙51单片机视频教程+源码+课件 零基础入门学习

该图的三极管起什么作用,它的工作状态是什么?

发表于 2018-11-09 11:31 245次阅读
该图的三极管起什么作用,它的工作状态是什么?

单片机中如何实现多线程

整个项目需要控制16台步进电机,21个电磁阀,3个泵,1个直流电机,系统要求全部执行时间为6秒钟,系...

发表于 2018-11-08 16:21 96次阅读
单片机中如何实现多线程

STM32F103试用体验:水共震准备材料中的过...

我这次要做的东东是一个水共震系统,说明:水共震系统是指在一个水盆里,有一个执行单元,通过电机和皮带,...

发表于 2018-11-08 10:38 220次阅读
STM32F103试用体验:水共震准备材料中的过...

一文了解逻辑分析仪当中的高级参数

对于快速高效的调试,选择逻辑分析仪解决方案时,需要重点评估仪器各方面参数,逻辑分析仪在数字电路的前期...

发表于 2018-11-08 09:07 47次阅读
一文了解逻辑分析仪当中的高级参数

比较逻辑分析仪与示波器之间的区别

目前电路的发展从抽象类似向着数字化发展,因此这些测量仪器的开发也正在朝着这种条件方法迈进。 现在,在...

发表于 2018-11-08 08:55 65次阅读
比较逻辑分析仪与示波器之间的区别

浅析单片机、ARM、FPGA 、嵌入式的特点

自带廉价的程序存储器(FLASH)和非易失的数据存储器(EEPROM)。这些存储器可多次电擦写,使程...

发表于 2018-11-07 09:54 307次阅读
浅析单片机、ARM、FPGA 、嵌入式的特点

如何系统地入门学习stm32?老司机筒子们有自己...

arm 官方也开始推这种通用库了。而此时st发现一剑走天涯的方法的确有很多弊端,开始了stmcube...

发表于 2018-11-06 17:07 390次阅读
如何系统地入门学习stm32?老司机筒子们有自己...

单片机无线传输系统的设计及nRF905无线收发模...

nRF905片内集成了电源管理、晶体振荡器、低噪声放大器、频率合成器、功率放大器等模块,曼彻斯特编码...

发表于 2018-11-06 16:00 73次阅读
单片机无线传输系统的设计及nRF905无线收发模...

五花八门的关于单片机的开发经验

AT89C51我认为是一个非常标准的51单片机了,4个P口,1个串口,RAM只有标准的128Byte...

发表于 2018-11-06 15:58 301次阅读
五花八门的关于单片机的开发经验

浅析单片机中断处理过程

中断处理过程可分为中断响应、中断处理和中断返回三个阶段。

发表于 2018-11-06 14:31 166次阅读
浅析单片机中断处理过程

如何使用可编程斜坡发生器外设创建参考信号和时序源

可编程斜坡发生器(PRG)(在Microchip最近推出的几款8位PIC 单片机上提供)是一种高度灵...

发表于 2018-11-06 09:15 165次阅读
如何使用可编程斜坡发生器外设创建参考信号和时序源

单片机中的定时计数器的四种工作方式解析

在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。,TMOD和TCON是名称...

发表于 2018-11-05 16:11 102次阅读
单片机中的定时计数器的四种工作方式解析

借助Vivado来学习FPGA的各种配置模式

单片机是基于FLASH结构的,所以单片机上电直接从本地FLASH中运行。但SRAM 架构的FPGA是...

发表于 2018-11-05 15:12 268次阅读
借助Vivado来学习FPGA的各种配置模式

单片机IO口另外三种状态

标准 51 单片机的P0 口默认就是开漏输出,如果要用的时候外部需要加上拉电阻。而强推挽输出就是有比...

发表于 2018-11-05 11:40 387次阅读
单片机IO口另外三种状态

上拉电阻应用很多,都可以起到什么作用呢?

加大普通 IO 口的驱动能力。标准 51 单片机的内部 IO 口的上拉电阻,一般都是在几十 K 欧,...

发表于 2018-11-05 11:35 356次阅读
上拉电阻应用很多,都可以起到什么作用呢?

为何不在单片机上实现PLC的逻辑呢?

内存规划,包括堆栈区的设置,定时器,计数器的累加值和预设值地址等等,目前初步定义8个计数器的当前计数...

发表于 2018-11-05 11:31 417次阅读
为何不在单片机上实现PLC的逻辑呢?

开发单片机时需掌握的四个基本技巧

在单片机应用开发中,代码的使用效率问题、单片机抗干扰性和可靠性等问题仍困扰着。现归纳出单片机开发中应...

发表于 2018-11-05 11:21 302次阅读
开发单片机时需掌握的四个基本技巧

准备学习单片机,该做哪些准备呢?

这估计是争论最大的一个问题了,有些人坚持学单片机软件一定要用汇编,也有人坚持选择高级语言。C51刚推...

发表于 2018-11-05 11:00 341次阅读
准备学习单片机,该做哪些准备呢?

单片机为什么需要晶振?外接晶体的值可以随意选择呢...

获取稳定的脉冲!那只要有合适的方法生成稳定的脉冲,那就可以去掉外接的晶体。举例,AVR单片机,它在单...

发表于 2018-11-05 10:40 241次阅读
单片机为什么需要晶振?外接晶体的值可以随意选择呢...

MCU的内存分配详解

其中code和RO-data存储在flash中,所以两者之和为单片机中flash需要分配给它们的空间...

发表于 2018-11-04 11:24 91次阅读
MCU的内存分配详解

单片机、ARM、DSP与CPU之间的关系大揭秘

你知道单片机、ARM、DSP都是CPU吗,它们之间又有什么不同,小编进行了整理和编辑。

发表于 2018-11-02 17:38 461次阅读
单片机、ARM、DSP与CPU之间的关系大揭秘

单片机中的上下拉电阻有什么作用

上拉电阻就是将不确定的信号通过一个电阻拉到高电平,同时此电阻也起到一个限流作用,下拉就是下拉到低电平...

发表于 2018-11-02 16:22 135次阅读
单片机中的上下拉电阻有什么作用

单片机中的CY与OV详细解析

CY(Carry): 用于表示加法进算中的进位和减法运算中的借位,加法运算中有进位或减法运算中有借位...

发表于 2018-11-02 16:15 104次阅读
单片机中的CY与OV详细解析

基于STM32单片机的64Mbit单对单通信

简单的一种应用,ARM芯片作为master,flash为slaver,实现单对单通信。

发表于 2018-11-02 14:19 211次阅读
基于STM32单片机的64Mbit单对单通信

AVR系列单片机的主要特性及选型

AVR单片机是1997年由ATMEL公司研发 出的增强型内置Flash的RISC(Reduced I...

发表于 2018-11-02 09:20 284次阅读
AVR系列单片机的主要特性及选型

单片机中的冷复位和热复位是什么意思

冷复位用英文来表示是Restart,热复位用英文来表示是Reset。

发表于 2018-11-01 16:25 152次阅读
单片机中的冷复位和热复位是什么意思

单片机存储器的工作原理及选片与总线的概念解析

存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、低...

发表于 2018-11-01 16:15 88次阅读
单片机存储器的工作原理及选片与总线的概念解析

基于单片机的I2C和EEPROM连接

在实际的应用中,保存在单片机RAM中的数据,掉电后就丢失了,保存在单片机的FLASH 中的数据,又不...

发表于 2018-11-01 10:38 232次阅读
基于单片机的I2C和EEPROM连接

面对芯片及其相关的软件开发技术的快速发展变化如何...

单片机不是裸奔就是RTOS,其实玩过RTOS和linux的同学都知道,RTOS虽然也叫操作系统,但是...

发表于 2018-10-31 17:05 355次阅读
面对芯片及其相关的软件开发技术的快速发展变化如何...

单片机通用寄存器的分类及应用

通用寄存器可用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果。除此之外,它们还各自具有一些特...

发表于 2018-10-31 16:50 99次阅读
单片机通用寄存器的分类及应用

单片机为何不能直接驱动继电器

虽然这个问题对于电子老白来说不值一提,不过对于初学单片机的朋友,问这个问题的人实在是太多了,以前总是...

发表于 2018-10-31 16:23 396次阅读
单片机为何不能直接驱动继电器

如何实现单片机UART串行数据与CAN数据之间相...

GCAN-601模块是嵌入式单片机UART串口转CAN模块,可实现将UART串行数据与CAN数据之间...

发表于 2018-10-31 16:00 274次阅读
如何实现单片机UART串行数据与CAN数据之间相...

单片机硬件电路设计的七个原则分享

一个单片机硬件系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元,如ROM、RA...

发表于 2018-10-30 16:22 155次阅读
单片机硬件电路设计的七个原则分享

单片机实现利用中断复位的两种方式

如果想要实现利用中断复位,我所知道的有两种方式:看门狗中断和无中断服务程序的中断。

发表于 2018-10-30 15:55 235次阅读
单片机实现利用中断复位的两种方式

简单分析树莓派的优点与缺点

关于树莓派,想必从事嵌入式开发的开发者都有听过,树莓派原名为Raspberry Pi,也就是它的英文...

发表于 2018-10-30 15:08 229次阅读
简单分析树莓派的优点与缺点

Arduino/树莓派/单片机/arm区别分析

Arduino是一款由开源软件环境提供支撑的开源硬件原型平台。最早是意大利的一个团队的一个开源项目,...

发表于 2018-10-30 11:06 310次阅读
Arduino/树莓派/单片机/arm区别分析

浅谈树莓派与单片机的区别

树莓派指的是一款硬件开源的,树莓派是一个成品开发板,上面也有CPU、内存,但是它们都是以分立的芯片的...

发表于 2018-10-30 09:42 255次阅读
浅谈树莓派与单片机的区别

如何使用单片机中printf

1. 如c语言同:printf(“”);在控制台就会输出“”中的内容; 2. 通过串口输出:只...

发表于 2018-10-29 15:48 119次阅读
如何使用单片机中printf

远程代码执行漏洞现身运行内嵌式系统的流行操作系统

在主要用于智能家居及关键基础设施系统中的大部分微处理器与单片机的开源操作系统FreeRTOS中,已发...

发表于 2018-10-28 09:30 432次阅读
远程代码执行漏洞现身运行内嵌式系统的流行操作系统

STM32单片机如何超频工作超大约多少还能正常工...

根据微软学术的定义,所谓超频(OVERCLOCKING)就是强制将计算机或硬件运行于厂商指定的时钟频...

发表于 2018-10-28 09:26 519次阅读
STM32单片机如何超频工作超大约多少还能正常工...

基于单片机D/A输出程序编写分享

D/A 是和 A/D 刚好反方向的,一个 8 位的 D/A,从 0~255,代表了 0~2.55V ...

发表于 2018-10-26 16:03 110次阅读
基于单片机D/A输出程序编写分享

基于stm8s103k3单片机串口UART的正确...

我使用的是stm8s103k3,32脚单片机,这个使用手册上说了UART1,UART2,UART3。...

发表于 2018-10-26 15:43 82次阅读
基于stm8s103k3单片机串口UART的正确...

基于单片机在异形曲面在线检测系统中的应用设计

随着三维设计软件常利用对系统模拟优化分析、路况的反馈和理论的计算,能够设计出高水平曲面异形线和截面,...

发表于 2018-10-26 15:19 60次阅读
基于单片机在异形曲面在线检测系统中的应用设计

单片机中的定时器与计数器有何不同,二者的区别是什...

定时器实际上也是工作在计数方式下,只是计数的是固定周期的脉冲,由于脉冲周期固定,由计数值可以计算时间...

发表于 2018-10-26 14:58 141次阅读
单片机中的定时器与计数器有何不同,二者的区别是什...

网上单片机制作“2.4G频率计”方案之我见

注:本文是作者以前发表在其个人博客,现在发布到聚丰开发专栏 在网上看到有朋友发布一个单片机制作2.4...

发表于 2018-10-25 17:01 397次阅读
网上单片机制作“2.4G频率计”方案之我见

转学STM32的入门总结和学习步骤

大家可能是从51单片机过来的,回想一下,我们之前学单片机时如何入门呢?实际上都是先看书(理论),再玩...

发表于 2018-10-25 16:19 450次阅读
转学STM32的入门总结和学习步骤

基于单片机应用程序编写的七大步骤分享

接到一个单片机项目设计文件之后,并不是马上动手编写程序,而是仔细研究用户提出的技术要求或者技术说明,...

发表于 2018-10-25 15:37 118次阅读
基于单片机应用程序编写的七大步骤分享

基于单片机Stm32f103 DAC电流输出解决...

用的是64封装的芯, 此芯ADC的基准Vref+和电源是同一个端口,Vref-共用电源地。在电池输出...

发表于 2018-10-25 15:20 117次阅读
基于单片机Stm32f103 DAC电流输出解决...

基于单片机设计堆栈的基本概念解析

向上生长:向高地址方向生长,称为递增堆栈 向下生长:向低地址方向生长,称为递减堆栈

发表于 2018-10-25 15:16 52次阅读
基于单片机设计堆栈的基本概念解析

我被红外遥控闪了一下腰

发表于 2018-10-25 11:26 470次阅读
我被红外遥控闪了一下腰

基于KL16的指纹锁低功耗方案

ZLG基于数百厂家的需求共性,设计了基于NXP KL16的指纹锁方案,单触摸休眠状态下达到7.52u...

发表于 2018-10-25 10:26 461次阅读
基于KL16的指纹锁低功耗方案

学STM32对你来说有什么好处

STM32是32位的单片机却只要八位单片机的价格,速度也是八位的好几倍。

发表于 2018-10-25 09:06 1485次阅读
学STM32对你来说有什么好处

如何利用单片机来驱动继电器

注意:单片机的IO口驱动能力不够,加一片ULN2003来驱动继电器,一个ULN2003可以驱动7个继...

发表于 2018-10-24 16:02 210次阅读
如何利用单片机来驱动继电器

基于51单片机直流电机PWM调速程序

这是一款AT89C51单片机直流电机PWM调速程序,程序可以直接用于AT89C52、AT89S51、...

发表于 2018-10-24 15:56 480次阅读
基于51单片机直流电机PWM调速程序

用一条IO口实现两个按键功能

发表于 2018-10-24 11:24 316次阅读
用一条IO口实现两个按键功能