1设计目的该课题主要是利用单片机技术进行的一项软、硬件开发技术。其目的是培养学生利用单片机技术解决生产、生活中的实际问题,对提高学生设计能力动手能力和工程实践技能有较重要的意义。学生应具备电路分析、电子技术、单片机技术等方面的相关知识,熟悉单片机系统流程图、硬件结构图及汇编语言,能进行单片机控制电路的连接、程序编写、输入、修改及调试等。2设计任务2.1总述本课题主要任务是利用霍尔元件、单片机等部件设计一个可用LED数码管实时显示里程和速度的摩托车的速度里程表。本文主要介绍了摩托车的速度里程表的设计任务、图纸说明、方案设计以及元件的选择等内容,整体上分为硬件部分设计和软件部分设计。具体的硬件电路包括AT89C51单片机的外围电路以及LED显示电路等。软件设计包括:芯片的初始化程序、定时中断采样子程序、显示子程序等,软件采用c语言编写。2.2硬件设计2.2.1总述摩托车的速度里程表的硬件电路设计是基础部分,它包括信号的捕获、放大、整形,单片机的计算处理,数码管的实时显示和单片机外围基本电路的设计,两大主要器件就是传感器和单片机。2.2.2传感器传感器是获取自然或生产领域中信息的关键器件,是现代信息系统和各种设备不可缺少的信息采集工具。其中最具代表的传感器就是霍尔传感器,在自动检测系统中,利用霍尔传感器测转数是一种最基本的测量工作。2.2.3单片机单片机是本次设计的核心部件,它是信号从采集到输出的桥梁,而且包括计算、定时、信息处理等功能。2.2.4数码管本设计采用LED数码管显示。在单片机系统中,通常用LED数码显示器来显示各种数字或符号。由于它具有显示清晰、使用电压低、寿命长的特点,因此使用非常广泛。八段LED显示器由8个发光二极管组成。其中7个发光二极管构成字型“8”的各个笔画段,另一个小数点为dp发光二极管。LED显示器有两种不同的形式:一种是发光二极管的阳极都连在一起的,称为共阳极LED显示器;另一种是二极管的阴极都连在一起的,称为共阴极LED显示器。本次采用共阴极接法。2.2.5存储器单片机原理及系统课程设计报告124C02是一个2K位串行E2PROM。内部含有256个8位字节。24C02支持I2C总线数据传送协议。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式。2.3软件设计2.3.1总体思路利用霍尔传感器在轮胎转动过程中进行采样,形成脉冲信号,利用单片机的定时器中断和计算器T0的计数功能进行计数,设轮胎的周长为一米,一个脉冲代表里程增加一米,然后利用外部扩展的EPROM进行储存,在开始行驶的时候,利用EPROM的读数据子程序读出历史累计里程然后继续进行累加,最后通过显示子程序在led数码管上显示出来。主程序流程图如图1所示。开始读历史里程给定时器赋初值打开相应中断里程,速度清零速度显示判断显示速度总里程,分里程显示判断显示分里程复位判断显示总里程NYNYNY结束图1主程序流程图2.3.2中断子程序如图2,图3所示。单片机原理及系统课程设计报告2开始赋初值累加里程超速判断疲劳驾驶判断报废判断报警报警报警关中断结束YNNYNY开始赋初值计时一秒钟判断速度计算写总里程结束NY图2定时器T0中断图3定时器TI中断2.3.3显示子程序开始计算显示的各个位进行位选进行段选延时结束图4显示子程序流程图3图纸说明单片机原理及系统课程设计报告33.1显示电路图如图5所示。图5显示电路图显示电路图说明:以P2口作为位选信号,以P0口作为段选信号。3.2外部扩展存储电路如图6所示。图6外部扩展存储电路外部扩展存储电路说明:以P2.6作为24c02c的串行时钟输入信号,以P2.7作为24c02c的数据输入输出信号。3.3功能电路详见附录2功能电路说明:以P1.2作为疲劳驾驶报警信号、以P1.3作为复位信号、以P1.5作为分里程总里程选信号、以P1.6作为十万公里报废信号、以P1.4作为超速报警信号、以P1.7作为速度选择信号。4仿真电路图单片机原理及系统课程设计报告4如图7所示。图7仿真电路图5总结四周的课程设计结束了,在这次的课程设计中不仅检测了我所学习的单片机和C语言知识,也培养了我的动手能力。如何去计划一件事情,又如何完成一件事情,在整个设计过程中,独立思考,和同学、老师相互探讨、相互学习。学会了合作,学会了团结,学会了如何耐心的做一件事。最后,我非常感谢侯涛老师非常耐心的讲解,非常严格的检查,让我学会了严谨认真的做事,也感谢周围同学的热心帮助。单片机原理及系统课程设计报告5参考文献[1]王思明、张金敏、苟军年,等.单片机原理及应用系统设计[M].北京:科学出版社,2012.[2]冯博琴,吴宁.微型计算机原理与接口技术[M].三版.北京:清华大学出版社,2011.[3]周明德.微型计算机系统原理及应用[M].四版.北京:清华大学出版社,2002.[4]郑学坚,周斌.微型计算机原理及应用[M].三版.北京:清华大学出版社,2001.[5]李华,王思明,张金敏.单片机原理及应用[M].甘肃:兰州大学出版社,2001.单片机原理及系统课程设计报告6附录:附录1源程序:#includereg52.h#defineucharunsignedchar#defineuintunsignedintunsignedcharcodeled[]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,};longcount=0;intge,shi,bai,qian,wan,n=1;ucharsec,tcnt;unsignedlongzlicheng=0,flicheng=0,sudu=0;sbitsda=P2^7;sbitscl=P2^6;sbitbaofei=P1^6;sbitxuanze=P1^5;sbitsuduxuanze=P1^7;sbitchaosu=P1^4;sbitfw=P1^3;sbitpljs=P1^2;bitwrite=0;voiddelay(){inti,j;for(i=20;i0;i--)for(j=5;j0;j--);}voiddisplay(){wan=count/10000;qian=count%10000/1000;bai=count%1000/100;shi=count%100/10;ge=count%10;P0=led[wan];P2=0x01;delay();P2=0x00;P0=led[qian];P2=0x02;delay();P2=0x00;P0=led[bai];P2=0x04;delay();P2=0x00;P0=led[shi];单片机原理及系统课程设计报告7P2=0x08;delay();P2=0x00;P0=led[ge];P2=0x10;delay();P2=0x00;}voidstart(){sda=1;delay();scl=1;delay();sda=0;delay();}voidstop(){sda=0;delay();scl=1;delay();sda=1;delay();}voidrespons(){uchari;scl=1;delay();while((sda==1)&&(i250))i++;scl=0;delay();}voidinit(){sda=1;delay();scl=1;delay();}voidwrite_byte(uchardate){uchari,temp;temp=date;for(i=0;i8;i++)单片机原理及系统课程设计报告8{temp=temp1;scl=0;delay();sda=CY;delay();scl=1;delay();}scl=0;delay();sda=1;delay();}ucharread_byte(){uchari,k;scl=0;delay();sda=1;delay();for(i=0;i8;i++){scl=1;delay();k=(k1)|sda;scl=0;delay();}returnk;}voidwrite_add(ucharaddress,uchardate){start();write_byte(0xa0);respons();write_byte(address);respons();write_byte(date);respons();stop();}ucharread_add(ucharaddress){chardate;start();write_byte(0xa0);respons();单片机原理及系统课程设计报告9write_byte(address);respons();start();write_byte(0xa1);respons();date=read_byte();stop();returndate;}voidmain(){baofei=1;init();zlicheng=read_add(1)*16777216+read_add(2)*65536+read_add(3)*256+read_add(4);TMOD=0x15;TH0=0xFF;TL0=0xFE;TH1=(65536-50000)/256;TL1=(65536-50000)%256;ET0=1;ET1=1;TR0=1;TR1=1;EA=1;if(fw==0)zlicheng=00000;flicheng=0;sudu=0;while(1){if(suduxuanze==0)count=sudu;elseif(xuanze==1)count=flicheng;elsecount=zlicheng;display();}}voidtime0()interrupt1{TH0=0xFF;TL0=0xFE;zlicheng++;flicheng++;if(sudu=80){单片机原理及系统课程设计报告10chaosu=0;}if(flicheng=200)pljs=0;if(zlicheng==99999){baofei=0;xuanze=0;EA=0;}}voidtime1()interrupt3{TH1=(65536-50000)/256;TL1=(65536-50000)%256;tcnt++;if(tcnt==50){tcnt=0;n++;sudu=flicheng/n*4;write=0;write_add(1,zlicheng/16777216);write_add(2,zlicheng%16777216/65536);write_add(3,zlicheng%65536/256);write_add(4,zlicheng%256);}}单片机原理及系统课程设计报告11附录2功能电路图单片机原理及系统课程设计报告12附录3总电路图