毕业设计(论文)-基于PS2键盘和12864液晶的键盘输入界面的系统设计.doc_第1页
毕业设计(论文)-基于PS2键盘和12864液晶的键盘输入界面的系统设计.doc_第2页
毕业设计(论文)-基于PS2键盘和12864液晶的键盘输入界面的系统设计.doc_第3页
毕业设计(论文)-基于PS2键盘和12864液晶的键盘输入界面的系统设计.doc_第4页
毕业设计(论文)-基于PS2键盘和12864液晶的键盘输入界面的系统设计.doc_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中国计量学院毕业设计(论文)题目:基于PS2键盘和12864液晶的键盘输入界面的系统设计二级学院 光学与电子科技学院 专 业 光信息科学与技术 班 级 03信试 学 号 030080003132 姓 名 指导教师 2007年 月 日中国计量学院毕业设计(论文)摘 要 本论文介绍了PS2键盘控制12864液晶显示及音阶输出。PS2设备接口用于许多现代的鼠标和键盘,本文主要描述了用于PS2键盘的接口。PS2键盘实现简单、工作稳定,较传统的标准键盘具有体积小、灵活性强的特点,同时对于其它嵌入式工控PC应用系统具有通用性。这些所有的PS2接口都遵照PS2通信协议。PS2 通讯协议是一种双向同步串行通讯协议,通讯的两端通过Clock(时钟脚)同步,并通过DATA(数据脚)交换数据。用于显示的液晶显示模块是12864点阵型液晶显示模块,可显示各种字符及图形,可与CPU直接接口,具有8位标准数据总线、6条控制线及电源线。用于音阶输出的主要使用蜂鸣器。电路的主要功能:当有数据从键盘传送过来时,对数据进行接收,转化为ASCII码后在128*64液晶上显示,并控制蜂鸣器发声。其中,采用中断来接收键盘传送过来的数据,蜂鸣器的发声采用定时器,不同音阶有不同的频率,根据对应的频率设置定时器初值,从而,获得目标声音输出。本设计有5个关键部分:PS2键盘,C51单片机,128*64液晶显示模块,蜂鸣器,C语言程序。关键词:PS2接口;PS2通信协议;128*64液晶显示模块;蜂鸣器;中断AbstractThis paper introduces the PS2 keyboard which controls 128*64 LCD display and voice output. The PS2 interface equipment is used in many modern mouse and keyboard. This paper describes the interface which is mainly used for the PS2 keyboard. The PS2 keyboard is simple and has a stable work. Its smaller than the traditional standard keyboard in size, and has a better precision. Meanwhile, its more universal than other application systems of embedded PC. All of these PS2 interfaces are in compliance with PS2 communication protocol. PS2 communication protocol is a two-way synchronous serial communication protocol. The two ends of communication use the Clock (Clock feet) to synchronization, and through DATA (data feet) to exchange data. We use 128*64 LCD module, which showing various characters and graphics. It can connect with the CPU interface directly. This module has eight standard data bus 、six control lines and power lines. We use buzzer to output the voice. Main functions of the circuit: When a data transmission over from the keyboard, the microcontroller receives it, and then, converses it to ASCII, then the 128*64LCD displays the data. At the same time, the buzzer is controlled to phonation. We use interrupt to take over the data from the keyboard, and use timer to control the output of the buzzer. We know that different musical scale corresponds different frequency, so we set initial value of the timer through the frequency, thus, we win voice output. The five key components of the design: PS2 keyboard, C51 microcontroller, 128*64 LCD module, buzzer, C Programming Language.Keywords: PS2 interface; PS2 communication protocol; 128*64 LCD module; The buzzer; Interruption目 录0.前言 11.PS2接口技术 2 1.1 PS2接口硬件 21.1.1 物理连接器21.1.2 电气特性31.1.3 PS2设备与PC机的通讯 3 1.2 PS2接口的嵌入式软件编程方法 4 1.2.1 PS2向PC机发送一个字节 4 1.2.2 PS2设备从PC机接收一个字节 52.系统电路6 2.1 电路工作原理 6 2.2电路各部分元器件分析7 2.2.1 PS2键盘接口 7 2.2.2 液晶显示 9 2.2.3 蜂鸣器发声 14 2.2.4 8051单片机 16 2.3 电路原理图193.程序 20 3.1 KEIL 51 20 3.2 C语言的特点 20 3.3 程序设计流程图 224.结论 235.毕业设计总结 24文献 25感谢 26附录A 英文文献一原稿27附录B 文献一翻译32附录C 英文文献二原稿36附录D 文献二翻译40附件附件1 毕业设计(论文)任务书附件2 毕业设计(论文)文献综述附件3 毕业设计(论文)开题报告附件4 毕业设计(论文)验收登记表附件5 毕业设计(论文)答辩记录表附件6 毕业设计(论文)指导教师意见表附件7 毕业设计(论文)评阅表附件8 毕业设计(论文)评语表附件9 毕业设计(论文)进展情况调查表IV0.前 言随着计算机工业的发展,作为计算机最常用输入设备的键盘也日新月异。1984年IBM推出了IBM PC/XT键盘及其接口标准。该标准定义了83键,采用5脚DIN连接器和简单的串行协议。实际上,第一套键盘扫描码集并没有主机到键盘的命令。为此,1984年IBM推出了IBM AT键盘接口标准。该标准定义了84-101键,采用5脚DIN连接器和双向串行通讯协议,此协议依照第二套键盘扫描码集设有8个主机到键盘的命令。到了1987年,IBM又推出了PS2键盘接口标准。该标准仍旧定义了84-101键,但是采用6脚,,mini-DIN连接器,该连接器在封装上更小巧,仍然用双向串行通讯协议并且提供有可选择的第三套键盘扫描码集,同时支持17个主机到键盘的命令。现在,市面上的键盘都和PS2及AT键盘兼容,只是功能不同而已。 带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12864, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。 PS2键盘实现简单、工作稳定,较传统的标准键盘具有体积小、灵活性强的特点,同时对于其它嵌入式工控PC应用系统具有通用性。采用128*64液晶显示模块,可以显示字符、中文汉字、图形与动画等,提高了系统的可视化界面,在工业仪器仪表中得到了广泛的应用。1.PS2接口技术1.1 PS2接口硬件1.1.1 物理连接器 物理上的PS2端口是两类连接器中的一种:5脚的DIN或6脚的mini-DIN。这2种连接器(在电气特性上)是十分类似的,但实际上两者只有一点不同那就是管脚的排列。这就意味着这两类连接器可以很容易用一种简单的硬件连线的适配器来转换。这种适配器大约每个值6美元,或者你可以根据任意两种连接器对应管脚关系做你自己的适配器。 PC键盘可以有6脚的mini-DIN或5脚的DIN连接器。如果你的键盘是6脚的mini-DIN而你的计算机是5脚的DIN(或者相反),这两类连接器可以用上面提到的适配器来兼容。具有6脚的mini-DIN的键盘通常被叫做“PS2”键盘,而那些有5脚的DIN叫做“AT”设备。其实这两种连接器都只有四个脚有意义。它们分别是Clock(时钟脚)、DATA(数据脚)、+5V(电源脚)和Ground(电源地)。在PS2键盘与PC机的物理连接上只要保证这四根线一一对应就可以了。PS2键盘靠PC的PS2端口提供+5V电源,另外两个脚Clock(时钟脚)和DATA(数据脚)都是集电极开路的,所以必须接大阻值的上拉电阻。它们平时保持高电平,有输出时才被拉到低电平,之后自动上浮到高电平。现在比较常用的连接器如图1.1.1所示1。图1.1.1 PS2接口的连接器引脚定义图1.1.2 电气特性 PS2 通讯协议是一种双向同步串行通讯协议2。通讯的两端通过Clock(时钟脚)同步,并通过DATA(数据脚)交换数据。任何一方如果想抑制另外一方通讯时,只需要把Clock(时钟脚)拉到低电平。如果是PC机和PS2键盘间的通讯,则PC机必须做主机,也就是说,PC机可以抑制PS2键盘发送数据,而 PS2键盘则不会抑制PC机发送数据。一般两设备间传输数据的最大时钟频率是33kHz,大多数PS2设备工作在1020kHz。推荐值在15kHz左右,也就是说,Clock(时钟脚)高、低电平的持续时间都为40s。每一数据帧包含1112个位,具体含义如表1.1.1所列。表1.1.1 数据帧格式说明一个起始位总是逻辑08个数据位(LSB)低位在前1个奇偶校验位奇校验1个停止位总是逻辑11个应答位仅用在主机对设备的通讯中 表中,如果数据位中1的个数为偶数,校验位就为1;如果数据位中1的个数为奇数,校验位就为0;总之,数据位中1的个数加上校验位中1的个数总为奇数,因此总进行奇校验。1.1.3 PS2设备和PC机的通讯PS2 设备的Clock(时钟脚)和DATA(数据脚)都是集电极开路的,平时都是高电平。当PS2设备等待发送数据时,它首先检查Clock(时钟脚)以确认其是否为高电平。如果是低电平,则认为是PC机抑制了通讯,此时它必须缓冲需要发送的数据直到重新获得总线的控制权(一般PS2键盘有16个字节的缓冲区,而PS2鼠标只有一个缓冲区仅存储最后一个要发送的数据)。如果Clock(时钟脚)为高电平,PS2设备便开始将数据发送到PC机。一般都是由PS2设备产生时钟信号。发送时一般都是按照数据帧格式顺序发送。其中数据位在Clock(时钟脚)为高电平时准备好,在Clock(时钟脚)的下降沿被PC机读入3。当时钟频率为15kHz时,从Clock(时钟脚)的上升沿到数据位转变时间至少要5。数据变化到Clock(时钟脚)下降沿的时间至少也有5,但不能大于25,这是由PS2通讯协议的时序规定的。如果时钟频率是其它值,参数的内容应稍作调整。上述讨论中传输的数据是指对特定键盘的编码或者对特定命令的编码。一般采用第二套扫描码集所规定的码值来编码。其中键盘码分为通码(make)和断码 (Break)。通码是按键接通时所发送的编码,用两位十六进制数来表示,断码通常是按键断开时所发送的编码,用四位十六进制数来表示。1.2 PS2接口的嵌入式软件编程方法1.2.1 PS2向PC机发送一个字节 数据和时钟线都是集电极开路结构(正常保持高电平)4。当键盘或鼠标等待发送数据时,它首先检查时钟以确认它是否是高电平。如果不是,那么是主机抑制了通讯,设备必须缓冲任何要发送的数据直到重新获得总线的控制权(键盘有16 字节的缓冲区,而鼠标的缓冲区仅存储最后一个要发送的数据包)。如果时钟线是高电平,设备就可以开始传送数据。 如我在上一节提及的,键盘和鼠标使用一种每帧包含11位的串行协议。这些位含义是:表1.2.1 数据帧格式一个起始位总是为08个数据位低位在前1个校验位奇校验1个停止位总是为1 每位在时钟的下降沿被主机读入,如图1.2.1所示:图1.2.1 设备到主机的通讯时序图从PS2向PC机发送一个字节可按照下面的步骤进行: (1)检测时钟线电平,如果时钟线为低,则延时50; (2)检测判断时钟信号是否为高,为高,则向下执行,为低,则转到(1);(3)检测数据线是否为高,如果为高则继续执行,如果为低,则放弃发送(此时PC机在向PS2设备发送数据,所以PS2设备要转移到接收程序处接收数据)(4)延时20(如果此时正在发送起始位,则应延时40); (5)输出起始位(0)到数据线上。这里要注意的是:在送出每一位后都要检测时钟线,以确保PC机没有抑制PS2设备,如果有则中止发送; (6)输出8个数据位到数据线上; (7)输出校验位;(8)输出停止位(1); (9)延时30(如果在发送停止位时释放时钟信号则应延时50);通过以下步骤可发送单个位: (1)准备数据位(将需要发送的数据位放到数据线上);(2)延时20; (3)把时钟线拉低;(4)延时40; (5)释放时钟线; (6)延时20。1.2.2 PS2设备从PC机接收一个字节由于PS2设备能提供串行同步时钟,因此,如果PC机发送数据,则PC机要先把时钟线和数据线置为请求发送的状态。PC机通过下拉时钟线大于100来抑制通讯,并且通过下拉数据线发出请求发送数据的信号,然后释放时钟。当PS2设备检测到需要接收的数据时,它会产生时钟信号并记录下面8个数据位和一个停止位。主机此时在时钟线变为低时准备数据到数据线,并在时钟上升沿锁存数据。而PS2设备则要配合PC机才能读到准确的数据5。其时序如图1.2.2所示:图1.2.2 主机到设备通讯时序图具体连接步骤如下: (1)等待时钟线为高电平。(2)判断数据线是否为低,为高则错误退出,否则继续执行。(3)读地址线上的数据内容,共8个bit,每读完一个位,都应检测时钟线是否被PC机拉低,如果被拉低则要中止接收。(4)读地址线上的校验位内容,1个bit。 (5)读停止位。(6)如果数据线上为0(即还是低电平),PS2设备继续产生时钟,直到接收到1且产生出错信号为止(因为停止位是1,如果PS2设备没有读到停止位,则表明此次传输出错)。 (7)输出应答位(8)检测奇偶校验位,如果校验失败,则产生错误信号以表明此次传输出现错误。 (9)延时5 ,以便PC机进行下一次传输。读数据线的步骤如下: (1)延时20; (2)把时钟线拉低 (3)延时0 (4)释放时钟线 (5)延时20(6)读数据线。下面的步骤可用于发出应答位; (1)延时15; (2)把数据线拉低; (3)延时5;(4)把时钟线拉低; (5)延时0; (6)释放时钟线; (7)延时5;(8)释放数据线。2.系统电路2.1 电路工作原理本系统电路的原理框图如图2.1.1所示.其中包括PS2键盘、中央处理器、显示模块、功放、电源等部分。图2.1.1 电路原理框图PS2键盘传输的数据遵照PS2通信协议,即每帧传输11位的串行协议,其中第一位是起始位,后面八位是通码(低位在前),然后奇偶校验位,最后是结束位。PS2接口的数据脚用来传输这11位数据,而时钟脚用来产生时钟信号。数据位在CLOCK(时钟脚)为高电平时准备好,在CLOCK(时钟脚)的下降沿被单片机机读入。单片机将键盘发回的数据放到一个缓冲区里,当按键结束后,发生内部中断来处理所按的按键。对于从键盘传输过来的数值,在128*64液晶上进行显示。按照不同音阶的频率,设置定时器初值,使功放发出该频率下的声音。2.2电路各部分元器件分析2.2.1 PS2键盘接口 本设计中采用具有六脚mini-DIN连接器的PS2键盘。这种连接器实际上只有四个脚有意义,它们分别是Clock(时钟脚)、DATA(数据脚)、+5V(电源脚)和Ground(电源地)。在PS2键盘与单片机的物理连接上只要保证这四根线一一对应就可以了。PS2键盘靠稳压电源提供+5V电源,Clock(时钟脚)连接单片机的中断输入口(本电路选用P3.2口),DATA(数据脚)连接单片机的串行输入口(即P3.0口)。当有按键按下时,PS2键盘产生时钟信号,数据在下降沿被单片机读入6。 当时钟频率为15kHz时,从Clock(时钟脚)的上升沿到数据位转变时间至少要5。数据变化到Clock(时钟脚)下降沿的时间至少也有5,但不能大于25,这是由PS2通讯协议的时序规定的。如果时钟频率是其它值,参数的内容应稍作调整。这里讨论中传输的数据是指对特定键盘的编码或者对特定命令的编码。一般采用第二套扫描码集所规定的码值来编码。其中键盘码分为通码(make)和断码 (Break)。通码是按键接通时所发送的编码,用两位十六进制数来表示,断码通常是按键断开时所发送的编码,用四位十六进制数来表示。 PS2接口协议是串行双向通信协议,其串行口有4个工作方式。l 方式0方式0为移位寄存器输入/输出方式,可外接移位寄存器,以扩展I/O口,也可接同步输入/输出设备。按方式0工作,波特率是固定的,为fosc/12。这时数据的传送,无论是输入还是输出,均通过引脚RXD(P3.0)端,移位同步脉冲由TXD(P3.1)输出。发送/接收一帧数据为8位二进制数,低位LSB在先,高位MSB在后。方式0发送:当一个数据写入发送缓冲器SBUF时,串行口即将8位数据以振荡频率的十二分之一的波特率,将数据从RXD端串行输出,TXD端输出移位同步信号,发送完时中断标志TI置“1”。方式0接收:当串行口定义为方式0并置“1”REN后,便启动串行口以振荡频率的十二分之一的波特率接收数据,RXD为数据输入端,TXD为同步移位信号输出端,当接收器接收到8位数据时,置“1”中断标志RI。l 方式1串行口定义为方式1时,传送一帧数据为10位,其中1位起始位、8位数据位(先低位后高位)、1位停止位。 方式1发送:方式1发送时,SEND和DATA都是低电平,把起始位输出到TXD,一位时间后,DATA变为高电平,数据在移位脉冲的作用下有TXD断输出。发送一帧信息为10位,1位起始位、8位数据位、1位停止位。CPU执行一条写入发送数据缓冲SBUF的指令,数据字节写入SBUF后,便开启串行口发送器发送,当发送完数据后,中断标志TI置“1”。 方式1接收:方式1接收时,数据从RXD端输入。在REN置“1”后,就允许接收器接收。接收器以波特率16倍的速率采样RXD端的电平。当采样RXD引脚上“1”到“0”的跳变时启动接收器接收并复位内部的16分频计数器以便实现同步。计数器的16个状态把一位的时间分成16等份,在每位时间的第7、8和9计数状态,位检测器采样RXD的值,接收的值是3次取样中取至少2次相同的值(用3取2举手表决)。以排除噪声干扰。若起始位接收到的值不是“0”,则起始位无效,复位接收电路。在检测到起始位有效时,则移入输入移位寄存器,开始接收本帧其余数据信息。当RI=0,同时接收到停止位为“1”(或SM2=2)时,停止位进入RB8,置“1”中断标志RI。若以上两个条件任一条件不满足,所有接收信息将丢失,因此中断标志RI必须在中断服务程序中有用户清“0”。通常串行口以方式1工作时,SM2置为“0”。l 方式2串行口定义为方式2时,串行口被定义为9位异步通信接口。传送一帧信息位11位,其中1位起始位、8位数据位(先低位后高位)、1位附加的可控程为“1”或“0”的第九位数据位、1位停止位。方式2发送:在方式2发送时,数据由TXD端输出。发送一帧信息为11位,附加的第九位数据是SCON中的TB8,可由软件置位或清零。CPU执行一条写入发送缓冲器指令,就启动发送器发送,发送完一帧信息,置“1”TI中断标志。方式2接收:在方式2接收时,数据由RXD端输入,REN被置“1”以后,接收器开始以波特率16倍的速率采样RXD电平,检测到RXD端由高到低的负跳变时,启动接收器接收,复位内部16位分频计数器,以实现同步。计数器的16个状态把一位时间分成16等份,在每位时间的第7、8、9个状态,位检测采样RXD的值,若接收到的值不是“0”,则起始位无效并重复接收电路,当采样到RXD端从“1”到“0”跳变时,确认起始位有效后,则开始接收本帧其余信息。接受完一帧信息后,在RI=0,SM2=0时,或接收到的第9位数据为“1”时,8位数据装入接收缓冲器,第9位数据装入SCON中的RB8,并置“1”中断标志RI,若不满足上述两个条件,接收到的信息将丢失。l 方式3串行口被定义为方式3时,为波特率可变的9位异步通信方式。除了波特率外,方式2和方式3类同。对于本系统,当按键结束后,发生内部中断来处理所按的按键。其程序如下:void int0() interrupt 0 using 1 /接受键盘发来的数据dat=dat1; /接收数据 低-高if(PS2_DATA=1) dat|=0x80; count+; if(count=10) tempi=dat; delay3s(); Xflag=1; EX0=0; 2.2.2 液晶显示 SVM12864液晶显示模块是点阵图形液晶显示模块8。这种模块也是点阵模块的一种,其特点是点阵象素连续排列,行和列在排布中均没有空缺,因此可以显示连续、完整的图象。由于它是由X-Y矩阵象素构成的,所以除了显示图形之外,也可以显示字符。另外,SVM12864可与CPU直接接口,具有8位标准数据总线、6条控制线和电源线。液晶的特性9 逻辑工作电压:4.5-5.5V 电源地(GND):0V LCD驱动电压:0-10V 工作温度:-20-75 保持温度:-55-125接口说明引脚符号电平说明1VSS0V逻辑电源地2VDD50V逻辑电源3V0 应用时应在VEE与V0之间加一电阻(2K)4D/IH/L数据指令选择:D/I=H表示DB0DB7为显示数据;D/I=L表示DB0DB7为指令数据。5R/WH/L读/写选择:R/W=H且E=H数据读到DB0DB7;R/W=L且E=H-LDB0DB7的数据写到IR、DR。6EH,H/L读写使能,高电平有效,下降沿锁定数据。714DB0DB7H/L数据总线15CS1H/L片选信号CS1=H选左64列16CS2H/L片选信号CS2=H选右64列17RETL复位信号,低电平有效18VEEACLCD驱动电压(-10V)1920BLAC LCD背景光电源表2.2.1 接口说明表 受控信号状态组合功能表 D/I R/WE 功能 LHH读状态 HHH读显示数据LLH-L写指令HLH-L写显示数据表2.2.2 受控信号状态表指令描述1.显示开/关设置R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0 L L L L H H H H H1/0功能:设置屏幕显示开关。DB0=1开显示指令为3FH;DB0=0关显示指令3EH2.设置显示起始行:(0C0H-0FFH)R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0 L L H H A5 A4 A3 A2 A1 A0功能:设置显示起始行,该起始行是在0-63范围内任意一行。3.设置页地址:(0B8H-0BFH)R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0 l L H L H H H A5 A4 A3功能:设置读写操作所进行的页。页地址就是DDRAM的行地址,页地址存储在X地址计数器中,A2-A0可表示8页。DDRAM地址映象表:Y地址 0 1 2 3 461 62 63DB0TO PAGE0DB7DB0TO PAGE1DB7 DB0TO PAGE7DB7 表2.2.3 地址映象表4.设置列地址:(40H-7FH)R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0 L L L H A5 A4 A3 A2 A1 A1功能:DDRAM的列地址存储在Y地址计数器中。5.状态检测:R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0 H L BF LON/OFFRST L L L L 功能:BF=1表示系统忙,BF=0为空闲; RST=1系统处于复位状态;ON/OFF=0表示显示关闭,ON/OFF=1显示打开6.写显示数据:R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0 L H D7 D6 D5 D4 D3 D2 D1 D0功能:写数据到DDRAM(存储图象数据的),写指令执行后Y方向地址计数器自动加1。DB0-DB7位数据为1表示显示,数据为0表示不显示。7读显示数据:R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0 L H D7 D6 D5 D4 D3 D2 D1 D0 接口时序1. 写操作时序图2.2.1 写操作时序图2. 读操作时序 图2.2.2 读操作时序字和数字在液晶屏上的显示 在本次设计中我们只是简单的用液晶显示器来显示数据和汉字,但无论是演示什么,都有赖于显示模块的显示逻辑结构。所以我们有必要了解SVM12864模块的显示逻辑结构10。我们知道,对于要显示的数据,只要送往SVM12864模块内的DDRAM内,业经就会按照其内部的时序在指定的位置新兴显示。但是要想显示有意义的内容,我们必须了解SVM12864的DDRAM与液晶显示屏的对应关系,这样我们才能在液晶上显示我们所需的内容。DDRAM与液晶显示屏的对应关系在前面已经知道了(表2.2.4).如表所示,SVM12864模块将12864大小的屏幕分成了8页,并且在左屏和右屏都有64列。这样对于单屏来说,每页显示区域大小为648,显示的内容大小为64个字节。并且,我们可以从图上看到每页显示区域内按照从上到下看每列数据是先低位再高位。这就决定了我们的显示数据排列顺序。对于1616点阵汉字的显示,我们是按照“区位码“方式,先将液晶屏氛围若干区,用区码定位显示位置,用位码定位内存汉字字码。SVM12864的液晶屏是12864的点阵型,而每个1616的汉字占两页、16列,这样以来,在左(右)屏的每一行可显示4个字,共4行,所以每一屏可显示16个汉字。这样我们可以给它们进行编号,如表2.2.4.3所示,以便通过号码进行汉字显示定位。然后把这些编码放在寄存器X Y中。 2.2.3蜂鸣器发声 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型11。蜂鸣器与家用电器上面的喇叭在用法上也有相似的地方,通常工作电流比较大,电路上的TTL电平基本上驱动不了蜂鸣器,需要增加一个电流放大的电路才可以,这一点与家用电器中的功放有相似之处。 蜂鸣器的正极性的一端联接到5V电源上面,另一端联接到三极管的集电极,三极管的基级由单片机的P1.5管脚通过一个与非门来控制,当P1.5管脚为低时,与非门输出高电平,三极管导通,这样蜂鸣器的电流形成回路,发出声音。当P1.5管脚为高时,与非门输出低电平,三极管截止,蜂鸣器不发出声音。在这里与非门是作为非门来用的,这里采用一个非门的作用是为了防止系统上电时峰鸣器发出声音,以为系统复位以后,I/O口输出的是高电平。用户可以通过程序控制P1.5管脚的置低和置高来使蜂鸣器发出声音和关闭。蜂鸣器的声音大小及音调可以通过调整P1.5管脚的置高时间及输出的波形进行控制,这一点可以在调试程序的时候来试验。图2.2.3 蜂鸣器电路图 本设计中,蜂鸣器发声和关闭采用控制定时器和管脚置高置低。对于不同音阶对应不同频率,如下所示:unsigned char code freq36*2=0xA9,0xEF,/00220HZ ,1 /00x93,0xF0,/00233HZ ,1#0x73,0xF1,/00247HZ ,20x49,0xF2,/00262HZ ,2#0x07,0xF3,/00277HZ ,30xC8,0xF3,/00294HZ ,40x73,0xF4,/00311HZ ,4#0x1E,0xF5,/00330HZ ,5 0xB6,0xF5,/00349HZ ,5#0x4C,0xF6,/00370HZ ,60xD7,0xF6,/00392HZ ,6#0x5A,0xF7,/00415HZ ,7 0xD8,0xF7,/00440HZ 1 /120x4D,0xF8,/00466HZ 1# /130xBD,0xF8,/00494HZ 2 /140x24,0xF9,/00523HZ 2# /150x87,0xF9,/00554HZ 3 /160xE4,0xF9,/00587HZ 4 /170x3D,0xFA,/00622HZ 4# /180x90,0xFA,/00659HZ 5 /190xDE,0xFA,/00698HZ 5# /200x29,0xFB,/00740HZ 6 /210x6F,0xFB,/00784HZ 6# /220xB1,0xFB,/00831HZ 7 /230xEF,0xFB,/00880HZ 10x2A,0xFC,/00932HZ 1#0x62,0xFC,/00988HZ 20x95,0xFC,/01046HZ 2#0xC7,0xFC,/01109HZ 30xF6,0xFC,/01175HZ 40x22,0xFD,/01244HZ 4#0x4B,0xFD,/01318HZ 50x73,0xFD,/01397HZ 5#0x98,0xFD,/01480HZ 60xBB,0xFD,/01568HZ 6#0xDC,0xFD,/01661HZ 7 /35;产生唱歌频率程序:void timer0() interrupt 1 using 1/产生唱歌频率 TL0=tl0_f;TH0=th0_f; /调入预定时值 BEEP=BEEP; /取反音乐输出IO2.2.4 8051单片机8051系列单片机大多都采用40条引脚双列直插式器件,图2.2.4是40引脚配置图,引脚除+5V(Vcc40脚)和电源地(Vss20脚)外,按其功能主要由以下三大部分组成12。时钟电路XTAL1(19脚)芯片内部震荡电路(单级反相放大器)输入端。XTAL2(18脚)芯片内部震荡电路(单级反相放大器)输出端。8051的时钟可由内部方式或外部方式产生,这里我们选择使用内时钟方式。利用芯片内部振荡电路,在XTAL1,XTAL2的引脚上外接定时元件,内部振荡器便能产生自激振荡,用示波器便可以观察到XTAL2输出的正弦波,定时元件可以采用石英晶体和电容组成的并联谐振电路,其连接方法如图2.2.5所示。警惕可以在1.2MHz12MHz之间任选,电容可以在2060PF之间选择,通常选为30PF左右,电容C1、C2的大小对振荡频率有微小的影响,可起频率微调作用。在设计印制板的时候,晶体和电容应尽可能与单片机芯片靠近,以减少寄生电容,保证振荡器可靠工作,一般采用瓷片电容。 图2.2.4引脚配置 图2.2.5内时钟方式控制信号 1、RST/VPD(9脚)复位信号时钟电路工作后,在此引脚上出现两个机器周期的高电平,芯片内部进行初始复位,P0口P3口输出高电平,初值07H写入堆栈指针SP、清0程序计数器PC和其余特殊功能寄存器。但初始复位不影响片内RAM状态,只要该引脚保持高电平,MCS-51将循环复位。RST/VPD从高电平变成低电平时,单片机将从0号单元开始执行程序。另外该引脚还具有复用功能。只要将VPD接+5V备用电源,一旦Vcc电位突然下降或断电,能保护片内RAM中的信息不会丢失,复电后能正常工作。2、(30脚)地址锁存信号当访问外部存储器时,P0口输出的低八位地址由ALE输出的控制信号锁存到片外地址锁存器,P0口输出地址低八位后,又能与片外存储器之间传送信息。换言之,由于P0口上的信息究竟是地址还是数据完全由ALE来定义,ALE高电平期间,P0口上一般出现地址信息,在ALE下降沿时,将P0口上地址信息锁存到片外地址锁存器,在ALE低电平期间P0口上一般出现指令和数据信息。平时不访问片外存储器时,该端也以六分之一的时钟频率固定输出正脉冲。因而也可作系统中其它芯片的时钟源。在本测量电路中,即利用引脚为ADC0809转换器提供了时钟源。3、/VPP(31脚)内部和外部程序存储器选择信号对于8051来说,内部有4K字节的程序存储器,当为高时,CPU访问程序存储器有两种情况:地址小于4K时访问内部程序存储器。地址大于4K时访问外部程序存储器。若接地,则不使用内部程序存储器,不管地址大小,取指时总是访问外部程序存储器。本电路中的31脚加+5V的高电平。I/O接口8051单片机有4个双向8位I/O口P0P3,P3口为三态双向口,P1P3为准双向口(用作输入时,口锁存器必须先写“1”)。 P3口为双功能口13。 P3口作第二功能口使用,即系统具有控制功能的控制线。P3口的第二功能定义如表2.2.5所示。 表2.2.5 P3口第二功能定义 口线 第二功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 (外部中断0输入) P3.3 (外部中断1输入) P3.4T0(外部计数器0触发输入) P3.5T1(外部计数器1触发输入) P3.6(外部数据存储器写选通) P3.7(外部数据存储器读选通)在 本设计测量电路中,使用的是外部中断引脚,它同PS2键盘接口的时钟脚连接,当有按键按下时,产生外部中断。RXD和PS2键盘的数据脚连接,接收来自键盘的数据。P3.6、P3.7、P2.7通过一个与非门74LS00接到液晶显示模块,用来控制液晶的使能端。2.3 电路原理图图2.3.1 电路原理图3程序3.1 KEIL 51KEIL 51软件是众多单片机应用开发的优秀软件之一,它集编辑、便宜、仿真于一体,支持汇编、PLM语言和C语言的程序设计,界面友好,易学易用。还有就是,KEIL 51软件有一个好处是,KEIL 51会自动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。3.2 C语言的特点烧入单片机的程序是C语言程序14。C语言是一种通用的计算机程序设计语言,在国际上十分流行,它既可以用来编写计算机的系统程序,也可用来编写一般的应用程序。以前计算机的系统软件主要是用汇编语言编写的,对于单片机应用系统来说更是如此。由于汇编语言程序的可读性和可移植性都较差,采用汇编语言编写单片

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论