ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:415.86KB ,
资源ID:3303465      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3303465.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(广西科技大学优秀课程设计《 基于单片机的PS2键盘解码器设计》.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

广西科技大学优秀课程设计《 基于单片机的PS2键盘解码器设计》.docx

1、广西科技大学优秀课程设计 基于单片机的PS2键盘解码器设计 单片机技术 课程设计任务书课题名称 基于单片机的PS2键盘解码器设计 系 别 理学院 专 业 _电子信息科学与技术_ 班 级 _ 学 号 _ 姓 名 _ 指导教师 刘青正_ 2012 年 6 月 28 日项目名称:基于单片机的PS2键盘解码器设计项目类型硬件设计要求设计结果+设计说明书承担学生姓名学号专业电子信息科学与技术班级项目设计要求:1、主要研究内容和功能要求:研究内容:单片机控制技术+PS2键盘原理+显示输出方法功能要求:1)键盘按键的有效显示(可采用数码管或LCD屏,自主选择);2)多键按下识别与连续按键的识别;3)组合按键

2、的识别;4)完成相关电路的原理图绘制。2、参考资料(部分,仅供参考、借鉴):1)求实科技. 单片机典型模块设计实例导航. 北京:人民邮电出版社,2004.52)任致程,凌红武. 电子制作工艺技巧. 北京:人民邮电出版社,19993)王彦朋.大学生电子设计与应用.北京:中国电力出版社.2007.34)胡汉才. 单片机原理及其接口技术.北京:清华大学出版社,20043、阶段成果自查:0-0阶段:第18 周(6月11日6月17日) 理论研究、电路资料查找、焊接及测试。2-1阶段:第19 周(6月18日6月24日) 硬件电路分析与程序设计、编程、调试。2-2阶段:第20 周(6月25日6月29日) 完

3、成调试,撰写课程设计说明书,验收。项目设计进度具体要求:2012年6月8日2012年6月10日:确定分组、选择题目、领用器件;2012年6月11日2012年6月13日:资料查找、理论学习、原理分析、思路构建;2012年6月14日2012年6月17日:电路焊接与测试;2012年6月18日2012年6月22日:硬件设计、软件设计;2012年6月23日2012年6月24日:系统联调、错误查找,进一步修改、完善;2012年6月25日2012年6月28日:撰写设计说明书;2012年6月28日下午:电科091班学生,验收、上交设计说明书及相关文档;2012年6月29日上午:电科092班学生,验收、上交设计

4、说明书及相关文档;2012年6月29日下午:电科093班学生,验收、上交设计说明书及相关文档;项目验收方式与考核成绩评定:1、在规定的时间统一进行验收。(检查硬件、检查成果、检查设计说明书,问题回答)2、考核成绩评定由成果验收(占30%)+设计说明书质量(60%)。3、成绩由百分制转换为五等级。例(10090)为优秀,以此类推为良好、中等、及格、不及格。项目开始时间:2012-6-11项目结束时间:2012-6-29任务下达:刘青正目 录一 理论部分 3 1 课题要求与内容 3 2 PS/2键盘原理 3二 硬件部分 4 1 单片机模块 4 2 LCD显示模块 6三 软件部分 6 1 编程思路

5、6 2 电路原理图 7 3 软件仿真 7 4 硬件测试 7四 课程设计实践体会 7参考文献 8附录 8一 理论部分PS/2键盘解码1 课题要求与内容在单片机系统中,经常使用的键盘都是专用键盘。此类键盘为单独设计制作的,成本高、使用硬件连接线多,且可靠性不高,这一状况在那些要求键盘按键较多的应用系统中更为突出。与此相比,在PC系统中广泛使用PS/2键盘具有价格低、通用可靠,且使用连接线少(仅使用2根信号线)的特点,并可满足多种系统的要求。因此在单片机系统中应用PS/2键盘是一种很好的选择。研究内容:单片机控制技术+PS2键盘原理+显示输出方法功能要求:1)键盘按键的有效显示(可采用数码管或LCD

6、屏,自主选择);2)多键按下识别与连续按键的识别;3)组合按键的识别;4)完成相关电路的原理图绘制。2 PS/2键盘原理PS/2协议:目前,PC机广泛采用的PS/2接口为mini-DIN 6pin的连接器,如图1所示: PS/2设备有主从之分,主设备采用Female插座,从设备采用Male插头。现在广泛使用的PS/2键盘鼠标均在从设备方式下工作。PS/2接口的时钟与数据线都是集电极开路结构,必须外接上拉电阻(一般上拉电阻设置在主设备中)。主从设备之间数据通信采用双向同步串行方式传输,时钟信号由从设备产生。2.1 从设备到主设备的通信 当从设备向主设备发送数据时,首先检查时钟线,以确认时钟线是否

