![44矩阵键盘成功调试龚[11111]_第1页](http://file4.renrendoc.com/view/1e5e5e219d718edab113720b897d05bb/1e5e5e219d718edab113720b897d05bb1.gif)
![44矩阵键盘成功调试龚[11111]_第2页](http://file4.renrendoc.com/view/1e5e5e219d718edab113720b897d05bb/1e5e5e219d718edab113720b897d05bb2.gif)
![44矩阵键盘成功调试龚[11111]_第3页](http://file4.renrendoc.com/view/1e5e5e219d718edab113720b897d05bb/1e5e5e219d718edab113720b897d05bb3.gif)
![44矩阵键盘成功调试龚[11111]_第4页](http://file4.renrendoc.com/view/1e5e5e219d718edab113720b897d05bb/1e5e5e219d718edab113720b897d05bb4.gif)
![44矩阵键盘成功调试龚[11111]_第5页](http://file4.renrendoc.com/view/1e5e5e219d718edab113720b897d05bb/1e5e5e219d718edab113720b897d05bb5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘 要单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、开展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。单片机系统的开发过程中,程序设计语言的选择尤为重要。C51提供高效的代码,结构化的编程和丰富的操作符,多被采用。C51是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能,而且可以直接实现对硬件的
2、控制。本课程设计以AT89S51芯片为核心,程序设计采用汇编语言,辅以必要的电路,并运用proteus软件设计了4*4矩阵键盘仿真。目 录前 言 第一章 单片机的概述单片微型计算机single chip microcomputer简称单片机,又称微控制器micro controller unit或嵌入式控制器embedded controller。它将计算机的根本部件微型化,使之集成在一块芯片上的微机。片内含有CPU、ROM、RAM、并行I/O、串行I/O、定时器/计数器、中断控制、系统时钟及系统总线。单片机有着体积小、功耗低、功能强、性能价格比高、易于推广应用等显著优点,在自动化装置、智能化
3、仪器仪表、过程控制和家用电器等许多领域得到日益广泛的应用。用C51进行单片机程序设计是单片机开发与应用的必然趋势。采用C51可以很容易的进行单片机的程序移植工作,有利于产品中的单片机的重新选型。随着国内单片机开发工具研制水平的提高,现在的单片机仿真器普遍支持C51程序的调试,为单片机编程使用C51提供了便利的条件。图2-10:源程序的编译第三章 系统总体设计3.1系统原理 键盘为4*4矩阵式连接,一共有16个按键。 工作原理为:P1端的低四位为列,高四位行。所先置低四位为低,高四位为高,当有按键按下时高四位就会有某位被拉低。只要判断高四位不为全高就说明有按键按下。判断有按键按下后就要判断是某位
4、按下的,方法为,选将高四位的某一位置低。判断低四位是否有低电平出现。依次对高四位的每位置低并判断低四位出现的低电平。如高四位某位置低后低四某也有出现低电平。这样就能判断出低四位与高四位相连的位某位按键被按下了。通过定义好的编码就可以查出是某个按键被按下了,程序将按键值通过查表并发送到LED上显示。 3.2电路组成键盘局部键盘是一组按键的集合,它是最常用的单片机输入设备,操作人员可以通过键盘输入数据或命令,实现简单的人机通讯。键是一种常开型按钮开关,平时常态键的两个触点处于断开状态,按下键时它们才闭合短路。键盘分编码键盘和非编码键盘,闭合键的识别由专用的硬件译码实现,并能产生键编号或键值的称为编
5、码键盘,如BCD码键盘、ASCII码键盘等;而缺少这种键盘编码电路要靠自编软件识别的称为非编码键盘。在单片机组成的电路系统及智能化仪器中,用得更多的是非编码键盘。判别键值方法:我们选用的44键盘,使用扫描法扫描键值。过程如下: 判别有无键按下。由单片机I/O口向键盘送输出扫描字,然后读入输入行线状态来判断。其方法是:向列线输出全扫描字00H,即把全部列线置为低电平,然后将行线的电平状态读入累加器A中。如果有按键按下,总会有一根行线被拉至低电平,从而使行输入不全为“1”。判断键盘中哪一个键按下。由列线逐列置低电平后,检查行输入状态。其方法是:依次给列线送低电平,然后查所有行线状态,如果全为“1”
6、,那么所按下之键不在此列。如果不全为“1”,那么所按下之键必在此列,而且是在与低电平行线相交的交点上的那个键。 确定键盘上每个键的键值。键值赋值的最直接方法是将行、列线按二进制顺序排列,当某一键按下时,键盘扫描程序执行到该列置“0电平,读出各行状态为非全“1状态,这时的行、列数据组合成键值 键盘与单片机接口。矩阵式键盘适用于按键数量较多的场合,它由行线和列线组成,按键位于行、列的交叉点上。一个4*4的行、列结构可以构成一个有16个按键的键盘。 LED显示单片机应用系统中使用的显示器主要有发光二极管显示器,简称LEDLight Emitting Diode,近几年也有配置CRT显示器的。而目前在
7、单片机系统中,通常用LED数码显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。 单片机中通常用七段LED构成字型“8,另外,还有一个小数点发光二极管以显示小数位!这种显示器有共阴和共阳两种!发光二极管的阳极连在一起的公共端称为共阳极显示器,阴极连在一起的称为共阴极显示器。(1) LED显示结构与原理LED(Light Emintng Diode)是当外加电压超过额定电压时发生击穿而发出可见光。LED的工作电流通常在220mA范围内,工作压降2V左右,使用时必须加限流电阻。单片机应用系统通常使用8个发光二被管显示器。其中7个发光二极管构成7笔字
8、形,另一个构成小数点,通称7段LED。LED分为共阴极接法(8个发光二极管阴极连在一起)和共阳极接法(8个发光二极管的阳极接在起)。通过控制这个公共端,可使该位亮或暗。如共阴极端接地或共阳极接高电平,那么该位显示器有效,反之无效。一位显示器由8个发光二极管组成,其中,7个发光二极管构成字型“8的各个笔划段 a_g,另一个小数点为dp发光二极管。当在某段发光二极管上施加一定的正向电压时,该段笔画即亮;不加电压那么暗。为了保护各段LED不被损坏,需外加限流电阻。 (2) LED显示器接口及显示方式 LED显示器有静态显示方式和动态显示方式两种。静态显示就是当显示器显示某个字符时,相应的段恒定的导通
9、或截止,直到显示另一个字符为止。LED显示器工作于静态显示方式时,各位的共阴极接地;假设为共阳极那么接+5V电源。正因为如此,静态显示器的亮度较高。这种显示方式编程容易,管理也较简单,但占用I/O口线资源较多。因此,在显示位数较多的情况下,一般都采用动态显示方式。动态扫描是将各个LED数码管的7段字线并联使用,而每个数码管的公共极(共阴极或共阳极)分别通过驱动器接I/O的一个口线。当轮流选通每个数码管的公共极时,那么数码管将轮流显示有关字符。由于入的视觉特性、所能看到的是同时燃亮的字符。晶振电路简单地说没有晶振电路就没有时钟周期,没有时钟周期,就无法执行程序代码,单片机就无法工作。单片机工作时
10、,是一条一条地从ROM中取指令,然后一步一步的执行。单片机访问一次存储器的时间,称之为而一个机器周期,这是一个时间基准。一个机器周期包括12个时钟周期。如果一个单片机选择了12MHZ晶振,它的时钟周期是1/12us,它的一个机器周期是12*1/12us,也就是1us。 单片机的晶振电路是一种典型电路,分为内部时钟方式和外部时钟方式两种。内部时钟的晶振频率一般选择在4MHZ12MHZ之间,外接两个谐振电容,该电容的典型值为30pF但是在实际应用时,需根据实际起振情况选择。如果单片机的时钟必须使用某一个外接的时钟信号,就不要外界晶振。由于此时的外接晶振引脚上没有晶振信号输入,内部的时钟电路将停振。
11、这种方式称为外部时钟方式。3.3功能和原理图实现功能矩阵式键盘中的键实际上就是一个机械开关,该开关位于行线和列线的交点处。本设计使用的是4行*4列的16键阵列式键盘,当键被按下时,其交点的行线和列线接通,相应行线或列线的电平发生变化,从而确定被按下的功能键。在仿真软件中,按下相应的功能键后,LED显示器就会显示出0f相应的字符。3.3.2硬件电路原理图图3-1 :硬件电路原理图 3.4系统与硬件的连接 1把“单片机系统区域中的P3.0P3.7端口连接到“4X4行列式键盘区域中的C1C4R1R4端口上。2把“单片机系统区域中的P0.0/AD0P0.7/AD7端口连接到“四路静态数码显示模块区域中
12、的任一ah端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,P0.7/AD7对应着h。 第四章 系统软件设计4.1程序框图 图4-1 :程序框图4.2源程序汇编语言(Assembly Language)是面向机器的程序设计语言.汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编作为一门语言具有编程语言的一般特性,而高级语言大都编译为汇编指令,最终转化为机器指令得以执行。本设计是采用汇编语言设计的,44矩阵式键盘程序如下:;定义单元;COUNT EQU 30H;入口地址; ORG 0000H LJMP START ORG 0003H RE
13、TI ORG 000BH RETI ORG 0013H RETI ORG 001BH RETI ORG 0023H RETI ORG 002BH RETI;主程序入口; ORG 0100H START: LCALL CHUSHIHUA LCALL PANDUAN LCALL XIANSHI LJMP START;初始化程序;CHUSHIHUA: MOV COUNT,#00H RET;判断哪个按键按下程序;PANDUAN: MOV P3,#0FFH CLR P3.4 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ SW1 LCALL DELAY10MS JZ SW1 MOV
14、A,P3 ANL A,#0FH CJNE A,#0EH,K1 MOV COUNT,#0 LJMP DKK1: CJNE A,#0DH,K2 MOV COUNT,#4 LJMP DKK2: CJNE A,#0BH,K3 MOV COUNT,#8 LJMP DKK3: CJNE A,#07H,K4 MOV COUNT,#12K4: NOP LJMP DKSW1: MOV P3,#0FFH CLR P3.5 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ SW2 LCALL DELAY10MS JZ SW2 MOV A,P3 ANL A,#0FH CJNE A,#0EH,K5 M
15、OV COUNT,#1 LJMP DKK5: CJNE A,#0DH,K6 MOV COUNT,#5 LJMP DKK6: CJNE A,#0BH,K7 MOV COUNT,#9 LJMP DKK7: CJNE A,#07H,K8 MOV COUNT,#13K8: NOP LJMP DKSW2: MOV P3,#0FFH CLR P3.6 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ SW3 LCALL DELAY10MS JZ SW3 MOV A,P3 ANL A,#0FH CJNE A,#0EH,K9 MOV COUNT,#2 LJMP DKK9: CJNE A,#0
16、DH,KA MOV COUNT,#6 LJMP DKKA: CJNE A,#0BH,KB MOV COUNT,#10 LJMP DKKB: CJNE A,#07H,KC MOV COUNT,#14KC: NOP LJMP DKSW3: MOV P3,#0FFH CLR P3.7 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ SW4 LCALL DELAY10MS JZ SW4 MOV A,P3 ANL A,#0FH CJNE A,#0EH,KD MOV COUNT,#3 LJMP DKKD: CJNE A,#0DH,KE MOV COUNT,#7 LJMP DKKE: C
17、JNE A,#0BH,KF MOV COUNT,#11 LJMP DKKF: CJNE A,#07H,KG MOV COUNT,#15KG: NOP LJMP DKSW4: LJMP PANDUAN DK: RET;显示程序;XIANSHI: MOV A,COUNT MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A LCALL DELAYSK: MOV A,P3 ANL A,#0FH XRL A,#0FH JNZ SK RET;10ms延时程序;DELAY10MS: MOV R6,#20D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET
18、;200ms延时程序;DELAY: MOV R5,#20LOOP: LCALL DELAY10MS DJNZ R5,LOOP RET;共阴码表;TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71H;结束标志; END第五章 程序的编译调试与仿真5.1程序的编译第一步: 双击Keil uVision2的桌面快捷方式,启动Keil集成开发开发软件。软件启动后的界面第二步: 新建文本编辑窗。点击工具栏上的新建文件快捷按键,即可在工程窗口的右侧翻开一个新的文本编辑窗 第三步:输入源程序。在新的文本编辑窗中
19、输入源程序,输入汇编语言程序。第四步:保存源程序。保存文件时必须加上文件的扩展名,如果你使用汇编语言编程,那么保存时文件的扩展名为“.asm。 第五步:新建立Keil工程。点击 工程 新建工程 命令。在保存工程对话框中输入你的工程的文件名,Keil工程默认扩展名为.uv2,输入名称后保存,将出现选择设备对话框,在对话框中选择CPU的型号。第六步:选择CPU型号。为工程选择CPU型号,本新建工程选择了ATMEL公司的AT89C51.第七步:参加源程序到工程中。在选择好CPU型号后,点击确定按钮返回主界面,此时可见到工程管理窗中出现“Target 1,点击“Target 1前面的“号展开下一层的“
20、Source Group 1”文件夹,此时的新工程是空的,“Source Group 1”文件夹中什么文件都没有,必须把刚刚输入的源程序参加到工程当中。右击工程管理窗中的“Source Group 1”,出现下拉菜单,点击“增加文件到组Source Group 1命令,将出现添加文件对话框。在添加文件对话框中,找到要添加到工程中的源程序文件。双击该文件lich1.asm,即可将该文件添加到工程当中,另外也可以单击lich1.asm选中该文件,再点击Add按钮,也可以把文件参加工程中。此时此时应该点击“确定按钮,返回到前一对话框,再点击“关闭按钮,返回到主界面。当给工程添加源程序文件成功后,工程
21、管理器中的“Source Group 1”文件夹的前面会出现一个“+号,单击“+号,展开文件夹,可以看到lich1.a,双击即可翻开该文件进行编辑修改源程序第八步:工程目标Target 1属性设置。在工程工程管理窗中的Target 1文件夹上右击,出现下拉菜单,点击“目标Target 1属性命令,就进入目标属性设置界面。工程目标属性设置。该页面单片机的晶振频率、存储器等,我们把晶振的频率改为11.0592,工程输出设置。注意:如果要进行单片机写片实验,那么一定要把“E生成HEX文件选项选中,程序编译后才能生成我们写单片机需要的HEX格式目标文件。工程调试设置。该页分为左右两半,左半边是软件仿真
22、设置,而右半边是硬件仿真设置,当你使用软件仿真时,选中左边的“S使用仿真器;如果你使用硬件仿真器,那么就按下列图所示设置硬件仿真,同时把仿真器连接到你的电脑串口上。串口设置。串口号根据你的仿真器实际连接来设置,如你把仿真器接到COM2,那么就选择COM2;通信波特率选择38400即可。第九步:源程序的编译成功此时我们可以在文本编辑窗中继续输入或修改我们的源程序,使程序实现我们的目标,在检查程序无误后保存工程。接着点击“构造目标快捷按钮,进行源程序的编译连接,源程序编译相关的信息会出现在输出窗口中的“构造页中。即显示编译结果为0错误,0警告,同时产生了目标文件lich1.hex。我们可以对源程序
23、进行反复修改,再编译,直到没有错误为止。注意:每次修改源程序后一定要保存。5.2调试与仿真1、假假设Keil与Proteus均已正确安装在C:Program Files的目录里,把C:Program FilesLabcenter ElectronicsProteus 6 ProfessionalMODELSVDM51.dll复制到C:Program FileskeilCC51BIN目录中。2、用记事本翻开C:Program FileskeilCC51TOOLS.INI文件,在C51栏目下参加:TDRV5=BINVDM51.DLL (Proteus VSM Monitor-51 Driver)其
24、中“TDRV5中的“5要根据实际情况写,不要和原来的重复。3、进入Keil Vision2开发集成环境,创立一个新工程(Project),并为该工程选定适宜的单片机CPU器件如:Atmel公司的AT89C51。并为该工程参加Keil源程序4、单击“Project菜单/Options for Target选项或者点击工具栏的“option for ta rget按钮,弹出窗口,点击“Debug按钮,出现如下图页面。 图5-1 : 仿真对话框在出现的对话框里在右栏上部的下拉菜单里选中“Proteus VSM Monitor一51 Driver。并且还要点击一下“Use前面说明选中的小圆点再点击“Setting按钮,设置通信接口,在“Host后面添上“127.0.0.1”,在“Port后面添加“8000。设置好的情形如下图,点击“OK按钮即可。最后将工程编译,进入调试状态,并运行。 5、Proteus的设置进入Proteus的ISIS,鼠标左键点击菜单“Debug, 选中“use romote debuger monitor,如下图。此后,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理导管安全管理体系
- 医护人员职业素质课件
- 企业内部买车位协议书
- 集体土地联营协议书
- 餐厅责任经营协议书
- 车间物品保管协议书
- 门楼制作合同协议书
- 高空吊机转让协议书
- 邻居违约建房协议书
- 贷款签订产权协议书
- 多彩的非洲文化 - 人教版课件
- 2025年年中考物理综合复习(压轴特训100题55大考点)(原卷版+解析)
- -《经济法学》1234形考任务答案-国开2024年秋
- 2025上海房屋租赁合同模板
- T-SCSTA001-2025《四川省好住房评价标准》
- 西红门镇生活垃圾转运站及环卫停车场工程报告表
- 2025年信息系统监理师考试题(附答案)
- 机械装配技术试题及答案
- GB/T 44971-2024土壤硒含量等级
- 医院检验科实验室生物安全程序文件SOP
- 儿童社会工作案例及分析PPT学习教案
评论
0/150
提交评论