单片机应用实践——基于键盘输入单元的单片机实验或仿真和C语言开发(共32页)_第1页
单片机应用实践——基于键盘输入单元的单片机实验或仿真和C语言开发(共32页)_第2页
单片机应用实践——基于键盘输入单元的单片机实验或仿真和C语言开发(共32页)_第3页
单片机应用实践——基于键盘输入单元的单片机实验或仿真和C语言开发(共32页)_第4页
单片机应用实践——基于键盘输入单元的单片机实验或仿真和C语言开发(共32页)_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计任务书学生(xu sheng)姓名: 专业(zhuny)班级: 指导(zhdo)教师: 工作单位: 题目:基于键盘输入单元的单片机实验或仿真和C语言开发初始条件:具备单片机和C语言的理论知识;具备电子电路的基础知识和设计能力;具备查阅资料的基本方法;熟悉常用的电子器件;熟悉Protues、Keil软件的使用。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1设计一种基于单片机的行列式键盘输入模块,能检测并判断是否有键按下;对按键开关进行时延的消抖;确定按键的键值,并实现相应状态的输入显示。2要求进行电路实验或仿真,使用C语言进行程序的开发。时间安排:一周

2、,其中3天程序设计,2天程序调试指导教师签名: 年 月 日系主任(或责任(zrn)教师)签名: 年 月 日武汉理工大学单片机应用实践课程设计说明书武汉理工大学单片机应用实践课程设计说明书目 录TOC o 1-3 h u HYPERLINK l _Toc21080 摘要(zhiyo) PAGEREF _Toc21080 I HYPERLINK l _Toc28752 1 概述(i sh) PAGEREF _Toc28752 1 HYPERLINK l _Toc17236 1.1 51单片机简介(jin ji) PAGEREF _Toc17236 1 HYPERLINK l _Toc175 1.2

3、 Keil软件简介 PAGEREF _Toc175 2 HYPERLINK l _Toc11738 1.3 Protues软件简介 PAGEREF _Toc11738 3 HYPERLINK l _Toc7515 2 总体设计 PAGEREF _Toc7515 5 HYPERLINK l _Toc13760 2.1 功能分析 PAGEREF _Toc13760 5 HYPERLINK l _Toc5123 2.2 系统总体设计 PAGEREF _Toc5123 5 HYPERLINK l _Toc11854 3 硬件模块 PAGEREF _Toc11854 7 HYPERLINK l _Toc

4、32227 3.1 矩阵键盘输入模块 PAGEREF _Toc32227 7 HYPERLINK l _Toc15030 3.2 STC89C51最小系统模块 PAGEREF _Toc15030 8 HYPERLINK l _Toc11450 3.3 LCD1602液晶显示模块 PAGEREF _Toc11450 9 HYPERLINK l _Toc7079 3.4 循环流水灯模块 PAGEREF _Toc7079 10 HYPERLINK l _Toc1188 4 程序代码 PAGEREF _Toc1188 11 HYPERLINK l _Toc23121 5 Protues仿真 PAGER

5、EF _Toc23121 14 HYPERLINK l _Toc20877 6 实物制作及调试 PAGEREF _Toc20877 15 HYPERLINK l _Toc17540 6.1 实物展示 PAGEREF _Toc17540 15 HYPERLINK l _Toc23885 6.2 实物调试 PAGEREF _Toc23885 17 HYPERLINK l _Toc2775 7 心得与体会 PAGEREF _Toc2775 20 HYPERLINK l _Toc6394 参考文献 PAGEREF _Toc6394 21附录: HYPERLINK l _Toc29626 元件清单表 P

6、AGEREF _Toc29626 22 I摘要(zhiyo)此次(c c)单片机应用(yngyng)实践目的是基于键盘输入单元的单片机实验或仿真和C语言开发。本文先就本次应用实践进行功能分析和系统设计,之后详细介绍了各个硬件模块,给出了程序代码,并通过Protues对设计电路进行仿真。然后附上了实物制作图及调试结果。本次应用实践完成了基于单片机的行列式键盘输入模块,能检测并判断是否有键按下;对按键开关进行时延的消抖;确定按键的键值,并实现相应状态的输入显示;同时拓展了控制循环流水灯功能。关键词:单片机,矩阵键盘,C语言,Protues IIAbstractThe purpose of this

7、 practice is to do microcontroller application experiment or simulation and C language development that based on keyboard input unit. This article first on this application practice functional analysis and system design, and then details the various hardware modules, gives the program code and desig