7、为高电平。如果是高电平,从设备就可以开始传输数据;反之,从设备要等待获得总线的控制权,才能开始传输数据。传输的每一帧由11位组成,发送时序及每一位的含义如图2所示: 每一帧数据中开始位总是为0,数据校验采用奇校验方式,停止位始终为1。从设备到主设备通信时,从设备总是在时钟线为高时改变数据线状态,主设备在时钟下降沿读人数据线状态。2.2 主设备到从设备的通信 主设备与从设备进行通信时,主设备首先将时钟线和数据线设置为“请求发送”状态,具体方式为:首先下拉时钟线至少100us抑制通信,然后下拉数据线“请求发送”,最后释放时钟线。在此过程中,从设备在不超过10us的间隔内必须检查这个状态,当设备检测

8、到这个状态时,它将开始产生时钟信号。此时数据传输的每一帧由12位构成,其时序和每一位含义如图3所示: 与从设备到主设备通信相比,其每帧数据多了一个ACK位。这是从设备应答接收到字节的应答位,由从设备通过拉低数据线产生,应答位ACK总是为0。主设备到从设备通信过程中,主设备总是在时钟线为低电平时改变数据线的状态,从设备在时钟上升沿读人数据线状态。2.3 PS/2键盘的编码 目前,PC机使用的PS/2键盘都默认采用第2套扫描码集。扫描码有两种不同的类型:“通码(make code)”和“断码(break code)”。当一个键被按下或持续按住时,键盘会将该键的通码发送给主机;而当一个键被释放时,键

9、盘会将该键的断码发送给主机。根据键盘按键扫描码的不同,可将按键分为三类:第一类按键 通码为一个字节,断码为0xF0+通码形式。如A键,其通码为0x1C;断码为0xF0 0x1C。第二类按键 通码为两字节0xE0+0xXX形式,断码为0xE0+0xF0+0xXX形式.如Right Ctrl键,其通码为0xE0 0x14;断码为0xE0 0xF0 0x14。第三类按键 有两个:Print Screen键,其通码为0xE0 0x12 0xE0 0x7C,断码为0xE0 0xF0 0x7C 0xE0 0xF0 0x12;Pause键,其通码为0xE1 0x14 0x77 0xE1 0xF0 0xl4

10、0xF0 0x77,断码为空。 组合按键扫描码的发送是按照按键发生的次序,如按下面顺序按左Shift十A键:按下左Shift键;按下A键;释放A键;释放左Shift键。那么计算机上接收到的一串数据为:0x12 0x1C 0xF0 0x1C 0xF0 0x12。二 硬件部分1 单片机模块STC12C5A16S2单片机是一款基于8位单片机处理芯片STC89C52RC的系统。其功能强大,可以实现单片机开发的多种要求,学习、开发者可以根据需要选配多种常用模块,达到实验及教学的目的。 89C51单片机学习板功能强大,具有报警,跑马灯、串行通信(max232)、段码液晶(msm0801LCD)和字符液晶显

11、示(LCD1602)、电机控制(L298)、A/D转换(TLC2543)、D/A转换(TLC5615)、温度采集(DS18B20)、数字信号合成(AD9851)、实时时钟电路(DS1302)、420mA输出、PWM输出(UC3842)、红外检测(KSM-603LM)控制等十七种功能,供学习者学习开发使用。89C51-III单片机学习板采用的芯片都是常用芯片,使学习者对常用电子产品进一步学习理解。主CPU电路选用STC89C52RC系列单片机,STC89C52RC是采用8051核的ISP(In System Programming)在系统可编程芯片,最高工作时钟频率为80MHz,片内含8K By

12、tes的可反复擦写1000次的Flash只读程序存储器,器件兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,具有在系统可编程(ISP)特性,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。STC89C52RC系列单片机是单时钟/ 机器周期(1T)的兼容8051 内核单片机,是高速/ 低功耗的新一代8051 单片机,全新的流水线/ 精简指令集结构,内部集成MAX810 专用复位电路。STC12C5A16S2特点: (1)增强型1T 流水线/ 精简指令集结构8051 CPU (2)工作电压:

