
基于键盘输入单元的单片机实验或仿真和C语言开发.doc
23页课程设计任务书学生姓名: 专业班级: 电信1206班 指导教师: 工作单位: 信息工程学院 题 目:基于键盘输入单元的单片机实验或仿真和C语言开发初始条件:具备单片机和C语言的理论知识;具备电子电路的基础知识和设计能力;具备查阅资料的基本方法;熟悉常用的电子器件;熟悉Protues、Keil软件的使用;要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.设计一种基于单片机的行列式键盘输入模块,能检测并判断是否有键按下;对按键开关进行时延的消抖;确定按键的键值,并实现相应状态的输入显示2.要求进行电路实验或仿真,使用C语言进行程序的开发时间安排:一周,其中3天程序设计,2天程序调试指导教师签名: 年 月 日 系主任(或责任教师)签名: 年 月 日目 录摘 要 1Abstract 21 概述 31.1 51单片机简介 31.2 Proteus软件 31.3 C语言开发环境 42 系统框图与方案设计 52.1系统框图设计 52.2方案设计与论证 52.2.1显示电路方案 52.2.2按键电路方案 53 硬件电路设计 63.1 控制电路 63.1.1 MCU简介 63.2复位电路 73.3时钟电路 83.4矩阵键盘电路 83.5液晶显示电路 93.6直流稳压源设计 94 软件设计 114.1软件流程图 115 仿真与调试 125.1仿真总电路图 125.2仿真结果 135.3实物电路图 155.3.1总电路图 155.3.2单片机最小系统及外围电路 155.3.3电路背面图 166 元件清单 177 总结 18参考文献 19本科生课程设计成绩评定表 20摘 要单片机,即单片微型计算机的简称。
是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用本项目的目的旨在利用所学到的单片机理论知识,建立单片机的最小系统,并搭建单片机的外围电路,编写C语言程序,在先利用Proteus软件仿真的基础上通过电路设计、焊接、程序设计及调试,一步一步的实现与单片机有关的流水灯、液晶显示、矩阵键盘输入等基本功能以此巩固所学到的单片机知识,增强自己的理论知识与动手实践能力关键字:单片机 C语言编程 Proteus仿真软件AbstractSingle chip microcomputer, the single chip microcomputer.Is A kind of integrated circuit chips, is to use very large scale integrated circuit technology with data processing ability of the central processor CPU, RAM, the RAM), read-only memory ROM, A variety of I/O mouth and interrupt system, timer/counter function (may include display driver circuit, pulse width modulation circuit, analog multiplexer and A/D converter circuit) is integrated into A piece of silicon consisting of A small and perfect microcomputer system, widely used in industrial control field. The purpose aims to use learned knowledge of SCM theory, establishing SCM smallest system, and build the MCU peripheral circuit, write C language program, on the basis of prior use of proteus simulation software through the circuit design, welding, programming and debugging, step by step, the implementation of the related to SCM of flowing water light, LCD display, the basic function such as matrix keyboard input.To consolidate the learned knowledge of MCU, strengthen their theoretical knowledge and practical ability.Key word: Single chip microcomputer C language programming Proteus simulation software1 概述1.1 51单片机简介51单片机是对所有兼容Intel 8031指令系统的单片机的统称。
51系列单片机是国内目前应用最广泛的单片机之一,随着嵌入式系统、片上系统等概念的提出和普遍接受及应用,51系列单片机的发展进入了一个新的阶段,许多专用功能芯片的内核集成了51系列单片机,与51系列单片机兼容的微控制器以IP核的方式不断地出现在FPGA的片上系统上,随着基于51系列单片机的嵌入式实时操作系统的出现与推广,在很长一段时间内,51系列单片机仍将占据嵌入式系统产品的中、低端市场1.2 Proteus软件Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型Proteus软件具有其它EDA工具软件(例:multisim)的功能这些功能是:1.原理布图2.PCB自动或人工布线3.SPICE电路仿真革命性的特点1.互动的电路仿真用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。
2.仿真处理器及其外围电路可以仿真51系列、AVR、PIC、ARM、等常用主流单片机还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境1.3 C语言开发环境 C语言是嵌入式系统中一种通用的程序设计语言,其数据类型及运算符丰富,代码率高,有较好的移植性和丰富的功能函数,并具有良好的程序结构,适用于各种应用的程序设计,是目前嵌入式系统中使用较广的编程语言,C语言的编程环境是在Keil软件中Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起2 系统框图与方案设计2.1系统框图设计图2.1系统框图设计2.2方案设计与论证2.2.1显示电路方案 方案一:采用数码管动态显示 利用数码管能显示的功能较简单,电路与程序设计实现起来也比较方便,但是由于本次设计中增加了递增递减及位数选择,所以选择液晶显示。
方案二:采用LCD液晶显示 采用1602 LCD液晶显示,此方案显示内容相对丰富,且价格不高 2.2.2按键电路方案方案一:采用独立按键输入,独立按键操作起来比较容易控制,但是一旦按键数量要求多时,占用的I/O口过多,不利于单片机功能应用方案二:采用矩阵按键输入,矩阵按键可以通过较少的I/O口操作尽可能多的按键,不仅能节省I/O口,还能充分发挥单片机的I/O口的功能3 硬件电路设计3.1 控制电路 3.1.1 MCU简介 CPU是整个控制部分的核心在考虑经济性和满足需求的前提下,本系统选用宏晶公司生产的8位STC89C52单片机作为整个系统的控制中心 STC89C52是宏晶公司生产的低功耗,高性能CMOS8位单片机,片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用宏晶公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚,它集Flash存储器既可编辑(ISP)也可用传统方法进行编辑及通用8位微处理器于单片芯片中,功能强大STC89C52单片机可为您提供许多高性价比的应用场合器管脚图如图3.1.1所示: 图3.1.1单片机引脚图1个串行中断128x8bit内部RAM两个外部中断源共6个中断源可直接驱动LED3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能表3.1.1 AT89C52单片机的管脚功能兼容MCS-51指令系统4k可反复擦写(>1000次)Flash ROM32个双向I/O口可编程UARL通道两个16位可编程定时/计数器全静态操作0-24MHz3.2复位电路图3.2复位电路为确保两点间温度控制系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。
一般电路正常工作需要供电电源为5V±5%,即4.75~5.25V复位是单片机的初始化操作,其目的是使CPU及各专用寄存器处于一个确定的初始状态如:把PC的内容初始化为0000H,使单片机从0000H单元开始执行程序除了进入系统的正常初始化之外,当单片机系统在运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需要复位以使其恢复正常工作状态RST端的外部复位电路有两种操作方式:上电自动复位和按键手动复位按键手动复位有电平方式和脉冲方式两种,本系统设计采用上电复位,如图3所示上电复位是直接将RST端通过电阻接高电平来实现单片机的复位3.3时钟电路图3.3时钟电路单片机的时钟信号用来提供单片机内各种微操作的时间基准,时钟电路用于产生单片机工作所需要的时钟信号单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡本系统设计采用内部振荡方式,如图4所示MCS-51。
