自行车里程表的设计
更新时间:2024-06-08 22:29:01 阅读量: 综合文库 文档下载
学 号:1434060103
毕业设计说明书
GRADUATE DESIGN
设计题目:基于单片机的自行车里程速度表设计与实现
学生姓名:程晓锋
专业班级:2014自升本1班 学 院:继续教育学院 指导教师:邸志刚 副教授
2016年11月30日
摘要
摘 要
随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。自行车的速度里程表能够满足人们最基本的需求,让人们能清楚地知道当前的速度、里程等物理量。本论文主要阐述一种基于霍尔元件的自行车的速度里程表的设计。以 AT89C52 单片机为核心,霍尔传感器测转数,实现对自行车里程/速度的测量统计,采用 1302 实现在系统掉电的时候保存里程信息,并能将自行车的里程数及速度用LCD实时显示。文章详细介绍了自行车的速度里程表的硬件电路和软件设计。硬件部分利用霍尔元件将自行车每转一圈的脉冲数传入单片机系统,然后单片机系统将信号经过处理送显示。软件部分用C语言进行编程,采用模块化设计思想。该系统硬件电路简单,子程序具有通用性。
关键词:里程/速度;霍尔元件;单片机;LCD显示
I
Abstract
Abstract
With the developing of people’s life, the bicycle is not only the universal tool of transportation and substitute for walking, but becomes the first choice of entertainment and exercising. The bicycle mileage/speed can fulfill the basic need of people’s life, so that they can learn the speed and the mileage of the bicycle. In this paper, the bicycle mileage/speed design based on the Hall element is elaborated. By AT89C52 as kernel, using Hall element to measure revolution, the measure and statistic are achieved. The range information is saved by when the power is off, the bicycle speed can be displayed on LCD. In this article, the hardware circuit and software design of bicycle mileage/speed instrument are introduced in detail. About the hardware, the pulse number is transmitted of one cycle of the bicycle into Single Chip Microcomputer system. Then the signal processed by Single Chip Microcomputer system is sent to display scream. About the software, in assemble language; the program is designed in the mode of modules. The system has simple hardware, common sub-program.
KEY WORDS: Mileage / speed; Hall element; Single chip microcomputer; LCD display .
目录
前 言 .................................................................... 1 第1章 绪论 .............................................................. 2
1.1 课题背景 ......................................................... 2 1.2 设计的主要内容及技术指标 ......................................... 2 第2章 自行车里程表总体方案设计 .......................................... 3
2.1 任务分析与实现 ................................................... 3 2.2 自行车里程表硬件方案设计 ......................................... 3 2.3 自行车里程表软件方案设计 ......................................... 4 第3章 自行车里程表硬件模块设计 ........................................... 5
3.1 里程表的硬件设计 ................................................. 5
3.1.1 霍尔传感器电路模块设计 ...................................... 5 3.1.2 按键电路模块设计 ............................................ 6 3.1.3 电源电路模块设计 ............................................ 6 3.1.4 时钟电路模块设计 ............................................ 7 3.1.5 LCD显示模块电路模块设计 .................................... 7 3.1.6 串口下载电路模块设计 ........................................ 8 3.1.7 复位电路模块设计 ............................................ 9 3.1.8 晶振电路模块设计 ........................................... 10
第4章 软件的设计 ....................................................... 11
4.1 里程表的软件设计 ................................................ 11
4.1.1 里程速度功能模块实现 ....................................... 11 4.1.2 日历时钟模块功能 ........................................... 14 4.1.3 LCD1602液晶显示模块 ....................................... 17
第5章 软件调试 ......................................................... 21
5.1 程序的检测与调试 ................................................ 21
5.1.1 Keil软件简介 ............................................... 21 5.1.2 编制单片机应用程序的步骤和难点 ............................. 21 5.2 系统仿真调试 ..................................................... 24
5.2.1 程序的查错手段 .............................................. 25
第6章 结论 ............................................................. 27
目录 第7章 谢辞 ............................................................. 28 参考文献 ................................................................. 29 附录1 硬件设计原理图 .................................................... 30 附录2 硬件电路仿真图 .................................................... 31 附录3 软件程序 .......................................................... 32 译文 ..................................................................... 69 C语言 ................................................................... 69
华北理工大学继续教育学院
图3-2 霍尔传感电路
3.1.2 按键电路模块设计
键盘在单片机应用系统中,实现输入数据、传送命令的功能,是人工干预的主要手段。键盘是单片机系统设计中一种主要的信息输入接口,合理的设计,不仅可以节省系统的设计成本,更可使仪器设备的操作变得更为简单、方便,很大程度上提高系统综合性能。本次设计中通过按键来更改自行车车轮半径,并控制显示自行的车里程和平均速度,s3刷屏,s1加数据,s2减数据。
图3-3 按键电路
3.1.3 电源电路模块设计
为整个电路提供电源。电路由7805三端稳压集成电路、电容、LED灯、1
千欧姆的电阻、开关和直流电源组成。7805三端稳压集成电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。 注意事项:电源不要超过20V,3A,防止意外。
第3章 自行车里程表硬件模块设计
图3-4 电源电路
3.1.4 时钟电路模块设计
DS1302与单片机的连接也仅需要3条线:RST引脚(高电平时启动数据传
送)、SCLK串行时钟引脚、I/O串行数据引脚,Vcc2为备用电源,外接32.768kHz晶振,为芯片提供计时脉冲。
图3-5 时钟电路
3.1.5 LCD显示模块电路模块设计
LCD1602引脚介绍:
第1脚:VSS为电源地 第2脚:VDD接5V电源正极
第3脚:VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地电
7
华北理工大学继续教育学院 源时对比度最高。
第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。
第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。
第7~14脚:D0~D7为8位双向数据端。
第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。
图3-6 显示电路
3.1.6 串口下载电路模块设计
串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。单片机的串行通
第3章 自行车里程表硬件模块设计 信可用于与计算机之间传送数据,一般采用RS232接口,但是由于TTL电平和RS232电平不兼容,所以两者对接时,必须进行电平转换,其原理图如图2-9。RS232与电平转换最常用的芯片有MC1488、MC1489和MAX232,各厂家生产的此类芯片虽然不同,但原理都一样。在本次设计选用的是美国MAXIM公司的MAX232芯片,由此构成程序下载电路,以便调试烧写程序。它是RS232双工发送器/接收器接口电路芯片,由于芯片内部有自升压的电平倍增电路,将+5V转换成-10~+10V,满足RS232标准对逻辑1和逻辑0的电平要求,工作时仅需要单一的+5V电源。
图3-7 串口下载电路
3.1.7 复位电路模块设计
上电时,刚接通电源,电容C相当于瞬间短路,+5V立即加到RET/VPD端,该高电平使89C52全机自动复位,这就是上电复位;若运行过程中需要程序从头执行,只需按动按钮即可。按下按钮,则直接把+5V加到了RET/VPD端从而复位称为手动复位。电路图如图3-8所示。
9
华北理工大学继续教育学院
图3-8 复位电路
3.1.8 晶振电路模块设计
晶振电路用于产生单片机工作时所需的时钟控制信号。通过单片机的引脚XTAL1,XTAL2跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器。时钟频率直接影响单片机的速度,晶振电路的质量也直接影响单片机系统的稳定性。晶振电路电路图如图3-9所示。
图3-9 晶振电路
第4章 软件的设计 第4章 软件的设计
4.1 里程表的软件设计
本自行车里程表软件采用模块化设计方法。整个系统由初始化模块、频率测量模块、LCD显示模块、速度计算与显示模块、里程计算与与显示模块、数据存储、读取模块、定时器中断服务模块、时钟模块以及其他功能模块组成。本设计的主要内容是自行车里程速度表,日历时钟为附加功能,在此进行简单介绍。
4.1.1 里程速度功能模块实现
里程速度功能程序流程图如图4-1所示。
11
华北理工大学继续教育学院 开始 读取EEPROM数据 检测按钮处理直径设置 初始化设置特殊功能寄存器、置定时常数、开中断、清屏等 等待中断 INT0 刷新累计 行驶时间 刷新里程、速度存储里程数据等 INT1 切换屏幕显示内容
图4-1 里程速度功能程序流程图
程序代码如下:
void main() {
EEPROM_LXRD(0x43,0,3,number); qs=number[0]; as=number[1];
第4章 软件的设计 bs=number[2];
init_LCD(); 初始化LCD dispmore(1,1,\for(i=0;i<25000;i++);
dispmore(2,1,\ 显示欢迎信息 for(i=0;i<25000;i++);
dispmore(2,1,\for(i=0;i<25000;i++);
dispmore(2,1,\for(i=0;i<25000;i++);
dispmore(2,1,\for(i=0;i<25000;i++);
dispmore(2,1,\for(i=0;i<25000;i++);
dispmore(2,1,\for(i=0;i<30000;i++);
W1302(0x90,0xa5);//打开充电二级管 一个二级管串联一个2K电阻 W1302(0x8e,0x80);//写保护,禁止写操作 wrcom(0x01); MODE=0; P2=0xff; qs2=0; tr1=5; tr2=5; wrcom(0x01);
dispmore(1,1,\wrcom(0xc9); dispone('c'); wrcom(0xca); dispone('m'); P2=0xff;
13
华北理工大学继续教育学院 wrcom(0xc6);dispone(tr1+0x30); wrcom(0xc7);dispone(tr2+0x30); while(1){
if(K1==0){for(i=0;i<4000;i++);if(K1==0){if(++tr1>9)tr1=0;wrcom(0xc6);dispone(tr1+0x30);for(i=0;i<32000;i++);}}
if(K2==0){for(i=0;i<4000;i++);if(K2==0){if(++tr2>9)tr2=0;wrcom(0xc7);dispone(tr2+0x30);for(i=0;i<32000;i++);}} if(K3==0){for(i=0;i<4000;i++);if(K3==0)break;} }
tc=3.14*(10*tr1+tr2); TMOD=0x11; TH0=0x3c; TL0=0xb0; TH1=0xb1; TL1=0xdf;
IT0=1; 外部中断触发方式均是边缘触发 IT1=1;
IE=0x9f; 开中断 IP=0x02;
TR0=1; T0和T1开始计时 TR1=1; P33=1; IE0=0; wrcom(0x01);
置定时常数
4.1.2 日历时钟模块功能
时钟显示模块可以通过按键来校准时间。当K3按键按下时,电子日历停止走时,此时可以进行年的校准,年调好之后,再按一下校准时间便可以调整月,同理可以对日、小时、分、秒进行设置。对应有K1、K2键,可以加与减的操作。都调整好之后就将按照新时间开始走时。具体流程图如下。
第4章 软件的设计 开始 始终开始工作 是否显示时间 是 设置键是否按下 是 选中要修改的 加键是否按下 减键是否按下 修改时间和日期 返回 15
第4章 软件的设计
图4-2 校准时间流程图
程序代码如下:
while(1) {if(ag==1)
{if ((K1|K2)==0) //初始化 {Delay5Ms(); if ((K1|K2)==0) Set1302(inittime); }
if (K3==0) // 设置和选择项目键 {Delay5Ms(); if(K3==0) { id++; if(id>7) id=0;} while(K3==0);} switch(id) { case 0: sec=0; Disp_line1(); Disp_line2(); break; case 1://年 year=1; Disp_line1();
Disp_line2(); id_case1_key(); break;
16
第4章 软件的设计 case 2://月 year=0; mon=1; Disp_line1();
Disp_line2(); id_case1_key(); break; case 3://日 mon=0; day=1; Disp_line1(); Disp_line2(); id_case1_key(); break; case 4://星期 day=0; weekk=1; Disp_line1();
Disp_line2(); id_case1_key();
4.1.3 LCD1602液晶显示模块
LCD1602液晶显示器属于字符型液晶显示器,其内部自带有字符库,所以只要向显示器输送字符的ASCII码,就可以显示该字符了。对于1602显示程序的编写最主要的是掌握好1602的读写操作的时序。1602显示器的控制端分别为RS、RW和E,当写指令时RS为低电平,RW为低电平,E首先为高电平,然后将数据送出,在延时一定时间后E变为低电平。这样就把命令写到了1602中。当写数据时RS为高电平,RW为低电平,E首先为高电平,然后将数据送出,在延时一定的时间后E变为低电平。这样就把数据写到了1602中。在实际应用1602时,要先将显示器初始化,初始化的内容包括清屏、设置显示模式,首字
17
华北理工大学继续教育学院 符的位置、光标的有无和闪烁等,然后才能显示具体内容。
开始 进行LCD的初始化 进行数据的处理 调用写指令子函数 调用写数据子函数 显示
图4-3 LCD显示程序流程图
该函数的作用是对LCD进行检测,看LCD是否处于忙的状态.当bflag=1时表示忙,此时不可以向LCD进行读写操作.而当busy=0时,表示可以向它读写数据. 程序代码:
void wait() {P2=0xff;
RW=1; RS=0; do{E=0;E=1;}while(busy==1); }
void dispone(dat) 写数据,并显示出来
第4章 软件的设计 {P2=dat;
RW=0; RS=1; E=0; E=1; wait(); }
void wrcom(com) 向LCD写入控制字 {P2=com;
RW=0; RS=0; E=0; E=1; wait(); }
void init_LCD() 初始化LCD
{wrcom(0x01); 显示清零,数据指针清零 wrcom(0x06); 写一个字后指针加一
wrcom(0x38); 设置16*2显示,5*7点阵,8位数据接口 wrcom(0x0c); 设置开显示,不显示光标 }
void dispmore(line,row,uchar dat[],i) //格式为dispmore(第几行,第几列,开始要显示的字符地址,显示几个字符); {uchar com; s=dat;
if(line==1)
{com=0x80+row-1; // 第一行第一列对应的RAM的地址位为0x80H wrcom(com);
while((i--)!=0&&com<=0x8f) {dispone(*s); com++; s++; } }
19
华北理工大学继续教育学院 else
{com=0xc0+row-1; wrcom(com);
while((i--)!=0&&com<=0xcf) {dispone(*s); com++; s++; } } }
第5章 软件调试 第5章 软件调试
5.1 程序的检测与调试
5.1.1 Keil软件简介
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。
Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种Keil软件图标是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
5.1.2 编制单片机应用程序的步骤和难点
如何编写单片机应用程序,这是一个实践性很强的题目,也是一项艰苦而细致的工作。如果按照一定的步骤并且找出难点,事先对这些难点加以处
21
华北理工大学继续教育学院 理,能够收到事半功倍的效果。下面是开发中必经的几个步骤和可能遇到的难点的处理。
编制步骤:
1.搞清功能和编写方案
接到一个单片机项目设计之后,并不是马上动手编写程序,而是仔细研究技术要求或者技术说明,根据这些技术要求和技术说明,把程序应该具备的主要功能写清楚,写仔细,这是最关键的工作,否则在设计完成以后会发现有些功能由于事先没有考虑清楚再重新设计将会很麻烦,可能有些需要重新增加的功能很容易补充,而有些可能由于没有事先考虑周全而无法实现。
2.编写总流程图和各功能模块流程图
根据要完成的程序功能写出总流程图,根据总流程图把整个程序划分成几个
主要的功能模块,每个功能模块都要写出基本流程图,这主要是为以后的程序编写起到一个指导作用。当然,在实际的程序编写过程中肯定会有一些改动,一个基本的流程会指导写程序的过程中不会出现太大的偏差。 3.准备编程所需的资料
这些资料主要是编程语言方面的书籍、杂志等。因为程序语言的有些资料不可能记得太清楚,如每条指令的含义,具体操作每条指令所牵涉的硬件电路等。如果资料准备得比较充分,可以放在案边,若有需要,顺手查阅。
4.分析编程的难点和技术解决方案
为了能比较顺利地完成程序设计,应根据程序所完成的功能和程序流程对整个程序的框架分析一下,并根据自己掌握的技能定位整个程序的难点,然后找到最佳的算法。 5.写程序
在上面的准备工作完成后,就可以着手编写程序。因为有了明确的程序流程,有了充足的资料,可能遇到的难点基本上找到了解决方法。这样,事先准备得比较充分,即使在以后的程序编写过程中遇到困难,也较易解决。这样就可以节省很多时间,以便静下心来认真按照方案和流程编写程序。另外,一般写完一个功能程序就进行调试,通过后再编写另外一个功
第5章 软件调试 能代码,这样可以防止全部代码编写完毕后再调试可能带来的相互影响,从而可以搞清楚到底是哪部分程序有问题。 7.程序调试
单击Project菜单项,选择New Project项;此时弹出Create New Project对话框,选择合适的路径口,在文件名一栏中填入新工程的名字。单击保存;根据所用的器件,选择CPU的型号,单击确定;Keil51询问是否生成默认的配置文件,这个可选可不选,这里选定。单击Yes,观察项目文件管理窗口的变化;在File菜单下单击New选项,新建文件。此时在代码窗口出现一“Text1”空白文档;在“Text1”中编辑完代码后,单击File菜单中的保存项,弹出保存对话框。保存名写为text.c。单击保存。注意在对文件命名时必须加扩展名; 在项目导航栏中Source Group 上单击右键,选Add File to Group ‘Source Group 1’;此时弹出Add File 对话框。选中刚才保存的text.c文件。单击Add。 此时在项目文件管理窗口中就会出现刚才所添加的文件text.c;单击快捷菜单栏中的编译按钮 ,可以编译程序;单击Project菜单项,选择Option for Target ‘Target 1’选项。 在弹出的对话框中可以对Project进行总体配置;选择Output 选项卡,单击Create HEX File ,代码输出格式应为HEX-80 ; 单击确定后,并重新编译。可以看到编译成功之后,Build 选项卡里又多了一项。这是生成的HEX 文件;单击Debug 菜单项中的Start/Stop Debug Session 命令或工具栏中的进入调试界面;单击调试界面Debug 菜单项中的Go命令或工具栏中的运行 程序,单击Stop Running 命令或结束程序。观察运行结果。
23
华北理工大学继续教育学院
图5-1 程序运行调试图
5.2 系统仿真调试
PROTEUS系统仿真平台与开发平台是由英国Labcenter公司开发的,是目前世界上最完整的系统设计与仿真平台之一。PROTEUS可以实现数字电路、模拟电路及微控制系统与外设的混合电路系统的电路仿真、系统协同仿真和PCB设计等全部功能。PROTEUS软件能够对各种处理器进行实时仿真、调试与测试的EDA工具,真正实现了在没有目标原形时就可以对系统进行调试与验证。
在构思好电路原理图和编好程序之后就要对其进行系统仿真,原理图的具体设计流程如图5-2所示。
当完成原理图布线后,利用PROTEUS ISIS编辑环境所提供的电器规则检查命令对设计进行检查,并根据系统提供的错误检查报告修改原理图。直到通过电器规则检查为止。
第5章 软件调试 单片机系统的仿真是PROTEUS VSM的一大特色,同时,本仿真系统将源代码的编辑和编译整合到同一设计环境中,这样使得用户可以在设计中直接编辑代码,并且很容易地查看到用户对源程序修改后对仿真结果的影响。
源代码通过编译无误后,就可以进行仿真,在仿真过程中不断完善电路和程序的功能最后达到本次设计的目的。
开始 新建设计文档 设置编辑环境 放置元器件 调整 原理图布线 建立网络表 电器检查 N 是否合格? Y 存盘、报表输出 结束
图5-2 原理图设计流程图
5.2.1 程序的查错手段
单片机的应用系统均需借助对应的开发系统(或装置)进行在线仿真,对
25
华北理工大学继续教育学院 应用系统的软,硬件进行全面地检测与调试。各种开发系统或装置均提供以下查错手段。 (1)单步执行
采用单步执行操作可对应用程序每步执行一条指令,可逐条检查这一段程序的执行过程是否符合原设计要求。可直接查出错误所在。宏单步可执行一段程序,如一步就可执行完整个循环程序段。 (2)断点设置全速运行
可在程序有疑虑的地方设置断点,从设置的起始地址开始,以全速或非全速方式向设定的断点处运行。如果这段程序无语法或逻辑上的错误,则连续运行到设置的断点处停止运行,返回监控状态。如果有错误,则在错误处停止运行,如果进入死循环或者程序跑飞,就会永不停止运行。全速断点运行为检查实时性及中断响应处理等提供了方便。 (3)显示器窗口检查 (4)实时跟踪记录
除上述之外,还有以下功能: ? 符号化调试。
在原程序中一般均以符号地址,标号等出现,通过汇编自动进行变换和调整,偏移量等均可自动换算和填入。 ? 程序的运行。
? 自动生成目标代码和固化[4]。
调试仿真电路图见附录2
第6章 结论 第6章 结论
该设计通过对设计出来的板子进行调试,验证了理论分析结果的正确性。此次课程设计经过为期一段时间的不懈努力,达到了预期的要求。通过对整个系统的调试,可得到如下结论:本系统是一个可测量自行车里程和平均速度的自行车里程表。
理解了自行车里程及其平均速度的计算。里程与速度分别根据以下公式求得:
里程=脉冲总数×车轮周长
速度=车轮周长/车轮转一圈所用的时间
通过实验证明本次设计符合设计的要求,能实现对里程、速度的显示,功能性较强,具有一定的实践意义,将会在许多场合应用。不过,这个设计还是有它的不足之处。首先就是电路设计有些复杂,元器件种类有点多,它们会耗费掉一定的电力。另外就是对自行车的控制不是很全面,对测定自行车的瞬时速度等方面我们还未做到。
27
华北理工大学继续教育学院 第7章 谢辞
本次毕业设计是在指导老师江老师的指导下完成的。忙碌了两个多月,我的毕业设计课题也终将告一段落。编译程序时点击运行,也基本达到预期的效果,虚荣的成就感在没人的时候也总会冒上心头。但由于能力和时间的关系,总是觉得有很多不尽人意的地方,可是,我又会有点自恋式地安慰自己:做一件事情,不必过于在乎最终的结果,可贵的是过程中的收获。以此语言来安抚我尚没平复的心。毕业设计,也许是我大学生涯交上的最后一个作业了。想籍次机会感谢在校期间二年以来给我帮助的所有老师、同学,你们的友谊是我人生的财富,是我生命中不可或缺的一部分。我的毕业指导老师江老师,她不仅是我的任课老师,还是我的毕业指导教师,在课堂上教会了我很多知识,毕业设计还不厌其烦的指导,并提供了很多与该设计相关的重要信息,培养了我们对做事认真严谨,积极进取的精神。这将非常有利于我们今后的学习和工作。在此表示衷心的感谢!
本次毕业设计还得到了课题组的各位老师的大力协助,在此一并表示我们的感谢!
参考文献 参考文献
[1]张友德,赵志英,涂时亮. 单片微型机原理、应用与实验[M].上海;复旦大学出版社,2000.12-14
[2]勒达. 单片机应用系统开发实例导航[M].北京:人民邮电出版社,2003.54-56 [3]薛钧义,张彦斌. 单片微型计算机及其应用[D].西安:西安交通大学出版社,2001.104-106
[4]田汉波.一种基于霍尔传感器的直流电机转速测量方法[J].机械与电子,2007(1).31-33
[5]杨继生.霍尔传感器A44E在车轮测速中的应用研究[J].电子测量技术,2009,(10).100-102
[6]何立民.单片机应用技术选编[M].北京:北京航空航天大学出版社,1996.47-48 [7]蔡美琴.MCS-51系列单片机系统及其应用[M].上海:高等教育出版社, 1992.54-57 [8]苏伟斌.8051系列单片机应用手册[M].北京:科学出版社, 1997.76-79
[9]马家辰.MCS-51单片机原理及接口技术[M].哈尔滨:哈尔滨工业大学出版社 ,1997.123-125
[10]藏海河.单片机原理及应用[M].重庆:重庆大学出版社,2004.35-37 [11]刘文秀.单片机仿真[J].中国学术期刊,2004,6(5).56-61.
[12]杨雪梅.单片机软件的抗干扰设计[J].中国学术期刊,2006,3(8).18-25.
[13]Joseph.A method of developing 80C552 microcontroller on MCS-51 device[J].East
China Institute of Metallurgy,1998 ,14(27).101-125.
[14]Intel.Interfacing an MCS-51 Microcontronller to an 82527 CAN Controller[J].
Iondon Macmillan PRESS LTD,1996,5(80).32-40. [15]Philips Semiconductors.The I
2000,17(35).71-83.
2C-Bus Specification Version(2.1)[J].USA,
29
华北理工大学继续教育学院 附录1 硬件设计原理图
附录2 硬件电路仿真图 附录2 硬件电路仿真图
31
华北理工大学继续教育学院 附录3 软件程序
#include
uchar unsigned char
#define uint unsigned int sfr ISP_DATA=0xe2; sfr ISP_ADDRH=0xe3; sfr ISP_ADDRL=0xe4; sfr ISP_CMD=0xe5; sfr ISP_TRIG=0xe6; sfr ISP_CONTR=0xe7; sbit C_sound=P3^4; void delay(uint z); sbit K1=P1^0; sbit K2=P1^1; sbit K3=P1^2; sbit K4=P1^3; sbit P33=P3^3; sbit RS=P3^7; sbit RW=P3^6; sbit E=P3^5; sbit busy=P2^7; unsigned int i,qsls;
unsigned long sj,totallc,pjsd,qs2,ssji,sji,sd2,mxsd,mxsd2,tc; uchar
*s,qs,as,bs,cs,gw,sw,bw,qw,ww,sww,ssj,MODE,tr1,tr2,number[3]={0}; void EEPROM_ERASE(uchar addr_h) {
ISP_ADDRH=addr_h;
附录3 软件程序 ISP_ADDRL=0x00; EA=0;
ISP_CONTR=0x81; ISP_CMD=0x03; ISP_TRIG=0x46; ISP_TRIG=0xb9; _nop_();_nop_(); ISP_CONTR=0x00; ISP_CMD=0x00; ISP_TRIG=0x00; EA=1; }
void EEPROM_LXRD(uchar addr_h,uchar addr_l,uchar num,uchar *str) { uchar i; EA=0;
for(i=0;i ISP_ADDRL=addr_l+i; ISP_ADDRH=addr_h; ISP_CONTR=0x81; ISP_CMD=0x01; ISP_TRIG=0x46; ISP_TRIG=0xb9; _nop_();_nop_(); str[i]=ISP_DATA; } ISP_CONTR=0x00; ISP_CMD=0x00; ISP_TRIG=0x00; EA=1; 33 华北理工大学继续教育学院 } void EEPROM_LXWR(uchar addr_h,uchar addr_l,uchar num,uchar *point) { uchar i; EA=0; for(i=0;i ISP_DATA=point[i]; ISP_ADDRL=addr_l+i; ISP_ADDRH=addr_h; ISP_CONTR=0x81; ISP_CMD=0x02; ISP_TRIG=0x46; ISP_TRIG=0xb9; _nop_();_nop_(); } ISP_CONTR=0x00; ISP_CMD=0x00; ISP_TRIG=0x00; EA=1; } void wait() {P2=0xff; RW=1; RS=0; do{E=0;E=1;}while(busy==1); } void dispone(dat) {P2=dat; RW=0; RS=1; E=0; E=1; wait(); 附录3 软件程序 } void wrcom(com) {P2=com; RW=0; RS=0; E=0; E=1; wait(); } void init_LCD() {wrcom(0x01); wrcom(0x06); wrcom(0x38); wrcom(0x0c); } void dispmore(line,row,uchar dat[],i) {uchar com; s=dat; if(line==1) {com=0x80+row-1; wrcom(com); while((i--)!=0&&com<=0x8f) {dispone(*s); com++; s++; } } else {com=0xc0+row-1; wrcom(com); while((i--)!=0&&com<=0xcf) {dispone(*s); 35
正在阅读:
自行车里程表的设计06-08
高考语文之晨读晚练步步高 第二十二周星期五 Word版含解析 doc 12-01
初中语文古诗词曲背诵分类索引05-26
关于劳动节的励志句子04-04
拯救大兵瑞恩人物形象03-19
回忆的伤痕作文500字06-22
建设工程文件归档内容及顺序表(最新)02-27
通知- 上海医务工会- 上海市医务工会05-15
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 车里
- 自行
- 设计
- 程表的
- 比亚迪E6被指未见设计缺陷
- 新进人员培训教材
- 日光灯的安装教学设计
- 最新初中人教版九年级历史上册第20课 人类迈入“电气时代” 素
- 中学历史教学中如何培养学生的思维能力-2019年精选教育文档
- 最后回顾课外名句
- 以改革创新精神推进反腐倡廉建设
- 用友ERP沙盘教室布置方案
- 行政法教案(上下) - 图文
- 婚姻综合考试题
- 新王牌高二英语秋季班入学测试卷
- 线性代数综合复习题(一)
- 08年初中物理复习指导意见
- XX航空机上空乘人员餐饮服务流程优化
- 国家和地方主要出版社目录
- 政治学原理模拟试题一
- 墨尔本大学地理专业
- 2018-2019年初中政治知识点《国情部分》《对外开放国策》《我国
- 基于单片机的信号发生器设计
- 平面磨床维修资料,对你绝对有用