8、n by Protues circuit simulation. Then attach the physical production and commissioning results in Fig. The completed application practice microcontroller-based determinant of the keyboard input module that can detect and determine whether a key is pressed; the key switch to debounce delay; OK button

9、 keys, and enter the appropriate state to achieve display; at the same time expand the control loop water lights function.Keywords: Microcontroller, Matrix keyboard, C language, Protues 1 概述(i sh)1.1 51单片机简介(jin ji)单片机,全称(qun chn)单片微型计算机(single-chip microcomputer),又称微控制器(microcontroller),是一种HYPERLIN

10、K /view/1355.htm t /_blank 集成电路HYPERLINK /view/26651.htm t /_blank 芯片,是采用HYPERLINK /view/1081357.htm t /_blank 超大规模集成电路技术把具有数据处理能力的HYPERLINK /view/14045.htm t /_blank 中央处理器CPU、HYPERLINK /view/151093.htm t /_blank 随机存储器RAM、HYPERLINK /view/188818.htm t /_blank 只读存储器ROM、多种I/O口和HYPERLINK /view/597855.ht

11、m t /_blank 中断系统、HYPERLINK /view/281961.htm t /_blank 定时器/计数器等功能(可能还包括显示驱动电路、HYPERLINK /view/849406.htm t /_blank 脉宽调制电路、模拟多路HYPERLINK /view/110440.htm t /_blank 转换器、HYPERLINK /view/990260.htm t /_blank A/D转换器等电路)集成到一块硅片上构成的一个小而完善的HYPERLINK /view/932916.htm t /_blank 微型计算机系统,在HYPERLINK /view/10102.h

12、tm t /_blank 工业控制领域广泛应用。与应用在个人电脑中的通用型HYPERLINK /wiki/ o 微处理器 微处理器相比,它更强调自供应(不用外接硬件)和节约成本。运算器由运算部件HYPERLINK /view/492754.htm t /_blank 算术逻辑单元、累加器和寄存器等几部分组成。HYPERLINK /view/492754.htm t /_blank 算术逻辑单元的作用是把传来的数据进行算术或逻辑运算,输入来源为两个8位数据,分别来自累加器和数据寄存器。HYPERLINK /view/492754.htm t /_blank 算术逻辑单元能完成对这两个数据进行加、

13、减、与、或、比较大小等操作,最后将结果存入累加器;控制器由程序计数器、指令寄存器、指令译码器、时序发生器和操作控制器等组成,是发布命令的“决策机构”,即协调和指挥整个微机系统的操作;主要寄存器包括:累加器A、数据寄存器DR、指令寄存器IR、指令译码器ID、程序计数器PC、地址寄存器AR等。51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的

14、兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。52系列的单片机一般不具备自编程能力。MCS-51单片机内部包含哪些主要逻辑(lu j)功能部件有:(1)一个(y )8位的微处理器CPU。(2)一个片内振荡电路和时钟电路,只需外面(wimin)接上一晶振或输入振荡信号就可产生单片机所需要的各种时钟信号。 (3)4KB的片内程序存储器ROM,用于烧录运行的程序、常数数据。(4)128B的片内数据存储器RAM,在程序运行时可以随时写入数据和读出,用于存放函数相互传递的数据、接收的外部数据、最后结果以及显示的数据等。(5)可寻址64KB外部数

15、据存储器和64KB外部程序存储空间的控制电路。(6)4个8位并行I/O端,每个端口既可以用作输入,也可以用于输出。 (7)两个16位的定时器/计数器,每个定时器/计数器可以设置为计数方式,用于对外部事件信号进行计数,也可以设置为定时方式,满足各种定时要求。 (8)一个可编程全双工串行I/O口,用于单片机之间的串行通信,或者单片机与PC机、其它设备、其它芯片之间的串行通信。 (9)5个中断源、两个优先级嵌套中断系统。1.2 Keil软件简介单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工

16、汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些部分组合在一起。 (1)系统(xtng)概述 Keil C51软件提供丰富的库函数和功能强大的集成开发调试(dio sh)工具,全Windows界面。另外重

17、要(zhngyo)的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。 (2)Keil C51单片机软件开发系统的整体结构 C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标

18、文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。 (3)Keil C51单片机软件开发系统的优点首先(shuxin),Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言(yyn)的优势。其次(qc),与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后

19、再使用C来开发,体会更加深刻。1.3 Protues软件简介 Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计,迄今为止是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台。 Proteus软件的特点是:(1)实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分

20、析仪、信号发生器等。 (2)支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。 (3)提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。(4)具有(jyu)强大的原理图绘制功能。Proteus是一款集单片机和SPICE分析于一身的仿真(fn zhn)软件,功能极其强大。 Prote

