单片机课程设计_第1页
单片机课程设计_第2页
单片机课程设计_第3页
单片机课程设计_第4页
单片机课程设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、摘要摘要本设计是应用 MCS-51 单片机的原理和控制理论设计一个多功能系统,功能包括矩阵键盘输入,键盘内容显示,温度传感器操纵,温度显示,并实现双机通信以显示同样的内容。硬件系统包括单片机最小系统,ISP 下载模块,矩阵键盘,独立键盘,温度传感器模块,数码管,流水灯等。除了课设规定的要求外,还加入一些有趣的扩展功能,如:利用 led 灯指示单片机工作状态,从机普通模式、空闲模式可选,用于节电。通过设计,加深对 51 单片机的理解,掌握实际的应用,增强动手能力。设计包括硬件设计、软件编程,仿真,制作实物,撰写报告等步骤。关键词关键词: 51 单片机单片机多功能系统设计多功能系统设计 单片机编程

2、单片机编程AbstractThis design is the application of the principle of the MCS-51 microcontroller andcontrol theory to design a multi-functional system features include the matrixkeyboard input, keyboard content display and manipulation of temperature sensor,temperature display, and dual-machine communicat

3、ion in order to display the samecontent. The hardware system including the minimum microcontroller system,ISPdownload module, matrix keyboard, separate keyboard, the temperature sensormodule, digital tube, LED. In addition to the specified class-based requirements, butalso added some interesting ext

4、ended features, such as: the use of led lights indicatingmicrocontroller working condition, optional from ordinary machine mode, idle mode,for power saving. This design is due to deepen the understanding of the 51microcontroller design, mastering practical applications, and enhancing the practicalab

5、ility.The design includes hardware design, software programming, simulation, makinghardware, writing reports and other steps.Keywords: 51 microcontroller, multi-functional system design,microcontrollerprogramming目录目录摘要.IAbstract.II目录.3一 项目要求与说明.4二 方案论证.5三 硬件电路设计.51 MCU 控制器简介.52 单片机最小系统.63 矩阵键盘.64 DS

6、18B20 温度检测电路.74.1 DS18B20 温度传感器特性. 74.2 DS18B20 操作时序.85 数码管显示电路.106 流水灯.107 串行口电路.11四 软件设计.121 系统软件开发工具.122 系统流程图.122.1 主机程序流程图.122.2 从机程序流程图.133 软件编程.134 软件实现功能说明.144.1 主机矩阵键盘功能. 144.2 从机独立键盘功能. 14五 仿真分析.151 数据输入与显示功能仿真. 152 温度检测与显示功能仿真. 163 数据通信功能.16六 心得体会.17参考文献.18附件 A 单片机系统原理图.19附件 B 单片机系统实物.20附

7、件 C 主机程序.21附件 D 从机程序.32一一 项目要求与说明项目要求与说明1)完成包含如下系统功能组件的单片机最小系统的设计、焊接、调试)完成包含如下系统功能组件的单片机最小系统的设计、焊接、调试(1)键盘)键盘一个 4X4 的矩阵键盘,其中,10 个按键是 09 数字键;另外 6 个是功能键,用于功能选择和控制。(2)显示电路)显示电路由 6 个 7 段 LED 数码管组成的显示电路。(3)温度检测)温度检测利用 DS18B20 可编程 1-Wire 数字温度传感器芯片,或利用 AD590 温度传感器芯片和 A/D 转换器芯片采集温度温度信号。(4)串口串行通信)串口串行通信利用 51

8、 的串口实现串行通信接口电路。2)完成)完成 ISP 下载电路的设计、焊接下载电路的设计、焊接3)完成系统软件的设计完成系统软件的设计,包括程序结构设计包括程序结构设计、流程图绘制流程图绘制、程序设计程序设计,实现如实现如下功能下功能(1)功能选择)功能选择通过功能选择键, 使得单片机处于不同工作状态并通过 LED 显示相应内容。(2)温度显示)温度显示通过功能选择键选择温度检测、显示后,LED 显示温度值。(3)数据输入)数据输入通过功能选择键选择数据输入后,将通过键盘键入的 09 按键值显示在LED 上,其中,最后输入的显示在最左边,之前键入向右移动一位。(4)数据通信)数据通信将两个单片

