书签 分享 收藏 举报 版权申诉 / 63
上传文档赚钱

类型PIC单片机综合实例课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4989819
  • 上传时间:2023-01-31
  • 格式:PPT
  • 页数:63
  • 大小:3.29MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《PIC单片机综合实例课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    PIC 单片机 综合 实例 课件
    资源描述:

    1、1/31/2023机械工业出版社Page 1【学习目标】!了解字符式液晶的显示原理;了解字符式液晶的显示原理;!掌握字符式液晶的初始化方法;掌握字符式液晶的初始化方法;!掌握根据时序图编程程序的方法;掌握根据时序图编程程序的方法;!掌握掌握LEDLED点阵显示屏电路设计思想;点阵显示屏电路设计思想;!理解汉字显示原理;理解汉字显示原理;!掌握掌握LEDLED点阵显示屏的编程方法;点阵显示屏的编程方法;!掌握光耦的用途和控制方法;掌握光耦的用途和控制方法;1/31/2023机械工业出版社Page 2第十三章 综合实例字符式液晶模块原理及编程字符式液晶模块原理及编程1LEDLED点阵显示屏原理及应

    2、用点阵显示屏原理及应用2电子密码锁控制器的设计电子密码锁控制器的设计31/31/2023机械工业出版社Page 3第十三章 综合实例字符式液晶模块原理及编程字符式液晶模块原理及编程1LEDLED点阵显示屏原理及应用点阵显示屏原理及应用2电子密码锁控制器的设计电子密码锁控制器的设计31/31/2023机械工业出版社Page 4液晶分类!笔段式液晶笔段式液晶!字符式液晶字符式液晶!图像式液晶图像式液晶!汉字图像式液晶汉字图像式液晶!彩屏液晶彩屏液晶1/31/2023机械工业出版社Page 5字符式液晶模块 1/31/2023机械工业出版社Page 616字符2行显示的字符液晶显示屏简介!内置内置H

    3、D44780HD44780控制器:可直接产生控制器:可直接产生192192种常见字符图形;种常见字符图形;!字符编码与字符编码与ASCIIASCII兼容,并且允许用户自编字符用于显示;兼容,并且允许用户自编字符用于显示;!只需单一的只需单一的5V5V供电即可工作;供电即可工作;!重量轻:重量轻:100g100g;!体积小:体积小:11mm11mm厚;厚;!功耗低:功耗低:10-15 mw10-15 mw;!指令功能强:可组合成各种输入、显示、移位方式以满足指令功能强:可组合成各种输入、显示、移位方式以满足不同的要求;不同的要求;!接口简单方便:可与接口简单方便:可与8 8位微处理器或微控制器相

    4、联;位微处理器或微控制器相联;!工作温度宽:工作温度宽:-20-70-20-70;!可靠性高:寿命为可靠性高:寿命为50,00050,000小时小时(25)(25)。1/31/2023机械工业出版社Page 7硬件连接图1/31/2023机械工业出版社Page 8引脚信号表序号序号 符符 号号 名名 称称 功功 能能 1 1VSS VSS 接地接地 0V 0V 2 2VDD VDD 电路电源电路电源 5V5V10%10%3 3VEE VEE 液晶驱动电压液晶驱动电压 保证保证VDDVDDVEEVEE有有4.54.5到到5V5V电压差电压差 4 4RS RS 寄存器选择信号寄存器选择信号 H H

    5、:数据寄存器:数据寄存器 L L:指令寄存器:指令寄存器 5 5R/W R/W 读读/写信号写信号 H H:读:读 L L:写:写 6 6E E 片选信号片选信号 下降沿触发,锁下降沿触发,锁存数据存数据 7-147-14DB0-DB7 DB0-DB7 数据线数据线 数据传输数据传输 1/31/2023机械工业出版社Page 9寄存器选择功能表 RSRS R/WR/W 操作操作0 00 0指令寄存器(指令寄存器(IRIR)写入写入 0 01 1忙标志和地址计数忙标志和地址计数器读出器读出 1 10 0数据寄存器(数据寄存器(DRDR)写入写入 1 11 1数据寄存器读出数据寄存器读出 1/31

    6、/2023机械工业出版社Page 10信号操作时序图1/31/2023机械工业出版社Page 11关键信号时间宽度 名称名称 功能描述功能描述 要求要求 Tas Tas 地址建立时间地址建立时间 最小值最小值140ns 140ns Tw Tw 使能信号脉冲宽度使能信号脉冲宽度 最小值最小值450ns 450ns Tdsw Tdsw 数据建立时间数据建立时间 最小值最小值195ns 195ns TcycE TcycE 使能信号周期使能信号周期 最小值最小值1000ns 1000ns 1/31/2023机械工业出版社Page 12对于时间要求的说明!对于上表中的数据在用软件编写操作时序时必须对于上

    7、表中的数据在用软件编写操作时序时必须遵守,否则可能无法完成正确操作。例如当遵守,否则可能无法完成正确操作。例如当PIC16F877PIC16F877主频为主频为20MHz20MHz时,一条指令周期仅为时,一条指令周期仅为0.2us0.2us,即,即200ns200ns,这样在用程序实现此操作时序,这样在用程序实现此操作时序时在使能信号时在使能信号E E置置1 1后要延时后要延时3 3个指令周期(用个指令周期(用C C语语言可以加入三个言可以加入三个NOPNOP函数),保证高电平持续时间函数),保证高电平持续时间大于使能信号脉冲宽度大于使能信号脉冲宽度TwTw的最小值的最小值450ns450ns

    8、的要求。的要求。1/31/2023机械工业出版社Page 13例题:求向液晶的数据寄存器写入A!题意分析题意分析:!题目要求向液晶的数据寄存器写入内容。查前表题目要求向液晶的数据寄存器写入内容。查前表 可知,可知,RSRS信号为信号为1 1,R/WR/W信号为信号为0 0,根据图中的连接,根据图中的连接方法可知,方法可知,RC5RC5应输出应输出1 1,RC6RC6应输出应输出0 0。当。当E E信号产信号产生一个脉冲后数据被打入到液晶的数据寄存器中生一个脉冲后数据被打入到液晶的数据寄存器中。数据由。数据由PORTDPORTD提供,提供,E E信号由信号由RC7RC7提供。提供。!根据时序图可

    9、得到以上信号的输出顺序。用根据时序图可得到以上信号的输出顺序。用C C语言语言描述如下。描述如下。1/31/2023机械工业出版社Page 14!LCD_CMD_W_Timing()LCD_CMD_W_Timing()!TRISD=0;/PORTD TRISD=0;/PORTD用于输出数据用于输出数据!TRISC5=0;/RC5TRISC5=0;/RC5用于输出用于输出RSRS信号。信号。!TRISC6=0;/RC6TRISC6=0;/RC6用于输出用于输出R/WR/W信号。信号。!TRISC7=0;/RC7TRISC7=0;/RC7用于输出用于输出E E信号。信号。!RC7=1;/E RC7

    10、=1;/E信号初值是信号初值是0 0!RC5=1;/RS=1 RC5=1;/RS=1!RC6=0;/R/W=0 RC6=0;/R/W=0!PORTD=A;/PORTD=A;/要打入的数据放到要打入的数据放到PORTDPORTD中中!RC7=1;/E RC7=1;/E信号由低变高,由于每条指令时信号由低变高,由于每条指令时200ns200ns,已经保证,已经保证了了TasTas要求。要求。!NOP();NOP();!NOP();NOP();!NOP();/NOP();/三个三个NOPNOP满足满足TwTw最小时间宽度最小时间宽度!RC7=0;/E RC7=0;/E信号再由高变低,打入数据。由于数

    11、据早已经赋信号再由高变低,打入数据。由于数据早已经赋值,所以值,所以TdswTdsw肯定满足肯定满足!NOP();NOP();!NOP();/NOP();/满足满足TcycETcycE最小时间长度要求。最小时间长度要求。E E由低变高执行至此已由低变高执行至此已经消耗了经消耗了1200ns(61200ns(6条指令条指令)!1/31/2023机械工业出版社Page 15字符液晶的指令集!对字符液晶的控制命令就是通过的特定信号组合而成,下对字符液晶的控制命令就是通过的特定信号组合而成,下表列出了某种字符液晶能够识别的几条指令。更多内容请表列出了某种字符液晶能够识别的几条指令。更多内容请参考教材。

    12、参考教材。名称名称 指指 令令 码码 说说 明明 执行周期执行周期*RS R/W DB7DB0 RS R/W DB7DB0 清屏清屏 00 0000 000100 0000 0001清除屏幕,清除屏幕,置置ACAC为零为零 1.64ms1.64msDDRAMDDRAM地址设置地址设置 001 ADD 001 ADD 设设DDRAMDDRAM地址地址 40us 40us 写数据写数据10 10 写数据写数据 写数据到写数据到CGCG或或DDRAM DDRAM 40us40us1/31/2023机械工业出版社Page 16指令集的实现!/向向LCDLCD写指令写指令!void LCD_Write_

    13、CMD(unsigned char LCD_CMD)void LCD_Write_CMD(unsigned char LCD_CMD)!LCD_DATA=LCD_CMD;LCD_DATA=LCD_CMD;!LCD_CMD_W_Timing();LCD_CMD_W_Timing();!DelayMS(1)DelayMS(1);!1/31/2023机械工业出版社Page 17向LCD写数据!/向向LCDLCD写数据写数据!void LCD_Write_Data(unsigned char void LCD_Write_Data(unsigned char LCD_CMD)LCD_CMD)!LCD_

    14、DATA=LCD_CMD;LCD_DATA=LCD_CMD;!LCD_DAT_W_Timing();LCD_DAT_W_Timing();!DelayMS(1)DelayMS(1);!1/31/2023机械工业出版社Page 18向LCD输出一个字符!/向向LCDLCD输出一个字符输出一个字符!void LCD_Put_Char(unsigned char LCD_Char)void LCD_Put_Char(unsigned char LCD_Char)!LCD_Write_Data(LCD_Char);LCD_Write_Data(LCD_Char);!1/31/2023机械工业出版社Pa

    15、ge 19字符液晶的初始化 液晶模块正确初始化后,即可接收命令来显示字符。1/31/2023机械工业出版社Page 20字符显示!字符通过字符通过DDRAMDDRAM(动态显示内存区)来显示,每个(动态显示内存区)来显示,每个字符位都对应一个字符位都对应一个DDRAMDDRAM地址。地址。!第一行地址:第一行地址:0000、0101、0F0F!第二行地址:第二行地址:4040、4141、4F4F1/31/2023机械工业出版社Page 21字符液晶能显示常见的数字、字母和英文标点 1/31/2023机械工业出版社Page 22常用函数的实现:Set_Cursor!/设置显示坐标设置显示坐标!/

    16、Row=(0 or 1)/Row=(0 or 1)!/Column=(0 to 15)/Column=(0 to 15)!void LCD_Set_Cursor(unsigned char Row,void LCD_Set_Cursor(unsigned char Row,unsigned char Column)unsigned char Column)!LCD_Write_CMD(DD_RAM_BASE+Row LCD_Write_CMD(DD_RAM_BASE+Row*0 x40+0 x40+Column);Column);!DelayMS(1);DelayMS(1);!1/31/202

    17、3机械工业出版社Page 23向LCD输出字符串,字符串在RAM中!void LCD_Put_String(char void LCD_Put_String(char*Str)Str)!unsigned char Str_Temp;unsigned char Str_Temp;!while(1)while(1)!Str_Temp=Str_Temp=*Str;Str;!if(Str_Temp!=0 x00)if(Str_Temp!=0 x00)!LCD_Write_Data(Str_Temp);LCD_Write_Data(Str_Temp);!Str+;Str+;!else return;el

    18、se return;!1/31/2023机械工业出版社Page 24第十三章 综合实例字符式液晶模块原理及编程字符式液晶模块原理及编程1LEDLED点阵显示屏原理及应用点阵显示屏原理及应用2电子密码锁控制器的设计电子密码锁控制器的设计31/31/2023机械工业出版社Page 251/31/2023机械工业出版社Page 26典型LED点阵显示屏电路设计!LEDLED点阵显示屏的基本显示元件是点阵显示屏的基本显示元件是8 88LED8LED显示块显示块,如图所示。其原理与数码管类似,由,如图所示。其原理与数码管类似,由6464个个LEDLED排排成成8 8行行8 8列。同一行的列。同一行的LE

    19、DLED阴极连在一起;同一列的阴极连在一起;同一列的LEDLED阳极连在一起。阳极连在一起。1/31/2023机械工业出版社Page 27要在88LED显示屏上显示字母E 1/31/2023机械工业出版社Page 28用0代表灭的点,用1代表亮的点!0000000000000000!0011110000111100!0010000000100000!0011110000111100!0010000000100000!0010000000100000!0011110000111100!0000000000000000!0 x0,0 x3C,0 x20,0 x3C,0 x20,0 x20,0 x3

    20、C,0 x0;0 x0,0 x3C,0 x20,0 x3C,0 x20,0 x20,0 x3C,0 x0;1/31/2023机械工业出版社Page 29编程控制88显示屏K1显示字母E的字形 1/31/2023机械工业出版社Page 30题意分析!H0H0到到H7H7表示行选信号,用表示行选信号,用PORTDPORTD控制。在实际电路控制。在实际电路中由于中由于LEDLED显示块耗电量比较大,单片机无法直接显示块耗电量比较大,单片机无法直接驱动太多的显示块。所以在实际电路中应该为每驱动太多的显示块。所以在实际电路中应该为每个行选信号上加入驱动电路。个行选信号上加入驱动电路。!L0L0到到L7L

    21、7是用来显示每行的字形数据端口,通过是用来显示每行的字形数据端口,通过PORTBPORTB输出。输出。!要想显示要想显示E E的字形,根据扫描法思想,就是先把表的字形,根据扫描法思想,就是先把表示示E E字形的第一行二进制数送字形的第一行二进制数送L0L0到到L7L7,而后仅点亮,而后仅点亮第第1 1行;依次再把表示行;依次再把表示E E字形的第二行二进制数送字形的第二行二进制数送L0L0到到L7L7,而后仅点亮第,而后仅点亮第2 2行;行;.。1/31/2023机械工业出版社Page 31关键代码!const unsigned char ZiXing8=const unsigned char

    22、 ZiXing8=!0 x0,0 x3C,0 x20,0 x3C,0 x20,0 x20,0 x3C,0 x0;0 x0,0 x3C,0 x20,0 x3C,0 x20,0 x20,0 x3C,0 x0;!#define LIE_DIR TRISB/#define LIE_DIR TRISB/列端口方向位,列端口方向位,!#define LIE_PORT PORTB/#define LIE_PORT PORTB/列端口列端口!#define HANG_DIR TRISD/#define HANG_DIR TRISD/行端口方向位,行端口方向位,!#define HANG_PORT PORTD/

    23、#define HANG_PORT PORTD/行端口行端口!for(Hang=0;Hang8;Hang+)for(Hang=0;Hang8;Hang+)!LIE_PORT=ZiXingHang;/LIE_PORT=ZiXingHang;/字形码送列端口显示字形码送列端口显示!HANG_PORT=(unsigned char)1Hang);/HANG_PORT=(unsigned char)1Hang);/指定行指定行!DelayMS(2);/DelayMS(2);/短暂延时造成视觉暂留现象短暂延时造成视觉暂留现象 !HANG_PORT=0b11111111;/HANG_PORT=0b1111

    24、1111;/在送新数据前关闭显示在送新数据前关闭显示!1/31/2023机械工业出版社Page 32显示汉字的原理1/31/2023机械工业出版社Page 33“中”的字型码!0 x01,0 x00,0 x01,0 x00,0 x21,0 x08,0 x3F,0 xFC,0 x0 x01,0 x00,0 x01,0 x00,0 x21,0 x08,0 x3F,0 xFC,0 x21,0 x08,0 x21,0 x08,0 x21,0 x08,0 x21,0 x08,21,0 x08,0 x21,0 x08,0 x21,0 x08,0 x21,0 x08,!0 x21,0 x08,0 x3F,0

    25、 xF8,0 x21,0 x08,0 x01,0 x00,0 x00 x21,0 x08,0 x3F,0 xF8,0 x21,0 x08,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00;1,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00;1/31/2023机械工业出版社Page 34行译码电路:4-16译码器1/31/2023机械工业出版社Page 35列电路:串联的移位寄存器1/31/2023机械工业出版社Page 36组合后的电路1/31/2023机械工业出版社Page 37实例:在

    26、LED点阵显示屏上显示汉字!题意分析题意分析 !由于由于PICPIC单片机具有硬件的移位输出接口单片机具有硬件的移位输出接口SPISPI,所,所以本例中列信号以本例中列信号L0:L15L0:L15由由DSDS、SH_CPSH_CP和和ST_CPST_CP控制控制。DSDS和和SH_CPSH_CP分别连接到分别连接到PICPIC硬件硬件SPISPI模块的模块的SDOSDO和和SCKSCK引脚。引脚。ST_CPST_CP由由RC1RC1控制,出现上升沿时控制,出现上升沿时74HC59574HC595的移位寄存器内容才会输出到其输出引脚的移位寄存器内容才会输出到其输出引脚上。上。CS_NCS_N由由

    27、RC0RC0控制。由此可见控制。由此可见C C口的控制信号都口的控制信号都是输出状态即可。是输出状态即可。!行选择信号行选择信号H0:H15H0:H15由由DB0:DB3DB0:DB3和和CS_NCS_N控制。控制。DB3:DB0DB3:DB0用用RD3:RD0RD3:RD0控制,所以控制,所以PORTDPORTD应为输出状态应为输出状态。1/31/2023机械工业出版社Page 38 题意分析续!要想显示汉字要想显示汉字“中中”的字形,根据扫描法思想,的字形,根据扫描法思想,把表示把表示“中中”字字形码数组的第一和第二个字节字字形码数组的第一和第二个字节依次输出到依次输出到L0:L15L0:

    28、L15,这可以通过,这可以通过SPISPI方式顺序发送方式顺序发送字形码数组中的前两个字节来实现;而后仅点亮字形码数组中的前两个字节来实现;而后仅点亮第第1 1行;再把字形码数组的第三和第四个字节通过行;再把字形码数组的第三和第四个字节通过SPISPI方式发送到方式发送到L0:L15L0:L15,而后仅点亮第,而后仅点亮第2 2行;行;.。1/31/2023机械工业出版社Page 39关键代码!#define CTRL_DIR TRISC/#define CTRL_DIR TRISC/控制字节方向位,控制字节方向位,!#define CTRLBYTE PORTC/#define CTRLBYT

    29、E PORTC/控制字节控制字节 !#define SH_CP RC3/shift clcok pluse#define SH_CP RC3/shift clcok pluse 移位时移位时钟钟 !#define DS RC5/Serial Data#define DS RC5/Serial Data 串行数据串行数据 !#define ST_CP RC1/store clock pluse#define ST_CP RC1/store clock pluse 锁存脉锁存脉冲冲,下降沿锁存下降沿锁存!#define CS_N RC0/74138#define CS_N RC0/74138片选信

    30、号,低电平有效片选信号,低电平有效!#define LINESEL PORTD/#define LINESEL PORTD/行选择,低行选择,低4 4位有效位有效!#define LINESEL_DIR TRISD/#define LINESEL_DIR TRISD/行选择方向位行选择方向位1/31/2023机械工业出版社Page 40SPIInit()!void SPIInit()void SPIInit()!TRISC3=0;/RC3/SCKTRISC3=0;/RC3/SCK为输出为输出!TRISC5=0;/RC5/SDOTRISC5=0;/RC5/SDO为输出为输出!TRISC1=0;/

    31、RC1TRISC1=0;/RC1用来控制用来控制74HC59574HC595的锁存信号的锁存信号!SSPIF=0;/SSPIF=0;/清空标志位清空标志位!CKE=0;/CKE=0;/上升沿发送数据,为了与上升沿发送数据,为了与74HC59574HC595时序匹配时序匹配!CKP=1;/CKP=1;/空闲为高电平空闲为高电平!SSPEN=1;/SSPEN=1;/使能使能MSSPMSSP模块模块!SSPM3=0;SSPM3=0;!SSPM2=0;SSPM2=0;!SSPM1=1;SSPM1=1;!SSPM0=0;/SSPM=0010,SSPM0=0;/SSPM=0010,工作模式为工作模式为SP

    32、ISPI主控主控!1/31/2023机械工业出版社Page 41SPISend!void SPISend(unsigned char data)void SPISend(unsigned char data)!SSPBUF=data;/SSPBUF=data;/把要发送的数据放在把要发送的数据放在SSPBUFSSPBUF中中!while(SSPIF=0)/SSPIFwhile(SSPIF=0)/SSPIF为为0 0说明未发送完成说明未发送完成!/循环退出说明发送完毕循环退出说明发送完毕 !SSPIF=0;/SSPIFSSPIF=0;/SSPIF必须手动清零必须手动清零!1/31/2023机械工

    33、业出版社Page 42显示字形的代码!for(Line=0;Line16;Line+)for(Line=0;Line16;Line+)!SPISend(ZiXingLine1);/SPISend(ZiXingLine1);/低八位低八位!SPISend(ZiXing(Line1)+1);/SPISend(ZiXing(Line1)+1);/高八位高八位!LINESEL=Line;/LINESEL=Line;/选择要显示的行选择要显示的行!ST_CP=1;/ST_CP=1;/产生上升沿使产生上升沿使595595芯片输出数据芯片输出数据!ST_CP=0;/ST_CP=0;/回到低电平回到低电平,为

    34、下次上升沿做准备为下次上升沿做准备!CS_N=0;/CS_N=0;/使能使能74LS13874LS138芯片输出芯片输出!DelayMS(2);/DelayMS(2);/延时产生视觉暂留现象延时产生视觉暂留现象!CS_N=1;/CS_N=1;/关闭关闭74LS13874LS138芯片输出芯片输出!1/31/2023机械工业出版社Page 43第十三章 综合实例字符式液晶模块原理及编程字符式液晶模块原理及编程1LEDLED点阵显示屏原理及应用点阵显示屏原理及应用2电子密码锁控制器的设计电子密码锁控制器的设计31/31/2023机械工业出版社Page 44电子密码锁控制器:需求分析!不需要钥匙,开

    35、锁者输入密码即可控制锁打开,不需要钥匙,开锁者输入密码即可控制锁打开,锁的关闭是手动或自动的;锁的关闭是手动或自动的;!开锁者有权利修改自己的密码;开锁者有权利修改自己的密码;!为了防止开锁者穷举密码,密码输入错误三次后为了防止开锁者穷举密码,密码输入错误三次后即报警,即报警,5 5分钟后方能继续使用;分钟后方能继续使用;!为了提示开锁者正确操作,应该用显示设备输出为了提示开锁者正确操作,应该用显示设备输出相关提示信息;相关提示信息;!当开锁者有误操作时应该有声音警告;当开锁者有误操作时应该有声音警告;!电池供电;电池供电;1/31/2023机械工业出版社Page 45硬件设备需求!为了输入密

    36、码,需要设计按键输入电路,为了提为了输入密码,需要设计按键输入电路,为了提高安全性,又考虑到密码锁的空间,一般的系统高安全性,又考虑到密码锁的空间,一般的系统都是数字密码,这里可以采用都是数字密码,这里可以采用4 44 4矩阵键盘来实矩阵键盘来实现。现。!为了防止断电后密码丢失,需要把用户密码记录为了防止断电后密码丢失,需要把用户密码记录在非易失性存储器中,例如在非易失性存储器中,例如EEPROMEEPROM中。由于中。由于PICPIC单单片机大都内置片机大都内置EEPROMEEPROM,可以省略外挂,可以省略外挂EEPROMEEPROM。!为了实现报警和误操作提示,可以采用简单的声为了实现报

    37、警和误操作提示,可以采用简单的声音报警。为了降低成本,一般采用简单的音报警。为了降低成本,一般采用简单的5V5V压电压电式蜂鸣器来实现声音的播放,这种蜂鸣器驱动电式蜂鸣器来实现声音的播放,这种蜂鸣器驱动电流在流在10mA10mA左右,用左右,用PICPIC单片机的单片机的I/OI/O引脚可以直接引脚可以直接驱动。驱动。1/31/2023机械工业出版社Page 46硬件设备需求续!由于提示信息由很多种。为了能让使用者看明白由于提示信息由很多种。为了能让使用者看明白,这里采用字符式液晶来显示,在实际应用中,这里采用字符式液晶来显示,在实际应用中,读者可以购买内置中文字库的液晶来代替字符式读者可以购

    38、买内置中文字库的液晶来代替字符式液晶。液晶。!单纯的电子锁的种类很多,但其控制原理都是通单纯的电子锁的种类很多,但其控制原理都是通过输入信号的导通和断开来实现锁的开关,一般过输入信号的导通和断开来实现锁的开关,一般的电子锁都需要的电子锁都需要10V10V乃至更高的驱动电压。这样无乃至更高的驱动电压。这样无法用一个法用一个I/OI/O引脚直接驱动,需要外加适当的隔离引脚直接驱动,需要外加适当的隔离和驱动电路控制。和驱动电路控制。!电池供电的系统一般都要求低功耗,本系统对速电池供电的系统一般都要求低功耗,本系统对速度要求不高,所以可采用度要求不高,所以可采用38.768KHz38.768KHz的低

    39、主频晶振的低主频晶振作为系统主频。作为系统主频。1/31/2023机械工业出版社Page 47硬件设备需求续!需要一片单片机来完成各种设备之间的逻辑控制需要一片单片机来完成各种设备之间的逻辑控制,由于本书以,由于本书以PIC16F877PIC16F877为例讲解,这里就采用为例讲解,这里就采用PIC16F877PIC16F877,在具体项目,可根据,在具体项目,可根据I/OI/O引脚等特殊引脚等特殊需求选择其它款需求选择其它款PICPIC单片机。例如本项目中要求有单片机。例如本项目中要求有矩阵键盘输入、字符液晶输出,这样所用引脚大矩阵键盘输入、字符液晶输出,这样所用引脚大约约2222个左右(不

    40、考虑引脚复用情况下)。为了给个左右(不考虑引脚复用情况下)。为了给将来的升级留出余地,建议选择将来的升级留出余地,建议选择2828脚的单片机。脚的单片机。为了适应电池供电,建议采用低功耗型号。为了为了适应电池供电,建议采用低功耗型号。为了记录密码,最好有内置记录密码,最好有内置EEPROMEEPROM。为了简化电路设。为了简化电路设计,最好计,最好I/OI/O引脚可以直接驱动蜂鸣器。综上所述引脚可以直接驱动蜂鸣器。综上所述,可以选择,可以选择PIC16F886PIC16F886单片机。单片机。1/31/2023机械工业出版社Page 48硬件设计!密码键盘部分电路的设计;密码键盘部分电路的设计

    41、;!字符液晶部分电路的设计;字符液晶部分电路的设计;!锁控制部分电路的设计;锁控制部分电路的设计;!发声部分电路的设计发声部分电路的设计1/31/2023机械工业出版社Page 49密码键盘部分电路的设计;1/31/2023机械工业出版社Page 50字符液晶部分电路的设计1/31/2023机械工业出版社Page 51锁控制部分电路的设计;1/31/2023机械工业出版社Page 52发声部分电路的设计1/31/2023机械工业出版社Page 53系统上电初始化,读出掉电前密码。用户密码输入开锁重试次数到3次?报 警 5 分钟是否改密码?密码正确?修改密码关锁关锁信号有效?是否是否是否是否软件

    42、设计1/31/2023机械工业出版社Page 54题意分析!程序的主循环应该是等待用户的按键输入。为了简单起见,设定密码程序的主循环应该是等待用户的按键输入。为了简单起见,设定密码为为6 6位数字。使用前文完成的函数位数字。使用前文完成的函数GetKeyValueGetKeyValue即可获得输入的键值。即可获得输入的键值。而后根据键值来决定下一步的动作。输入的按键有五种情况:而后根据键值来决定下一步的动作。输入的按键有五种情况:!第一种是第一种是0 0到到9 9之间的数字,应将其按顺序作为密码的一部分并在液晶之间的数字,应将其按顺序作为密码的一部分并在液晶上显示上显示“*”号;号;!第二种是

    43、退格按键,在密码内容中应删除上次输入的数字,显示上也第二种是退格按键,在密码内容中应删除上次输入的数字,显示上也应退一格并删除一个应退一格并删除一个“*”号;号;!第三种是确定键,表示密码输入完毕,进入密码比较流程;当密码匹第三种是确定键,表示密码输入完毕,进入密码比较流程;当密码匹配时则发出开锁信号,否则显示错误信息并用声音提示,当连续输入配时则发出开锁信号,否则显示错误信息并用声音提示,当连续输入三次密码不对,则长时间发声报警。过一段时间后方能继续重试密码三次密码不对,则长时间发声报警。过一段时间后方能继续重试密码;!第四种是修改密码键,只有密码输入正确开锁后才有效,其它状态时第四种是修改

    44、密码键,只有密码输入正确开锁后才有效,其它状态时无效按键,无效时按下应通过声音提示用户输入错误。修改密码过程无效按键,无效时按下应通过声音提示用户输入错误。修改密码过程与输入密码过程类似;与输入密码过程类似;!第五种是第五种是C C、D D和和E E键,本系统中未用到这几个键,应提示用户输入错误键,本系统中未用到这几个键,应提示用户输入错误;1/31/2023机械工业出版社Page 55题意分析续!为了防止系统掉电,用户的密码应该保存在非易为了防止系统掉电,用户的密码应该保存在非易失性存储器中,本例中直接保存在失性存储器中,本例中直接保存在PICPIC单片机内部单片机内部的的EEPROMEEP

    45、ROM中即可,中即可,HT-PICHT-PIC有专用的内部有专用的内部EEPROMEEPROM读读写函数写函数eeprom_readeeprom_read和和eeprom_writeeeprom_write,很容易实现,很容易实现EEPROMEEPROM的存取。在系统初始化时需要从的存取。在系统初始化时需要从EEPROMEEPROM读读取掉电前的用户密码,用于与开锁者输入的密码取掉电前的用户密码,用于与开锁者输入的密码做比较。密码修改成功后,新密码应该写入做比较。密码修改成功后,新密码应该写入EEPROMEEPROM;1/31/2023机械工业出版社Page 56题意分析续!本设计中采用字符式

    46、液晶作为显示界面,应该通本设计中采用字符式液晶作为显示界面,应该通过液晶模块显示每一次操作的提示语,便于用户过液晶模块显示每一次操作的提示语,便于用户理解。理解。!在发声功能上,警告声音为蜂鸣器发一短声音,在发声功能上,警告声音为蜂鸣器发一短声音,报警声音为一长声音即可。报警声音为一长声音即可。1/31/2023机械工业出版社Page 57关键代码:把旧密码从PIC内置EEPROM读出!for(i=0;i6;i+)for(i=0;i9)/if(strPasswordi9)/用键盘输入的密码肯定小于用键盘输入的密码肯定小于9 9!/若读出的某个密码大于若读出的某个密码大于9 9说明密码已经被意外

    47、修改过了说明密码已经被意外修改过了 !/加载默认密码加载默认密码!for(i=0;i6;i+)/for(i=0;i6;i+)/执行到这里上一层循环的执行到这里上一层循环的i i就不用了就不用了!/默认密码是默认密码是123456123456!strPasswordi=i+1;strPasswordi=i+1;!break;break;!1/31/2023机械工业出版社Page 58键盘处理代码说明!key=GetKeyValue();/key=GetKeyValue();/从从4 4*4 4小键盘获得按键键值小键盘获得按键键值!if(key!=NO_KEY)/if(key!=NO_KEY)/如

    48、果有按键按下如果有按键按下!if(key=9)/if(key=9)/无符号数肯定大于等于无符号数肯定大于等于0 0!if(InputNumbersMAX_PASSWORD_LENGTH)if(InputNumbersMAX_PASSWORD_LENGTH)!/记录用户密码记录用户密码!userPasswordInputNumbers=key;userPasswordInputNumbers=key;!LCD_Put_Char(LCD_Put_Char(*);/);/显示字形显示字形%!InputNumbers+;/InputNumbers+;/输入的数字数目加一输入的数字数目加一!else e

    49、lse!beep();/beep();/发出警告声音发出警告声音!1/31/2023机械工业出版社Page 59键盘处理代码说明续!elseelse!switch(key)switch(key)!case ENTER:case ENTER:!/逐个键值比较,看密码是否匹配逐个键值比较,看密码是否匹配,!/这是有问题的,因为用户可能没输入这是有问题的,因为用户可能没输入6 6个字母个字母!/当然为了保险起见,要求用户必须输入当然为了保险起见,要求用户必须输入6 6个数字也是可行的个数字也是可行的!for(i=0;iMAX_PASSWORD_LENGTH;i+)for(i=0;iMAX_PASSW

    50、ORD_LENGTH;i+)!if(userPasswordi!=strPasswordi)if(userPasswordi!=strPasswordi)!break;break;!if(i=MAX_PASSWORD_LENGTH)/if(i=MAX_PASSWORD_LENGTH)/密码匹配密码匹配!/显示显示:密码正确锁打开密码正确锁打开!LOCK=OPEN;/LOCK=OPEN;/开锁开锁 1/31/2023机械工业出版社Page 60作业!编程控制编程控制161616LED16LED点阵显示汉字点阵显示汉字“国国”的字形的字形 1/31/2023机械工业出版社Page 61提问时间 更

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:PIC单片机综合实例课件.ppt
    链接地址:https://www.163wenku.com/p-4989819.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库