21、us不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度(god)对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。课程设计、毕业设计是学生走向就业的重要实践环节。由于Proteus提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台随着科技的发展,“计算机仿真技术”已成

22、为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中Proteus也能茯得愈来愈广泛的应用。2 总体设计2.1 功能分析 此次课设的题目(tm)是基于键盘输入单元的单片机实验或仿真和C语言开发:设计一种基于单片机的行列式键盘输入(shr)模块,能检测并判断是否有键按下;对按键开关进行时延的消抖;确定按键的键值,并实现相应状态的输入显示。要求进行电路实验或实验,并使用C语言进行(jnxng)程序的开发。 设计电路采用STC89C51单片机作为核心,由矩阵键盘电路、译码电路、显示电路、流水灯电路

23、等模块构成,分别对按键信息和显示电路以及软、硬件各个部分进行控制。实际运作时,单片机会将检测到的按键信号处理、转换成数字,显示于LCD1602液晶上。系统主要结构可以拆分如下:(1)矩阵键盘:按键传送输入信息;本次设计使用16个独立的按键形成4*4矩阵键盘;(2)STC89C51:采用软件编程来实现按键信息的提取和转换;(3)LCD1602液晶:用于显示最终被单片机转换过的按键信息。(4)8个相同的发光二极管:通过软件程序编写来控制流水灯左右循环移位。2.2 系统总体设计系统总体设计框图如图1所示,整个系统采用+5V直流供电,由4*4矩阵键盘输入,单片机检测并判断是否有键按下,当有按键被按下时

24、,按键信息被输入到经过编程的单片机STC89C51中进行提取与转换:对按键开关进行时延的消抖,同时确定按键的键值,最后实现将相应状态的输入显示到LCD1602液晶上以及控制流水灯电路。 4*4矩阵(j zhn)键盘 STC89C51单片机 流水(lishu)灯电路 液晶显示电路图1 系统(xtng)总体设计框图 系统可以完成检测并判断是否有键按下;对按键开关进行时延的消抖;确定按键的键值,并实现相应状态的输入显示;同时拓展了控制循环流水灯功能。通过keil编程和protues仿真可以实现并验证系统是否完成相应的功能及其拓展功能。3 硬件模块图2 总体电路图3.1 矩阵(j zhn)键盘输入模块

25、图3 矩阵(j zhn)键盘输入模块本次设计(shj)采用4*4的矩阵键盘,如图3所示。矩阵键盘的行线和列线分别通过两并行接口和CPU通信,按键设置在行、列交点上,行、列线分别连接到按键开关,行线通过上拉电阻接到+5V上。在接键盘的行线和列线的两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,为回馈信号。由行扫描值和列回馈信号共同形成键编码。用STC89C51的并行口P1设计4*4矩阵键盘,其接键盘行线,输出接地信号,接列线,输入回馈信号,以检测按键是否按下。此外,还要消除按键在闭合或断开时的抖动。消除抖动的方法采用延时方式软件消除抖动(延时后再重读,以跳过抖动期)。

26、K1K2K3K4K5K6K7K8显示“1”显示“2”显示“3”显示“4”显示“5”显示“6”显示“7”显示“8”K9K10K11K12K13K14K15K16显示“9”选中第一位选中第二位选中第三位加1减1灯定时左移灯定时右移按键(n jin)从左至右,从上到下依次记为K1-K16,各键具有(jyu)的功能如表1所示:表1 矩阵键盘(jinpn)按键含义表3.2 STC89C51最小系统模块 STC89C51单片机的最小系统模块由STC89C51单片机、时钟电路和复位电路构成,如图4所示。图4 STC89C51最小系统(xtng)模块时钟(shzhng)电路: 单片机的时钟信号用来提供单片机内

27、各种微操作的时间(shjin)基准。8XX51单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。在引脚XTAL1和XTAL2外接晶振就构成了内部振荡方式。由于单片机内部有一个高增益反向放大器,当外接晶振后,就构成了自激振荡器,产生时钟脉冲。内部振荡中的两个电容器起稳定振荡频、快速起振的作用,电容值一般为5-30pF。内部振荡方式所得的时钟信号比较稳定实用电路中使用较多。外部振荡方式是把已有的时钟信号引入单片机内。这种方式适宜用来使单片机的时钟与外部信号保持一致。本次课程设计的时钟电路采用内部振荡方式。2、复位电路: 复位操作完成单片机内电路的初始化,使单片机从一确定的状态开始

