资源描述
年论文
(课程论文、课程设计)
题 目: 车轮速度与里程设计
作 者: 陈轲
所在学院: 信息科学与工程 学院
专业年级: 通信11——1
指引教师: 冯龛
职 称:
年 6 月 10 日
1.1 课题背景:
自行车被创造及使用到当前已有两百近年历史,这两百年间人类在不断尝试与研发过程中,将玩具式木马车转换到今日各式新颖休闲运动自行车,自行车发展目也从最早交通代步工具转换成休闲娱乐运动用途。 随着居民生活水平不断提高,自行车不再仅仅是普通运送、代步工具,而是成为人们娱乐、休闲、锻炼首选。因而,人们但愿自行车功用更强大,能给人们带来更多以便。自行车里程速度表作为自行车一大辅助工具也正是随着这个规定而迅速发展,其功能也逐渐从单一里程显示发展到速度、时间显示,甚至有还具备测量骑车人心跳、显示骑车人热量消耗等功能。本设计采用了MCS-51系列单片机设计一种体积小、操作简朴便携式自行车速度里程表,它能自动地显示当前自行车行走距离及运营速度。
1.2 课题重要任务及内容 :
使用51系列单片机,制作一种自行车速度里程能测量表,规定可以记录自行车实时速度和里程。硬件电路涉及AT89C52单片机外围电路以及LED显示电路等。 软件设计涉及:芯片初始化程序、定期中断采样子程序、显示子程序等,软件采用C语言编写,软件设计思想重要是自顶向下,模块化设计,各个子模块逐个设计。
1.3开发软件及硬件简介:
1.3.1 PROTEUS简介
Proteus是英国Labcenter公司开发电路分析与仿真软件。该软件特点是:①集原理图设计、仿真和PCB设计于一体,真正实现从概念到产品完整电子设计工具,②具备模仿电路、数字电路、单片机应用系统、嵌入式系统(不高于ARM7)设计与仿真功能,③具备全速、单步、设立断点等各种形式调试功能,④具备各种信号源和电路分析所需虚拟仪表,⑤支持Keil C51 uVision2、MPLAB等第三方软件编译和调试环境,⑥具备强大原理图到PCB板设计功能,可以输出各种格式电路设计报表。拥有PROTEUS电子设计工具,就相称于拥有了一种电子设计和分析平台。Proteus软件自 1989 年问世至今,经历了近发展历史,功能得到了不断完善,性能越来越好,全球顾客也越来越多。PROTEUS之因此在全球得到应用,因素是它具备自身特点和构造。PROTEUS电子设计软件由原理图输入模块(简称ISIS)、混合模型仿真器、动态器件库、高档图形分析模块、解决器仿真模型及PCB板设计编辑(简称ARES)六某些构成。
1.3.2 Keil简介
Keil C51是美国Keil Software公司出品51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、构造性、可读性、可维护性上有明显优势,因而易学易用。Keil提供了涉及C编译器、宏汇编、连接器、库管理和一种功能强大仿真调试器等在内完整开发方案,通过一种集成开发环境(uVision)将这些某些组合在一起。运营Keil软件需要WIN98、NT、WIN、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你不二之选,虽然不使用C语言而仅用汇编语言编程,其以便易用集成环境、强大软件仿真调试工具也会令你事半功倍。2月发布Keil μVision4,Keil μVision4引入灵活窗口管理系统,使开发人员可以使用多台监视器,并提供了视觉上表面对窗口位置完全控制任何地方。新顾客界面可以更好地运用屏幕空间和更有效地组织各种窗口,提供一种整洁,高效环境来开发应用程序。新版本支持更多最新ARM芯片,还添加了某些其她新功能。
1.3.3 AT89C52简介;
AT89C52是一种低电压,高性能CMOS 8位单片机,片内含8k bytes可重复擦写Flash只读程序存储器和256 bytes随机存取数据存储器(RAM),器件采用ATMEL公司高密度、非易失性存储技术生产,兼容原则MCS-51指令系统,片内置通用8位中央解决器和Flash存储单元,AT89C52单片机在电子行业中有着广泛应用。AT89C52为8 位通用微解决器,采用工业标
PDIP封装AT89C52引脚图准C51内核,在内部功能及管脚排布上与通用8xc52 相似,其重要用于会聚调节时功能控制。功能涉及对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件初始化,会聚调节控制,会聚测试图控制,红外遥控信号IR接受解码及与主板CPU通信等。重要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容构成复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源正负端。P0~P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(32~39 脚)被定义为N1 功能控制端口,分别与N1相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 相应功能端,用于当前制式检测及会聚调节状态进入控制功能。
P0 口是一组8 位漏极开路型双向I/O 口, 也即地址/数据总线复用口。作为输出口用时,每位能吸取电流方式驱动8 个TTL逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0 口接受指令字节,而在程序校验时,输出指令字节,校验时,规定外接上拉电阻。
P1 口是一种带内部上拉电阻8 位双向I/O 口, P1 输出缓冲级可驱动(吸取或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,由于内部存在上拉电阻,某个引脚被外部信号拉低时会输出一种电流(IIL)。与AT89C51 不同之处是,P1.0 和P1.1 还可分别作为定期/计数器2 外部计数输入(P1.0/T2)和输入(P1.1/T2EX),
参见表1。
Flash 编程和程序校验期间,P1 接受低8 位地址。
表.P1.0和P1.1第二功能
引脚号
功能特性
P1.0
T2,时钟输出
P1.1
T2EX(定期/计数器2)
P2 口 是一种带有内部上拉电阻8 位双向I/O 口,P2 输出缓冲级可驱动(吸取或输出电流)4 个TTL 逻辑门电路。对端口P2 写“1”,通过内部上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,由于内部存在上拉电阻,某个引脚被外部信号拉低时会输出一种电流(IIL)。在访问外部程序存储器或16 位地址外部数据存储器(例如执行MOVX @DPTR 指令)时,P2 口送出高8 位地址数据。在访问8 位地址外部数据存储器(如执行MOVX@RI 指令)时,P2 口输出P2锁存器内容。Flash编程或校验时,P2亦接受高位地址和某些控制信号。
P3 口是一组带有内部上拉电阻8 位双向I/O 口。P3 口输出缓冲级可驱动(吸取或输出电流)4 个TTL 逻辑门电路。对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低P3 口将用上拉电阻输出电流(IIL)。P3 口除了作为普通I/O 口线外,更重要用途是它第二功能P3 口还接受某些用于Flash闪速存储器编程和程序校验控制信号。
RST复位输入。当振荡器工作时,RST引脚浮现两个机器周期以上高电平将使单片机复位。
ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存容许)输出脉冲用于锁存地址低8 位字节。普通状况下,ALE 仍以时钟振荡频率1/6 输出固定脉冲信号,因而它可对外输出时钟或用于定期目。要注意是:每当访问外部数据存储器时将跳过一种ALE 脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中8EH 单元D0 位置位,可禁止ALE 操作。该位置位后,只有一条MOVX 和MOVC指令才干将ALE 激活。此外,该引脚会被薄弱拉高,单片机执行外部程序时,应设立ALE 禁止位无效。
PSEN程序储存容许(PSEN)输出是外部程序存储器读选通信号,当AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP外部访问容许。欲使CPU 仅访问外部程序存储器(地址为0000H—FFFFH),EA 端必要保持低电平(接地)。需注意是:如果加密位LB1 被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU 则执行内部程序存储器中指令。Flash存储器编程时,该引脚加上+12V 编程容许电源Vpp,固然这必要是该器件是使用12V编程电压Vpp。
XTAL1振荡器反相放大器及内部时钟发生器输入端。
XTAL2振荡器反相放大器输出端。
2.1设计原理:
检测传感器由永久磁铁和开关型霍尔集成电路UGN3020构成。UGN3020由霍尔元件、放大器、整形电路及集电极开路输出等某些构成,其功能是把磁信号转换成电信号。检测传感器工作原理如下,车轮每转动一周,磁铁就通过UGN3020一次,从而其3脚就输出一种脉冲信号。UGN3020输出脉冲信号作为单片机集成电路AT89C2051外部中断信号,从P3.2口输入。由单片机测量脉冲信号个数和脉冲周期。测量脉冲信号个数可计算出里程,测量脉冲信号周期可计算出速度,固然这此计算都是由单片机完毕,咱们看到是数码管上显示成果。按钮开关S1用来对显示里程和速度进行切换,电路初始状态为显示速度。
数码管DS1~DS3、VT1~VT3、R4~R13等构成数码显示电路。本机采用动态扫描显示方式,使用共阳数码管, P3.3-P3.5口作三个数码管动态扫描位驱动码输出,通过三极管驱动数码管。P1.0-P1.6口作数码显示七段笔划字形码输出。
仿真原理图
程序设计
程序用C语言编写,由主程序、外部中断0服务程序、定期器T0中断服务程序、延时子程序等模块构成。主程序重要完毕程序初始化和键盘解决,外部中断0服务程序由测量、计算、读数等某些构成,定期器T0中断服务程序由计时、动态扫描显示、自行车停车判断等某些构成。从P3.2口输入脉搏脉冲信号作为外部中断0祈求中断信号,外部中断采用边沿触发方式。在测量速度时,由于车轮转动脉冲信号频率很低,因而不适当使用计数办法测量,而是采用测脉冲周期办法进行测量,用脉冲信号系统来控制计时信号,通过计时数计算出脉冲周期,把车轮周长除以周期即可得到自行车行驶速度;在测量行驶里程时,通过对脉冲信号个数计数,用计数值乘以车轮周长即可获得行驶里程。需要阐明是:测量脉冲信号周期和个数是同步进行,咱们要做事情只是用按钮开关切换显示不同量。
3.1仿真成果:
速度7m/s里程30m
速度6m/s里程48m
速度9m/s里程18m
当速度拟定之后,没发出一种脉冲,里程就会相应增长。例如当前速度为6m/s里程为54m,当下一种脉冲来暂时里程将会变为60m。
4.1设计总结:
通过这次课程设计,我理解了proteus以及Kiel软件强大,同步也对这个专业有了不同样结识。此前以为C语言是一种实用性不太强,并且无用程序设计语言,因此平时也就没怎么学,直到这次做这次课程才发现C牢骚作用如此之大。同步也后悔自己开始小看她没有好好学,导致当前C语言基本如此差,在与AT89C52单片机编程实验中总是遇到错误。这次设计中更是错误百出。通过这次设计我发现这个专业还是很有趣,此后我会好好将C语言基本知识补习补习,争取可以自己做出某些比较故意思设计。
5.1参照文献:
王烈军 ,《单片机原理与应用》 ,西安交通大学出版社
冯博琴 ,《微型计算机原理与接口技术》 ,清华大学出版社
附录:
源程序代码:
#include<reg52.h>
#define uchar unsigned char
#define unit unsigned char
#define pi 3
uchar code numcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unit speed=0;
unit quan=0;
unit distance=0;
unit r=1;
unit time=0;
unit a=0;
void delay()
{ int i;
for(i=0;i<20;i++);
}
void playcount( )
{
P1=0xfe;
P0=numcode[speed%10];
delay();
P1=0xfd;
P0=numcode[speed%100/10];
delay();
P1=0xfb;
P0=numcode[speed/100];
delay();
P1=0xf7|0x80;
P0=numcode[distance%10];
delay();
P1=0xef;
P0=numcode[distance%100/10];
delay();
P1=0xdf;
P0=numcode[distance/100];
delay();
}
void main()
{
EA=1;
ET1=1;
TH1=15536/256;
TL1=15536%256;
TR1=1;
while(1)
{
distance=2*3*r*time;
speed=distance/quan;
playcount( );
}
}
void int_3() interrupt 3
{ a++;
if(a==20)
{ time++;
TMOD=0x05;
TH0=65534/256;
TL0=65534%256;
TR0=1;
if(TF0==1)
quan++;
TF0=0;
TF1=1;
}
TH1=15536/256;
TL1=15536%256;
}
新疆大学课程论文(设计)、年论文评分表
题 目
车轮速度与里程设计
作 者
陈轲
专业年级
通信11-1
指引教师
冯龛
指引教师评语及
评分建议
指引教师:
年 月 日
院
(部)
或
教
研
室
意
见
学院或教研室主任:
年 月 日
展开阅读全文