9、机最小系统通过串口连接起来,其中一个作为主系统,另一个作为辅系统。当通过功能选择键选择数据通信后,当在主系统上进行功能(2) 、功能(3)的操作时,辅系统的 LED 上显示与主系统同样的内容。4)利用仿真软件完成系统仿真工作)利用仿真软件完成系统仿真工作5)在单片机最小系统硬件上实现任务)在单片机最小系统硬件上实现任务 3 中规定的功能中规定的功能二二 方案论证方案论证温度检测模块方案选择:方案一、采用 AD590 设计温度检测模块,由于需要添加 AD 转换电路、放大电路,电路设计比较繁琐,成本较高。方案二、采用 Dallas 公司生产的 DS18B20 作为测温模块,DS18B20 芯片内部

10、自带 AD 转换电路,使用方便。它采用单总线协议传输技术,只需占用单片机一个 IO 口,电路容易设计,编程比较简单。温度的分辨率可以选择 9 到 12 位的分辨率。综上所述,温度检测模块选择方案二。三三 硬件电路设计硬件电路设计1 1 MCUMCU 控制器简介控制器简介STC89C52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程Flash存储器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 STC89C52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k 字节 Flash,512 字节 RAM, 32 位

11、 I/O 口线,看门狗定时器,内置 4KB EEPROM,MAX810 复位电路,2 个 16 位定时器/计数器,一个 6向量 2 级中断结构,全双工串行口。另外 STC89X52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工作,允许 RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T 可选。2 2 单片机最小系统单片机最小系统单片机最小系统包括振荡器电路,复位电路,单片机 EA 端接高电平(Vcc) ,P0 口需要接上拉

12、电阻(10K) 。振荡器电路选用 12MHz 晶振,两个 30pf 电容,振荡器电路接单片机 XTAL1 和 XTAL2 引脚。单片机最小系统原理图如下。图 1 单片机最小系统3 3 矩阵键盘矩阵键盘矩阵键盘检测的原理和方法: 矩阵键盘每个按键两端都与单片机I/O口相连,因此在检测时需人为通过单片机 I/O 口送出低电平。 检测时, 先送一列为低电平,其余几列全为高电平(此时确定了列数) ,然后立即轮流检测一次各行是否有低电平,若检测到某一行为低电平(这是有确定了行数) ,则便可以确认当前被按下的键是哪一列哪一行,用同样方法轮流送各列一次低电平,再轮流检测一次各行是否变为低电平,这样既可检测完

13、所有的按键,当有键按下时便可判断出按下的是哪一个键。此外还需要消除按键在闭合或断开时的抖动。消抖的方法可采用消抖电路(RS 触发器时锁电路硬件消除抖动),也可采用延时方式软件消除抖动(延时后再重读,以跳过抖动期) ,本设计采用软件消抖方式。矩阵键盘原理图如下。图 2 矩阵键盘4 4 DS18B20DS18B20 温度检测电路温度检测电路4.14.1 DS18B20DS18B20 温度传感器特性温度传感器特性1适应电压范围宽,电压范围在 3.05.5V,在寄生电源方式下可有数据线供电。2独特的单线接口方式, 它与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B20 的双向通信。3支持多

14、点组网功能,多个 DS18B20 可以并联在唯一的三线上,实现组网多点测温。4在使用中不需要任何外围元件, 全部传感器及转换电路集成在形如一只三极管的集成电路内。5测温范围-55+125,在-10+85时精度为0.5。6可编程分辨率为912 位, 对应的可分辨率温度分别为 0.5, 0.25,0.125和 0.0625,可实现高精度测温。4.24.2 DS18B20DS18B20 操作时序操作时序4.2.14.2.1 初始化操作时序初始化操作时序图 3 ds18b20 初始化时序读取时序读取时序图 4 ds18b20 读数据时序写入时序写入时序图 5ds18b2 写数据时序4.2.44.2.4

