提高。
这个过程中我遇到了很多困难,比如如何运用仿真软件画图,如何组织一些比较专业的语言,以及上网查阅资料。虽说费劲,但是乐趣也不少。通过这次设计,我们了解到平时知识的积累真的很重要,在遇到困难时一定要向认真思考,查阅相关资料,不可盲目退缩,努力后就一定会有收获。
这次毕业设计收获颇丰,不仅是对自己个人能力的提高,也让我认识到了自己的局限,通过这次的毕业设计为以后的学习奠定了一个更好的基础。
参考文献
[1] 李朝青. 单片机原理及接口技术. 北京航空航天大学出版社, 1994 [2] 张毅刚, 刘杰. MCS-51单片机原理及应用. 哈尔滨工业大学出版社,2004 [3] 楼然苗, 李光飞. 51系列单片机设计实例. 北京航空航天大学出版社, 2006 [4] 松井邦彦, 梁瑞林. 传感器应用技术141例. 科学出版社, 2006 [5] 张洪润, 张亚凡. 传感器技术与应用教程. 清华大学出版社, 2005 [6] 刘灿军. 实用传感器. 国防工业出版社, 2004 [7] 何希才. 传感器及其应用. 国防工业出版社, 2001
[8] 刁文兴. 自行车电子里程表的初步设计. 南京工业职业技术学院学报, 2004, 6: 25-28 [9] 安宗权. 电动电子车速里程表分频电路设计. 自动化与仪器仪表, 2001, 5: 39-44 [10] 阎焕忠, 王长涛, 马斌. 单片机控制里程转速表的设计. 沈阳建筑工程学院学报(自
然科学版),2002, 4: 145-148
[11] 谢自美. 电子线路设计.实验.测试[M].武汉:华中科技大学出版社,2000:212-230 [12] 张福学. 传感器使用电路150例.中国技术出版社.1992
程序
#include
uchar i; uchar t1_num,t2_num; 计时间中断的 次数 unsigned long speed1,juli,time2; float f_; 开始计算速度使能 uchar flag_stop_en; 要确定车子是否停下了 uint juli_s; 每秒走的距离 uint juli_z; 总路程 float zhijing = 0.55; 直径 0.55M bit flag_1s = 1; 1s uchar menu_1; 菜单设置变量 uchar menu_2; 菜单设置变量 long zong_lc; 总量程 uchar flag_200ms; uint shudu; 定义速度的变量 uint bj_shudu = 80; 报警速度 这三个引脚参考资料 sbit rs=P1^0; 寄存器选择信号 H:数据寄存器 L:指令寄存器 sbit rw=P1^1; 寄存器选择信号 H:数据寄存器 L:指令寄存器 sbit e =P1^2; 片选信号 下降沿触发 uchar code table_num[]=%uchar i; sbit beep = P3^7; 蜂鸣器IO口定义 ******************1ms 延时函数******************* void delay_1ms(uint q) { uint i,j; for(i=0;i for(j=0;j<120;j++); } ******************把数据保存到单片机内部eepom中****************** void write_eeprom() { SectorErase(0x2000); byte_write(0x2000, bj_shudu % 256); byte_write(0x2001, bj_shudu 256); byte_write(0x2002, zong_lc % 256); byte_write(0x2003, zong_lc 256 % 256); byte_write(0x2004, zong_lc 256 256 % 256); byte_write(0x2055, a_a); } ******************把数据从单片机内部eepom中读出来***************** void read_eeprom() { uint value; bj_shudu = byte_read(0x2001); bj_shudu <<= 8; bj_shudu |= byte_read(0x2000); zong_lc = byte_read(0x2004); zong_lc <<= 16; value = byte_read(0x2003); zong_lc |= (value << 8); zong_lc |= byte_read(0x2002); a_a = byte_read(0x2055); } **************开机初始化保存的数据***************** void init_eeprom() 开机初始化保存的数据* { read_eeprom(); 先读 if(a_a != 1) 新的单片机初 始单片机内问eeprom { bj_shudu = 50; a_a = 1; write_eeprom(); 保存数据 } } ******************************************************************** * 名称 : delay_uint() * 功能 : 小延时。 * 输入 : 无 * 输出 : 无 *********************************************************************** void delay_uint(uint q) { while(q--); } ******************************************************************** * 名称 : write_com(uchar com) * 功能 : 1602命令函数 * 输入 : 输入的命令值 * 输出 : 无 ********************************************************************** * void write_com(uchar com) { i =0; e=0; rs=0; rw=0; P0=com; delay_uint(3); e=1; delay_uint(25); e=0; } ******************************************************************** * 名称 : write_data(uchar dat) * 功能 : 1602写数据函数 * 输入 : 需要写入1602的数据 * 输出 : 无 *********************************************************************** void write_data(uchar dat) { i =0; e=0; rs=1; rw=0; P0=dat; delay_uint(3); e=1; delay_uint(25); e=0; } ******************************************************************** * 名称 : write_sfm2(uchar value; 返回读出来的数据 } *************把要的时间 年月日 都读出来*************** void read_time() { miao = read_ds1302(read_add[0]); 读秒 fen = read_ds1302(read_add[1]); 读分 shi = read_ds1302(read_add[2]); 读时 ri = read_ds1302(read_add[3]); 读日 yue = read_ds1302(read_add[4]); 读月 nian = read_ds1302(read_add[5]); 读年
相关推荐: