应用电子技术-电子计价器毕业论文
威 海 职 业 学 院
毕 业 设 计 任 务 书
专业 年级 班级 3班
姓名 学号
威 海 职 业 学 院 教 务 处 编 印
毕业设计指导须知
一、毕业设计是高职教学过程中一个十分重要的环节。是锻
炼学生运用所学知识正确分析和解决实际问题的一个重要方面,也是高职培养应用型专门人才的要求。
二、指导教师应为具有讲师以上或相应职称的有关专业人员,
且专业对口(指所指导专业应同所聘教师专业职称相一致)。经系、教务处审查同意后,才能指导学生的毕业设计。
三、学生应以严肃认真,实事求是的态度完成设计。要独立
思考,自己动手,不得抄袭或找人代笔。
四、毕业设计选题要符合专业培养目标的要求。论文(任务
书)写作要做到论点明确、论据充分,论理透彻,语言准确恰当,书面整洁、字迹工整,图纸应清晰、工整,符合设计要求,符合国家有关标准和部颁标准。字数、图纸数量符合有关要求。并在规定的时间内完成。
五、答辩过程中学生要严肃认真,文明礼貌,谦虚谨慎,认真
回答答辩主持人,委员等提出的问题。
六、填报有关表格时,应按项目要求逐项填实、填全、填清。
答 辩 情 况 记 录
基于51单片机的出租车计价器
摘 要
出租车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是十分有一个应用价值的。 而采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。而采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。针对计费模式的切换,通过软件编程就可以轻易而举的实现。避免了机械开关带来的不稳定因素。另外在本方案中那个使用了点阵的液晶,可以实现更加友好的使用界面。数据信息一目了然,并且即使是成品也可以方便的修改使用界面,更可根据不同的公司客户使用不同的局面„„
关键词:出租车计价器,单片机,液晶,控制稳压电源
目 录
前言 ......................................................................... 1
第一章 设计思路 ............................................................. 2
1.1出租车计价器概述 ....................................................... 2
1.2可调速电机设计思路 ..................................................... 2
第二章 系统硬件结构设计 ................................................... 3
2.1 电源模块 ............................................................. 3
2.1.1 三端集成稳压器 .................................................. 3
2.1.2 稳压电源 ........................................................ 3
2.2单片机主控模块 ......................................................... 4
2.2.1 AT89S51单片机简介 ............................................... 4
2.2.2 单片机小系统 .................................................... 5
2.3 液晶显示模块 .......................................................... 6
2.3.1 液晶显示原理 .................................................... 6
2.3.2 液晶显示器的分类 ................................................ 6
2.3.3 引脚功能及说明 ................................................. 6
2.3.4 时序图 .......................................................... 7
2.3.5 液晶的设计 ...................................................... 7
2.4 按键模块 ............................................................. 8
2.4.1 按键的分类 ...................................................... 8
2.4.2 按键选择 ........................................................ 8
2.5 电机驱动模块 ......................................................... 8
2.5.1 H桥电机驱动原理 ................................................. 8
2.5.2 H桥内部原理 ..................................................... 8
2.5.3 H桥设计 ......................................................... 9
2.6 传感器模块 ........................................................... 9
2.6.1 模块原理 ........................................................ 9
2.6.2 传感器模块的设计 ............................................. 11
第三章 软件部分 ............................................................ 12
第四章 焊接与软硬件调试 .................................................. 24
4.1 电路的焊接 ........................................................... 24
4.2 软硬件调试 ........................................................... 24
4.2.1 软件的调试 ..................................................... 24
4.2.2 硬件的调试 ..................................................... 24
第五章 结束语 .............................................................. 25
5.1论文总结 .............................................................. 25
5.2 工作展望 ............................................................. 25 附录1 PCB ............................................................... 26 附录2 实物图 ............................................................. 26
附录3程序流程图 ......................................................... 27 参考文献、资料索引 ........................................................ 28 致 谢 .................................................................... 29
基于51单片机的出租车计价器
前言
步入21世纪,出租车已经广泛地出现在我们周围。随着人们生活水平的不断提高,出租车的使用频率也越来越高,出租车行业也以高质量的服务给人们带来了出行的享受。但是由于行业的特殊性,出租车行业总存在着买纠纷,困扰着行业的发展。而在出租车行业中解决这一矛盾的最好方法就是改良计价器,用更加精良的计价器来为乘客提供更加方便快捷的服务。
30年前,我国出现了出租车,但是由于当时的经济水平,出租车并没有普遍在我们生活中出现。随着改革开放的深入,出租车行业的发展势头已十分突出。如今出租车在我国的交通运输中承担着重要的角色,出租车计价器是出租车上必不可少的重要仪器,它是负责出租车营运收费的专用智能化仪表。随着城市旅游业的发展,出租车行业已成为城市的窗口,象征着一个城市的文明程度。
我们都知道,只要出租车开动,随着行驶里程的增加,就会看到汽车前面的计价器里程数字显示的读数从零逐渐增大,而当行驶到某一值时(如4KM)计费数字显示开始从起步价(如6元)增加。当出租车到达某地需要在那里等候时,司机只要按一下“计时”键,每等候一定时间,计费显示就增加一个该收的等候费用。汽车继续行驶时,停止计算等候费,继续增加里程计费。到达目的地,便可按显示的数字收费。
采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。为此我们采用了单片机进行设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能
第一章 设计思路
本次课程设计利用单片机技术来实现一台多功能出租车计价器,具有性能可靠、电路简单、成本低等特点
1.1出租车计价器概述
采用电机模拟计价器,通过单片机控制电机起停、转速,通过光电对管产生高低脉冲并送往单片机中断,通过计算中断次数而得出速度,进而得出里程、金额。数据在1602液晶上显示。
1.2可调速电机设计思路
采用AT89S51单片机作为主控芯片,用软件实现上述小车控制器的功能,使控制系统大为简化,不仅降低了成本,而且控制方便,提高了可靠性。在电机的单片机控制系统中,脉冲的产生及速度的控制都是由单片机来实现,利用单片机控制液晶显示速度的大小,通过按键实现速度的调整。
第二章 系统硬件结构设计
本系统的硬件设计主要包括单片机AT89S51、电机驱动、液晶显示、传感器电路、按键部分、蜂鸣器部分。在硬件设计过程中,充分利用各部件的功能,实现简易的出租车计价器设计。
硬件功能图:
2.1 电源模块
本实验需要稳定的电源,电池可以满足要求,但是电机转动时消耗的电量较大,电池就有些不合适,所以本实验需要制作稳压电源。 2.1.1 三端集成稳压器
电子产品中,常见的三端稳压集成电路有正电压输出的78 ×× 系列和负电压输出的79××系列。顾名思义,三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端。用78/79系列三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。 2.1.2 稳压电源
直流稳压电源采用经7805三端稳压器及滤波电路后输出的直流电压。如图2-1,C4、C5为滤波电容,在经过7805稳压后,C6、C7来改善负载的瞬态响应,消除电路的高频噪声,同时也有消振作用。D9是保护二极管,用来防止在输入端短路时输出电容C4所存储电荷通过稳压器放电而损坏器件。采用该直流稳压电源对该系统的供电稳定性要比干电池稳定的多。
图2-1 稳压电源
2.2单片机主控模块
2.2.1 AT89S51单片机简介
AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
如图2-2所示,AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
图2-2-1 AT89S51引脚配置
此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。 2.2.2 单片机小系统
单片机是整个测试系统的核心,单片机小系统包括时序电路和复位电路。如图2-2-2所示:
图2-2-2 单片机小系统
(1)时钟电路
系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。
(2)复位电路
复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电电路。
2.3 液晶显示模块
2.3.1 液晶显示原理
液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。 2.3.2 液晶显示器的分类
液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(Simple Matrix)和主动矩阵驱动(Active Matrix)三种。 2.3.3 引脚功能及说明
表2-3-3
2.3.4 时序图
如图2-3-1、2-3-2所示
(1)读操作时序
图2-3-1液晶时序图
(2)写操作时序图
图2-3-2液晶时序图
2.3.5 液晶的设计
图2-3-3 液晶模块
2.4 按键模块
2.4.1 按键的分类
按键按照结构原理可分为两类,一类是触点式开关按键,另一类是无触点式开关按键,目前,微机系统中最常见的是触点式开关按键。
按键按照接口原理可分为编码键盘与非编码键盘两类,这两类键盘的主要区别是识别键符及给出相应键码的方法。编码键盘主要是用硬件来实现对键的识别,非编码键盘主要是由软件来实现键盘的定义与识别。 2.4.2 按键选择
通过键盘控制软件来改变电机的速度。单片机的P2.0控制开始,P2.1控制停止,P2.2和P2.3控制加减速。若加速到最大后,继续按加速键则认为无效,系统不会作出响应。图如2-4所示:
图2-4按键部分
2.5 电机驱动模块
2.5.1 H桥电机驱动原理
由两个三极管,一个可以对正极导通实现上拉,另一个可以对负极导通实现下拉。 由两套这样的电路,在同一个电路中,同时一个上拉,另一个下拉,或相反,两者总是保持相反的输出,这样可以在单电源的情况下使负载的极性倒过来。由于这样的接法加上中间的负载画出来经常会像一个H的字样,故得名H桥。
H桥电路在功放、直流电机驱动或直流变换电路中被广泛使用。 2.5.2 H桥内部原理 如下图a)、b)所示
a) b)
2.5.3 H桥设计
图2-5 H桥的应用
2.6 传感器模块
2.6.1 模块原理 (1)LM393概述与特点
LM393 为双电压比较器,LM393 系列由两个偏移电压指标低达 2.0 的独立精密电压比较器构成。该产品采用单电源操作设计,且适用电压范围广。该产品也可采用分离式电源,低电耗不受电源电压值影响。本品还有一个特点是,即使是在单电源操作时,其输入共模电压范围也包括接地。LM393 系列可直接与 TTL 及 CMOS 逻辑电路接口。无论时正电源还是负电源操作,当低电耗比标准比较器的优势明显时,LM393 系列便与 MOS 逻辑电路直接接口。 各引脚功能:8 脚电源+,4 脚电源-,1 脚比较器 A 输出,2脚比较器 A 反相输入,3 脚比较器 A 同向输入,5 脚比较器 B 同向输入,6 脚比较器 B 反相输入,7 脚比较器B输出
(2)LM339主要参数表:
使用说明
LM393/339是高增益,宽频带器件,象大多数比较器一样,如果输出端到输入端有寄生电容而产生耦合,则很容易产生振荡.这种现象仅仅出现在当比较器改变状态时,输出电压过渡的间隙.电源加旁路滤波并不能解决这个问题,标准PC板的设计对减小输入—输出寄生电容耦合是有助的.减小输入电阻至小于10K将减小反馈信号,而且增加甚至很小的正反馈量(滞回1.0~10mV)能导致快速转换,使得不可能产生由于寄生电容引起的振荡.除非利用滞后,否则直接插入IC并在引脚上加上电阻将引起输入—输出在很短的转换周期内振荡,如果输入信号是脉冲波形,并且上升和下降时间相当快,则滞回将不需要. 比较器的所有没有用的引脚必须接地.
LM393/339偏置网络确立了其静态电流与电源电压范围 2.0~30V无关.
通常电源不需要加旁路电容。差分输入电压可以大于并不损坏器件.保护部分必须能阻止输入电压向负端超过-0.3V. LM393/339的输出部分是集电极开路,发射极接地的 NPN输出晶体管,可以用多集电极输出提供功能.输出负载电阻能衔接在可允许电源电压范围内的任何电源电压上,不受 端电压值的限制.此输出能作为一个简单的对地SPS开路(当不用负载电阻没被运用),输出部分的陷电流被可能得到的驱动和器件的β值所限制.当达到极限电流(16mA)时,输出晶体管将退出而且输出电压将很快上升.输出饱和电压被输出晶体管大约60ohm 的限制。当负载电流很小时,输出晶体管的低失调电压(约1.0mV)允许输出箝位在零电平。 2.6.2 传感器模块的设计
图2-6 传感器模块
第三章 软件部分
出租车计价器的软件设计主要由PWM脉冲产生程序,液晶显示程序,中断子程序组成。C语言程序具有较高的效率,本程序并不很复杂,所以选用C语言。
主程序实现调用子程序及计算,子程序包括延时子程序,液晶显示子程序,电机速度调节子程序,外部中断子程序。通过P2.3、P2.1控制电机起停,P2.2、P2.0控制速度的增减。P2.5为蜂鸣器端口。
单片机开始运行后执行主程序,程序默认上电后按150转/分顺时针转动,转动的速度通过改变PWM的占空比实现,子程序中检测P2.2和P2.0口是否被置低电平,如果变为低电平说明加速或减速键被按下,此时会相应的改变速度大小。
1602液晶显示也是在延时子程序中实现,每执行一次就会让液晶改变显示一次。
模拟电机的速度计算是通过外部中断实现的,如果外部中断产生中断申请时,执行中断子程序,在主程序中会相应的计算速度。
程序清单
#INCLUDE
#DEFINE UCHAR UNSIGNED CHAR
#DEFINE UINT UNSIGNED INT
#DEFINE TH0_TL0 (65536-1000)//设定中断的间隔时长
/********电机控制端口***************/
SBIT INPUT1 = P2^6; //控制电机I/O口
SBIT BER = P2^5; //蜂鸣器
INT COUNT0 = 80;
INT COUNT1 = 0;
VOID INIT_MCU();
VOID START();
VOID STOP();
VOID GOAHEAD();
VOID MOTOR_SPEED_HIGH();
VOID MOTOR_SPEED_LOW();
UINT MA=0;
UINT SPEEDA=0;//A电机速度变量(0-50对应PWM占空比0-100%)
/*****************显示用变量与数组***********************/
UINT DISTANCE=0; //记录0.5S间隔前后两次行车里程
UCHAR I=0; //行车里程系数
//计算速度用的变量 UINT J1=0;
UINT MONEY=0; //总价格
UINT T=0;
UCHAR T1=0;
UCHAR T2=0; //T=50000时为0.5秒 //累计1秒时间,计算速度用 //累计5秒时间,计算速度用
UINT SPEED=0; //速度变量
UCHAR SPE[4]={0,0,0,0}; //速度、距离、金额,保存当前值
UCHAR DISTAN[4]={0,0,0,0};
UCHAR MON[4]={0,0,0,0};
/***************界面固定显示******************/
UCHAR CODE TABLE[]="WELCOME ^-^ ";
UCHAR CODE TABLE1[]="UNIT-PRICE: 2 ";
UCHAR CODE TABLE2[]="SPEED:";
UCHAR CODE TABLE3[]="DISTANCE:";
UCHAR CODE TABLE4[]="MONEY:";
SBIT LCDRS=P1^0;
SBIT LCDRW=P1^1;
SBIT LCDEN=P1^2;
SBIT S1=P2^3; //开始
SBIT S2=P2^1; //停止
SBIT JIA_KEY=P2^2; //加速
SBIT JIAN_KEY=P2^0; //减速
UCHAR NUM;
UCHAR K;
VOID DELAY(UINT Z)
{
UINT X,Y;
FOR(X=Z;X>0;X--)
FOR(Y=110;Y>0;Y--);
}
VOID BUZZER(VOID)
{
BER = 0;
DELAY(50);
BER = 1;
}
UCHAR CONVERT(UCHAR IN_DATE)
{
UCHAR I, OUT_DATE = 0, TEMP = 0;
FOR(I=0; I
{
TEMP = (IN_DATE >> I) & 0X01;
OUT_DATE |= (TEMP
}
RETURN OUT_DATE;
}
VOID WRITE_COM(UCHAR COM)
{
LCDRS=0;
P0=CONVERT(COM);
DELAY(5);
LCDRW=0;
DELAY(5);
LCDEN=1;
DELAY(5);
LCDEN=0;
}
VOID WRITE_DATA(UCHAR DATE)
{
}
VOID INIT(VOID)
{
}
/************************************************
小车启动,电机从速度开始加速到给定参数
SPEED_L:轮加速,范围从1—50
************************************************/
VOID START(VOID) //小车启动
{
INPUT1 = 0; TR0=1; LCDEN=0; WRITE_COM(0X38); WRITE_COM(0X0C); WRITE_COM(0X06); WRITE_COM(0X80+0X10); LCDRS=1; P0=CONVERT(DATE); DELAY(5); LCDRW=0; DELAY(5); LCDEN=1; DELAY(5); LCDEN=0;
SPEEDA=COUNT0;
}
DELAY(10);
/************************************************
小车停车
************************************************/
VOID STOP()
{
}
/************************************************
小车前进
************************************************/
VOID GOAHEAD(VOID)
{
}
/******************按键处理减PWM占空比,电机加速******************/
VOID MOTOR_SPEED_HIGH(VOID)
{
IF(JIA_KEY==0) { DELAY(10); IF(JIA_KEY==0) { WHILE(!JIA_KEY); //等待键松开 BUZZER(); COUNT0 += 5;
INPUT1 = 1; TR0=0; DELAY(10); IF(COUNT0 > 100) COUNT0 = 100; SPEEDA = COUNT0; TR0=1;
} } } IF(COUNT0 >= 100) { } COUNT0 = 100;
/******************按键处理减PWM占空比,电机减速******************/
VOID MOTOR_SPEED_LOW(VOID)
{
}
VOID INIT_MCU()
{
TH0 = 0XFF; TL0 = 0XF6; TMOD = 0X01;//外部中断0初始化
IF(JIAN_KEY==0) { } DELAY(10); IF(JIAN_KEY==0) { } WHILE(!JIAN_KEY); //等待键松开 BUZZER(); COUNT0 -= 5; IF(COUNT0
EX0=1;
IT0=1; //边沿触发方式 TR0=1; ET0 = 1;
EA = 1;
}
VOID CALCULATION(VOID) //计算总价、里程、速度,准备显示数据 {
DISTAN[0]= DISTANCE/1000;
}
VOID DISP1(VOID)
{
INIT(); WRITE_COM(0X01); WRITE_COM(0X80); FOR(NUM=0;NUM
DISTAN[1]= DISTANCE%1000/100; DISTAN[2]= DISTANCE%100/10; DISTAN[3]= DISTANCE%10; MON[0]=MONEY/1000; MON[1]=MONEY%1000/100; MON[2]=MONEY%100/10; MON[3]=MONEY%10; SPE[0]=SPEED/1000; SPE[1]=SPEED%1000/100; SPE[2]=SPEED%100/10; SPE[3]=SPEED%10; //开机界面显示 WRITE_DATA(TABLE[NUM]); DELAY(5); //显示“WELCOME ^-^ ”
} FOR(NUM=0;NUM
VOID DISP2(VOID)
{
}
VOID DISP3(VOID)
{
INIT(); //运行中显示变化的速度和里程 INIT(); WRITE_COM(0X80+0X0B); WRITE_DATA(SPE[0]+0X30); WRITE_DATA(SPE[1]+0X30); WRITE_DATA(SPE[2]+0X30); WRITE_DATA(SPE[3]+0X30); WRITE_COM(0X80+0X4B); WRITE_DATA(DISTAN[0]+0X30); WRITE_DATA(DISTAN[1]+0X30); WRITE_DATA(DISTAN[2]+0X30); WRITE_DATA(DISTAN[3]+0X30); //停车时的显示 WRITE_COM(0X01); WRITE_COM(0X80); FOR(NUM=0;NUM
} WRITE_COM(0X80+0X0B); WRITE_DATA(DISTAN[0]+0X30); WRITE_DATA(DISTAN[1]+0X30); WRITE_DATA(DISTAN[2]+0X30); WRITE_DATA(DISTAN[3]+0X30); WRITE_COM(0X80+0X40); FOR(NUM=0;NUM
VOID DISP4(VOID)
{
WRITE_COM(0X01); //显示SPEED、DISTANCE
WRITE_COM(0X80);
FOR(NUM=0;NUM
WRITE_DATA(TABLE2[NUM]); DELAY(5);
} } VOID MAIN()
{
INIT_MCU(); INIT(); DISP1(); WHILE (1) { //开机界面显示 IF(T2==2) { T2=0; SPEED=J1; J1=0; } CALCULATION(); IF(S1==0) { DELAY(2); IF(S1==0) { WHILE(!S1); BUZZER (); START(); DISP4(); //启动小车 K=1;
} }
IF(K==1) {
GOAHEAD(); }
IF(S2==0)
//停止小车
MOTOR_SPEED_HIGH(); MOTOR_SPEED_LOW(); DISP2();
{ DELAY(2); IF(S2==0); { WHILE (!S2);
BUZZER();
STOP(); K=0;
COUNT0 = 80;
SPEEDA = COUNT0;
DISP3();
}
}
}
}
VOID TIME0_INT() INTERRUPT 1 //{ TR0=0;
TH0 = 0XFF; //100T
TL0 = 0X9C; MA++;
IF(MA
INPUT1 = 0;
定时器0中断,用于产生PWM(脉宽调制)方波
}
ELSE INPUT1 = 1; IF(MA == 100) { MA = 0;
}
T++; IF(T>=2000) { T=0;
T2++;
} TR0 = 1;
}
VOID INT_0() INTERRUPT 0 { EX0=0; I++; // J1++;
IF(I>144) {
I=0;
DISTANCE++;
}
IF(DISTANCE>9999) DISTANCE=0;
MONEY=DISTANCE*2; EX0=1;
}
行车里程系数 计算速度用的变量
// 根据要求,经过计算,转过72个点为0.1公里
//
第四章 焊接与软硬件调试
焊接是电子产品组装过程中的重要工艺。优良的焊接质量,可为电路提供良好的稳定性、可靠性。本设计是一个软硬件结合的系统,调试的时候要考虑软硬件两方面。
4.1 电路的焊接
首先我们拿到电路板和元器件,我们一起通过研讨得到一个最佳的排版样式。
然后我们开始插件并且焊接,在此过程中我们分工明确,以最快的效率达到最好的品质,通过本小组同志的努力我们在计划的时间内高质量的完成了我们的设计。不论是布线还是焊接质量都非常好,但是由于我们的疏忽我们将复位电路中的电解电容焊反了,这是我们本次设计焊接过程中的唯一大的失误,我们及时改正错误并且吸取教训。
最后我们全面检查了一番,确认无误后我们将程序写入单片机中。
4.2 软硬件调试
4.2.1 软件的调试
一般调试方法包括单步运行调试,跟踪运行调试,全速运行调试,设置断点调试,自动单
步运行调试,运行到光标处等。 总的来说可以采用如下方法调试:
(1) 检查程序运行路径是否正确,可用单步运行方法调试。
(2) 检查程序运行到某处的执行结果,如检查程序运行到某处后,相关单元(内部或
外部RAM),工作寄存器,特殊寄存器中内容变化,由此判断是否正确。 (3) 检查子程序调用的运行过程。
(4) 检查循环程序的运行结果,可将光标或断点预置在循环程序的最后一条,若全速
运行后提示系统忙,肯呢过出现了死循环等错误。
4.2.2 硬件的调试
首先要确认电源是否正常,然后检查复位电路和时钟电路,要保证晶振正常起振,可用示波器显示波形。另外,一定要将EA拉高电平,否则出现程序跑飞的情况。
第五章 结束语
5.1论文总结
经研究课题,从选题和资料、分析和计划、实际产品设计、调试维护阶段、毕业设计说明书写等等中,我对电子产品的开发产生了浓厚的兴趣,通过这次毕业设计我学到了很多电路知识,电脑知识,以及相关软件的知识,特别是通过本次毕业设计巩固我的理论知识。
通过此次的毕业设计,我们更好地了解了AT89S51、数码管等元件,同时利用无限的网络资源更加准确的各个元件的功能、作用。
我会在日后的开发中深入学习,加深研究,我会争取把本系统应用到实际工作中使之产生商业价值。电子技术发展日新月异,我会在以后的研发中加入新技术,使之更趋完善,总之本次毕业设计是我的电子研发之路的良好开端。我会以此为契机,在以后的电子开发工作中取得更好的成绩。
5.2 工作展望
这次毕业设计的顺利进行,我深刻明白了理论知识与社会实践相结合的道理,从总得到了以前书本知识所不曾得到的知识,懂得了如何在实际中运用自己所学过的知识,更加了如今信息时代电子技能知识的重要性。增强了我对对实际工艺技术、电子技术和设备技术等方面的认识,掌握了分析处理方法,调试、计算等基本技能的训练,具有一定程度的实际工作能力。
通过这次的毕业设计,我对自己的动手能力有了信心。面临着就业,我将充分发挥我的主观能动性和在学校学到的一切知识。这次的毕业设计我感觉不是很完美,我会利用这次的机会在努力的提高自己。
面对如此激烈的市场竞争体系,只有努力掌握好电子技能知识放可在竞争中立于不败之地,我对从事电子产品的开发和研究产生了良好的兴趣。希望自己以后能通过自己的不断努力获的更多的工艺和电子技术。
附录
1 PCB
附录2 实物图
附录3程序流程图
参考文献、资料索引
致 谢
在论文完成之际,我要特别感谢我的指导老师刘振山导师的热情关怀和悉心指导。在我撰写论文的过程中,刘振山老师倾注了大量的心血和汗水,无论是在论文的选题、构思和资料的收集方面,还是在论文的研究方法以及成文定稿方面,我都得到了刘老师悉心细致的教诲和无私的帮助,特别是他广博的学识、深厚的学术素养、严谨的治学精神和一丝不苟的工作作风使我终生受益,在此表示真诚地感谢和深深的谢意。
在论文的写作过程中,也得到了许多同学的宝贵建议,同时还到许多在工作过程中许多同事的支持和帮助,在此一并致以诚挚的谢意。
感谢所有关心、支持、帮助过我的良师益友。