15、DS18B20DS18B20 实物实物如图所示。图 6 ds18b20 实物4.2.54.2.5DS18B20DS18B20 电路连接电路连接如下图所示。其 DQ 端接单片机的 P2.2 端。图 7 ds18b20 连接5 5 数码管显示电路数码管显示电路数码管的显示原理是靠点亮内部的发光二极管来发光。本次设计中使用的是7 端共阴极数码管,数码管的阳极,即标有 a,b,c,d,e,f,g,h 的引脚全部连在一起,与下面的 U2 元件(74HC573)锁存器的数据输出端相连,U2 的数据输入端连单片机 P0 口。数码管中 WE1,WE2,WE3,WE4,WE5,WE6 是他们的位选端,每个数码管

16、对应一个位选端,与 U3 元件(74HC573)数据出端低6 位相连,U3 的数据输入端连单片机 P0 口。两个锁存器的锁存端分别与单片机P2.6 和 P2.7 相连。这样用单片机可以控制锁存器的锁存端,进而控制锁存器的数据输出,这种分时控制的方法便可方便地控制任意数码管显示任意数字。数码管显示电路下图所示。图 8 数码管显示模块6 6 流水灯流水灯流水灯用于反映系统当前工作状态。 流水灯是一组发光二极管, 如下图所示。这组发光二极管的阴极端连接 U5 元件(74HC573)锁存器的输出端,阳极接一个排阻。U5 的锁存端接单片机的 P2.5 口,这样就可以通过单片机对这组发光二极管的亮灭进行控

17、制。图 9 流水灯模块7 7 串行口电路串行口电路单片机使用的是 TTL 电平,而计算机使用的是 RS-232 电平,要实现把电脑中的程序能下载到单片机上,就需要实现 RS-232 电平与 TTL 电平之间的转换。实现这一功能的芯片有很多,本次课设所使用的芯片为 MAX232 及电容元件构成RS232 电平与 TTL 电平转换的串行口电路。本次课设要完成双机通信功能, 需要两个单片机系统, 一个单片机作为主机,一个作为从机。 可以使用一根串口线连接两个单片机的串口即可完成课设要求的数据通信功能。串行口电路如下图所示。图 10 串口模块四四 软件软件设计设计1 1 系统软件开发工具系统软件开发工

18、具系统软件开发工具采用 C 语言软件开发系统 Keil uVision3。2 2 系统流程图系统流程图2.12.1 主机程序流程图主机程序流程图图 11 主机程序流程图Tempdisplay=1?显示温度读温度值启动温度转换温度指示灯亮发送显示数字键盘指示灯亮Dualcomm=1?NYNYYN初始化按键扫描按键处理Keyinput=1?2.22.2 从机程序流程图从机程序流程图图 12 从机程序流程图3 3 软件编程软件编程见附录初始化键盘扫描Key=1?空闲模式指示灯亮正常模式指示灯灭Testbyte=0 xff?Testbyte=0 xaa?显 示 键 盘 输入数字键 盘 显 示 指示灯亮

19、显示温度温 度 指 示 灯亮YNNNYY4 4 软件实现功能说明软件实现功能说明4.14.1 主机矩阵键盘功能主机矩阵键盘功能图 13 主机键盘功能09:数字输入。F1:矩阵键盘输入功能选择。F2:温度显示功能选择。F3:双机通信功能开关。按下 F1,进行数字输入(09) ,显示在数码管上。按下 F2,可显示温度,按下 F3 可以开关双机通信功能。4.24.2 从机独立键盘功能从机独立键盘功能图 14 从机独立键盘功能Key:空闲模式/正常模式功能切换。17空98空F3F2F1空562304空空空Key选择空闲模式时,LED 灯会亮起,提示工作在空闲模式。当从机 CPU 检测到在一段时间内主机

20、没有发送数据给从机时,从机 CPU 停止工作,此时可由中断唤醒,当主机再次给从机发送数据时,从机正常工作。五五 仿真分析仿真分析Proteus 是世界上著名的 EDA 工具(仿真软件), 它不仅具有其它 EDA 工具软件的仿真功能,还能仿真单片机及外围器件。从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到 PCB 设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持 8051。在编译方面,它支持 IAR、Keil和 MPLAB 等多种编译器。1 1 数据输入与显示功能仿真数据输入与显示功能仿真按