28、运行。当8XX51单片机的复位引脚RST出现5ms以上的高电平时,单片机就完成了复位操作。如果RST持续为高电平,单片机就处于循环复位状态,而无法执行程序,因此要求单片机复位后能脱离复位状态。复位操作通常有两种基本形式:上电复位、开关复位。上电复位要求接通电源后,自动实现复位操作。开关复位要求在电源接通的条件下,在单片机运行期间,如果(rgu)发生死机,用按钮开关操作使单片机复位。图4中的复位电路为上电且开关(kigun)复位电路,上电后,由于电容充电,使RST持续一段高电平时间,从而实现上电且开关(kigun)复位的操作。通常选择。3.3 LCD1602液晶显示模块本方案采用LCD1602液

29、晶来显示按键的键值及键值的变化,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。图5 LCD1602液晶显示模块如图5所示,为LCD1602液晶显示的接线图。其中(qzhng)RS(数据/命令(mng lng)选择)、RW(读/写选择)、E(使能信号)为控制(kngzh)端,连接至单片机的P0口的5、6、7脚,D0-D7为数据端,连接至单片机的P2口。3.4 循环流水灯模块循环流水灯模块电路采用8个相同的发光二极管组成,上拉100的电

30、阻的主要目的是起限流保护二极管的作用。电路接到单片机的P0和P3口,软件程序通过单片机的提取和转换来控制流水灯左循环移位或者右循环移位。图6 流水灯模块4 程序代码系统主函数如下所示:#include#include #includeunsigned char j = 0;unsigned char a,b=0,c3=0,m=0,LED;void main() LCD1602_Init(); /LCD1602初始化 T0_init(); /定时器0初始化 LED=0XFE; while(1) a=keyscan(); /按键(n jin)扫描if(a0&a3)|0 xe0);P3=LED;LE

31、D =(LED7);if(m=2) P0=(P0|0 x1f)&(LED3)|0 xe0);P3=LED;LED =(LED1)|(LED7);5 Protues仿真(fn zhn)图7 Protues仿真(fn zhn)电路将程序代码在Keil中进行编译(biny)和连接,生成KEX文件,再把Keil生成的HEX文件下载到Protues仿真的单片机中,在元器件都找到后,我们可以先进行排版再按照电路图连接,然后可以点击运行观察现象,看与自己设置的符合否,如果不相符再查找错误进行修改,尤其注意程序的部分。图8 Protues仿真(fn zhn)结果6 实物(shw)制作及调试6.1 实物(shw

32、)展示矩阵键盘采用印制电路板(PCB线路板)制作:图9 矩阵键盘元件图图10 矩阵键盘(jinpn)焊接电路主体(zht)部分采用万用板手工焊接:图12 单片机最小系统、液晶显示及流水(lishu)灯元件图图13 单片机最小系统及流水(lishu)灯焊接电路6.2 实物(shw)调试将各电路板根据(gnj)电路图用杜邦线连接好,检查电路连接无误后接上直流+5V电源,此时LCD1602液晶显示屏亮起,屏幕显示“The key is: ”。调试时,首先依次按下K1K9键时显示屏分别显示数字19;按下K10键之后再任意按下数字键,该位数值变为该数字键对应数值;按下K11键之后再任意按下数字键,出现第

33、二位且数值为该数字键对应数值;按下K12键之后再任意按下数字键,出现第三位且数值为该数字键对应数值;按下K10键选中第一位之后再按下K13键,第一位数值加一;按下K10键选中第一位之后再按下K14键,第一位数值减一;按下K15键,流水灯由左至右循环亮起;按下复位键之后再按下K16键,流水灯由右至左循环亮起;在任何状态下按下复位键,显示屏清空、流水灯全灭。图1417为实物调试过程记录。图14 调试(dio sh)按键K3按下图15 调试(dio sh)流水灯右循环图16 调试流水(lishu)灯左循环图17 调试(dio sh)输入三位数675所以,各按键(n jin)的功能为:K1K9:输入(shr)数字19;K10:选中第一位;K11:选中第二位;K12:选中第三位;K13:加一;K14:减一;K15:流水(lishu)灯右循环亮起;K16:流水(lishu)灯左循环亮起。7 心得与体会本次单片机应用实践课题为基于键盘输入单元的单片机实验或仿真和C语言开发,从拿到题到查资料,从完善原理图到写报告文档,我收获了许多。不仅要运用学过的单片机、C语言编程等知识,还要学会查阅各种图书资料和工具书,并将新知识和所学的结合起来为自己所用。通过此次单片机应用实践,一方面进一步巩固了

温馨提示

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

评论

0/150

提交评论