单片机课程设计.docx

上传人:b****2 文档编号:2363405 上传时间:2022-10-29 格式:DOCX 页数:30 大小:1.12MB
下载 相关 举报
单片机课程设计.docx_第1页
第1页 / 共30页
单片机课程设计.docx_第2页
第2页 / 共30页
单片机课程设计.docx_第3页
第3页 / 共30页
单片机课程设计.docx_第4页
第4页 / 共30页
单片机课程设计.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

单片机课程设计.docx

《单片机课程设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计.docx(30页珍藏版)》请在冰豆网上搜索。

单片机课程设计.docx

单片机课程设计

单片机原理及应用课程设计

设计题目单片机最小系统设计及应用

学院名称核技术与自动化工程学院

专业名称电气工程及其自动化

学生姓名

学生学号

任课教师任家富、阳小燕、王洪辉、李琳琳

设计(论文)成绩

 

教务处制

2015年6月30日

摘要

STC89C51单片机实验板实现了最基本的键盘输入、4位LED显示、RS232串行通信、ISP在线编程等功能,并在上面提供了很多扩展的功能接口,用扩展口接上这块实验板后,可以完成单片机的部分实验。

系统在用RS232C与计算机相连后,可直接从计算机上下载程序进行调试,并可以随时进行下载调试,具有及时方便的特点。

通过本次课程设计掌握单片机硬件和软件方面的知识,更深入的了解单片机的实际应用,本次设计课程采用STC89C82单片机和ADC0804,LED显示,键盘,RS232等设计一个单片机开发板系统。

进行了LED显示程序设计,键盘程序设计,RS232通信程序设计等。

实现了单片机的各个程序的各个功能。

对仿真软件keil的应用提升了一个新的高度。

单片机体积小、成本低、使用方便,所以被广泛地应用于仪器仪表、现场数据的采集和控制。

关键词:

调试;LED;ADC;单片机;显示;键盘;程序

第1章概述

单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。

单片机采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。

概括的讲:

一块芯片就成了一台计算机。

它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。

同时,学习使用单片机是了解计算机原理与结构的最佳选择。

它最早是被用在工业控制领域,由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。

最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。

现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。

手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。

汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!

单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。

单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。

各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。

第2章系统硬件设计

2.1系统整体设计

2.2系统主要元件选择

2.2.1AT89C51单片机

89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。

单片机的可擦除只读存储器可以反复擦除100次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。

 

2.2.2数码管

数码管分为共阳数码管和共阴数码管,所谓的共阴数码管就是8只LED小灯的阴极是接在一起的,也就是阴极是公共端,由阳极来控制小灯是否亮灭。

同理,共阳数码管就是阳极是接到一起的,大家可以仔细研究下图1。

细心的同学也会发现,数码管上边有2个com,实际上就是我们数码管的公共端。

为什么有2个,我个人认为,一方面有2个可以起到对称的效果,刚好是10个引脚,另外一个方面,公共端通过的电流较大,我们初中就学过,并联电路电流之和等于总电流,用2个com可以把公共电流平均到2个引脚上去,降低线路承受的电流。

2.2.3键盘

矩阵键盘工作原理:

由于按键没有接地,4行4列正好占用8个I/O如果4行我们送P3.0到P3.3送入0111然后去读取4列的值,如果P3.0的按键按下那么P3.4---P3.7的值等于0111,假如是第2个键按下的话那么读回来的值是1011,如果第3个键按下去读回来的值是1101,如果第4个键按下去读回来的值是1110,如果没有键按下去读回来就是1111。

所以我们就根据读回来的值来判断按下去的是那个键。

当然这是对P3.0这一行,因为矩阵键盘是扫描的,所以下次把P3.0给1P3.1给0对第2行,陆续的第3行第4行,0111101111011110而每次都去从新扫描一遍列值列有4个值,以确定是那个键按下。

无论何时任何一个时间有一个按键被按下就跳出循环。

当然不可能有2个键刚好一起按下你的手没有这么好的力度,就算有2个键一起按键,程序也有先后检测的顺序,只能检测一个后面的检测不到。

2.2.4发光二极管

 