21、下矩阵键盘第四排第一个键,再顺序按下440099,得到结果如图。图 15 键盘输入显示仿真2 2 温度检测与显示功能仿真温度检测与显示功能仿真按下矩阵键盘第四排第二个键, 则显示温度如图为 9摄氏度。图 16 温度显示仿真3 3 数据通信功能数据通信功能在数据输入模式下再按下矩阵键盘第四排第三个键,则左边从机显示与主机相同的内容。图 17 双机通信功能仿真在温度显示模式下再按下矩阵键盘第四排第三个键,则左边从机显示与主机相同的内容。图 18 双机通信功能仿真 1六六 心得体会心得体会在为期十天的单片机实习中,除了对 51 单片机的基础知识有了深刻的理解,还增强了动手的能力,硬件设计,软件设计,

22、包括报告的撰写,每个步骤都让我受益颇深, 。在此次设计中,我的系统采用了被广泛使用的单片机 STC89C52 为主控芯片,配合 DS18B20 温度传感器,LED 数码管,键盘电路所设计的一个多功能系统。在报告中介绍了 DS18B20 的操作方法, 介绍了键盘电路基本原理、 特性及编程方法。对单片机软硬件资源和接口扩展也有部分的介绍和应用。 在系统仿真中对各功能都实现了仿真。这次课程设计使我得到了很多收获,我不仅学到了许多了关于单片机方面的知识,熟悉了与单片机相关的两款软件 Keil 和 Proteus,提高了实验技能;而且也使我的动手能力和电路设计能力得到了极大的提高。在此次设计中,我认为比

23、较麻烦的是编程,本次设计使用的是 C 语言,七百行的程序写了近一天,之后陆续地修修改改、添加新功能,过程很艰难,结果是令人欣慰的。参考文献参考文献1 李群芳. 单片微型计算机与接口技术(第 4 版)电子工业出版社2 郭天祥 新概念 51 单片机 C 语言教程电子工业出版社3 谢自美.电子线路设计实验测试(第三版)华中科技大学出版社4 Dallas 公司DS18B20 数据手册Dallas 公司5 刘教瑜. 单片机原理及应用武汉理工大学出版社6黄智伟. 全国大学生电子竞赛常用电路模块制作北京航空航天大学出版社7王永生. 电子测量学西北工业大学出版社附件附件 A A 单片机系统原理图单片机系统原理

24、图图 19 单片机系统原理图附件附件 B B 单片机系统实物单片机系统实物附件附件 C C 主机程序主机程序#include#define uchar unsigned char#define uint unsigned intsbit dula=P26;/段选sbit wela=P27;/位选sbit led1=P11;/键盘输入功能指示灯sbit led2=P12;/温度显示指示灯sbit led3=P13;/双机通信指示灯sbit DS=P22;/DS18B20 数据端uchar temp1;/用于键盘读取uint key;/存储按键值ucharA1,A2,A2t,A3;/三位温度值bi

25、t stateschange=0;/判别键盘输入现实的值是否发生变化,控制发送程序bit keyinput=0;/判别键盘输入 作为调用键盘显示函数的依据bit temdisplay=0;/判别温度显示 作为调用温度显示函数的依据bit dualcomm=0;/判别是否进行双机通信uchar s6;/键盘控制的 6 位数码管显示内容uchar code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x00,0 x39;/无小数点uchar code table1=0 xbf,0 x86,0 xdb,0 x

