初学者arduino编程在LCD上显示文字 应该怎么写程序 ?

初学者arduino编程在LCD上显示文字 应该怎么写程序 ?,第1张

//端口定义 诺基亚5110显示屏

int LCD_CE=2

int LCD_RST=3

int SCLK=4

int SDIN=5

int LCD_DC=6

int inputPin=8 // 定义超声波信号接收接口

int outputPin=9// 定义超声波信号发出接口

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

void setup()

{

pinMode(inputPin, INPUT)

pinMode(outputPin, OUTPUT)

}

//****************************定义ASCII字符**********************//

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

6 x 8 font

1 pixel space at left and bottom

index = ASCII - 32

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

const unsigned char font6x8[][6] =

{

{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, // sp

{ 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 }, // !

{ 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 }, // "

{ 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // #

{ 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, // $

{ 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 }, // %

{ 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 }, // &

{ 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 }, // '

{ 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 }, // (

{ 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 }, // )

{ 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 }, // *

{ 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 }, // +

{ 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 }, // ,

{ 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 }, // -

{ 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 }, // .

{ 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 }, // /

{ 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E }, // 0

{ 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 }, // 1

{ 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 }, // 2

{ 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 }, // 3

{ 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 }, // 4

{ 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 }, // 5

{ 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 }, // 6

{ 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 }, // 7

{ 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 }, // 8

{ 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E }, // 9

{ 0x00, 0x00, 0x36, 0x36, 0x00, 0x00 }, // :

{ 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 }, //

{ 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 }, // <

{ 0x00, 0x14, 0x14, 0x14, 0x14, 0x14 }, // =

{ 0x00, 0x00, 0x41, 0x22, 0x14, 0x08 }, // >

{ 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 }, // ?

{ 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E }, // @

{ 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C }, // A

{ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 }, // B

{ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 }, // C

{ 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C }, // D

{ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 }, // E

{ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 }, // F

{ 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A }, // G

{ 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F }, // H

{ 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 }, // I

{ 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01 }, // J

{ 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 }, // K

{ 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 }, // L

{ 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F }, // M

{ 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F }, // N

{ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E }, // O

{ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 }, // P

{ 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E }, // Q

{ 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 }, // R

{ 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 }, // S

{ 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 }, // T

{ 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F }, // U

{ 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F }, // V

{ 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F }, // W

{ 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 }, // X

{ 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 }, // Y

{ 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 }, // Z

{ 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 }, // [

{ 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55 }, // 55

{ 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 }, // ]

{ 0x00, 0x04, 0x02, 0x01, 0x02, 0x04 }, // ^

{ 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 }, // _

{ 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 }, // '

{ 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 }, // a

{ 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38 }, // b

{ 0x00, 0x38, 0x44, 0x44, 0x44, 0x20 }, // c

{ 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F }, // d

{ 0x00, 0x38, 0x54, 0x54, 0x54, 0x18 }, // e

{ 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02 }, // f

{ 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C }, // g

{ 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78 }, // h

{ 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00 }, // i

{ 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00 }, // j

{ 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 }, // k

{ 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00 }, // l

{ 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78 }, // m

{ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 }, // n

{ 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 }, // o

{ 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18 }, // p

{ 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC }, // q

{ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 }, // r

{ 0x00, 0x48, 0x54, 0x54, 0x54, 0x20 }, // s

{ 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20 }, // t

{ 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C }, // u

{ 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C }, // v

{ 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C }, // w

{ 0x00, 0x44, 0x28, 0x10, 0x28, 0x44 }, // x

{ 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C }, // y

{ 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 }, // z

{ 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 }// horiz lines

}

/************************LCD初始化函数********************************/

void LCD_init(void)

{

//先设置为输出

pinMode(SCLK,OUTPUT)

pinMode(SDIN,OUTPUT)

pinMode(LCD_DC,OUTPUT)

pinMode(LCD_CE,OUTPUT)

pinMode(LCD_RST,OUTPUT)

// 产生一个让LCD复位的低电平脉冲

digitalWrite( LCD_RST, LOW)

delayMicroseconds(1)

digitalWrite( LCD_RST, HIGH)

// 关闭LCD

digitalWrite( LCD_CE, LOW)

delayMicroseconds(1)

// 使能LCD

digitalWrite( LCD_CE, HIGH)//LCD_CE = 1

delayMicroseconds(1)

LCD_write_byte(0x21, 0)// 使用扩展命令设置LCD模式

LCD_write_byte(0xc8, 0)// 设置偏置电压

LCD_write_byte(0x06, 0)// 温度校正

LCD_write_byte(0x13, 0)// 1:48

LCD_write_byte(0x20, 0)// 使用基本命令

LCD_clear()// 清屏

LCD_write_byte(0x0c, 0)// 设定显示模式,正常显示

// 关闭LCD

digitalWrite( LCD_CE, LOW) //LCD_CE = 0

}

/************************LCD清屏函数*******************************/

void LCD_clear(void)

{

unsigned int i

LCD_write_byte(0x0c, 0)

LCD_write_byte(0x80, 0)

for (i=0i<504i++)

{

LCD_write_byte(0, 1)

}

}

/*************************设置字符位置函数**************************/

void LCD_set_XY(unsigned char X, unsigned char Y)

{

LCD_write_byte(0x40 | Y, 0)// column

LCD_write_byte(0x80 | X, 0)// row

}

/*************************ASCII字符显示函数*************************/

void LCD_write_char(unsigned char c)

{

unsigned char line

c -= 32

for (line=0line<6line++)

{

LCD_write_byte(font6x8[c][line], 1)

}

}

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

/*-------------------------------------------------

LCD_write_english_String : 英文字符串显示函数

输入参数:*s :英文字符串指针;

X、Y: 显示字符串的位置,x 0-83 ,y 0-5

--------------------------------------------------*/

void LCD_write_english_string(unsigned char X,unsigned char Y,char *s)

{

LCD_set_XY(X,Y)

while (*s)

{

LCD_write_char(*s)

s++

}

}

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

/*---------------------------------------------

LCD_write_byte: 写数据到LCD

输入参数:data:写入的数据;

command :写数据/命令选择;

---------------------------------------------*/

void LCD_write_byte(unsigned char dat, unsigned char command)

{

unsigned char i

digitalWrite( LCD_CE, LOW)// 使能LCD_CE = 0

if (command == 0)

{

digitalWrite( LCD_DC, LOW)// 传送命令 LCD_DC = 0

}

else

{

digitalWrite( LCD_DC, HIGH)// 传送数据LCD_DC = 1

}

for(i=0i<8i++)

{

if(dat&0x80)

{

digitalWrite( SDIN, HIGH)//SDIN = 1

}

else

{

digitalWrite( SDIN, LOW)//SDIN = 0

}

digitalWrite( SCLK, LOW)//SCLK = 0

dat = dat <<1

digitalWrite( SCLK, HIGH)//SCLK = 1

}

digitalWrite( LCD_CE, HIGH)//LCD_CE = 1

}

/*************************以下为主函数*****************************/

void loop()

{

LCD_init()//初始化液晶

LCD_clear()

LCD_write_english_string(0,0," --Arduino-- ")

LCD_write_english_string(0,2,"Renge:")

LCD_write_english_string(0,4,"DESIGN BY KENT")

LCD_write_english_string(0,5,"2010.6")

while(1)

{

digitalWrite(outputPin, LOW)// 使发出发出超声波信号接口低电平2μs

delayMicroseconds(2)

digitalWrite(outputPin, HIGH)// 使发出发出超声波信号接口高电平10μs,这里是至少10μs

delayMicroseconds(10)

digitalWrite(outputPin, LOW) // 保持发出超声波信号接口低电平

int distance = pulseIn(inputPin, HIGH) // 读出脉冲时间

distance= distance/58 // 将脉冲时间转化为距离(单位:厘米)

if(distance>120)

{

LCD_write_english_string(35,2,"???")

}

else

{

LCD_write_english_string(60,2,"cm")

LCD_set_XY(35, 2)

LCD_write_char( 0x30+distance%1000/100)//显示百位数

LCD_write_char( 0x30+distance%100/10) //显示十位数

LCD_write_char( 0x30+distance%10) //显示个位数

}

delay(10)

}

}

在“计算机”窗口中,先点击左上角的“查看”,再点击右侧的“选项”。

第二步:在文件夹选项窗口中,点击“查看”选项卡,再选择“显示隐藏的文件”选项。设置完后,点击确定。

第三步:同时按键盘的win+R键,打开运行窗口,输入“%USERPROFILE%\AppData\Local”,然后点击“确定”。

第四步:在打开的窗口中找到“iconcache.db”的文件,删除该文件。再回到桌面,刷新或重启电脑即可解决问题。

二、win10的开始菜单栏软件图标全部变成了白纸?

清理一下图标缓存就行了,可以用软件清理,也可以用如下方法:

在C:\Users\Administrator\AppData\Local里有个IconCache.db图标缓存,它是隐身的。一般图标出现异常就是这个缓存的问题了,我们把这个删掉,之后重启后会自动重新生成新的,然后就好了。(注意把Administrator换成你的用户名)

三、电脑桌面的图标变成白纸了,怎么恢复?

电脑桌面的图标变成白纸了,怎么恢复:

1.首先开启显示隐藏受保护的系统文件和文件夹的设置。打开计算机,单击【组织】菜单中的【文件夹和搜索选项】命令。

2.切换到【查看】选项卡,在【高级设置】列表中去掉【隐藏受保护的 *** 作系统文件】,并选择【显示隐藏的文件、文件夹和驱动器】,然后单击【确定】按钮保存设置。

3.单击【开始】菜单,单击【运行】命令或按WIN+R组合键。

4.调出【运行】命令框,在【打开】栏键入【%USERPROFILE%\AppData\Local】路径,单击【确定】按钮。

5.打开的文件夹窗口删除隐藏状态的IconCache.db图标缓存文件。

四、所有的图标都变成了白纸

这是缓存出错导致的。

具体的解决步骤如下:

1、首先右键桌面空白处点击打开“个性化”设置窗口。

2、在打开的个性化设置窗口中为系统更换一个主题即可。

3、或者在电脑空白处右键点击“新建”,新建一个文本文档。

4、接着打开文本文档,输入代码:@echo off taskkill /f /im explorer.exeCD /d %userprofile%\AppData\LocalDEL IconCache.db /astart explorer.exeecho。

5、完成之后将文档另存为文件名为“修复白图标.bat”,然后保存类型为“所有文件”,点击“保存(S)”将其保存到桌面。

6、回到桌面双击打开修复白图标文件,耐心等待程序运行完成即可。

7、最后图标正常了。

标签: 软件电脑缓存

返回列表

arduino 只是用了近似c++的语法,并不是 c。

Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。由一个欧洲开发团队于2005年冬季开发。其成员包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti等。

它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个的部分:硬件部分是可以用来做电路连接的Arduino电路板另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。

Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是通过 Arduino编程语言 (基于 Wiring)和Arduino开发环境(基于 Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,它们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11475357.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存