内容发布更新时间 : 2025/10/31 14:57:38星期一 下面是文章的全部内容请认真阅读。
3.4.2 仿真结果
仿真结果如图12所示。
LCD1LM016LVSSVDDVEERSRWERS4GND5E620pFX112M19XTAL1C21820pFXTAL2R1C810uF1k9RSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617d0d1d2d3d4d5d6d7RSGNDE98765432d0d1d2d3d4d5d6d7U1d07d18d29d310d411d512d613d714C1123D0D1D2D3D4D5D6D7RP1RESPACK-8U281VCC1VCC2X12293031PSENALEEA1576X2RSTSCLKI/ODS1302CRYSTALX2312345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51R210kLS1U3231GNDVIOUTVCCIP+4IP-5SPEAKERR310kACS755XCB-050 图12 仿真结果
第四部分 安装调试与性能测量
电路实物图如图13所示。
图13 电路实物图
第五部分 设计总结
通过本次设计,使我对单片机知识和理解更一步加深了,掌握了简易数字里程表的设计,组装和调试方法。并且使我更加熟练的应用仿真软件,让我学到了如何运用软件测试电路的可行性,并且对电路的调试改进都有一个很大的
17
提高。
这个过程中我遇到了很多困难,比如如何运用仿真软件画图,如何组织一些比较专业的语言,以及上网查阅资料。虽说费劲,但是乐趣也不少。通过这次设计,我们了解到平时知识的积累真的很重要,在遇到困难时一定要向认真思考,查阅相关资料,不可盲目退缩,努力后就一定会有收获。
这次毕业设计收获颇丰,不仅是对自己个人能力的提高,也让我认识到了自己的局限,通过这次的毕业设计为以后的学习奠定了一个更好的基础。
参考文献
[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   19    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命令函数 * 输入 : 输入的命令值 * 输出 : 无  **********************************************************************