希腊文字符,其余字符码0x10~0x1F及0x80~0x9F没有定义。以下是1602的16进制ASCII码表地址:读的时候,先读左边那列,再读上面那行,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。本设计将1602的数据命令端接到单片机的P15端,使能端接到P14口,读写端直接接地,本次使用只用其写的功能。1602的数据端接到单片机的P0端。通过程序即可将单片机从矩阵键盘读入的数据显示到1602上面。
33报警电路
本次设计使用的蜂鸣器作为警报装置,电路图如下:
图33报警电路
word文档可自由复制编辑
f由于自激蜂鸣器是直流电压驱动的,不需要利用交流信号进行驱动,只需对驱动口输出驱动电平并通过三极管放大驱动电流就能使蜂鸣器发出声音,很简单,这里就不对自激蜂鸣器进行说明了。这里只对必须用12duty的方波信号进行驱动的他激蜂鸣器进行说明。单片机驱动他激蜂鸣器的方式有两种:一种是PWM输出口直接驱动,另一种是利用IO定时翻转电平产生驱动波形对蜂鸣器进行驱动。PWM输出口直接驱动是利用PWM输出口本身可以输出一定的方波来直接驱动蜂鸣器。在单片机的软件设置中有几个系统寄存器是用来设置PWM口的输出的,可以设置占空比、周期等等,通过设置这些寄存器产生符合蜂鸣器要求的频率的波形之后,只要打开PWM输出,PWM输出口就能输出该频率的方波,这个时候利用这个波形就可以驱动蜂鸣器了。比如频率为2000Hz的蜂鸣器的驱动,可以知道周期为500μs,这样只需要把PWM的周期设置为500μs,占空比电平设置为250μs,就能产生一个频率为2000Hz的方波,通过这个方波再利用三极管就可以去驱动这个蜂鸣器了。而利用IO定时翻转电平来产生驱动波形的方式会比较麻烦一点,必须利用定时器来做定时,通过定时翻转电平产生符合蜂鸣器要求的频率的波形,这个波形就可以用来驱动蜂鸣器了。比如为2500Hz的蜂鸣器的驱动,可以知道周期为400μs,这样只需要驱动蜂鸣器的IO口每200μs翻转一次电平就可以产生一个频率为2500Hz,占空比为12duty的方波,再通过三极管放大就可以驱动这个蜂鸣器了。本次设计采用的是通过三极管来驱动蜂鸣器,并且有单片机延时产生脉冲电流来让蜂鸣器实现报警功能。
34硬件总体电路图
本次设计采用89c52单片机作为主控芯片,结合矩阵键盘,蜂鸣器电路,LCD1602显示,做成的简易密码锁设计的总电路图如下所示:
word文档可自由复制编辑
f图34
word文档可自由复制编辑
f第四章仿真与调试41程序流程
本次r