基基于PLC单片机的出租车计费系统设计
论文
政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载
基于PIC单片机的出租车计费系统
摘要
随着经济的发展,带动汽车行业快速发展,出租车日益普遍,了解在出租车上应用的计费系统,对我们日常生活也有帮助。而使用单片机实现该系统,是深化单片机应用的良好途径。
本系统由单片机PIC16F877A和一些外围原件组成,具有操作简单,显示明了,功能强大的特点。
整个系统只有两个按键,一个“启动/停止”,一个“复位”;
使用TG12864E 液晶模组作为显示器,可以显示数字、字母、中文、图片等,使系统信息一目了然;
本系统除了里程统计和费用计算以外,还具有万年历和语音播报功能。
万年历由时钟芯片PCF8563实时提供时钟信号,再由单片机调用显示;
语音播报由语音芯片ISD1420提供语音信息,语音信息放在不同的地址里,由单片机从这些地址中调用合适的语音进行播放。
本
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
充分发挥人性化的特点,利用ISD1420的语音功能,配合TG12864液晶模组,模拟实现带语音提示的出租车计价系统。比较真实地模拟出租车的空车、载客、到站及对各状况的费率的计算、统计、显示和语音播报等功能。
本系统涉及到的理论知识有: PIC单片机知识、LCD液晶显示器的工作原理和使用方法、可擦、写的语音芯片的工作原理及应用、实时时钟芯片的工作原理及应用、 出租车计费系统的原理和实现方法、 PROTEUS仿真原理及实际应用。
本系统提高同学们用C语言编写程序的能力、单片机应用系统设计综合能力的训练、培养同学们分析问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
和解决问题的能力、对同学们的招聘以及参加工作均有帮助。
该系统稍加改进,可以成为一套真正的实用的计费系统。
关键词:时钟芯片PCF8563 语音芯片ISD1420 TG12864液晶模组 LCD液晶显示器
第 1 页 共 21 页
目录
摘要……………………………………………………………………1 第一章 系统总体介绍 ………………………………………………2 1(系统组成及功能框图………………………………………………3 2(里程计量及费用计算功能…………………………………………3 3(语音播放功能………………………………………………………4 4(中文菜单显示功能…………………………………………………4 5(实时时钟功能………………………………………………………5 6(按键功能……………………………………………………………5 7(系统电路设计原理图………………………………………………6 第二章 硬件设计………………………………………………………7 1(主程序/CPU模块……………………………………………………7 2(语音播放模块 ………………………………………………………8 3(液晶显示驱动模块 …………………………………………………9 4(脉冲发生器模块 ……………………………………………………11 5(时钟模块 ……………………………………………………………12 6(按键扫描模块 ………………………………………………………14 第三章 系统程序设计 …………………………………………………12 1(系统主程序流程框图 ………………………………………………15 2(里程和费率计算程序流程图 ……………………………………………18 3(键盘处理程序流程图 …………………………………………………………19 结束语……………………………………………………………………19 致谢………………………………………………………………………21 参考文献…………………………………………………………………21 附件………………………………………………………………………21
第 2 页 共 21 页
第一章系统总体介绍 1.系统组成
此出租车计费系统以单片机为系统核心,利用PIC16F877单片机配合TG12864液晶模组
及ISD1420语音模块等,实现基本的出租车计价器功能。
本系统是由PIC单片机、液晶显示模块、计数脉冲发生器、 系统实时时钟及语音等
模块组成。系统框图如图(1)所示:
液晶显示模块脉冲发生器
(128x64点阵) (NE555)
PIC键盘语音模块
单片机(独立按键)(ISD1420)
实时时钟
(FC8563)电源
图(1) 系统功能框图
2.系统各部分功能:
?(里程计量功能
a) 单片机对传感器输出脉冲进行计数,并将脉冲数换算成公里数; b) 每一个脉冲代表轮胎旋转一周,设轮胎的直径为520mm,轮胎的周长为:(即每转一
圈的距离)
520x3.14159=1634mm=1.634m c) 每公里的脉冲数:
PulsePerKM=1000m/1.634m=612(个脉冲)
?(费用计算功能(参照广州市出租车收费
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
)
费用计算包括三部分:起步费、行使费和燃油附加费:
a) 起步费用(StartPrice)—
当行驶里程(RunMilege)在2.3Km(含2.3Km)以内按起步 价(StartPrice)7
元计费。即行使费用(RunPrice)为:
RunPrice = StartPrice + 1 = 8(元)
b) 行使费用(RunPrice)--
行使费用分短途与长途两种情况:
第 3 页 共 21 页
?.当行驶里程(RunMilege)超出2.3Km时并且小于35Km时,按2.6元/Km收费,这时行驶费用为:
RunPrice=StartPrice+2.6×(RunMilege-StartMilege)+1
其中:StartPrice为起步价=7元
StartMilege为起步里程=2.3Km
RunMilege为行使里程(总行使里程)
RunPrice为行使费用(总行使金额)
?.当行使里程超过35Km后,要加空驶费,即每公里升至3.50元, 这时行驶费用为:
RunPrice=StartPrice+3.5×(RunMilege-StartMilege)+1
c) 燃油附加费--每车次加收一元。
?(语音播放功能
?.当初次按下“start,stop”键,出租车开始启动,系统播放“您好~欢迎乘坐本公司出租汽车,谢谢~”播送完毕,计费器开始计费。
?.按下“SpeedUp”键,出租车加速行使,最高速为100Km。
?.按下“SpeedDown”键,出租车减速行使,最低速为0Km。
?.在行使状态下,按下“start,stop”键,表示出租车到站,结束行使。这时候,系统播放“您好~行使里程XXX 公里,应付XXX元,请检查您的随身物品,欢迎再次乘坐,再见~”的提示音。
?.按下“Reset”键,进入空车状态。
?(中文菜单显示功能
?.在空车状态下(启动前),LCD屏幕上显示如下的中文信息:
2007年xx月xx日
xx时xx分xx秒
< 空 车 >
?.在空车状态下,按下“start,stop”键,系统播放“您好~欢迎乘坐本公司出租汽车,谢谢~”的提示音,同时在LCD屏幕上显示如下的中文信息:
您好!
欢迎乘坐本公司出
租汽车~谢谢:
第 4 页 共 21 页
?.播完提示音后,进入行使状态,LCD屏幕显示以下信息:
2007年xx月xx日
xx时xx分xx秒
< 空 车 >
?.在行使状态,按下“SpeedUp”键,里程显示的公里数增加的速度会不断的变快,金额数值也在作相应的变化。按下“SpeedDown”键,里程显示的公里数增加的速度会不 断的变慢。
?.在行使状态,按下“start,stop”键,表示出租车到站,结束行程。这时屏幕显示以下信息:
起步价:7.0元
总里程:xxx.xx公里 总金额:xxx.xx元
同时,系统播放“您好~行使里程xxx.xx公里,应付xxx.xx元,请检查您的随身物品,欢迎再次乘坐,再见~”的提示音。
?(实时时钟功能
本系统采用两种方法实现日历时钟:
(1)用实时时钟芯片,FC8563作为时钟电路,产生年,月, 日,时,分,秒等信号,供系统调用。
(2)用单片机中断的方法产生年,月,日,时,分,秒等信号。
(3)两种方法由同学自行选择。
?(本系统设置4个按键,各个按键的功能如下:
(1)“start,stop”键—开始进入行使/结束行使(到站)。
(2)“SpeedUp”键—行使加速按键。按下次按键,可使出租车的速度由0Km上升到100Km。
(3)“SpeedDown”键--行使减速按键。按下次按键,可使出租车的速度由100K下降到0Km。
(4)“Reset”键--进入空车状态。
第 5 页 共 21 页
vcc1MCLR
C33RA1/AN110484RE0/AN5RA2/AN295RE1/AN6RA3/AN3106RE2/AN7RA4/TOCK1
7RA5/AN4C122PY1
2RA0/AN0C222P
C7R6R7R80.001uF100K100K100KU3ISD1420R10C81281KA0Vccd104R11L1216A1Vcca10KLED13A2412A3Vssd513A4Vssa614D1A5SP+9154148A6SP-1020A7ANA IN7R12NCC1185.1KNCC9220uF2321PLAYLANA OUT10427REC24C10D2PLAYE2218104NCMIC REF11NCR9 174148MICR131K25RECLED10K2619XCLKAGCC12BPVCC104BELL
R14?电路设计原理图 470KC134.7uF
Drawn By:\CHUZUC~11.DDBVCC7DIS3131VCCC14VCC4K324K02104J1C1565311041RTHRCVolt44K122813VCCVCCGND31314单片机的出租车计费器电原理图4K424K225C20V16U521234C21100uF7805NE555GND1043VoutJ2JMP1POT1VCC470K1C6出租车计费器2104R5AB339KC4CLKJ6104EOMUSBDDPVCCC531GND1uF22RB7PE13RB6J44RB3C16R1JMP2+10447KSPK喇叭
MCLR
VCC
7DB0POT28麦克风DB1MIC5K9DB210316DB3V020NC21118DB419NCVCC1C1712A0A0DB515CCPSBGND10413A1A1DB6LEDA_+5V14VCCA2A2DB7LEDK_GNDJ3VCCA3A34TG12864ABA4A4D/IR2R3R45CLKA5A5R/WJ710K10K10KC186U4EOMA6A617ERSTJACKC19100uFPCF8563A7A7D3104814007VCCVin2X2331PLPLINT19Y264K52RECRD0SCL2032K5PERD1SDA217131RECRD2CLKOUTX122BT144K62RD3GND273.3VRD42831PERD5294K72RD630RD7BBJ5A0A0RB3A1A11RB6A2A2224RB7A3A33231RC5/SDOVCCGND325151112GNDA4A4VCCGNDRC6/TXRC04U126PVCCA5A5RC7/RX5PIC16FB77A183MCLRA6A6RC3/SCLQ6VCC331323A7A7RB0/INTOSC1RC4/SDAS13416RT1RB1RC113517SW DIP-810KRB2RC2211637RB432153814RB5OSC243142TRIG5413U265124074HC164RB7/PGD761139143RB6/PGCVCCQ087103694RB3/PGMMRQ19895TitleQ2AA16AQ3210BQ4PL811SizeNumberRevisionCLKQ5REC712GNDQ6A413Q7Date:13-May-2007Sheet of File:E:\study\pic\graduation design\PIC1234
仿真插座三脚插针电源插座
第 6 页 共 21 页
第二章 硬件设计:
? 主程序/CPU模块
? 主程序/CPU电路图及说明
该模块主要包括系统初始化、PWM计数脉冲的产生、里程的识别和费率的计算及各功能
模块的的组织和管理等。主程序模块在
系统中起着重要的作用。
PIC16F877主要性能:
?具有高性能RISC CPU。
?具有25条单字指令。
?除程序分支指令为两个周期外,
其余均为单周期指令。
?运行速度:DC-20MHZ时钟输入
DC-200ns指令周期
?8K*14个FLASH程序存储器
368*8个数据存储器(RAM)字节
256*8EEPROM数据存储器字节
?引脚输出和PIC16C73B/74B/76/77兼容
?中断能力(达到14个中断源)
?8级深度的硬件堆栈
?直接,间接和相对寻址方式
?上电复位(POR)
?上电定时器(PWRT)和振荡启动定时器(OST)
?监视定时器(WDT),它带有片内可靠运行的RC振荡器
?可编程的全码保护
?低功耗睡眠方式
?可选择的振荡器
?低功耗、高速CMOS FLASH/EEPROM工艺
?全静态设计
?要线串行编程(ICSP)
?单独5V的内部电路串行编程(ICSP)能力,处理机读/写访问程序存储器
第 7 页 共 21 页
?运行电压范围2.0V到5.5V
?高吸入/拉出电流25mA
?商用,工业用温度范围
?低功耗:
在5V,4MHz时典型值小于2mA
在3V,32KHz时典型值小于20uA
典型的稳态电流值小于1uA
外围特征:
?Timer0:带有预分频器的8位定时/计数器
?Timer1:带有预分频的16位定时器/计数器,在使用外部晶体振荡时钟时,在Sleep期间仍能工作。
?Timer2:带有8位分频寄存器,预分频器和后分频器的8位定时器/计数器
?2个捕捉器,比较器,PWM模块
其中:捕捉器是16位,最大分辩率为12.5ns
比较器是16位,最大分辩率方200ns
PWM最大分辩率为是10位
?10位多通道模/数转换器
?带有SPI(主模式)和I2C(主/从)模式的SSP
?带有9位地址探测的通用同步异步接收/发送器(USART/SCI)
?带有RD,WR和CS控制(只40/44引脚)8位字宽的并行从端口
?带有降压复位的降压检测电路
? 语音播放模块
? 语音播放模块电路图及说明:
语音播放模块播放提示音,行驶里程、费用等。
ISD1420系列单片录放时间8至20秒,音质好。芯片采用CMOS技术,内含震荡器、话筒前置放大、自动增益控制、防混淆滤波器、平滑滤波器、扬声器驱动及EEPROM阵列。最小的录放系统仅需麦克风、喇叭、两个按钮、电源及少数电阻电容。在录放操作结束后,芯片自动进入低功耗节电模式、功耗仅0.5uA。ISD1420系列有唯一的录音控制和边缘/电平触发两种放音控制。不分段时外围线路最简,也可按最小段长为单位任意组合分段,芯片提供若干操作模式,大大提高了控制的灵活性。芯片采用多电平直接模拟量存储专利技术,每个采样直接存储在片内单个EEPROM单元中,因此能够非常真实、自然地再现语音、音乐、音调各效果,
第 8 页 共 21 页
避免了一般固体录音电路因量化和压缩造成的量化噪声和“金属声”。采样频率从5.3,6.4
到8.0KHz,对音质仅有轻微影响。片内信息可保存100年(无需后备电源),EEPROM单片可反
复录音十万次。
? 液晶显示驱动模块
?(液晶显示驱动模块电路图及说明:
TG12864E 是一种图形点阵液晶显示器,它
主要由行驱动器/列驱动器及128×64 全点阵液
晶
显示器组成。可完成图形显示,也可以8×4
个(16×16 点阵)汉字。
主要技术参数和性能:
?电源:VDD:+2.7~ +5V; 模块内自带-10V
负压,用于LCD的驱动电压。
? 显示内容:128(列)×64(行)点 ?全屏幕点阵
? 七种指令
? 与CPU接口采用8 位数据总线并行输入输出和8 条控制线
? 占空比1/64
? 工作温度:-10?~+60?,储存温度:-20?~+70?,可选择宽温:-20?~+70? ?.外形尺寸图:
第 9 页 共 21 页
?.模块主要硬件构成说明:
?. 模块的外部接口:
第 10 页 共 21 页
?.TG12864EL 串口接线方式:
?脉冲发生器模块
? 脉冲性生器模块电路图及说明:(如下图)
? NE555定时器具有定时精度高、工作速度快、可靠性好、电源电压范围宽(3-18V)、输出电流大(可高达200mA)等优点,可组成各种波形的脉冲振荡电路、定时延时电路、是一种电路结构简单、使用方便灵活、用途广泛的多功能中规模集成电路。只需在外部配接适当的阻容元件,便可组成施密特触发器、单稳态触发器和多谐振荡器等多种应用电路,在这个
第 11 页 共 21 页
电路中是多谐振荡器,它电路简单、性能稳定,波形标准。
该模块完成传感器脉冲计量,然后转换为公里数,并根据规则计算对应的费用。同时,监测行驶速度,统计低速时间,计算低速等待费用,提供液晶显示更新函数,以便主函数可以控制更新用户界面以及行驶里程、费用等信息的显示。该模块包括PWM管理程序、里程计量程序、时间管理程序、费用管理程序、用户界面控制程序等部分。
?时钟模块
? 时钟模块电路图及说明:
?PCF8563 是低功耗的CMOS 实时时钟,日历芯片,它提供一个可编程时钟输出,一个
中断输出和掉电检测器,所有的地址和数据通过I2C 总线接口串行传递。最大总线速度为400Kbits/s,每次读写数据后,内嵌的字地址寄存器会自动产生增量。
? 特性:
* 低工作电流:典型值为0.25μA(VDD=3.0V,Tamb=25?时)。
* 世纪标志
* 大工作电压范围:1.0,5.5
* 低休眠电流;典型值为0.25μA(VDD=3.0V,Tamb=25?)
* 400KHz 的I2C 总线接口(VDD=1.8,5.5V 时)。
* 可编程时钟输出频率为:32.768KHz,1024Hz,32Hz,1Hz。
* 报警和定时器。
* 掉电检测器。
* 内部集成的振荡器电容。
* 片内电源复位功能。
第 12 页 共 21 页
* I2C 总线从地址:读,0A3H;写,0A2H。
* 开漏中断引脚。
?管脚配置
?功能描述:
PCF8563 有16 个,位寄存器:一个可自动增量的地址寄存器,一个内置32.768KHz 的
振荡器(带有一个内部集成的电容),一个分频器(用于给实时时钟RTC 提供源时钟),一个可编程时钟输出,一个定时器,一个报警器,一个掉电检测器和一个400KHz I2C
总线接口。
所有16 个寄存器设计成可寻址的8 位并行寄存器,但不是所有位都有用。前两个寄存器(内存地址00H,01H)用于控制寄存器和状态寄存器,内存地址02H,08H 用于时钟计数器(秒~年计数器),地址09H,0CH 用于报警寄存器(定义报警条件),地址0DH 控制CLKOUT 管脚的输出频率,地址0EH 和0FH 分别用于定时器控制寄存器和定时器寄存器。秒、分钟、小时、日、月、年、分钟报警、小时报警、日报警寄存器,编码格式为BCD,星期和星期报警寄存器不以BCD 格式编码。当一个RTC 寄存器被读时,所有计数器的内容被锁存,因此,在传送条件下, 可以禁止对时钟,日历芯片的错读。
PCF8563 硬件时钟描写模块:
最大总线速度为400Kbits/s,每次读写数据后,内嵌的字地址寄存器会自动
产生增量。
*400KHz 的I2C 总线接口(VDD=1.8,5.5V 时)
*可编程时钟输出频率为:32.768KHz,1024Hz,32Hz,1Hz。
*报警和定时器。
*开漏中断引脚。
*I2C 总线从地址:读0A3H;写0A2H。
地址 寄存器名称
00H 控制/状态寄存器
01H 控制/状态寄存器
第 13 页 共 21 页
0DH CLKOUT 频率寄存器
0EH 定时器控制寄存器
0FH 定时器倒计数数值寄存器
地址 寄存器名称 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
02h 秒 VL 00,59BCD 码格式数
03h 分钟 - 00,59BCD 码格式数
04h 小时 - - 00,59BCD 码格式数
05h 日 - - 01,31BCD 码格式数
06h 星期 - - - - - 0,6
07h 月/世纪 C - - 01,12 BCD 码格式数
08h 年 00,99 BCD 码格式数
09h 分钟报警 AE 00,59 BCD 码格式数
0Ah 小时报警 AE - 00,23 BCD 码格式数
0BH 日报警 AE - 01,31 BCD 码格式数
0CH 星期报警 AE - - - - 0,6
操作举例
*进入EXT,CLK 测试模式;设置控制,状态寄存器,的位,(TEST=1)。 *设置控制,状态寄存器,的位,(STOP=1)。
*清除控制,状态寄存器,的位,(STOP=0)。
*设置时间寄存器(秒、分钟、小时、日、星期、月,世纪和年)为期望值。
*提供32 个时钟脉冲给CLKOUT。
*读时间寄存器观察第一次变化。
*提供64 个时钟脉冲给CLKOUT。
*读时间寄存器观察第二次变化;需要读时间寄存器的附加增量时,重复步骤,和,。 ?按键扫描模块:
? 按键扫描模块电路图及说明:
整个系统只有两个按键,一个“启动/
停止”,一个“复位”;本模块功能:扫描按键
功能,返回扫描结果。
第 14 页 共 21 页
第三章 系统程序设计
本系统程序由C语言编写,编译软件是MPLAB IDE 和一个外挂的PIC的C语言编译软件
PICC 。
1.系统主程序流程框图(含程序):
开始
各变量、标志
清零单片机
I/O口初始化显示模式设为
图形方式外部中断
初始化显示一幅个性
化图片显示模块
初始化显示模式转为
文本方式时钟模块
初始化显示一幅个人
信息
进入模式,工作模式,,,2
MODE=,工作状态
,1,,Play_g1=?进入模式,
进入模式,工作状态,,显示到站菜单工作状态
显示里程及金额进入载客工作,,Flag=?执行空车工作状态播报行使里程模式,1
及应付金额数显示迎客中文脉冲计数
界面及里程计算
显示
播放语音信息费率计算结束中文界面
,,
Play_g,=?
,,键盘扫描模块
播报“请检查您的
随身物品”、“欢
迎再次乘坐本公司
出租汽车,再见”
第 15 页 共 21 页
/********************************************************** // 主程序开始
//********************************************************** void main()
{
initial();
init();
lcm_init();
InitI2C();
count = 0;
RunMilege=0;
flag = 0;
play_fg1 = 0;
play_fg2 = 0;
//********************************************************* // 转换为图形方式
//*********************************************************
write_inst(0x34);
write_inst(0x36);
clear_picture_fast();
display_picture1(); //显示一幅个性化图片
delay(100);
//********************************************************* // 转换为文本方式
//*********************************************************
write_inst(0x30);
write_inst(0x0c);
write_inst(0x01);
write_inst(0x06);
//********************************************************* // 显示一幅个人信息
//*********************************************************
disp_log1();
delay(200);
write_inst(0x01);
//********************************************************* // 主程序循环开始
//*********************************************************
while(1)
{
if(mode==0) //模式0: 显示空车状态
{
INTE = 0;
count = 0;
第 16 页 共 21 页
kongche();
}
else if(mode==1) //模式1:
{
if(!flag) //标志位为"0"时
{
INTE = 0; //禁止中断产生
write_inst(0x01);
yingke(); //显示欢迎界面
play(17,50); //播放“您好”
play(18,5); //播放“欢迎”
play(25,100); //播放“乘坐本公司出租汽车”
delay(200);
flag = 1;
write_inst(0x01);
}
else //标志位为"1"时
{
INTE = 1; //允许产生中断
price(); //里程和费率计算
zaike(); //进入载客界面
}
}
else if(mode==2) //模式2:
{
INTE = 0; //禁止中断产生
if(!play_fg1) //标志位为"0"时
{
daozhan(); //进入到站界面
play(21,60); //播放“车已到站”
delay(50);
playsound_km(RunMil); //播放"行使里程"
delay(50);
playsound_mn(Pricet); //播放"应付金额"
play_fg1 = 1; //置标志位为"1"
write_inst(0x01);
}
jieshu(); //进入结束界面
if(!play_fg2) //标志位为"0"时
{
play(24,100); //播放“请检查您的随身物品”
play(18,5); //播放“欢迎”
play(20,5); //播放“再次”
play(25,100); //播放“乘坐本公司出租汽车”
play(19,5); //播放“再见”
第 17 页 共 21 页
play_fg2 = 1; //置标志位为"1"
}
}
scankey(); //键盘扫描模块
}
}
2.里程和费率计算程序流程图(含程序):
Milege:里程
Price:费率
开始
是Milege<=2.3KmMilege,,.00+1.00
否
是(Milege>2.3Km)&&
Price=8.00+(Milege-2.3)*2.6;(Milege<=35Km)
否
Price=8.00+(35-2.3)*2.6+是(Milege>35Km)(Milege-35)*3.5+1.00;//*********************************************************
开始// 费率计算函数
//*********************************************************
void price()
{
if(RunMilege<=2300)
//TotalPrice=700+100;
TotalPrice=800;
if((RunMilege>2300)&&(RunMilege<=35000))
//TotalPrice=700+(RunMilege-2300)*0.26+100;
TotalPrice=800+(RunMilege-2300)*0.26;
if(RunMilege>35000)
第 18 页 共 21 页
//TotalPrice=700+(35000-2300)*0.26+(RunMilege-35000)*0.35+100;
TotalPrice=1112+(RunMilege-35000)*0.35;
Price=(ulong)TotalPrice;
}
3.键盘处理程序流程图
是是开始
否否 工作方式工作方式是K2 被按下?= 0 ?= 1
否
工作方式工作方式 = 1 ?= 2是是
否否工作方式工作方式K4 被按下? = 2 ?= 0
返回
键盘扫描子程序模块
//*********************************************************
void scankey() }
{ if(k4())
if(k2()) {
{ bell();
bell(); if(mode==0x02)
if(mode==0x00) {
{ flag = 0;
mode = 0x01; play_fg1 = 0;
write_inst(0x01); play_fg2 = 0;
} mode = 0x00;
else if(mode==0x01) write_inst(0x01);
{ count = 0;
flag = 0; }
mode = 0x02; }
write_inst(0x01); }
}
*********************************************************
结束语
通过这次毕业设计,我觉得自己学到了很多东西,特别是在即将
第 19 页 共 21 页
毕业走向社会的时候,增加了自己以后在社会上工作的信心。毕业设计是对我们大学三年学习的总考验.这次毕业设计,我有以下一些体会:
大学大部分时间都是在学习理论基础知识,并未真正地去应用和实践。自从入学以来,了解了自己本专业信息之后,我就开始了我的电子信息学习生涯,其中涉及到的知识,是我以前没想过的,也不懂的,所以这次毕业设计,我很辛苦才完成。其中我接触到了更多平时没有接触到的元器等,发现了自己很多不足之。我体会到了所学理论知识的重要性:知识掌握越多,设计得就更加严谨,更加顺利。
了解了进行一项相对比较大型的科研设计所必不可少的几个阶段。毕业设计能够从理论设计和工程实践相结合,个人作用和集体协作相结合等全方面的培养学生的全面素质。我经过这次系统的毕业设计,熟悉了对一项课题进行研究,设计和试验的详细过程。这些在我们在将来的工作和学习当中都会有很大的帮助。
加深了解了查阅资料和利用工具书的重要性.平时课堂上所学习的知识大多比较陈旧,作为电子信息工程的学生,由于专业涉及知识广,不仅在懂单片机的知识,还要懂模拟电子、数字电子、Protel 99 SE等等方面的知识。一个人不可能什么都学过,什么都懂,因此,当我在设计过程中需要用到一些不曾学过的东西时,就要去有针对性地查找资料,然后加以利用吸收,以提高自己的应用能力,而且还能增长自己见识,补充我的专业知识。
毕业设计对以前所学的过的理论知识起到了回顾作用,并对其加以进一步的消化和巩固。实践能力得到了进一步提高,在制作过程中积累了一些经验。毕业设计培养了我们严肃认真和实事求是的学习态度,而且培养了吃苦耐劳的精神以及相对应的工程意识。同学之间的友谊互助也充分的在毕业设计当中充分体现了出来。
总之,在踏上大学旅途的最后一步中间虽然存在着许多困难,但我们都走过了,这过程中我学到了不少的新知识,对我个人将来的发展非常有帮助。所谓读万卷书不如走万里路,实践是检验真理的唯一标准,将来的路还很长,还需要我
第 20 页 共 21 页
在实践中不断的摸索,跌倒了再爬起来,在困难和逆境中不断成长。
致谢
首先,在这里,我要感谢我的指导师姚才老师,他真的是一位很慈祥,很棒的老师,对学生也很好,他给了我很多的帮助,没有他的指导,我的毕业设计不会这么顺利完成。
其次要感谢3号楼智能实验室的陈老师给我们提供了仿真器,让我们可以随时用。
我还要感谢毕业设计一起做设计同学。没有姚才老师和同学的协助,我这次设计也不会这样顺利。谢谢~
参考文献
(1)《PIC单片机基础教程》
--丁跃军等编著 北航大学出版社
(2)《PIC单片机原理》
--李学海编著 北航大学出版社
(3)《基于PROTEUS的电路及单片机系统设计与仿真》
--周润景、张丽娜编著 北航大学出版社
(4)凌阳大学
计划
项目进度计划表范例计划下载计划下载计划下载课程教学计划下载
—《出租车计费系统》,电子文档资料
(5)《PIC单片机C语言基础教程》
附件:源程序一份:
(略)
第 21 页 共 21 页