求关于单片机或LCD单片机的外文文献献 要书名,作者, 出版社,第几版,时间.

& &记得早在2008年,我看到哈工大郭天祥同学的《十天攻克单片机》的视频讲座,为他的不断学习,不断追求的进取精神所感染。我从这个视频讲座里学习到的学以致用的思维理念和规范严谨的编程风格,至今还影响着我。视频配套教程也常常在我手边翻阅,书名为《新概念 51单片机C语言教程-入门、提高、开发、拓展全攻略》。
&书中第8讲,题为&1602液晶显示原理及应用&,讲述了1602液晶模块的工作原理,模块的控制和数据引脚功能、控制线的时序,缓存RAM地址以及如何用软件指令控制1602液晶硬件运行。不妨看看这段郭天祥同学当年的教学视频,为Arduino单片机控制1602液晶显示,做些知识准备。
1602液晶显示原理及应用视频:
& &现在的时间已经来到了2012年11月了,一种易学好用的Arduino单片机正在风靡全球。所以我把兴趣点从51转到了Arduino,是不是这山望那山高,也不是的,单片机是拿来用的,不是用来学的,Arduino因为更方便&用&,而且会了51,学习Arduino单片机也就是分分钟的时间,所以转到Arduino单片机来做应用也是自然进化的结果。
& & 上一篇文章《零成本学Arduino单片机之入门》提到了Arduino单片机的5点优势,其中有一个优势是:&针对周边I/O设备的Arduino编程,由于很多I/O设备都随之带有库文件或者样例程序,所以在自己的程序中,可以引用库文件中的函数,或复制样例程序,然后修改下其中的参数,即可迅速编写出大段大段的复杂程序,从而放大了您的编程能力。&,所以有了Arduino单片机可能就不需要了解上述视频所介绍的1602液晶工作原理以及软件指令与硬件底层电路之间对应关系。完全可以把1602液晶模块看成黑匣子,只要知道1602液晶11个引脚哪几根是控制引脚,哪几根是数据引脚就OK了!
& & Arduino确实不是省油的灯,早就帮你准备好了一切,1602液晶有专门的函数库,即LiquidCrystal,这个函数库相关资讯,可以从官网了解到,。
& & LiquidCrystal函数库针对1602液晶的数据传送有两种模式,一种是8bit模式,一种是4bit模式。8bit的传送速度快,是因为显示的字符都是ASCII码,ASCII码是8位二进制数组成,所以8bit刚好一次就把字符的二进制码一次传完,而4bit则是需要将字符拆成两半,一次只传送4bit,两倍时间才可以把数据传完,不过4bit模式的好处是需要的数据引脚少了一半,方便硬件连线。
& & 8bit模式需要D0~D7引脚,4bit只需后四个引脚D4~D7。不管是哪种模式控制引脚都有3个,分别为:RS、RW、Enable。&
& & 4bit模式的LiquidCrystal申明函数为:LiquidCrystal(RS, RW, Enable, D4, D5, D6, D7);
& & 8bit模式的LiquidCrystal申明函数为:LiquidCrystal(RS, RW, Enable, D0, D1, D2, D3, D4, D5, D6, D7);
& & &这篇文章介绍的仿真项目中1602液晶显示采用的是8bit模式,用到的3个控制引脚和8个数据引脚,如下图所示,它们分别连到了Arduino单片机11个数字端口上,根据8bit模式的LiquidCrystal申明函数的参数格式和Arduino单片机与1602液晶的引脚连线关系,1602液晶引脚与Arduino数字端口对应关系,可申明为:LiquidCrystal lcd(11,12,13,2,3,4,5,6,7,8,10)。
&尽管网络上的Arduino英文资讯可谓铺天盖地,但是中文书籍却很少,但是还是要尽可能地收集些中文资料才对,比如LiquidCrystal函数库的用法,我就是从《Arduino一试就上手》书中第7-5页看到。在这本书你可以继续看到LiquidCrystal函数库的其它函数,如初始化1602液晶工作模式函数lcd.begin(16,2);光标定位函数lcd.setCursor();ASCII字符显示函数lcd.print()。
& &&此书是台湾作者孙骏荣等所编写,已经被科技出版社引进,并转换成简体中文版,是本学习Arduino的好书。台湾总是在新科技潮流工具的应用上,能紧跟国际潮流。
说完1602液晶的Arduino单片机的应用,接着谈谈如何在仿真环境下,输出PWM信号,来调节LED灯的亮度。
& &Arduino单片机发出的PWM信号频率大约500hz,所以用实物进行测试,由于滞留效应,人眼感觉不到LED灯发生了闪烁现象,认为亮度变化是平稳的。但是用 Proteus进行仿真试验,却只是看到LED灯闪烁得厉害,所以我采用了一个由电感与电容组成的滤波电路,把PWM信号变成直流信号,消除了仿真时闪烁的问题。注意实物测试,不需要这个滤波电路。
& & &在Proteus软件环境里,提取Arduino单片机、LCD1602、LED、电位计,并进行硬件连线,并根据上一篇&入门&文章介绍的方法,设置Arduino单片机的工作模式和上载Hex文件,就可以仿真,测试下仿真实验的效果了。
《零成本学Arduino单片机之入门》文章网址:。
双击图片,都可以放大看!
该实验的Proteus硬件原理图请下载:
根据上图所示硬件原理图,Arduino程序所需完成的任务是:调节电位计输出的电压值,并通过模拟端口0采集到单片机中,1602液晶实时显示该电压值的变化,并把电压值正比转换为PWM信号的脉宽值,然后从数字端口9输出PWM信号,驱动LED灯,使LED灯的亮度发生改变。
注意:由于&单三角括号&里的内容,博客里显示不出来,所以我把头文件声明命令&被迫&进行了修改,以便在博客里看到头文件,例如改成&#include 《LiquidCrystal.h&&。当您把程序复制到Arduino IDE编程软件里时,注意改回&头文件&申明指令的&单三角括号&格式。
Arduino程序:
#include 《LiquidCrystal.h& //申明1602液晶的函数库
int potpin = 0; // 申明电位计连在模拟端口0
int PWMpin = 9; // 申明LED灯连在数字端口9
//申明1602液晶的11个引脚所连接的Arduino数字端口
LiquidCrystal lcd(11,12,13,2,3,4,5,6,7,8,10);&&&&&&
void setup()
&&lcd.begin(16,2);&&&&& //初始化1602液晶工作模式
&&&&&&&&&&&&&&&&&&&&&& //定义1602液晶显示范围为2行16列字符
& lcd.setCursor(0,0);&& //把光标定位在第0行,第0列
& lcd.print(&Voltage =&); //显示&Voltage =&
& lcd.setCursor(15,0);&& //把光标定位在第0行,第15列
& lcd.print(&V&);&&&&&& //显示&V&
void loop()
& //把电位计的电压值采集为10位数字量,并赋值给变量sensorValue,数值范围为0~1023
& float sensorValue = analogRead(potpin);
& //把数值范围为0~1023的数字量正比转换为实测电压值
& float voltage=sensorValue/1023*5;
& //把光标定位在第0行,第10列
& lcd.setCursor(10,0);&&
& lcd.print(voltage);//显示实测电压值&
& //把数值范围为0~1023的数字量正比转换为PWM信号的脉宽等份值0~255
& sensorValue = (int)sensorValue/4;
& //输出PWM信号,驱动LED灯,调节灯的亮度
& analogWrite(PWMpin, sensorValue);
& delay(20);//延时
& &有了库文件的帮助,我们发现各种外围周边设备的编程变得十分轻松。掌握了Arduino单片机在仿真环境中应用,按照类似方法,也很容易移植到实际电子设备中,如下图所示。
& & 采用实物来完成1602液晶显示,我选用的设备是DFRobot公司的IIC/TWI LCD1602液晶模块,该液晶模块的说明书网址为:。
& &IIC/TWI LCD1602液晶模块在1602液晶基础上加装了I2C接口,使LCD1602液晶与Arduino单片机的连线从原来的11根线缩减到4根线,这4根线为SDA、SCL、GND和VCC,它们能直接与层叠在Arduino控制板上的Xbee传感器扩展板的I2C专用端口连接起来,于是较原先的1602液晶的硬件连线更加简捷方便。由于1602液晶加装了I2C接口,所以不能直接用官方的LiquidCrystal函数库了,但不要紧,可以用DFRobot公司提供的LiquidCrystal_I2C函数库,加上用于I2C通讯的官方Wire函数库,有了这两个函数库文件,再借助DFRobot公司产品说明书网址中提供的样例程序,应该可以很容易编写自己的程序了。
LiquidCrystal_I2库文件的RAR文件请下载:
Arduino程序:(IIC/TWI LCD1602液晶模块&)
#include 《Wire.h& //申明库文件
#include 《LiquidCrystal_I2C.h&
int potpin = 0; // 申明电位计连在模拟端口0
int PWMpin = 9; // // 申明LED灯连在数字端口9
&//申明DFRobot公司1602液晶的I2C地址和工作模式
LiquidCrystal_I2C lcd(0x27,16,2); &&&&& &
void setup()
& lcd.init();//1602液晶初始化
& delay(20);//延时
& lcd.init();//需要两次初始化
& delay(20);
& lcd.backlight();& //点亮背光灯
& lcd.setCursor(0,0);//把光标定位在第0行,第0列
& lcd.print(&Voltage =&); //显示&Voltage =&
& lcd.setCursor(15,0);//把光标定位在第0行,第15列
& lcd.print(&V&);&&& //显示&V&
void loop()
& //把电位计的电压值采集为10位数字量,并赋值给变量sensorValue,数值范围为0~1023
& float sensorValue = analogRead(potpin);&
& //把数值范围为0~1023的数字量正比转换为实测电压值
& float voltage=sensorValue/1023*5;&
& //把光标定位在第0行,第10列
& lcd.setCursor(10,0);&&
& lcd.print(voltage);& //显示实测电压值&
& //把数值范围为0~1023的数字量正比转换为PWM信号的脉宽等份值0~255
& sensorValue = sensorValue/4;
& //输出PWM信号,驱动LED灯,调节灯的亮度
& //由于使用了DFRobot的Xbee V5传感器扩展板,该板子的电路特点所致,
& //脉宽等份值越大,LED灯亮度越小,所以需进行算式255-sensorValue的修正
& analogWrite(PWMpin, 255-sensorValue);
& delay(20);//延时
仿真实验与实物对照视频:
& &这篇文章不仅强调了Arduino编程中I/O设备函数库的强大,而且也取证了函数库一样可以用在Arduino单片机的Proteus仿真项目中。
& & 目前直接针对Arduino单片机的Proteus仿真实例还十分得少,但是针对51单片机的单片机仿真实例很多,只要用ATMEGA328P去代替51单片机,就可以把现成的51单片机Proteus仿真项目变成了Arduino单片机项目。彭伟老师编写的《单片机C语言程序设计实训100例》就是一本Proteus仿真的好书,还附带一张光盘,内含全部实例的程序清单和Proteus电气原理图。
& & 国内最火的Proteus仿真论坛:,在这个论坛,你也可以看到有关Proteus仿真的资讯,下载到很多有用的资料。
与非门科技(北京)有限公司 All Rights Reserved.
京ICP证:070212号
北京市公安局备案编号: 京ICP备:号单片机学习心得体会_经验总结-电子发烧友网触屏版
  单片机简介
  单片机主要由运算器、控制器和寄存器三大部分构成。其中,运算器由算术逻辑单元(ALU)、累加器、寄存器等构成,首先累加器和寄存器向ALU输入两个8位源数据,其次ALU完成源数据的逻辑运算,最后将运算结果存入寄存器中;控制器由程序计数器、指令寄存器、指令译码器、时序发生器和操作控制器等构成,是一个下达命令的&组织&,用于协调整个系统各部分之间的运作;寄存器主要有累加器A、数据寄存器DR、指令寄存器IR、指令译码器ID、程序计数器PC、地址寄存器AR等。
  在微处理器内部运算器、控制器、寄存器之间是相互连接的,由控制器向各部分发布操作命令,运算器接到命令后进行相应运算,并将运算后结果存入相应的寄存器中。
  单片机的基本工作原理
  单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。
  为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件&&存储器中。存储器由许多存储单元(最小的存储单位)组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。
  程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。
  单片机要学习的内容
  第一步:数字I/O的应用
  在大多数的单片机实验中,跑马灯实验正是数字I/O的典型应用,也是跑马灯的实验被安排第一个的原因。通过将单片机的I/O引脚位进行置位或清零来点亮或关闭LED灯,虽然简单,但是这就是数字电路中的逻辑功能。数学I/O应用的实验还有按键实验,当按下某键时,某LED灯被点亮。数字I/O实验教会我们单片机的编程思想,必须首先对单片机的相应寄存器进行配置,以初始化I/O引脚,这样才能使该引脚具备数字输入与输出功能。 单片机的一个内置或外置功能的使用,就是对该功能相关的寄存器进行设置,初始化,而这便是单片机编程的特点。少则4、5个函数搞定,多则十几行程序,要有耐心,别怕麻烦,所有的单片机都是这样。
  第二步:RS232串口通讯
  单片机都有UART接口,这个简单、古老的通讯方式可以与我们PC机的RS232接口直接连接通讯,当然,因为它们两者电平逻辑不同,必须要使用一个RS232电平转换芯片才能与PC机连接,例如Max232芯片。
  UART接口的使用是非常重要的,通过这个接口,我们可以使单片机与PC机之间交换信息,&接口&概念的学习也便由此引入。使用UART接口也会学习到目前最为简单与常用的通信协议等知识。我们也可以通过PC机的串口调试软件来监视到单片机实验板的数据,想一想,这会是一个多么神奇的事情啊~~
  第三步:定时器的使用
  学会定时器的使用,就可以利用单片机来实现典型的时序逻辑电路。时序逻辑电路的应用是最强大、最广泛的。例如,在工业的控制中,我们让某个开关每隔1秒钟打开与关闭一次。这个方案可以通过普通的数字集成电路实现,也可以通过PLC来实现,也可以通过CPLD或FPGA来实现,但是只有单片机的实现是最简单,成本也是最经济的。定时器是单片机内部资源里最为重要的一个,更是逻辑与时间控制实现的基础。
  第四步:中断
  在单片机软件设计架构中,一段程序循环执行是其一个特点,也是一个弊端。每个操作指令的执行都需要一定的执行时间,如果程序没有执行到该指令,则该指令的动作就不会触发,这样就会忽略许多快速发生的事件,例如方波频率检测的上升沿。针对在单片机程序正常运行时能够对外部事件立即做出响应而设计了中断功能。当中断功能执行时,单片机优先处理中断程序,当中断处理完成后,再回到单片机的正常程序执行中。中断的机理是比较容易理解的,但是什么时候打开中断,什么时候关闭、屏蔽中断,需要如何配置才能使能中断的某些功能,中断里要执行哪些程序,这些程序的要满足哪些要求就需要花些时间去理解与实践了。中断学会后,就可以编写复杂结构功能的程序,可以一边闪着小LED灯,一边扫描着按键,一边发送着数据,也可以干着多个事情&&打个比喻,中断功能可以使单片机吃着碗里的,看着锅里的。根据传说中的8020定律,如果您掌握了上面提到的这四步,那么,您已经学会了80%的内容了。
  第五步:I2C、SPI通讯接口
  单片机系统毕竟资源有限,而利用I2C、SPI通讯接口进行扩展外设是最常用的方法,也是非常重要的方法。这两个通讯接口都是串行通讯接口,典型的基础实验就是I2C的EEPROM实验与SPI的SD卡读写实验。
  第六步:比较,捕捉,PWM功能
  比较,捕捉与PWM功能可以使单片机更加适合电机控制,信号检测,实现电机速度与步长的调节。PWM波现在又是LED调光的主要手段。这里已经初步接触了数字电路里的模拟电路部分。
  第七步:A/D模数采集
  单片机目前基本都自带多通道A/D模数转换器,通过这些A/D转换器可以单片机获取模拟量,用于检测电压、电流等信号。学习时要分清模拟地与数字地,参考电压,采样时间,转换速率,转换误差等重要概念。这一步学会了数字电路控制模拟电路部分,而最简单的A/D模数转换器就是电压表实验。
  第八步:学习USB接口、TCP/IP协议、工业总线
  目前主流的通讯协议为USB协&&下位机与上位机高速通讯接口;TCP/IP&&万能的互联网使用的通讯协议;工业总线&&诸如Modbus,CANOpen等工业控制各个模块之间通讯的协议。这些都会应用在未来的项目里,集成入单片机里的固件,并且也是当前产品开发的一个发展方向。
  学习单片机的心得体会
  首先,学习单片机要有必须的基础:电子技术方面要有数字电路和模拟电路等方面的理论基础,个性是数字电路;编程语言要求汇编语言或C语言。要想成为单片机高手,推荐初学者首先学习汇编语言,学的差不多的时候,转入C语言学习。尽管汇编语言属于低级语言,编程效率低,但是较C语言具有目标代码简短,占用内存少,执行速度快等优点,更重要的是能使初学者尽快熟悉单片机的内部结构,并能对其进行精确的控制。汇编语言在单片机教材里面都会涉及,不需要单独购买教材和学习。C语言是一门学问,有很多专业书籍来讲解,并且对我们今后的编程生涯有绝对的好处,因此要深入学习,千万不要自以为看了某某的视频教程就以为掌握了C语言,那只是C语言的一部分。在那里给大家推荐一本单片机C语言程序设计参考书,马忠梅等著,北京航空航天大学出版社出版的《单片机的C语言应用程序设计》,要求C语言基础。如果没学过C语言,推荐学习清华大学谭浩强编写的C语言程序设计,这本书写的不错,通俗易懂。
  其次,是单片机教材选取。单片机是一门十分重视实践的技术,不能总是看书,但要学习它首先应看书,对单片机引脚、内部结构、寄存器和原理有必须地了解和感官认识,它的是怎样工作的,能干些什么?刚开始时,也许你看不明白,但这并不要紧,因为你还缺乏实践经验。此刻单片机应用广泛,因此各个厂家分别推出了自己的单片机,按内部结构体系派系分:51系列、PIC系列、AVR系列、摩托罗拉等等&&我们没必要每样都学!因为他们的编程方法和调试过程以及内部指令结构有必须的相似,只要学精通一款就OK了!尤其是用C语言编程,就几乎不用分什么派系,但是我们要选取一款有代表性的知识范围广,并且入门容易,书籍多。一般来说,MCS-51系列单片机已经得到广泛的普及和应用,市场上它的资料也比较多,用的人也很多。给大家推荐一些参考书,学习时只需要一本就足够拉。书名:《新编MCS-51单片机应用设计》,哈尔滨工业大学出版,作者:张毅刚;书名:《单片机原理及应用》,高等教育出版社,作者:张毅刚等;书名:《单片机高级教程:应用与设计》,北京航空航天大学出版社,作者:何立民。相关教材还有很多,在这不一一列举。
  然后,是开发工具和开发环境的选取。选取一块适宜的学习板,对于初学者来说一般无力理解,如果经济条件允许、本人又对单片机很感兴趣、有从事相关工作意向的话,鼓励大家购买。随便说一句,学习板功能要求太全,具有流水灯、数码管、独立键盘、矩阵键盘、AD或DA、液晶、蜂鸣器等就差不多啦,毕竟,功能齐全的价格比较高。仿真器对单片机初学者来说既是那么耳熟,同时又有些陌生,这主要是因为市场上传统的仿真器价格都在千元以上,对经济不是十分宽裕的人来说是不小的开支。同时仿真器是用来提高调试程序效率的,也不是非需不可的,如果你没有仿真器,遇到程序出错的时候,只好苦思冥想,反复烧写调试。随便推荐一下,学林电子的51tracer仿真器,有兴趣的朋友可关注一下。有了单片机教程板以后,先看下指导说明书,熟悉一下学习板,开卷有益。以后就得靠自己多练习了,将学习板与电脑连接好,先学会开发软件的使用,然后从最简单的流水灯实验做起,按照你自己的意愿控制流水灯,当你完成时,你会发现这是多么惬意的事情。太好玩了,你会觉得这不是在学习,而是在玩,当你发现,单片机能够按照你编写的程序工作时,你会觉得十分兴奋,比做什么事情都开心,这样你会慢慢迷上单片机,真的。不少网站上说搞
  定某个实验,就恭维的告诉你一声&恭喜你,学会了&自己学会了单片机,这有点可笑,这只能说明你算过关了,对单片机有了必须了解和会使用它了。但是单片机能完成的功能太多了,尤其是对外围器件的控制,综合起来能设计出许多意想不到的产品。因此除了入门外,精通可千万别轻易说出口。
  最后,在熟练掌握和应用后,那能够说对于单片机方面的硬件你已经入门了,剩下的就是自己练习设计电路,不断的积累经验。最终,自己完全设计具有个人风格的电路,产品,这样你就是单片机高手拉。只要过了第一关,后面的路就好走多了,万事开头难,大家可能都听过。时下多家电子类的报刊杂志如:《电子制作》《无线电》《电子报》《电子世界》都开设了详细的单片机教程专栏,对于想学习单片机的朋友来说帮忙很大,能够说此刻的单片机教程环境是最好的,有网络,有书籍,有报刊杂志,还有视频教程,元件的采购方面也十分充足,相关的器材又多有便宜。如果每一天能抽出两小时的时间去学习,快的一个月,慢的三个月就入门拉。
 经验总结
  (1)学习单片机没有捷径,别指望两三天就学会,要坚持不懈,重在积累。
  (2)别崇拜高手,别相信天才,大部分人都不是天才(相信你也不是)!
  (3)单片机是一门应用性和实践性很强的学科,要多动手,多做实验。
  (4)要学会参考别人的程序,减少自己琢磨的时间,迅速提高自己的编程潜力。
  (5)碰到问题能够借助网络来搜寻答案和对自己有帮忙的问题,能够大大减少你的开发时间。
  (6)要多交一些朋友,多交流。技术是靠不断的积累和交流才会进步的,封闭自守只会更加落后。
文章来源栏目
加载更多评论
后参与评论

我要回帖

更多关于 单片机外文参考文献 的文章

 

随机推荐