




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2.18051的信号引脚《单片机应用技术(C语言版)》深圳职业技术学院12345678910111213141516171819204039383736353433323130292827262524232221VCCGND电源引脚接入单片机的工作电源VCC(40):接+5V电源GND(20):接地12345678910111213141516171819204039383736353433323130292827262524232221VCCGNDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0口(39~32):P0.0~P0.7引脚P1口(1~8):P1.0~P1.7引脚P2口(21~28):P2.0~P2.7引脚P3口(10~17):P3.0~P3.7引脚12345678910111213141516171819204039383736353433323130292827262524232221VCCGNDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0XTAL2XTAL1RSTRST(9):Reset,复位信号XTAL1(19):片内振荡器的反相放大器和外部时钟发生器的输入端XTAL2(18):片内振荡器的反相放大器和外部时钟发生器的输出端12345678910111213141516171819204039383736353433323130292827262524232221VCCGNDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0XTAL2XTAL1RSTEAALEPSENPSEN(29):外部程序存储器读选通信号,低电平有效。ALE(30):地址锁存控制信号EA(31):访问程序存储控制信号,通常接高电平。引脚名称引脚功能P0.0~P0.7P0口8位双向端口线P1.0~P1.7P1口8位双向端口线P2.0~P2.7P2口8位双向端口线P3.0~P3.7P3口8位双向端口线ALE地址锁存控制信号外部程序存储器读选通信号访问程序存储控制信号RST复位信号XTAL1和XTAL2外接晶体引线端VCC+5V电源VSS地线12345678910111213141516171819204039383736353433323130292827262524232221VCCGNDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0XTAL2XTAL1RSTEAALEPSENRXD/TXD/INT0/INT1/T0/T1/WR/RD/第一功能第二功能第二功能信号名称P3.0RXD串行数据接收P3.1TXD串行数据发送P3.2外部中断0申请P3.3外部中断1申请P3.4T0定时/计数器0的外部输入P3.5T1定时/计数器1的外部输入P3.6外部RAM或外部I/O写选通P3.7外部RAM或外部I/O读选通P3口各引脚的第二功能12345678910111213141516171819204039383736353433323130292827262524232221VCCGNDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0XTAL2XTAL1RSTEAALEPSENRXD/TXD/INT0/INT1/T0/T1/WR/RD//D0/A0/D1/A1/D2/A2/D3/A3/D4/A4/D5/A5/D6/A6/D7/A7/A15/A14/A13/A12/A11/A10/A9/A82.2.1单片机时钟电路《单片机应用技术(C语言版)》深圳职业技术学院电源太阳空气水下载程序?人的脉搏波振荡信号心脏时钟电路振荡信号fosc:6MHz,12MHz,11.0592MHz起振电容C1和C2:30pf左右输入端输出端时钟电路是单片机应用系统中必需的电路。电源单片机下载程序时钟电路复位电路单片机最小系统单片机中的各种操作在时间上要有一个严格的先后次序,这种次序就是单片机时序。单片机时序foscTosc=1/foscTosc把振荡脉冲的周期定义为节拍,用P表示
振荡信号:时钟电路产生的信号状态:单片机时钟信号的周期fosc时钟信号P1P2S把时钟信号的周期定义为状态,用S表示
一个机器周期机器周期:是单片机中最基本的时间单位fosc时钟信号P1P2规定一个机器周期的宽度为6个状态,表示为S1~S6。
P1P2P1P2P1P2P1P2P1P2S1S2S3S4S5S6S1P1S1P2S2P1S2P2S3P1S3P2S4P1S4P2S5P1S5P2S6P1S6P2T机器=12*Tosc=12
/foscfosc=6MHzT机器=12
/(6*106)=2us机器周期:单片机中最基本的时间单位指令周期:一条指令执行的时间单周期指令:执行时间1个机器周期双周期指令:执行时间2个机器周期四周期指令:执行时间4个机器周期延时时间:把执行指令的时间累加起来晶振频率振荡信号频率振荡信号周期(节拍)状态时钟机器周期2分频6分频单周期指令双周期指令四周期指令感谢您的观看Thanks
for
your
attention.
2.2.2单片机复位电路《单片机应用技术(C语言版)》深圳职业技术学院复位让电脑从疯狂混乱的状态,恢复到一个最初的正常状态。从最初的状态开始继续工作,从头再来。死机电脑运行进入了疯狂混乱的状态,就像人昏死过去了,对外界没有了任何反映。程序计数器PC不可控制、不听指挥了。2个机器周期以上fosc=12MHzT机器=1us2us8051。。+5VGND10kΩ10μF。。+5VGND上电复位电路10kΩ10μF按键复位电路.RESET高电平10kΩ10μF单片机复位电路时钟电路单片机最小系统电路让单片机恢复到确定的初始状态让单片机从初始状态开始工作感谢您的观看Thanks
for
your
attention.
2.3.1片内数据存储器《单片机应用技术(C语言版)》深圳职业技术学院8051的内部RAM共有256个单元,通常把这256个单元按其功能划分为两部分:低128单元(单元地址0x00~0x7F)和高128单元(单元地址0x80~0xFF)。片内数据存储器RAM:
RandomAccessMemory,随机存取存储器特点:可以随机读写数据,掉电内容丢失容量:低128×8用途:存放中间结果或临时数据——数据存储器序
号区
域地
址功
能1工作寄存器区0x00~0x07第0组工作寄存器(R0~R7)0x08~0x0F第1组工作寄存器(R0~R7)0x10~0x17第2组工作寄存器(R0~R7)0x18~0x1F第3组工作寄存器(R0~R7)2位寻址区0x20~0x2F位寻址区,位地址为:0x00~0x7F3用户RAM区0x30~0x7F用户数据缓冲区片内数据存储器低128单元这128字节的数据存储器怎样使用呢?其实,我们采用C语言编程的话,只要按照要求定义各类变量就可以了,不需要我们来具体考虑怎样存放这些中间变量,这也是我们采用C语言编程的好处,我们不需要了解太多单片机内部的结构。专用寄存器SFR控制程序硬件系统专用寄存器专用寄存器
单片机专用寄存器,也称为特殊功能寄存器(SpecialFunctionRegister,SFR)位于内部RAM地址空间的高128字节位置(80H~FFH)专用寄存器21个SFR地址不连续空闲单元用户不可使用程序计数器PC,物理独立,不占RAM单元程序计数器PCProgramCounter——PC16位的寄存器,寻址范围64KB程序计数器PC内容为下一条将要执行指令的地址有自动加1功能,从而控制程序的执行顺序程序计数器PC用户无法对它进行读写。但可以通过转移、调用等指令改变其内容,以实现程序的转移单片机复位时,PC=0000H累加器ACC寄存器B程序状态字PSW数据指针DPTR堆栈指针SP常用寄存器sfrP1=0x90;//专用寄存器P1的地址是0x90P1=0x00;sbitP1_0=P1^0;//定义SFR中的可寻址位
P1_0=1;sfr和sbit
在通常情况下,这些专用寄存器已经在头文件regx51.h中定义了,只要在程序中包含了该头文件,就可以直接使用已定义的专用寄存器。#include<regx51.h>sfr和sbit感谢您的观看Thanks
for
your
attention.
2.3.2片外数据存储器《单片机应用技术(C语言版)》深圳职业技术学院感谢您的观看Thanks
for
your
attention.
2.3.3程序存储器《单片机应用技术(C语言版)》深圳职业技术学院单片机应用系统程序存储器程序存储器直接使用单片机内部程序存储器程序存储器直接使用单片机外部程序存储器程序存储器使用单片机内部程序存储器和外部存储器程序存储器直接使用单片机内部程序存储器中断向量区ORG0000HC语言程序在单片机C语言程序设计中,用户无须考虑程序的存放地址,编译程序会在编译过程中按照上述规定,自动安排程序的存放地址。C语言程序C语言是从main()函数开始执行的,编译程序会在程序存储器的0000H处自动存放一条转移指令,跳转到main()函数存放的地址;中断函数也会按照中断类型号,自动由编译程序安排存放在程序存储器相应的地址中。存储器类型描
述data直接访问内部数据存储器,允许最快访问(128B)bdata可位寻址内部数据存储器,允许位与字节混合访问(16B)idata间接访问内部数据存储器,允许访问整个内部地址空间(256B)pdata“分页”外部数据存储器(256B)xdata外部数据存储器(64KB)code程序存储器(64KB)
C51编译器支持的存储器类型感谢您的观看Thanks
for
your
attention.
2.4.1并行I/O端口电路结构《单片机应用技术(C语言版)》深圳职业技术学院51单片机典型芯片8051共有4个8位并行I/O端口,分别用P0、P1、P2、P3表示。每个I/O端口既可以按位操作使用单个引脚,也可以按字节操作使用8个引脚。P0口位电路结构P1口位电路结构P2口位电路结构P3口位电路结构感谢您的观看Thanks
for
your
attention.
2.4.2作为输入端口使用《单片机应用技术(C语言版)》深圳职业技术学院P1P0P2P3单片机输入输出读引脚P0=0xFF;和读引脚相对应的,51单片机还有一个读端口的操作,这是指执行一类特殊指令的时候需要的操作,我们只要了解就可以了。绝大多数时候我们还是读引脚操作。输入操作四个并行I/O接口的输入操作完全相同区分读引脚和读端口读引脚的时候,需要向端口中写入1感谢您的观看Thanks
for
your
attention.
2.4.3作为输出端口使用《单片机应用技术(C语言版)》深圳职业技术学院P1P0P2P3单片机输入输出P1P0P2P3单片机+5V。4.7K×8P0口作为输出接口的时候,需要给它在外部电路中连接上拉电阻。输出操作P0口需外接上拉电阻才能有高电平输出P1、P2和P3口作为输出端口使用时,外接可以不接上拉电阻。感谢您的观看Thanks
for
your
attention.
2.4.4I/O端口的第二功能《单片机应用技术(C语言版)》深圳职业技术学院P1P0P2P3单片机8位双向8位双向8位双向8位双向一专多能P0口简单专职P1口专兼皆备P2口第二功能身兼两职P3口感谢您的观看Thanks
for
your
attention.
4.2.1一维数组《单片机应用技术(C语言版)》深圳职业技术学院数组就是一组有序的、相同类型的数据集合。先定义,后使用类型名字元素个数(数组长度)数组类型数组名[常量表达式];unsignedcharled[8];intMCU_scores[15];必须用常量表达式来指定数组长度,不可以出现变量。#defineSTUDENT15unsignedintk;unsignedcharled[k];intMCU_scores[STUDENT];×√unsignedcharled[8];存储器存储器ledled[0]led+1led+2led+3led+4led+5led+6led+7led[1]led[2]led[3]led[4]led[5]led[6]led[7]led[8]×使用循环程序处理数组数组定义时初始化赋值语句初始化unsignedcharled[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};intMCU_scores[15]={85,87,87,90,92};前面5个数组元素赋初值unsignedcharled[];led[0]=0xfe;led[1]=0xfd;led[2]=0xfb;led[3]=0xf7;led[4]=0xef;led[5]=0xdf;led[6]=0xbf;led[7]=0x7f;数组就是一组有序的数据集合一个数组包含多个数组元素每个数组元素就相当于一个变量定义了一个数组,就相当于批量定义了很多个变量变量的名字都是以数组名加上下标来组成的intMCU_scores[15];MCU_scores[0]MCU_scores[1]MCU_scores[2]……MCU_scores[14]在程序中怎样使用一个定义好的数组呢?在程序中,不能直接引用整个数组中的全部元素,只能逐个使用数组元素。采用循环结构程序,来高效处理数组。intMCU_scores[15]={85,85,95,87,87,87,92,95,85,87,87,92,92,81,87,50};求平均成绩程序段求平均成绩程序段循环第1次:i=0;sum=sum+MCU_scores[0];循环第2次:i=1;sum=sum+MCU_scores[1];循环第3次:i=2;sum=sum+MCU_scores[2];……循环第15次:i=14;sum=sum+MCU_scores[14];采用数组实现流水灯控制程序感谢您的观看Thanks
for
your
attention.
4.2.2二维数组《单片机应用技术(C语言版)》深圳职业技术学院第2行第2列13级2班成绩单二维数组intscore[15][7];行数列数数组名[行][列]行和列都是从0开始数起;score[0][0],score[0][1],score[0][2],score[0][3],score[0][4],score[0][5],score[0][6],score[1][0],score[1][1],score[1][2],score[1][3],score[1][4],score[1][5],score[1][6],score[2][0],score[2][1],score[2][2],score[2][3],score[2][4],score[2][5],score[2][6],......……score[14][0],score[14][1],score[14][2],score[14][3],score[14][4],score[14][5],score[14][6],105个数组元素求学生平均成绩程序段求学生平均成绩程序段二维数组就是一个数据方阵队列二维数组的定义和初始化方法code关键字把批量不变的数据烧录到程序存储器中二维数组的引用方法是数组名加上两个下标用双重循环结构对二维数组的的数组元素进行存取和使用感谢您的观看Thanks
for
your
attention.
4.2.3字符数组《单片机应用技术(C语言版)》深圳职业技术学院字符型数据——char字符:character无符号字符型:unsignedchar,0~255有符号字符型:signedchar,-128~+127字符字符常量是指用单引号括起来的一个字符‘A’‘0’‘%’‘a’‘=‘在C语言中出现的任何符号都是西文符号‘A’בA’‘0’‘%’‘a’‘=‘存储器字节数据65483797616548379761charch[11]={‘I’,’’,’a’,’m’,’’,’h’,’a’,’p’,’p’,’y’,’!’};ch[0]=‘I’;ch[1]=‘‘;空格ch[2]=‘a’;Ch[3]=‘m’;Ch[4=‘‘;Ch[5]=‘h’;…….ch[11]=‘!’字符数组charch[11]={‘I’,’’,’a’,’m’,’’,’h’,’a’,’p’,’p’,’y’,’!’};“Iamhappy!”用双引号括起来的一串字符,叫做字符串。字符数组charch[11]={‘I’,’’,’a’,’m’,’’,’h’,’a’,’p’,’p’,’y’,’!’};“Iamhappy!”‘\0’字符串长度:12用双引号括起来的一串字符,叫做字符串。字符数组编译器自动给字符串添加结束符:’\0’charch[12]={‘I’,’’,’a’,’m’,’’,’h’,’a’,’p’,’p’,’y’,’!’,’\0’};charch[]={‘I’,’’,’a’,’m’,’’,’h’,’a’,’p’,’p’,’y’,’!’,’\0’};charch[]={“Iamhappy!”};charch[]=“Iamhappy!”;“Iamhappy!”感谢您的观看Thanks
for
your
attention.
4.3LED数码管动态显示《单片机应用技术(C语言版)》深圳职业技术学院COMCOM51单片机P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7NO!!!COMCOM什么叫动态显示动态显示:动态显示就是一种按位轮流点亮各位数码管的显示方式。即在某一时段,只让其中一位数码管“位选端”有效,并送出相应的字型显示编码。此时,其它位的数码管因“位选端”无效而都处于熄灭状态;下一时段按顺序选通另外一位数码管,并送出相应的字型显示编码,依此规律循环下去,即可使各位数码管分别间断地显示出相应的字符,动态显示也称作扫描显示方式。特点:占用端口资源少,适用于连接多个数码管动态显示的电路连接特点所有数码管相应的段选控制端并联在一起,由一个I/O端口控制
每个数码管的公共端com单独连接,由另一个I/O端口控制用同相或者反相的缓冲器来实现驱动
8同相三态缓冲器6反相驱动器8位数码管动态显示的电路连接动态显示的编程思路核心:逐位扫描显示具体操作:首先,从段选口送出某位LED的字型码;其次,从位选口送出数据,选通该位LED;保持一段延时时间。时间选择确保满足人眼的视觉暂留作用。然后,选通下一位,重复上述三个步骤,直到所有位扫描完。位选:选中第一个数码管段选:输出相应字型码
延时位选:选中第二个数码管段选:输出相应字型码
延时位选:选中最后一个数码管段选:输出相应字型码
延时1.首先,位选口选中第一个数码管,段选口送这个数码管想要显示的字型码,然后延时一段时间;2.其次,位选口选中第二个数码管,段选口送出相应的字型码,延时,。。。。。3.依次类推,直到位选口选中最后一个数码管,段选口送出最后一个数码管的字型码,延时这样,一次循环结束,每个数码管都“坐庄”被点亮一次。“轮流坐庄”的基本思路位选:选中第一个数码管段选:输出相应字型码
延时位选:选中第二个数码管段选:输出相应字型码
延时位选:选中最后一个数码管段选:输出相应字型码
延时第一个数码管
“坐庄”点亮第二个数码管
“坐庄”点亮最后一个数码管
“坐庄”点亮延时时间足够短,利用人眼的视觉暂留效应1.循环“轮流坐庄”2.保证合适的延时时间P1段选口P2:位选口字型20160726P201111111B10111111B11011111B11101111B11110111B11111011B11111101B11111110BP10x5b0x3f0x060x7d0x3f0x070x2b0x7d8位数码管动态显示实例while(1){P2=0X7F;//选中C7P1=0X5B;//字型码“2”time1ms();//延时1msP2=0XBF;//选中C6P1=0X3F;//字型码“0”time1ms();//延时1ms
P2=0XDF;//选中C5P1=0X06;//字型码“1”time1ms();//延时1ms……………………P2=0XFE;//选中C0P1=0X7D;//字型码“6”time1ms();//延时1ms}位选:选中第一个数码管段选:输出相应字型码
延时位选:选中第二个数码管段选:输出相应字型码
延时位选:选中最后一个数码管段选:输出相应字型码
延时八位数码管动态显示参考程序感谢您的观看Thanks
for
your
attention.
4.4.1LED大屏幕显示器的结构及原理《单片机应用技术(C语言版)》深圳职业技术学院LED点阵显示器8列8行一个点是一个像素8*8LED点阵的内部结构+-行线列线8行8列共64个LED8*8LED点阵的引脚排列与命名C1C2C3C4C5C6C7C8(A)(B)(C)(D)(E)(F)(G)(H)R1(7)R2(6)R3(5)R4(4)R5(3)R6(2)R7(1)R8(0)8*8LED点阵的实际引脚图8*8LED点阵的点亮原理C1C2C3C4C5C6C7C8(A)(B)(C)(D)(E)(F)(G)(H)R1(7)R2(6)R3(5)R4(4)R5(3)R6(2)R7(1)R8(0)10+-点亮原理行:输出高电平列:输出低电平单片机如何控制LED点阵显示图形?8*8LED点阵的引脚排列与命名C1C2C3C4C5C6C7C8(A)(B)(C)(D)(E)(F)(G)(H)R1(7)R2(6)R3(5)R4(4)R5(3)R6(2)R7(1)R8(0)单片机控制一个8*8LED点阵C1C2C3C4C5C6C7C8(A)(B)(C)(D)(E)(F)(G)(H)R1(7)R2(6)R3(5)R4(4)R5(3)R6(2)R7(1)R8(0)51单片机P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.71K一个实用的8*8LED点阵控制电路及点亮一个点P1.3=1;P0.2=0;漂亮的图形视觉效果:多个点同时点亮点阵LED多个点同时点亮的显示原理—动态扫描逐列扫描法逐行扫描法8*8LED点阵的逐行扫描法逐行扫描法中行数据与列数据的设计行列数据00000001B,即0x0100000010B,即0x0200000100B,即0x0400001000B,即0x0800010000B,即0x1000100000B,即0x2001000000B,即0x4010000000B,即0x8011100111B,即0xE711011011B,即0xDB10111101B,即0xBD01111110B,即0x7E01111110B,即0x7E10111101B,即0xBD11011011B,即0xDB11100111B,即0xE7低位数据高位列行数据低位高位一帧数据一帧数据对应一个特定的图形;或者说,每一个图形,都有一帧自己的数据。逐行扫描语句类似逐行扫描法的简单程序设计实例感谢您的观看Thanks
for
your
attention.
4.4.2LED大屏幕显示器接口《单片机应用技术(C语言版)》深圳职业技术学院74LS595(经常用于并行口扩展,数码管或点阵)常用驱动控制芯片串入并出移位寄存器——74LS595常用驱动控制芯片串入并出移位寄存器——74LS595注意事项:一定要将JOE短接片短接到GND端,如果不需要595后面的小灯点亮可以拔掉JP595短接片。sbitSRCLK=P3^6;sbitRCLK=P3^5;sbitSER=P3^4;常用驱动控制芯片串入并出移位寄存器——74LS595注意事项:一定要将JOE短接片短接到GND端,如果不需要595后面的小灯点亮可以拔掉JP595短接片。sbitSRCLK=P3^6;sbitRCLK=P3^5;sbitSER=P3^4;常用驱动控制芯片串入并出移位寄存器——74LS595sbitSRCLK=P3^6;sbitRCLK=P3^5;sbitSER=P3^4;注意事项:一定要将JOE短接片短接到GND端,如果不需要595后面的小灯点亮可以拔掉JP595短接片。常用驱动控制芯片串入并出移位寄存器——74LS595sbitSRCLK=P3^6;sbitRCLK=P3^5;sbitSER=P3^4;注意事项:一定要将JOE短接片短接到GND端,如果不需要595后面的小灯点亮可以拔掉JP595短接片。常用驱动控制芯片串入并出移位寄存器——74LS595sbitSRCLK=P3^6;sbitRCLK=P3^5;sbitSER=P3^4;注意事项:一定要将JOE短接片短接到GND端,如果不需要595后面的小灯点亮可以拔掉JP595短接片。实训任务595实现控制当dat>>7为0x01(非0)时,SER=1;当dat>>7为0x00时,SER=0;当引脚SRCLK(11脚)处于上升沿时数据寄存器的数据移位,QA→QB→QC→..→QH;处于下降沿时移位寄存器数据不变。当引脚RCLK(12脚)处于上升沿时移位寄存器的数据进入数据存储寄存器,处于下降沿时存储寄存器数据不变。sbitSRCLK=P3^6;sbitRCLK=P3^5;sbitSER=P3^4;实训任务595实现控制D0-D7:阳极(行)P0口:阴极(列)感谢您的观看Thanks
for
your
attention.
4.5.1LCD液晶显示器的功能与特点《单片机应用技术(C语言版)》深圳职业技术学院在日常生活中,小到各种手机大到电脑显示器、电视机等等,这些电子产品的显示器件都是一种液晶显示器。一种专门用来显示字母、数字、符号的点阵型液晶模块1602LCD字符液晶显示器每行可以显示16个字符,显示两行,也就是两行十六列0123456789ABCDEFHELLOWORLD!1602LCD字符液晶显示器A列:123456789…………….16第1行第2行1602LCD字符液晶显示器16个引脚1602LCD字符液晶模块
12345678910111213141516LCD模块VSSVDDVODB0DB1DB3DB2DB5DB4DB7DB6AKRSR/WE
12345678910111213141516VSSVDDVOLCD模块VSS:电源地引脚(GND)VDD:+5V电源引脚(VCC)VO:
液晶显示对比度调整引脚(0V~5V)
12345678910111213141516VSSVDDVOLCD模块DB0DB1DB3DB2DB5DB4DB7DB6DB0~DB7:数据线,可以用8位连接,也可以只用高4位连接,节约单片机资源。
12345678910111213141516VSSVDDVOLCD模块DB0DB1DB3DB2DB5DB4DB7DB6AKA:背光控制正电源K:背光控制地
12345678910111213141516VSSVDDVOLCD模块DB0DB1DB3DB2DB5DB4DB7DB6AKRSR/WERS:数据/命令选择控制端,高电平时选择数据寄存器、低电平时选择指令寄存器。R/W:读写信号线,高电平时进行读操作,低电平时进行写操作。E:使能端,当E端由高电平跳变成低电平的时候,液晶模块执行命令。
12345678910111213141516VSSVDDVOLCD模块DB0DB1DB3DB2DB5DB4DB7DB6AKRSR/WERSR/W操作00写命令操作(初始化、光标定位等)01读状态操作(读忙标志)10写数据操作(要显示的内容)11读数据操作(可以把显示存储区中的数据反读出来)
12345678910111213141516VSSVDDVOLCD模块DB0DB1DB3DB2DB5DB4DB7DB6AKRSR/WE电源相关引脚编程控制引脚双向数据线背光源控制引脚感谢您的观看Thanks
for
your
attention.
4.5.2
字符型LCD液晶显示器与单片机的接口《单片机应用技术(C语言版)》深圳职业技术学院单片机LCD1602液晶模块电路设计电路设计电源连接电路设计8位数据线连接电路设计3位控制线连接电路设计背光可以不接电路设计数据线4位连接方式感谢您的观看Thanks
for
your
attention.
4.5.3字符型LCD液晶显示器的应用《单片机应用技术(C语言版)》深圳职业技术学院
12345678910111213141516VSSVDDVOLCD模块DB0DB1DB3DB2DB5DB4DB7DB6AKRSR/WERSR/W操作00写命令操作(初始化、光标定位等)01读状态操作(读忙标志)10写数据操作(要显示的内容)11读数据操作(可以把显示存储区中的数据反读出来)使能端E引脚下降沿时执行操作四种操作三种常用写命令操作是指给液晶模块写入命令字,也就是指令字。读状态操作用来读入液晶模块的忙标志。写数据操作用来给液晶模块写入显示的数据。RSR/W操作00写命令操作(初始化、光标定位等)01读状态操作(读忙标志)10写数据操作(要显示的内容)11读数据操作(可以把显示存储区中的数据反读出来)RS=0;R/W=1;E下降沿unsignedcharlcd_r_start()//8位数据线连接方式{unsignedchars;RW=1; //RW=1,RS=0,读LCD状态
delayus();RS=0;delayus();E=1; //E端时序
delayus();
s=LCD_DB; //从LCD的数据口读状态
delayus();E=0;delayus();RW=0;delayus();
return(s); //返回读取的LCD状态字}读状态函数i=lcd_r_start();//调用读状态函数,读取LCD状态字D7D6D5D4D3D2D1D0BFBF=1:表示LCD正在忙
BF=0:表示LCD不忙do{
i=lcd_r_start();
//调用读状态函数,读取LCD状态字
i&=0x80;//采用与操作屏蔽掉低7位
delayms(1);
//延时
}while(i!=0);
//LCD忙,继续查询,否则退出循环查询忙状态程序段voidlcd_w_cmd(unsignedcharcom)//8位数据线连接方式{unsignedchari;
do{//查LCD忙操作
i=lcd_r_start(); //调用读状态字函数
i=i&0x80;//与操作屏蔽掉低7位
delayms(1);}while(i!=0); //LCD忙,继续查询,否则退出循环
RW=0;delayus();RS=0;
//RW=0,RS=0,写LCD命令字
delayus();E=1;
//E端时序
delayus();LCD_DB=com; //将com中的命令字写入LCD数据口
delayus();E=0;delayus();RW=1;delayms(50);}写命令函数写数据操作:RS=1;R/W=0;E下降沿voidlcd_w_dat(unsignedchardat)//8位数据线连接方式{unsignedchari;
do{//查LCD忙操作
i=lcd_r_start(); //调用读状态字函数
i=i&0x80;//与操作屏蔽掉低7位
delayms(1);}while(i!=0); //LCD忙,继续查询,否则退出循环
RW=0;delayus();RS=0; //RW=0,RS=0,写LCD命令字
delayus();E=1; //E端时序
delayus();LCD_DB=dat; //将com中的命令字写入LCD数据口
delayus();E=0;delayus();RW=1;delayms(50);}写数据函数写命令操作是指给LCD写入命令字。写数据是指写入要显示的字符voidlcd_w_cmd(unsignedcharcmd);//cmd为要写入的命令字编号指令名称控制信号命令字RSR/D7D6D5D4D3D2D1D01清屏00000000012归home位000000001×3输入方式设置00000001I/DS4显示状态设置0000001DCB5光标画面滚动000001S/CR/L××6工作方式设置00001DLNF××7CGRAM地址设置0001A5A4A3A2A1A08DDRAM地址设置001A6A5A4A3A2A1A09读BF和AC01BFAC6AC5AC4AC3AC2AC1AC01602LCD模块常用指令表lcd_w_cmd(0x01);//LCD清屏,同时光标定位在第1行,第1列LCD清屏命令字在LCD模块上指定光标位置,也就是下一个要显示字符的位置在哪里。编号指令名称控制信号命令字RSR/D7D6D5D4D3D2D1D01清屏00000000012归home位000000001×3输入方式设置00000001I/DS4显示状态设置0000001DCB5光标画面滚动000001S/CR/L××6工作方式设置00001DLNF××7CGRAM地址设置0001A5A4A3A2A1A08DDRAM地址设置001A6A5A4A3A2A1A09读BF和AC01BFAC6AC5AC4AC3AC2AC1AC01602LCD模块常用指令表
列行123456789101112131415161808182838485868788898A8B8C8D8E8F2C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF光标位置与相应命令字(1)表中命令字以十六进制形式给出,该命令字就是与LCD显示位置相对应的DDRAM地址。(2)第一行和第二行的命令字是不连续的。lcd_w_cmd(0x84);//光标定位在第1行第5列光标画面滚动命令字可以设置LCD上画面滚动效果编号指令名称控制信号命令字RSR/D7D6D5D4D3D2D1D01清屏00000000012归home位000000001×3输入方式设置00000001I/DS4显示状态设置0000001DCB5光标画面滚动000001S/CR/L××6工作方式设置00001DLNF××7CGRAM地址设置0001A5A4A3A2A1A08DDRAM地址设置001A6A5A4A3A2A1A09读BF和AC01BFAC6AC5AC4AC3AC2AC1AC01602LCD模块常用指令表CGRAM地址设置可以让我们自己编写要显示的字形编号指令名称控制信号命令字RSR/D7D6D5D4D3D2D1D01清屏00000000012归home位000000001×3输入方式设置00000001I/DS4显示状态设置0000001DCB5光标画面滚动000001S/CR/L××6工作方式设置00001DLNF××7CGRAM地址设置0001A5A4A3A2A1A08DDRAM地址设置001A6A5A4A3A2A1A09读BF和AC01BFAC6AC5AC4AC3AC2AC1AC01602LCD模块常用指令表归位命令可以使得光标返回到第一行第一列编号指令名称控制信号命令字RSR/D7D6D5D4D3D2D1D01清屏00000000012归home位000000001×3输入方式设置00000001I/DS4显示状态设置0000001DCB5光标画面滚动000001S/CR/L××6工作方式设置00001DLNF××7CGRAM地址设置0001A5A4A3A2A1A08DDRAM地址设置001A6A5A4A3A2A1A09读BF和AC01BFAC6AC5AC4AC3AC2AC1AC01602LCD模块常用指令表LCD初始工作方式设置显示状态设置清屏返回输入方式设置001DLNF00DL:设置LCD的连接方式;DL=1:8位、DL=0:4位;N:设置LCD显示的行数;N=1:2行、N=0:1行F:用来设置LCD字符显示的点阵;F=1:5×10、F=0:5×7例:设置数据位数8位,2行显示,5×7点阵字符00111000lcd_w_cmd(0x38);//数据位数8位
//2行显示,5×7点阵字符化工作方式设置LCD初始工作方式设置显示状态设置清屏返回输入方式设置00001DCBD:整体显示开关,D=1,表示开显示,D=0,表示关显示C:光标开关,C=1,表示有光标显示,C=0,表示没有光标显示B:控制光标是否闪烁,B=1,光标闪烁,B=0,光标不闪烁例如:设置开显示,没有光标,光标位字符不闪烁
00001100lcd_w_cmd(0x38);//开显示,没有光标,光标位字符不闪烁化显示状态设置试一试:写出设置开显示,有光标,光标位字符闪烁的命令字是什么呢?LCD初始工作方式设置显示状态设置清屏返回输入方式设置lcd_w_cmd(0x01);//LCD清屏,同时光标定位在第1行,第1列化清屏命令LCD初始化工作方式设置显示状态设置清屏返回输入方式设置000001I/DSI/D:光标移动方向设置,I/D=1:增量方式右移、I/D=0:减量方式左移S:控制屏幕上所有文字是否移动,S=1:移位、S=0:不移位例如:设置光标增量方式右移,显示字符不移动
00000110lcd_w_cmd(0x06);//光标增量方式右移,显示字符不移动输入方式设置LCD初始工作方式设置显示状态设置清屏返回输入方式设置化//函数名:lcd_init//函数功能:lcd初始化
//形式参数:无//返回值:无voidlcd_init(){lcd_w_cmd(0x3c);//设置工作方式lcd_w_cmd(0x0e);//设置光标lcd_w_cmd(0x01);//清屏lcd_w_cmd(0x06);//设置输入方式}初始化函数一般一个独立的模块包括两个文件1)头文件,它里面定义所有液晶显示需要的预定义和函数声明;2)c程序源文件,液晶显示所需要的函数。模块化程序设计工程主函数模块main.c液晶显示模块lcd.hlcd.c/*************lcd.h**********/sbitRS=P2^6;//P2.6sbitRW=P2^5;//P2.5sbitE=P2^7; //P2.7#defineLCD_DBP0控制接口定义/***********************lcd.h**************************/sbitRS=P2^6;//P2.6sbitRW=P2^5;//P2.5sbitE=P2^7; //P2.7#defineLCD_DBP0externunsignedcharlcd_r_start();//读状态函数externvoidlcd_w_cmd(unsignedcharcom);//写命令字函数externvoidlcd_w_dat(unsignedchardat);//写数据函数externvoidlcd_init(); //LCD初始化函数externvoiddelayms(unsignedinti);//可控延时函数externvoiddelayus(); //延时函数,5个机器周期Lcd.h在C语言中,修饰符extern用在变量或者函数的声明前,用来说明这个变量/函数是在别处定义的,要在此处引用或调用。/******************************lcd.c**************************/#include<regx51.h>#include<lcd.h>#include<INTRINS.H>//库函数头文件,代码中引用了_nop_()函数
Lcd.cunsignedcharlcd_r_start()//8位数据线连接方式{unsignedchars;RW=1; //RW=1,RS=0,读LCD状态
delayus();RS=0;delayus();E=1; //E端时序
delayus();
s=LCD_DB; //从LCD的数据口读状态
delayus();E=0;delayus();RW=0;delayus();
return(s); //返回读取的LCD状态字}读状态函数voidlcd_w_cmd(unsignedcharcom)//8位数据线连接方式{unsignedchari;
do{//查LCD忙操作
i=lcd_r_start(); //调用读状态字函数
i=i&0x80;//与操作屏蔽掉低7位
delayms(1);}while(i!=0); //LCD忙,继续查询,否则退出循环
RW=0;delayus();RS=0;
//RW=0,RS=0,写LCD命令字
delayus();E=1;
//E端时序
delayus();LCD_DB=com; //将com中的命令字写入LCD数据口
delayus();E=0;delayus();RW=1;delayms(50);}写命令函数voidlcd_w_cmd(unsignedcharcom)//8位数据线连接方式{unsignedchari;
do{//查LCD忙操作
i=lcd_r_start(); //调用读状态字函数
i=i&0x80;//与操作屏蔽掉低7位
delayms(1);}while(i!=0); //LCD忙,继续查询,否则退出循环
RW=0;delayus();RS=0;
//RW=0,RS=0,写LCD命令字
delayus();E=1;
//E端时序
delayus();LCD_DB=com; //将com中的命令字写入LCD数据口
delayus();E=0;delayus();RW=1;delayms(50);}写命令函数//函数名:lcd_init//函数功能:lcd初始化
//形式参数:无//返回值:无voidlcd_init(){lcd_w_cmd(0x3c);//设置工作方式lcd_w_cmd(0x0e);//设置光标lcd_w_cmd(0x01);//清屏lcd_w_cmd(0x06);//设置输入方式}Lcd初始化函数voiddelayms(unsignedinti){unsignedchark;while(i--)for(k=0;k<120;k++);}voiddelayus(){_nop_();_nop_();_nop_();}延时函数主函数main()设计mainLCD初始化光标定位显示字符结束主函数main()设计lcd_w_dat(‘A’);lcd_w_dat(0x41);lcd_w_dat(65);lcd_w_dat(‘5’);lcd_w_dat(0x35);lcd_w_dat(53);显示字符原地踏步停机语句——因为液晶模块是静态显示,只要显示了,就会一直在,如果显示内容没有变化的话,不需要动态扫描,所以显示完字符,我们就可以停机了。mainLCD初始化光标定位显示字符结束项目工程设计感谢您的观看Thanks
for
your
attention.
4.6.1矩阵式键盘结构《单片机应用技术(C语言版)》深圳职业技术学院独立按键按键常用按键符号矩阵按键4*40123行线4条行线01230123行线列线4条行线和4条列线01230123列线行线每一个按键跨接在行线、列线之间8条连线单片机AT89C514×4矩阵键盘01230123行线列线4×4矩阵键盘01230123行线列线单片机行线连接4×4矩阵键盘01230123行线列线单片机列线连接4×4矩阵键盘01230123行线列线单片机+VCC感谢您的观看Thanks
for
your
attention.
4.6.2矩阵式键盘按键的识别
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公章合同范本模板
- ui设计兼职合同范本
- 上游电子销售合同范本
- 住宅抵押合同范本
- 借贷咨询合同范本
- 农村房车销售合同范本
- 农用器材采购合同范本
- 中美二十天然气合同范例
- 个人售卖二手车合同范本
- 出纳公司合同范本
- 新能源汽车驱动电机及控制系统检修课件 学习情境1:驱动电机的认知
- 2024年采购部年终总结
- 人教版(PEP)五年级英语下册第一单元测试卷-Unit 1 My day 含答案
- 打深水井施工方案
- 企业名称预先核准通知书
- 统筹管理方案
- 建筑工程安全文明施工标准化图集(附图丰富)
- Unit 1 Travel教案-2023-2024学年高一下学期 中职英语高教版(2023修订版)基础模块2
- DB3206T 1083-2024机关会议服务人员操作技术规范
- 习作《我的家人 》教案-2024-2025学年统编版语文四年级上册
- 眼镜学智慧树知到答案2024年温州医科大学
评论
0/150
提交评论