26、cf,0 xe6,0 xed,0 xfd,0 x87,0 xff,0 xef;/带小数点uchar code wei=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf;/位选/*延时函数/*/void delay(uint count)uint i;while(count)i=50;while(i0)i-;count-;/*初始化函数/*/void init()dula=0;wela=0;TMOD=0 x20;TH1=0 xfd;TL1=0 xfd;TR1=1;SM0=0;SM1=1;/*发送函数/*/void send()stateschange=0;if(keyinp

27、ut=1)uint i=0;SBUF=0 xff;while(!TI);TI=0;for(i=0;i0)i-;DS=1;i=4;while(i0)i-;bit tmpreadbit(void)/读取一位uint i;bit dat;DS=0;i+;/i+延时DS=1;i+;i+;dat=DS;i=8;while(i0)i-;return (dat);uchar tmpread(void)/读取一字节数据uchar i,j,dat;dat=0;for(i=1;i=8;i+)j=tmpreadbit();dat=(j1);/读出的数据最低位在最前面return(dat);void tmpwrite

28、byte(uchar dat)/写一个字节到 ds18b20uint i;uchar j;bit testb;for(j=1;j1;if(testb)/写 1DS=0;i+;i+;DS=1;i=8;while(i0)i-;elseDS=0;/写 0i=8;while(i0)i-;DS=1;i+;i+;void tmpchange(void)/DS18B20 启动转换dsreset();delay(1);tmpwritebyte(0 xcc);tmpwritebyte(0 x44);void gettmp()/获取温度uint temp;float tt;uchar a,b;dsreset();

29、delay(1);tmpwritebyte(0 xcc);tmpwritebyte(0 xbe);a=tmpread();b=tmpread();temp=b;temp=8;/两字节组成一个整型变量temp=temp|a;tt=temp*0.0625;temp=tt*10+0.5;A1=temp/100;A2t=temp%100;A2=A2t/10;A3=A2t%10;/*显示函数 1 用于温度显示/*/void display()P0=tableA1;/显示百位dula=1;dula=0;P0=0 x7e;wela=1;wela=0;delay(1);wela=1;P0=0 xff;wela

30、=0;P0=table1A2;/显示十位dula=1;dula=0;P0=0 x7d;wela=1;wela=0;delay(1);wela=1;P0=0 xff;wela=0;P0=tableA3;/显示个位dula=1;dula=0;P0=0 x7b;wela=1;wela=0;delay(1);wela=1;P0=0 xff;wela=0;P0=table11;/显示 Cdula=1;dula=0;P0=0 xf7;wela=1;wela=0;delay(1);wela=1;P0=0 xff;wela=0;/*显示函数 2 用于键盘/*/void display2()uint u;for

31、(u=0;u=0&key=9)s5=s4;s4=s3;s3=s2;s2=s1;s1=s0;s0=key;else if (key=12)uint i;keyinput=1;temdisplay=0;led1=0;led2=1;for(i=0;i0;a-)display();if(dualcomm=1)send();附件附件 D D 从机程序从机程序#include#define uchar unsigned char#define uint unsigned intsbit dula=P26;/段选sbit wela=P27;/位选sbit led1=P11;/显示键盘输入数值指示灯s

32、bit led2=P12;/显示温度指示灯sbit led3=P17;/显示是否工作在省电模式sbit key=P34;/独立按键检测bit recevflag=0;/判断是否受到数据uchar a;/存储串口接收到的数据uchar testbyte;/检测字节 帧头 用于判断显示的内容 调用不同的显示函数uint m=0;/键盘数据接收累加器uint k=0;/温度数据接收累加器uint p=0;/计数器中断次数累加器uchar s6=10,10,10,10,10,10;/存储键盘输入的 6 位数据uchar r3=10,10,10;/存储 3 位温度值uchar code table=0

33、x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x00,0 x39;/不带小数点uchar code table1=0 xbf,0 x86,0 xdb,0 xcf,0 xe6,0 xed,0 xfd,0 x87,0 xff,0 xef,0 x00;/带小数点uchar code wei=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf;/位选/*延时函数/*/void delay(uint count)uint i;while(count)i=200;while(i0)i-;count-;/*系统初始化/*/void init()PS=1;/若不设置则空闲模式不能正常工作TMOD=0 x21;TH1=0 xfd;TL1=0 xfd;TH0=0 x00;TL0=0 x00;TR1=1;SM0=0;SM1=1;RE

温馨提示

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

评论

0/150

提交评论