单片机课程设计报告.docx
- 文档编号:14960644
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:28
- 大小:621.60KB
单片机课程设计报告.docx
《单片机课程设计报告.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告.docx(28页珍藏版)》请在冰点文库上搜索。
单片机课程设计报告
《单片机技术》课程设计实验报告
学院:
材料与能源
班级:
08
姓名:
学号:
指导教师:
日期:
2011-1-18
目录
一、课程设计的摘要3
二、课程设计具体要求3
三、单片机系统简介3
四、单片机内部中断系统和定时器/计数器功能简介5
五、霍尔传感器简介6
六、LED数码管显示器简介9
七、上电复位电路10
八、实验内容基本原理及程序框图10
九、程序简介与代码16
十、实验总结17
一、课程设计的摘要
本文介绍的速度表设计以单片机最小系统和霍尔传感器为核心。
传感器将不同车速转变成的不同频率的脉冲信号输入到单片机进行控制与计算,再采用LED模块进行显示,使得电动自行车的速度与里程数据能直观的显示给使用者。
本系统由霍尔传感器、单片机AT89C51、系统化LED显示模块、数据存储电路和键盘控制组成。
其中霍尔传感器包含信号放大和波形整形。
对待测信号进行放大的目的是降低对待测信号的幅度要求;波形变换和波形整形电路则用来将放大的信号转换成可与单片机相连的TTL信号;通过单片机的设置可使内部定时器T0对脉冲输入引脚T0进行控制,这样能精确地算出T0引脚进来一个脉冲所需的时间(即自行车转一圈的时间);设计中速度显示采用LED模块,通过自行车周长和时间得来的速度采用I2C总线并通过E2PROM来存储,既节省了所需单片机的口线和外围器件,同时也简化了显示部分的软件编程
本文先对速度表设计当中所需设备作了详细介绍,对设计中存在的问题进行了说明;而后对硬件和软件部分的设计和实现作了认真的分析;然后给出了系统的建模过程及相应的系统模型,在此基础上进行了控制仿真,并对仿真效果进行了比较。
本速度表的设计具有结构简单,成本低廉,显示清晰,稳定可靠等优点。
并且可进行扩充,加入时速表的功能,更加方便的了解你现在所处的情况。
关键词:
单片机最小系统,LED数码管,霍尔传感器
二、课程设计具体要求
1、在PROTEUS中设计硬件,在KEIL51中编写软件,在PROTEUS中运行程序仿真实现。
2、写课程设计报告,给出设计思想,原理,硬件电路图,给出相应程序,写出相应程序框图,并写出设计过程。
三、MCS-51单片机系统简介
单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系
统。
3.1各部分的功能:
1、中央处理单元(CPU)
CPU是单片机的核心,是计算机的控制和指挥中心,由运算器和控制器等部件组成。
2、存储器
89C51片内有:
4KFlash程序存储器(ROM),它只能读不能写;数据存储器(RAM),它可以读、写。
3、各引脚功能介绍
P0.0-P0.7:
P0口是一组8位漏极开路型双向I/O口,也是地址/数据总线复用口。
P1.0-P1.7:
P1口是一个带内部上拉电阻的8位准双向I/O端口
P2.0-P2.7:
P2口是一个带内部上拉电阻的8位准双向I/O端口
P3.0-P3.7:
P3口是一个带内部上拉电阻的8位准双向I/O端口
ALE地址锁存允许信号端
PROG是对片内带有4KBEPROM的8751编程写入时的编程脉冲输入端
EA程序存储器选择信号端。
VPP固化编程电源输入端(12V)。
RST/VPD:
复位信号端和后备电源输入端
XTAL1和XTAL2:
接外部晶振和微调电容。
若须采用外部时钟电路时,XTAL2引脚悬空
若须采用外部时钟电路时,XTAL1引脚是外部时钟的输入端。
端口引脚
复用功能
P3.0
RXD(串行口输入)
P3.1
TXD(串行口输出)
P3.2
INT0(外部中断0的输入端)
P3.3
INT1(外部中断1的输入端)
P3.4
T0(定时器0的外部输入端)
P3.5
T1(定时器1的外部输入端)
P3.6
WR(外部RAM的“写”选通端)
P3.7
RD(外部RAM的“读”选通端)
MCS-51系列之功能与总线结构
四、MCS-51单片机内部中断系统和定时器/计数器简介
4.1中断系统
当CPU正在处理某事件的时候,外部发生的某一事件请求CPU迅速去处理,于是CPU暂时中止当前的工作,转去处理所发生的事件。
中断服务处理完该事件后,再返回到原来被中止的地方继续原来的工作,这样的过程称为中断。
89C51中断系统的五个中断源,两个中断优先级,可实现二级中断嵌套。
由片内特殊寄存器中的中断允许寄存器IE控制CPU是否响应中断请求;有中断优先级寄存器IP安排各优先中断源的优先级;同一优先级内各终端同时提出中断请求时,由内部的查询逻辑确定其响应次序。
采用的外部中断方式包括外部中断9和外部中断1,它们的中断请求信号分别由单片机引脚P3.2和P3.3输入。
外部中断请求有两种信号方式:
电平触发方式和脉冲触发方式。
电平触发方式的中断请求是低电平有效,只要在引脚上出现有效低电平时,就激活外部中断方式。
脉冲触发方式的中断请求脉冲的负跳变有效。
本次试验采用的是脉冲触发方式。
4.1.1、中断允许控制
CPU对所有中断系统以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制。
IE的状态控制通过程序由软件设定,各位当置:
0为禁止中断,1为允许中断。
CPU复位时,各位为0,禁止所有中断。
寄存器IE各位定义如下:
IE:
中断允许总控置位
EX0:
外部中断0允许位
ETO:
TO溢出中断允许位
EX1:
外部中断1允许位
ET1:
T1溢出中断允许位
ES:
窜行口中断允许位
4.1.2、中断优先级寄存器IP
AT89C52单片机有两个中断优先级,即可实现二级中断嵌套。
每个中断源的中断优先级是由中断优先级寄存器IP中相应的状态决定。
IP的状态由软件设定各位当置:
0为低级别,1为高级别。
复位时,IP各位为0,各中断源为低优先级中断。
寄存器IP各位定义如下:
IP:
中断优先级控制位
PX0:
外部中断0优先级控制位
PTO:
TO溢出中断优先级控制位
PX1:
外部中断1优先级控制位
PT1:
T1溢出中断优先级控制位
PS:
窜行口中断优先级控制位
4.2单片机定时/计数功能介绍
定时/计数器的工作都可由两个特殊的寄存器控制。
这些功能由特殊功能寄存器TMOD和TCON所控制。
4.2.1、工作模式寄存器TMOD
工作模式寄存器TMOD用于控制T0和T1的工作模式1):
GATE:
门控位。
GATE=0,只要用软件使TR0(或TR1)置“1”就可启动定时;GATE=1,只有INT0(或INT1)引脚为高电平且由软件使TR0(或TR1置“1”时,才能启动定时器工作。
C/T:
定时/计数模式选择位。
C/T=0,定时功能;C/T=1,计数功能
M1、M0:
工作方式选择位。
定时/计数有4种工作方式,由M1、M0进行设置。
本次设计TMOD为90H,即选定时/计数器1、定时功能、工作方式1。
工作方式.为16位选定时/计数器。
4.2.2、控制器寄存器TCON
TF1(TCON.7):
T1溢出标志位。
当T1溢出时,由硬件自动使中断触发器TF1置1,并CPU申请中断。
当CPU响应中断进入中断服务程序后,TF1由被硬件自动清0。
TF1也可以用软件清0。
TF0(TCON.5):
T0溢出标志位。
其功能和操作情况同TF1。
TR1(TCON.6):
T1运行控制位。
TR1位置1,定时器T1便开始计数。
TR1位置0,定时器T1便停止计数。
可通过软件置1或清0。
TR0(TCON.4):
T0运行控制位。
其功能和操作情况同TR1。
五、霍尔传感器简介
使用霍尔传感器获得脉冲信号,其机械结构也可以做的较为简单,只要在转轴的齿轮盘上粘上一粒磁钢,霍尔元件固定在前叉上,当车子转动时霍尔元件靠近磁钢,就有信号输出,转轴旋转时,就会不断的产生脉冲信号输出。
如果在齿轮盘上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。
在粘磁钢时要注意,霍尔传感器对磁场方向敏感,粘之前可以先手动接近一下传感器,如果没有信号输出,可以换一个方向再试。
这种传感器不怕灰尘,油污,在工业现场应用广泛。
霍尔传感器是对磁敏感的传感元件,常用于采集的有A44E,该传感器是一个3端器件,外形与三极管相似,只要接上电源,地,即可工作,工作电压范围宽,使用非常方便。
A44E的外形如图2.1所示。
5.1传感器及测量系统
本次设计信号的捕获采用的是霍尔传感器。
霍尔器件具有许多优点,它们的结构牢固,体积小,重量轻,寿命长,安装方便,功耗小,频率高(可达1MHz),耐振动,不怕灰尘,油污,水汽及烟雾等的污染或腐蚀。
霍尔线性器件的精度高,线性度好;霍尔开关器件无触点,无磨损,输出波形清晰,无抖动,五回跳,位置重复精度高。
取用各种补偿和保护措施的霍尔器件工作温度范围宽,可达-55~150摄氏度。
按后者输出数字量。
按被检测对象的性质可将它们的应用分为:
直接应用和间接应用。
前者是直接检测出受监测对象本身的磁场或磁特性,后者是检测受检对象上认为设置的磁场,用这个磁场来做被检测的信息的载体。
通过它,将许多非电,非磁的物理量例如力,力矩,位置,位移,速度,加速度,角度,角速度,转数,转速以及工作状态发生变化的时间等,转变成电量来进行检测和控制。
5.2霍尔传感器的测量原理
霍尔传感器是利用霍尔效应制成的一种敏感传感器。
在置于磁场中的导体或半导体通入电流I,若电流垂直磁场B,则在与磁场和电流都垂直的方向上会出现一个电势差Uh,这种现象称为霍尔效应。
利用霍尔效应制成的元件称为霍尔元件。
因为它具有结构简单,频率响应宽,灵敏度高,测量线性范围大,抗干扰能力强以及体积小,使用寿命长等一系列特点,因此被广泛应用于测量,自动控制及信息处理等领域。
霍尔效应原理图如图3.1所示。
5.3集成开关型霍尔传感器
A44E集成霍尔开关由稳压器A,霍尔电势发生器(即硅霍尔片)B,差分放大器C,施密特触发器D和OC门输出E五个基本部分组成,如图3.2(a)所示。
(1),
(2),(3)代表集成霍尔开关的三个引出端点。
在电源端电压Vcc,经稳压器稳压后加在霍尔电势发生器的两端,根据霍尔效应原理图,当霍尔片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍尔电势差VH输出,该VH信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC门输出。
当施加的磁场达到工作点时,触发器输出高电压(相对于地电位),使三极管导通,此时OC门输出端输出低电压,通常称这种状态为开。
当施加的磁场达到释放点时,触发器输出低电压,三极管截止,使OC门输出高电压,这种状态为关。
这样两次电压变换,使霍尔开关完成了一次开关动作。
工作点与释放点的差值一定,此差值称为磁滞,在此差之内,V0保持不变,因而使开关输出稳定可靠,这也就是集成霍尔开关传感器优良特性之一。
传感器主要特性是它的输出特性,即输入磁感应强度B与输出电压V0之间的关系。
A44E集成霍尔开关是单稳态型,由测量数据做出的输出特性曲线如图3.2(b)所示。
测量时,在1,2两端加5V直流电压,在输出端3与1之间接一个2000k的负载电阻,如图3.3所示。
六、LED数码管显示器简介
由霍尔传感器采集的脉冲数据信号,向单片机提供数据脉冲,单片机再对其进行记数。
当达到先前所设计的计数值的时候单片机就申请中断,从而使单片机响应中断程序,既使其输出一个信号代表此时自行车已经行驶了一圈,这时在经过显示单元电路使LED数码管显示速度。
当第二个信号来的时候,电路实现加一的功能后在送LED显示。
这样就实现了显示速度的目的。
LED数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。
共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。
共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。
当某一字段的阴极为高电平时,相应字段就不亮。
。
共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。
共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。
当某一字段的阳极为低电平时,相应字段就不亮。
本次设计采用共阴极接法。
LED数码管显示器具有静态显示方式和动态显示方式。
本实验采用动态显示方式。
数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a—h"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
LED数码管显示器图1:
共阴极和共阳极两种结构
七、复位电路的设计
AT89C52单片机的复位输入引脚RET为AT89C52提供了初始化的手段。
有了它可以使程序从指定处开始执行,即从程序存储器中的0000H地址单元开始执行程序。
在89C52的时钟电路工作后,只要在RET引脚上出现两个机器周期以上的高电平时,单片机内部则初始复位。
只要RET保持高电平,则89C52循环复位。
只有当RET由高电平变成低电平后,89C52才从0000H地址开始执行程序。
本系统的复位电路是采用按键复位的电路,如图3.11所示,是常用复位电路之一。
单片机复位通过按动按钮产生高电平复位称手动复位。
上电时,刚接通电源,电容C相当于瞬间短路,+5V立即加到RET/VPD端,该高电平使89C52全机自动复位,这就是上电复位若运行过程中需要程序从头执行,只要按动按钮即可。
按下按钮,则直接把+5V加到了RET/VPD端从而复位称为手动复位。
复位后,P0到P3并行I/O口全为高电平,其他寄存器全部清零,只有SBUF寄存器状态不确定。
八、实验内容基本原理及程序框图
利用单片机的定时/计数器,中断系统,霍尔传感器和LED显示器进行设计。
在数码管显示器上显示所测的速度。
用定时/计数器T0,工作于定时,采用方式1,对12MHZ的系统时钟进行定时计数,初值设为XXYY(自己计算)。
形成定时时间为20ms。
用片内RAM的49H单元对20ms计数,则时计数器清0。
计算速度,然后把速度分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。
8.1.测速仪的原理流程图:
8.2.实验的程序框图:
8.2.1自行车测速仪的总体流程图:
软件设计包括主程序、行车过程中速度计算子程序、延时子程序、中断服务子程序、显示子程序等等。
中断子程序是将传感器产生的信号接入外部中断0,将经过74LS74分频后的信号接入外部中断0,利用中断定时器对里程进行累加、每转一周的时间进行测量。
数据处理子程序是将进入单片机的脉冲信号与实际要显示值之间有一定的对应关系,经过软件编程显示所需要的值。
显示子程序是将数据处理的结果送显示器显示。
系统软件总体流程图如下:
8.2.2自行车测速仪的主程序流程图:
在主程序模块中,需要完成对个借口芯片的初始化、自行车速度的初始化、中断向量的设计以及开中断、循环等待等工作。
另外,在主程序模块中还需要设计启动/清除标志寄存器、速度寄存器,并对它们进行初始化。
然后主程序将根据各标志寄存器的内容,分别完成启动、清除和计速等不同的操作。
轮圈大小低电平有效,中断0用于对轮子圈数的计数输入,轮子每转一圈,霍尔传感器输出一个低电平脉冲。
将根据寄存器中的内容计算和判断出行程数。
每次定时器T0的开启时间刚好是转一圈的时间,根据轮子的周长就可以计算出自行车的速度。
其程序框图如下所示:
8.2.3中断程序流程图:
定时中断时为满足定时或计数的需要而设置的。
在单片机内部有两个定时/计数器,以对其中的计数结构进行计数的方法,来实现定时器或计数功能。
当结构发生计数溢出时,即表明定时时间或计数值已满。
这时就以计数溢出信号作为中断请求,去置位一个溢出标志,作为单片机接受中断请求的标志。
这种中断请求时在单片机芯片内部发生的,因此无须在芯片上设置引入端。
定时/计数器控制寄存器TCON是8为寄存器,地址为99H,可以位寻址,其高4位用于定时/计数器中断控制,低4位借给外部中断,用作中断标志和触发方式选择位。
本设计采用定时中断,对自行车的速度进行计数。
中断程序图如下所示:
8.2.4、速度计算子程序
外部中断0服务程序用于处理轮子转动一圈后的计时数据,定时器每20ms溢出一次,并把溢出次数送到49H单元,溢出次数乘以20ms就可以得到转一圈所需要的时间,用车轮的周长除以时间就得出自行车的速度。
速度处理子程序流程图
8.2.5、显示子程序的设计
本设计P1.0、P1.1、P1.2、P1.3信号一起组成位选通的选位信号,P2.0—P2.7信号一起组成段码选通的段选信号,通过软件编程,先把所要显示的数据存入存储单元,然后把数据送入段选通对应的地址,再选通某一个LED,逐步完成LED的显示。
显示子程序流程图:
九、硬件电路
十、程序简介与代码
;采用8位LED软件译码动态显示程序
;使用AT89C51单片机,12MHZ晶振,P0输出字段码,P2口输出位选码,用共阳
;LED数码管,P1.0为调时位选择按键,P1.1为加1键,P1.2为减1键。
;片内RAM的70H到77H单元为LED数码管的显示缓冲区
;78H,79H,7AH分别为秒、分、小时计数单元
;7BH为50ms计数器,7CH为调时按键计数器
ORG0000H
SJMPMAIN
ORG0003H;外部中断0地址
SJMPINT_T0
ORG000BH;定时器0溢出地址
SJMPT_T0
ORG0030H;初始化
MAIN:
SETBEA;CPU开中断
SETBEX0;允许外部中断0中断
SETBET0;允许定时器/计数器T0中断
SETBIT0;选择边沿触发方式
MOVTMOD,#01H
MOVTH0,#0B1H
MOVTL0,#0E0H
MOVR0,#00H
MOVR2,#00H
MOVR3,#00H
MOV49H,#0FFH;置1
MOV50H,#00H
MOV51H,#00H
MOV52H,#00H
MOV53H,#00H
CLRC
SETBTR0;启动定时器T0
LOOP:
ACALLSHOW
SJMPLOOP
ORG000BH;定时器0溢出程序部分
T_T0:
CLRTR0;关闭定时器T0
INCR0
MOVTH0,#0B1H
MOVTL0,#0E0H
SETBTR0;启动定时器T0
RETI
ORG0003H;外部中断0程序部分
INT_T0:
CLRTR0;关闭定时器T0
MOV49H,R0
MOVR0,#00H
MOVTH0,#0B1H
MOVTL0,#0E0H
SETBTR0;启动定时器T0
RETI
SHOW:
ACALLSPEED;调用速度子程序
ACALLAPART;调用子程序
ACALLPLAY;调用LED显示子程序
RETI
SPEED:
MOVA,#78H
MOVB,49H
DIVAB
MOVR2,A
MOVR3,B
MOVA,#00H
ADDA,R3
DAA
MOVR3,A
MOVA,#00H
ADDCA,R2
DAA
MOVR2,A
CLRC
RETI
APART:
MOVA,R3
ANLA,#0FH;余数取低四位
MOV50H,A
MOVA,R3
ANLA,#0F0H;余数取高四位
SWAPA
MOV51H,A
MOVA,R2
ANLA,#0FH;商取低四位
MOV52H,A
MOVA,R2
ANLA,#0F0H;商取高四位
SWAPA
MOV53HA
RETI
PLAY:
MOVR1,#50H
MOVP1,#0FEH
MOVDPTR,#TAB
L0:
MOVA,@R1;余数低四位送到A
MOVCA,@A+DPTR
MOVP2,A
ACALLDELAY;调用延时程序
INCR1
MOVA,P1
RLA;A左移,相当于*2
MOVP1,A
CJNER1,#54H,L0
MOVR1,#50H
MOVA,53H
SWAPA
ADDA,52H
CJNEA,#10H,RING;大于10H,转移到RING(即超速,报警)
CLRP3.0
SJMPRING_OUT
RING:
CLRP3.0
JCRING_OUT
SETBP3.0
RING_OUT:
RET
TAB:
DB3FH,06H,5BH,4FH,66H,6DH
DB7DH,07H,7FH,6FH,77H,7CH
DB39H,5EH,79H,71H,40H,00H
DELAY:
MOVR7,#02H
L1:
MOVR6,#0FFH
L2:
DJNZR6,L2
DJNZR7,L1
RET
END
九、设计制作过程
1、PROTEUS的进入与界面
双击桌面上的ISIS7.1Professional图标或者单击屏幕左下方的“开始”→“程序”→“Proteus7Professional”→“ISIS7Professional”,出现如图1-1所示屏幕,表明进入ProteusISIS集成环境。
图1-1启动时的屏幕
ProteusISIS的工作界面是一种标准的Windows界面,如图1-2所示。
包括:
标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。
2、选择元器件
将所需元器件加入到对象选择器窗口。
PickingComponentsintotheSchematic
单击对象选择器按钮
,如图所示
弹出“PickDevices”页面,在“Keywords”输入AT89C51,系统在对象库中进行搜索查找,并将搜索结果显示在“Results”中,如图所
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)