武汉理工大学单片机应用实习报告.docx_第1页
武汉理工大学单片机应用实习报告.docx_第2页
武汉理工大学单片机应用实习报告.docx_第3页
武汉理工大学单片机应用实习报告.docx_第4页
武汉理工大学单片机应用实习报告.docx_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

武汉理工大学单片机应用实习报告实习任务书学生姓名: 专业班级: 通信1004 班指导教师: 刘新华 工作单位: 武汉理工大学题 目: 单片机应用实习报告初始条件: 单片机最小系统、下载电路、扩展电路、软件(PROTEUS等)、万用表、电烙铁等工具要求完成的主要任务:1)完成单片机最小系统的设计、焊接、调试2) 完成ISP下载电路的设计、焊接3) 完成系统软件的设计,包括程序结构设计、流程图绘制、程序设计4) 在单片机最小系统硬件上实现任务3中规定的功能时间安排:序号阶段内容所需时间1方案设计2天2硬件设计2天3软件设计3天4系统仿真1天5电路板焊接2天6系统调试3天7答辩1天合 计14天 指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目录摘要.2Abstract.21实习执行大纲21.1实习目的21.2实习要求21.3 基本任务22 基本原理22.1 STC89C52单片机介绍22.2 单片机最小系统22.3 键盘检测原理22.4数码管显示22.5温度传感器22.5.1温度传感器概述22.5.2 DS1820温度传感器介绍22.6串口通信23硬件设计23.1实验总电路图23.2矩阵键盘23.3数码显示23.4 温度传感器23.5双机通信24软件设计及仿真24.1 键盘输入及数码管显示24.2温度传感器仿真24.3 串口通信25硬件实物图26 小结.27.参考文献28元件清单2附录.2摘要随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同种类的传感器,可实现诸如电压、湿度、温度、速度、硬度、压力等的物理量的测量。本文将介绍一种基于单片机控制理论及其应用系统设计的数字温度计。 本文主要介绍了基于AT89C51单片机的一个键盘和显示系统、串口通信系统,详细描述了以单片机最小系统为基础,利用Proteus进行电路设计,利用Keil C51 uVision2集成开发环境进行软件程序的编写,并进行电路焊接、电路仿真和电路调试的过程。关键字:单片机、键盘、数码管,KeilAbstractWith the era of progress and development, single-chip technology has spread to our lives, work, research, in various fields, has become a relatively mature technology, SCM has the advantages of small volume, low power consumption, strong control function, flexible expansion, miniaturization and ease of use, widely used instruments, the combination of different kinds of sensors, can be used as voltage, humidity, temperature, speed, hardness, pressure and the measurement of a physical quantity. This paper introduces a microcontroller based on control theory and its application system design of digital thermometer.This article mainly introduced based on AT89C51 microcontroller a keyboard and display system, the digital clock system, digital thermometer system and the digital frequency meter system. Described in detail with the smallest single-chip system as the basis, using Proteus circuit design, using Keil C51uVision2integrated development environment software is programmed, and circuit, circuit simulation and debugging process.Keywords: MCU, keypad, Keil1. 实习执行大纲1.1实习目的1、巩固单片机原理与应用理论课的理论知识;2、熟悉单片机应用系统的硬件设计及软件设计的基本方法;3、将单片机原理与应用理论课的理论知识应用于实际的应用系统中;4、训练单片机应用技术,锻炼实际动手能力。1.2实习要求1)利用PROTEL等软件进行硬件设计;2)利用Keil uV2软件完成应用系统软件设计;3)利用PROTEUS软件进行仿真设计;4)完成单片机最小系统和应用系统电路板的焊接;5)对电路进行调试;6)利用stc-isp软件完成在系统编程、下载,并完成系统软件调试;7)题目由指导教师提供;8)要求每个学生单独完成硬件软件设计、仿真、焊接、调试任务;9)写出实习报告,实习报告主要包括以下内容:目录、摘要、关键词、基本原理、方案论证、硬件设计、软件设计(带流程图、程序清单)、仿真结果、实物运行结果照片、结论、参考文献等;10)实习完成后通过答辩;11)答辩时交实习报告电子文档,通过答辩后根据修改意见修改并打印、装订成册。1.3 基本任务1)利用上述材料完成包含如下系统功能组件的单片机最小系统的设计、焊接、调试(1)键盘一个4X4的矩阵键盘,其中,10个按键是09数字键;另外6个是功能键,用于功能选择和控制。(2)显示电路由6个7段LED数码管组成的显示电路。(3)温度检测利用DS18B20可编程1-Wire数字温度传感器芯片,或利用AD590温度传感器芯片和A/D转换器芯片采集温度温度信号。(4)串口串行通信利用51的串口实现串行通信接口电路。2)完成ISP下载电路的设计、焊接3)完成系统软件的设计,包括程序结构设计、流程图绘制、程序设计,实现如下功能(1)功能选择通过功能选择键,使得单片机处于不同的工作状态并通过LED显示相应的内容。(2)温度显示通过功能选择键选择温度检测、显示后,LED显示温度值。(3)数据输入通过功能选择键选择数据输入后,将通过键盘键入的09按键值显示在LED上,其中,最后输入的显示在最左边,之前键入向右移动一位。(4)数据通信将两个单片机最小系统通过串口连接起来,其中一个作为主系统,另一个作为辅系统。当通过功能选择键选择数据通信后,当在主系统上进行功能(2)、功能(3)的操作时,辅系统的LED上显示与主系统同样的内容。4)利用仿真软件完成系统仿真工作5)在单片机最小系统硬件上实现任务3中规定的功能2 基本原理2.1 STC89C52单片机介绍STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。主要特性如下:1. 增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.2. 工作电压:5.5V3.3V(5V单片机)/3.8V2.0V(3V单片机)3. 工作频率范围:040MHz,相当于普通8051的080MHz,实际工作频率可达48MHz4. 用户应用程序空间为8K字节5. 片上集成512字节RAM6. 通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片8. 具有EEPROM功能9. 具有看门狗功能10. 共3个16位定时器/计数器。即定时器T0、T1、T211. 外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒12. 通用异步串行口(UART),还可用定时器软件实现多个UART13. 工作温度范围:-40+85(工业级)/075(商业级)14. PDIP封装STC89C52RC单片机的工作模式l 掉电模式:典型功耗0.1A,可由外部中断唤醒,中断返回后,继续执行原程序l 空闲模式:典型功耗2mAl 正常工作模式:典型功耗4Ma7mAl 掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备图1 STC89C52RC引脚图STC89C52RC引脚功能说明VCC(40引脚):电源电压VSS(20引脚):接地P0端口(P0.0P0.7,3932引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。此时,P0口内部上拉电阻有效。在Flash ROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要求外接上拉电阻。P1端口(P1.0P1.7,18引脚):P1口是一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体参见下表:在对Flash ROM编程和程序校验时,P1接收低8位地址。 引脚号功能特性P1.0T2(定时器/计数器2外部计数输入),时钟输出P1.1T2EX(定时器/计数器2捕获/重装触发和方向控制)表一P1.0和P1.1引脚复用功能表P2端口(P2.0P2.7,2128引脚):P2口是一个带内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在访问外部程序存储器和16位地址的外部数据存储器(如执行“MOVX DPTR”指令)时,P2送出高8位地址。在访问8位地址的外部数据存储器(如执行“MOVX R1”指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。在对Flash ROM编程和程序校验期间,P2也接收高位地址和一些控制信号。P3端口(P3.0P3.7,1017引脚):P3是一个带内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。在对Flash ROM编程或程序校验时,P3还接收一些控制信号。P3口除作为一般I/O口外,还有其他一些复用功能,如下表所示: 引脚号复用功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0的外部输入)P3.5T1(定时器1的外部输入)P3.6外部数据存储器写选通P3.7外部数据存储器读选通表二 P3口引脚功能表RST(9引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。看门狗计时完成后,RST引脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/(30引脚):地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在Flash编程时,此引脚也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址位8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOV指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址位8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN(29引脚):是外部程序存储器选通信号。当AT89C51RC从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而访问外部数据存储器时,将不被激活。EA/VPP(31引脚):访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,必须接GND。注意加密方式1时,将内部锁定位RESET。为了执行内部程序指令,应该接VCC。在Flash编程期间,也接收12伏VPP电压。XTAL1(19引脚):振荡器反相放大器和内部时钟发生电路的输入端。XTAL2(18引脚):振荡器反相放大器的输入端。特殊功能寄存器在STC89C52RC片内存储器中,80HFFH共128个单元位特殊功能寄存器(SFR)单片机可实现“看门狗”功能。所谓“看门狗”是指在单片机构成的系统中,由于单片机的工作可能受到来自外界电磁场的干扰,造成程序的跑飞,从而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,这样会使整个系统处于停滞状态,发生不可预料的后果,所以处于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称“看门狗”。STC系列单片机内部自带了看门狗,通过对相应的特殊功能寄存器的设置就可实现看门狗的应用。其相应的功能及原理介绍见下表三:符号功能EN_WDT看门狗允许位,当设置为“1”,看门狗启动CLR_WDT看门狗清“0”位,当设为“1”时,看门狗将重新计数。硬件将自动清“0” 此位IDLE_WDT看门狗“IDLE”模式位,当设置为“1”时,看门狗定时器在“空闲模式”计数;当清“0”该位时,看门狗在“空闲模式”时不计数PS2,PS1,PS0看门狗定时器预分频值表三 “看门狗”定时器寄存器的功能表2.2 单片机最小系统51单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用1030uF,51单片机最小系统容值越大需要的复位时间越短。51单片机最小系统晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。51单片机最小系统起振电容C2、C3一般采用1533pF,并且电容离晶振越近越好,晶振离单片机越近越好P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。其他接口内部有上拉电阻,作为输出口时不需外加上拉电阻。设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t。设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2 ms。 图2 单片机最小系统图2.3 键盘检测原理键盘是计算机系统中不可缺少的输入设备,当键盘较少时可接成线性键盘。当按键较多时接成矩阵的形式,可以节省口线。键盘是一组按键的组合。键通常是一种常开型按钮开关,常态下键的两个触点处于断开状态,按下键时它们才闭合(短路)。通常,键盘有编码和非编码两种。矩阵键盘每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵键盘的行线和列线分别通过两并行口中,一个输出扫描码,使按键动态接地(称行扫描码),另一个并行口输入按键状态(称回馈信号)。通过编码识别不同的按键,再通过软件查表,查出该键的功能,转向不同的处理程序。因此键盘处理程序的任务是:确定有无键按下;判断哪一个键按下;形成键编码;根据键的功能,转相应的处理程序。图3 矩阵键盘键扫描就是要判断有无键按下,当扫描到有键按下时再进行下一步处理,否则退出键盘处理程序。独立式键盘扫描只需读取IO口状态,而矩阵式键盘描通常有两种实现方法:逐行扫描法和线反转法。(1) 逐行扫描法。依次从第一至最末行线上发出低电平信号, 如果该行线所连接的键没有按下的话, 则列线所接的端口得到的是全“1”信号, 如果有键按下的话, 则得到非全“1”信号。(2)线反转法。线反转法也是识别闭合键的一种常用方法, 该法比行扫描速度快, 但在硬件上要求行线与列线外接上拉电阻。 先将行线作为输出线, 列线作为输入线, 行线输出全“0”信号, 读入列线的值, 那么在闭合键所在的列线上的值必为0;然后从列线输出全“0”信号,再读取行线的输入值,闭合键所在的行线值必为 0。这样,当一个键被按下时, 必定可读到一对唯一的行列值。再由这一对行列值可以求出闭合键所在的位置。本次设计采用简单的逐行扫描的方式。2.4数码管显示数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管。按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。下图四为数码管的内部原理图: 图四 数码管内部原理图2.5温度传感器2.5.1温度传感器概述温度传感器是各种传感器中最常用的一种,早期使用的是模拟温度传感器,如热敏电阻,随着环境温度的变化,它的阻值也发生相应线性变化,用处理器采集电阻两端的电压,然后根据某个公式可以计算当前环境温度。随着科技的进步,现代的温度传感器已经走向数字化,行型小,接口简单,广泛应用于生产实践的各个领域,为我们的生活提供了方便。随着现代仪器的发展,微型化、集成化、数字化正成为传感器发展的一个重要方向。美国DALLAS半导体公司推出的数字化温度传感器DS18B20采用单总线协议,即与单片机接口仅占用一个I/0端口,无需任何外部原件,直接将环境温度转化为数字信号,以数码方式串行输出,从而大大简化了传感器与微处理器的接口。2.5.2 DS1820温度传感器介绍1、DS18B20的主要特性 1.1、适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数 据线供电 1.2、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯 1.3、 DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温 1.4、DS18B20在使用中不需要任何外围元件,全部 传感元件及转换电路集成在形如一只三极管的集成电路内 1.5、温范围55+125,在-10+85时精度为0.5 1.6、可编程 的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温 1.7、在9位分辨率时最多在 93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快 1.8、测量结果直接输出数字温度信号,以一 线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力 1.9、负压特性:电源极性接反时,芯片不会因发热而烧毁, 但不能正常工作。 2、DS18B20的外形和内部结构 DS18B20内部结构主要由四部分组成:64位光刻ROM 、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的外形及管脚排列如下图五:图五 DS18B20的外形及管脚排列图DS18B20引脚定义: (1)DQ为数字信号输入/输出端; (2)GND为电源地; (3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。3、DS18B20工作原理 DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。 DS18B20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对 低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。4温度传感器采用的单总线的DS18B20。1-wire,即单线总线,又叫单总线。单总线适用于单主机系统,能够控制一个或多个从机设备。主机可以是微控制器,从机可以是单总线器件,它们之间的数据交换只通过一条信号线。当只有一个从机设备时,系统可按单节点系统操作;当有多个从机设备时,系统则按多节点系统操作。.DS18B20工作时序图见下图六图六 DS18B20工作时序图5.DS18B20工作流程图见下图七:图七 DS18B20工作流程图2.6串口通信串行接口Serial Interface是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信,并可以利用电话线,从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成;成本低但传送速度慢。串行通讯的距离可以从几米到几千米;根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。51单片机的中断系统中第4个中断就是串口中断,要进行串口通信首先就要打开CPU总中断EA,还要打开串口通信中断ES,这是串口通信的前堤。串口通信也跟计时器一样有很多的模式,因此我们还要设置SCON寄存器来指定采用哪一种方式进行通信,而在通信的过程中,我们还要设定通信的波特率,不然的话,单片机是没办法进行采样的,这样也不会得到正确的结果了。51单片机串口波特率由内部定时器1产生,一般要让定时器1工作在自动装载的8位模式,即工作方式2。串口工作在方式3,即SM0=1,SM1=1,每一帧9位,无奇偶校验。波特率由定时器1确定,本设计设定为9600bps。图六 串口通信帧的结构3硬件设计3.1实验总电路图本次设计电路图见下图七:图八 设计总电路图系统由51单片机,数码管,反相器,排阻,矩阵键盘,DS18B20,指示灯等部件构成。其中数码管的段选信号线(a,b,c,d,e,f,g,h)与P0口直接连接,以灌电流的方式点亮数码管。位选信号通过反相器(74HC04)与P1口连接。反相器主要起提供数码管工作电流的作用,因为51单片机的额IO口带负载能力很弱,直接连接不能够点亮数码管。矩阵键盘是4X4的大小,与P2口连接。分别为数字键09和功能切换键。从第一排至下一次为7、8、9、输入;4、5、6、温度;1、2、3、串口;清零、0、清除、复位。DS18B20是单总线(1-wire)数字温度传感器,数据线与单片机P3.4口连接,同时带有一个4.7K的上拉电阻。发送和接收信号灯与P3.6和P3.7连接,方便查看串口状态。3.2矩阵键盘图九 矩阵键盘图3.3数码显示图十 数码显示图3.4 温度传感器图十一 温度传感器图3.5双机通信图十二 双机通信图4软件设计及仿真4.1 键盘输入及数码管显示矩阵键盘扫描和执行响应功能函数在一个死循环里面,反复执行。矩阵键盘采用扫描的方式检测,流程如下。图十三 扫描流程图仿真图见下图十四:图十四 键盘初始化仿真图载入功能仿真输入1,结果见下图十五:图十五 载入1输入为7561仿真见下图十六:图十六 输入7561仿真图由仿真图可知符合实验要求,故设计正确。4.2温度传感器仿真将模拟DS18B20设置为24.0度,数码管显示见图十七:图十七 温度传感显示4.3 串口通信51单片机的额串口是全双工的,在本仿真中实现了这一功能。串口的通信流程如下图十八:图十八 串口流程图在双机通信中,信息的同步很重要。为了使接收到的数据不错位,在程序中加入了帧起始信号。从机接收到帧起始信号后将接收到了下一个数据存入显示缓存的第一位,后面依次第二位,第三位。这样保证数据的正确性。发送时先发送握手连接信号。图十九 等待握手信号图图二十 握手成功图图二十一 通信成功示意图5硬件实物图单片机最小系统图二十二:图二十二 单片机最小系统数码管显示电路图二十三:图二十三 数码管显示电路串口通信实物图二十四:图二十四 串口通信实物图6 小结通过这次设计,我学到了很多书本上不曾学到的东西。这次的单片机课程设计是一次综合性的实验设计,它将它将各种知识结合到一起综合运用到实践上来扩展、弥补、串联所学的知识。通过本次设计我得到了很多收获。首先,明确了单片机的构造以及工作原理单片机是一门非常重视实践的技术,不能总是看书,但要学习它首先应看书,对单片机引脚、内部结构、寄存器和原理有一定地了解和感官认识。其次掌握了C语言的编写程序,能够熟练使用PROTUTES和KEIL的仿真来实现,同时掌握了如何收集、查阅、应用文献资料,如何根据实际需要有选择的阅读书籍和正确确定系统所要使用的元器件的类型。当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课设是对我的学习态度的一次检验。对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。在这次难得的课程设计过程中我锻炼了自己的思考能力和动手能力。通过题目选择和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。在方案设计选择和芯片的选择上,培养了我们综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识。还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力。并且我们熟练掌握了有关器件的性能及测试方法。再次感 谢老师的辅导以及同学的帮助,是他们让我有了一个更好的认识,无论是学习还是生活,生活是实在的,要踏实走路。课程设计时间虽然很短,但我学习了很多的东西,使我眼界打开,感受颇深。7.参考文献1 谢自美.电子线路设计实验测试(第三版).武汉:华中科技大学出版社2 李群芳. 单片微型计算机与接口技术(第3版).电子工业出版社,20083 刘教瑜. 单片机原理及应用.武汉理工大学出版社,20114 张东亮. 单片机原理与应用.人民邮电出版社,20095 郭天祥. 51单片机C语言教程. 电子工业出版社,20096 张俊谟. 单片机中级教程. 北京航空航天大学出版社,20068元件清单(1)单片机最小系统部分序号名称数量1万能实验电路板1块2单片机STC89C521只3晶振12MHz1只430PF瓷片电容2只510k/0.25W电阻1只610uF/16V电解电容1只72k/0.25W电阻1只810k/9脚排阻1只95V/500mA直流电源1个10排针、按钮、LED、导线等若干(2)下载电路部分序号名称数量1万能实验电路板1块2MAX232 1片30.1uF瓷片电容 4只4DB9插座 1只5RS-232C串口电缆(9针)1根(3)扩展电路部分序号名称数量1带锁开关1个2复位开关 1个310uF电容 1个410k电阻 1个5Usb2.0接口1个6发光二极管若干(4)软件部分序号名称数量1电路设计软件PROTEL1套2编程软件Keil uV21套3仿真软件PROTEUS1套4下载软件stc-isp 1套(5)工具序号名称数量1PC(带RS-232C口)1台2万用表1块3电烙铁1只4焊锡、松香等若干附录一、程序代码见下:#include #include defines.h#include matrixkey.h#include DS18B20.hsfrISP_CONTR = 0xe7; /定义STC89C52单片机ISP寄存器地址 sbit recvLED = P36; /接收指示灯sbit sendLED = P37; /发送指示灯/共阳数码管段选码/一下的字形以此为:/*0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F, ,-,_ */unsigned char code segTable=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff,0xbf,0xf0,0xf7;/4位数码管显示缓存unsigned char num=16,16,16,16;/key为扫描到的按键/index为显示序号unsigned char key,index,sec,cnt=0,sendFlag=0,recvNum=0;void numDisp(void);/数据输入功能void tempDisp(void); /温度显示功能void seriComm(void);/串口通信功能void resetSys(void); /软件复位功能void delayms(unsigned int ms)/延时unsigned char i;for (;ms;ms-)for (i=110;i;i-);void sysInit(void) /系统初始化TMOD = 0x21; /定时器0工作状态1TH0 = (65536-2000)/256;TL0 = (65536-2000)%256;TH1 = 0xfd;TL1 = 0xfd;TR1 = 1;/REN = 1;SM0 = 1;SM1 = 1;ES = 1;EA = 1; /开总中断ET0 = 1; /开定时器0中断TR0 = 1; /启动定时器0void welcome()char i;while(!key) /等待按键,数码管流水显示for (i=3;i=0;i-)num0=num1=num2=num3=16;numi=17;delayms(150);if (keyscan()return;delayms(150);if (keyscan()return;delayms(150);if (keyscan()return;for (i=0;i4;i+)num0=num1=num2=num3=16;numi=17;delayms(150);if (keyscan()return;delayms(150);if (keyscan()return;delayms(150);if (keyscan()return;key=keyscan();void main()sysInit(); /系统初始化welcome();while(1)key = keyscan();switch(key) /根据键值执行功能case A:numDisp();break;case B:tempDisp();break;case C:seriComm();break;case D:resetSys();break;default:break;void Timer0() interrupt 1 /定时器0中断/char i;TH0 = (65536-2000)/256; /中断时间为2msTL0 = (65536-2000)%256;segDuan = 0xff; /关闭数码管,消除影像segWei = 0xff;switch(index%4) /依次扫描显示数码管case 0:segDuan=segTablenum0;segWei=0xfe;break; case 1:segDuan=segTablenum1;segWei=0xfd;break; case 2:segDuan=segTablenum2;segWei=0xfb;break; case 3:segDuan=segTablenum3;segWei=0xf7;break; if (!(sec%2)&(sendFlag)/for (i=0;i4;i+)sendLED = 0;SBUF = numindex%4;while(!TI);TI = 0;sendLED = 1;index+; /索引加一if (index=100)index=0;sec+;void Seri()interrupt 4if(RI)ET0 = 0;RI = 0;numcnt%4 = SBUF;cnt+;ET0 = 1;recvNum+;if (recvNum=50)recvNum = 0;recvLED = !recvLED;void numDisp(void) /数据输入功能key = 0;num0=16;num1=12;num2=1;num3=18;/数码管显示1delayms(5000);num0=19;num1=num2=num3=16;/清除while(!key) /等待按键,同时闪烁光标key = keyscan();if (sec%2)num0=16;elsenum0=19;num0=16;/清楚while(1)key=keyscan();if (key=B|key=C|key=D) /若按下了B,C,D键return;/则退出以切换功能if (0=key)&(key=9)/若按下了数字键num3=num2;/右移一位num2=num1;num1=num0;num0=key-0x30; /转换数字的ASCII码为数字,赋给第一位if (key=c) /两种清除方式num0=num1=num2=num3=17;if (key=b)num0=num1=num2=num3=16;void tempDisp(void) /温度显示功能unsigned int t;num0=16;num1=12;n

温馨提示

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

评论

0/150

提交评论