13、3.4V-5.5V (5V 单片机)/ 2.0V-3.8V (3V 单片机 (3)工作频率范围:0 -35 MHz,相当于普通8051 的0420MHz.实际工作频率可达48MHz. (4)用户应用程序空间12K / 10K / 8K / 6K / 4K / 2K 字节 (5)片上集成512 字节RAM (6)通用I/O 口(27/23个),复位后为:准双向口/ 弱上拉(普通8051 传统I/O 口) 可设置成四种模式:准双向口/ 弱上拉,推挽/ 强上拉,仅为输入/ 高阻,开漏 每个I/O 口驱动能力均可达到20mA,但整个芯片最大不得超过55mA (7)ISP(在系统可编程)/IAP(在应用

14、可编程),无需专用编程器 可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片 (8)EEPROM 功能 (9)看门狗 (10)内部集成MAX810 专用复位电路(外部晶体20M 以下时,可省外部复位电路) (11)时钟源:外部高精度晶体/ 时钟,内部R/C 振荡器。用户在下载用户程序时,可选择是使用内部R/C 振荡器还是外部晶体/ 时钟。常温下内部R/C 振荡器频率为:5.2MHz 6.8MHz。精度要求不高时,可选择使用内部时钟,因为有温漂,请选4MHz 8MHz (12)有2个16 位定时器/ 计数器 (13)外部中断2 路,下降沿中断或低电平触发中断,Power Down

15、 模式可由外部中断低电平触发中断方式唤醒 (14)PWM( 4 路)/ P C A(可编程计数器阵列),也可用来再实现4个定时器或4个外部中断(上升沿中断/ 下降沿中断均可支持) (15)STC89Cc516AD具有ADC功能。10 位精度ADC,共8 路 (16)通用异步串行口(UART) (17)SPI 同步通信口,主模式/ 从模式 (18)工作温度范围:0 -75/ -40 -+85 2 LCD显示模块显示模块使用1602液晶。1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一

16、个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用。1602内部集成了160个不同的点阵字符图形,其代码为该字符的ASCII码。1602采用了8位并行数据传输,其引脚功能如下表:符号引脚说明符号引脚说明GND电源地VCC电源正V0接电位器调整对比度RS数据/指令寄存器选择(H/L)RW读/写信号线(H/L)E使能端D0Data I/OD1Data I/OD2Data I/OD3Data I/OD4Data I/OD5Data I/OD6Data I/OD7Data I/OBLA背光电源正极BLK背光电源负极三 软件部分1 编程思路 编程流程图:程序参见附录。2 电路原

17、理图电路原理图参见附录3 软件仿真由于仿真软件没有键盘器件文件,故无法仿真,只能烧写程序进行测试。4 硬件测试经过硬件测试,发现程序正常运行。四 课程设计实践体会通过这两个星期的设计实践,使我对单片机的构造以及用法有了深入的了解,掌握到了一些课本上没有的知识。具体的体会和收获如下:1、对课上所学知识有了进一步的理解,同时加深了基础知识的印象,对今后的学习和工作有了很大的帮助。2、熟悉了各种电子器件的外观以及电器特性。3、初步了解并掌握了电子器件的焊接方法,达到了练手的目的。4、对于单片机在各个方面的应用有了更加深入的了解,对于单片机的扩展应用印象深刻,深感单片机的小而强大。5、对于专业的软件也

18、有了充分的理解,当然也掌握了它们的用法。6、同时也加强了自身的团队合作能力。参考文献:1 求实科技. 单片机典型模块设计实例导航.北京:人民邮电出版社,2004.52 任致程. 凌红武. 电子制作工艺技巧.北京:人民邮电出版社,19993 王彦朋. 大学生电子设计与应用.北京:中国电力出版社,2007.34 胡汉才. 单片机原理及其接口技术.北京:清华大学出版社,2004附录源程序代码:;安装1602液晶,烧写程序后,把键盘;插入键盘接口,按键后液晶有显示PS2_CLK BIT P3.2PS2_DATA BIT P3.4LCD_RS BIT P2.1 ;LCD控制端口LCD_RW BIT P2

19、.2LCD_EN BIT P2.3LCD_X EQU 27H ;LCD地址变量KEY_DATA EQU 30HEXT0_NUM EQU 31HBEEP BIT P3.3RESET BIT 20H.0 ;20H作为程序状态控制字H_SCAN BIT 20H.1 ;行扫描标志SHIFT BIT 20H.3 ;SHIFT标志BREAK_C BIT 20H.4 ;断码标志;- ORG 0000H JMP MAIN ORG 0003H JMP EXT0 ORG 0030H;-MAIN: MOV SP,#60H MOV P0,#0FFH MOV P1,#0FFH MOV P2,#0FFH MOV P3,#

20、0FFH ACALL INIT_LCD ACALL SET_LCD1 ACALL SET_LCD2 MOV R5,#100 ;延时2S ACALL DELAY MOV A,#01H ACALL WCOM ;清屏 MOV 20H,#00H MOV LCD_X,#00H MOV R1,#00H MOV R2,#00H MOV KEY_DATA,#00H CLR IT0 ;外部中断0为低电平触发 SETB EA ;开总中断 SETB EX0 ;开外部中断0DISP: JB RESET,MAIN ;程序热复位 JMP DISP ;-;根据PS2的键值来查找其代码,并取得顺序码。;然后再根据顺序码来查找

21、ASCII码。;入口:;A PS2的键值;出口:;A 键值的ASCII码;R3存放顺序码;-PS2KEY_D: MOV B,A MOV DPTR,#TABLE_D MOV R3,#0FFHKEY_IN1: INC R3 MOV A,R3 MOVC A,A+DPTR CJNE A,B,KEY_IN2 MOV A,R3 ;找到,取顺序码 MOV DPTR,#TABLE_D_ASC ;根据顺序码来查找ASCII码 MOVC A,A+DPTR RETKEY_IN2: CJNE A,#0FFH,KEY_IN1 ;末完,继续查 RET ;0FFH为结束码;+PS2KEY_U: MOV B,A MOV DP

22、TR,#TABLE_D MOV R3,#0FFHKEY_IN3: INC R3 MOV A,R3 MOVC A,A+DPTR CJNE A,B,KEY_IN4 MOV A,R3 ;找到,取顺序码 MOV DPTR,#TABLE_U_ASC ;根据顺序码来查找ASCII码 MOVC A,A+DPTR RETKEY_IN4: CJNE A,#0FFH,KEY_IN3 ;末完,继续查 RET ;0FFH为结束码;-;外部中断子程序;R1中断次数计数;-EXT0: CJNE R1,#00H,IN_LOOP ;跳过第一位启动位 JMP IN_LOOP3IN_LOOP: CJNE R1,#09H,IN_L

23、OOP1 ;2-9位为数据IN_LOOP1: JNC IN_LOOP3 ;大于或等于9,跳转。 RR A JB PS2_DATA,IN_LOOP2 ;判数据是“1”,还是“0” ANL A,#7FH ;是“0”最高置位为0 JMP IN_LOOP3IN_LOOP2: ORL A,#80H ;是“1”最高置位为1IN_LOOP3: INC R1 ;中断计数 JNB PS2_CLK,$ ;等待PS2_CLK变高IN_LOOP4: CJNE R1,#0BH,IN_LOOP5 ;一桢数据是否读完?IN_LOOP5: JNC IN_LOOP6 ;大于或等于11,跳转。 JMP EXT0_ENDIN_LO

24、OP6: CJNE A,#0F0H,IN_LOOP6E ;断码是否开始 SETB BREAK_C ;置断码标志 MOV R1,#00H JMP EXT0_ENDIN_LOOP6E: CJNE A,#66H,IN_LOOP6A ;Back Space键功能 JB BREAK_C,IN_LOOP6F MOV R1,#00H MOV R4,LCD_X CJNE R4,#00H,IN_LOOP6G ;判是否到显示起始位 JMP EXT0_ENDIN_LOOP6G: DEC LCD_X ;删除前一位数 MOV A,#20H ACALL CONV1 ;有INC LCD_X指令 DEC LCD_X ;所以要

25、再减一次 MOV A,#10H ;光标左移一格 ACALL WCOM JMP EXT0_ENDIN_LOOP6F: CLR BREAK_C MOV R1,#00H JMP EXT0_ENDIN_LOOP6A: CJNE A,#12H,IN_LOOP6C ;左SHIFT JB BREAK_C,IN_LOOP6B MOV R1,#00H SETB SHIFT ;置SHIFT标志 JMP EXT0_ENDIN_LOOP6B: CLR SHIFT CLR BREAK_C MOV R1,#00H JMP EXT0_ENDIN_LOOP6C: CJNE A,#59H,IN_LOOP7 ;右SHIFT JB

26、 BREAK_C,IN_LOOP6D MOV R1,#00H SETB SHIFT JMP EXT0_ENDIN_LOOP6D: CLR SHIFT CLR BREAK_C MOV R1,#00H JMP EXT0_ENDIN_LOOP7: CJNE A,#71H,IN_LOOP8 ;DEL键功能,清屏。 JB BREAK_C,IN_LOOP7A MOV R1,#00H MOV A,#01H ACALL WCOM MOV 20H,#00H ;清所有的标志 MOV LCD_X,#00H JMP EXT0_ENDIN_LOOP7A: CLR BREAK_C MOV R1,#00H JMP EXT0_ENDIN_LOOP8: CJNE A,#5AH,IN_LOOP9 ;ENTER键功能,换行。 JB BREAK_C,IN_LOOP8C MOV R1,#00H CPL H_SCAN ;换行取反 JNB H_SCAN,IN_LOOP8A MOV A,#0C0H

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1