2.2.5串口通信

串口通信的概念非常简单,串口按位(bit)发送和接收字节。

尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。

它很简单并且能够实现远距离通信。

比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。

典型地,串口用于ASCII码字符的传输。

通信使用3根线完成:

(1)地线,

(2)发送,(3)接收。

由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。

其他线用于握手,但是不是必须的。

串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。

对于两个进行通信的端口,这些参数必须匹配:

 

 a,波特率:

这是一个衡量通信速度的参数。

它表示每秒钟传送的bit的个数。

例如300波特表示每秒钟发送300个bit。

当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。

这意味着串口通信在数据线上的采样率为4800Hz。

通常电话线的波特率为14400,28800和36600。

波特率可以远远大于这些值,但是波特率和距离成反比。

高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。

 

  b,数据位:

这是衡量通信中实际数据位的参数。

当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。

如何设置取决于你想传送的信息。

比如,标准的ASCII码是0~127(7位)。

扩展的ASCII码是0~255(8位)。

如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。

每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。

由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。

  c,停止位:

用于表示单个包的最后一位。

典型的值为1,1.5和2位。

由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。

因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。

适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

 

  d,奇偶校验位:

在串口通信中一种简单的检错方式。

有四种检错方式:

偶、奇、高和低。

当然没有校验位也是可以的。

对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。

例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。

如果是奇校验,校验位位1,这样就有3个逻辑高位。

高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。

这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。

第3章系统软件设计

3.1LED显示程序设计

3.1.1LED显示电路

3.1.2子程序

 

1、CLS子程序

CLS:

MOVA,#0FFH

MOVDPTR,#8000H

MOVX@DPTR,A

MOVDPTR,#9000H

MOVX@DPTR,A

MOVDPTR,#0A000H

MOVX@DPTR,A

MOVDPTR,#0B000H

MOVX@DPTR,A

RET

2、DISP子程序

DISP:

MOVA,70H

MOVDPTR,#8000H

MOVX@DPTR,A

MOVA,71H

MOVDPTR,#9000H

MOVX@DPTR,A

MOVA,72H

MOVDPTR,#0A000H

MOVX@DPTR,A

MOVA,73H

MOVDPTR,#0B000H

MOVX@DPTR,A

RET

3、PRINT子程序

PRINT:

MOVA,70H

SUBBA,#30H

MOVDPTR,#TABLED

MOVCA,@A+DPTR

MOVDPTR,#0B000H

MOVX@DPTR,A

MOVA,71H

SUBBA,#30H

MOVDPTR,#TABLED

MOVCA,@A+DPTR

MOVDPTR,#0A000H

MOVX@DPTR,A

MOVA,72H

SUBBA,#30H

MOVDPTR,#TABLED

MOVCA,@A+DPTR

MOVDPTR,#9000H

MOVX@DPTR,A

MOVA,73H

SUBBA,#30H

MOVDPTR,#TABLED

MOVCA,@A+DPTR

MOVDPTR,#8000H

MOVX@DPTR,A

RET

TABLED:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H;0-8

DB90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH,8CH;9AB,C,DE,F,P

DB0BFH;42

4、显示“HELL”子程序

HELL:

MOVA,#89H

MOVDPTR,#0B000H

MOVX@DPTR,A

MOVA,#86H

MOVDPTR,#0A000H

MOVX@DPTR,A

MOVA,#0C7H

MOVDPTR,#9000H

MOVX@DPTR,A

MOVA,#0C7H

MOVDPTR,#8000H

MOVX@DPTR,A

RET

1、显示”P232”

LCALLSET232

MOV70H,#41H

MOV71H,#32H

MOV72H,#33H

MOV73H,#32H

LCALLPRINT

LCALLKEY

RET

2、显示”----“

MOV70H,#42H

MOV71H,#42H

MOV72H,#42H

MOV73H,#42H

LCALLPRINT

RET

3.2键盘程序设计

3.2.1程序流程图

3.2.2程序

 

ORG0000H

LJMPSTART

ORG0003H

LJMPSTART

ORG0100H

START:

LCALLCLS

LCALLHELLO

LCALL

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 其它考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1