单片机基于出租车计价系统的毕业论文设计内容摘要:
实物图 第二步用万用表检测。 先用万用表复核目测中有疑问的连接点,在检测各种电源线与底线是否有短路现象。 将万用表打在欧姆挡,然后将表笔接在被测线路之间,看实数是否有变化,有则表明导通。 如图 52为万用表测试实物图。 泸州职业技术学院 系统测试 14 如图 52 第二节 软件调试 软件调试是通过对用户程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。 查看程序是否有逻辑错误。 如图 51程序窗口。 泸州职业技术学院 系统测试 15 如图 51 程序输入窗口 如图 52 为程序编译窗口。 泸州职业技术学院 系统测试 16 如图 52 程序编译 窗口 如果信息栏显示没有错误,表明没有语法错误,然后可以生成“ *.HEX”文件下载到芯片里,与硬件联合调试。 泸州职业技术学院 结束语 17 结束语 经过这些天有关于出租车计价器的课程设计,使我对单片机的应用有了更深的了解。 在课程设计的过程中,还是碰到了许多的问题。 比如,对于数码管动态扫描显示和键盘的延时防抖的综合编程不能较好地解决;对于代码的前后顺序及调用掌握得还不够好;对于一些相关的应用软件没能熟练掌握。 通过这几天晚上的苦想和反复调试,以及参考网上的程序,最终还是没能把问题解决。 通过这次课程设计,我最大的收获就是自己的动手能力和 独立解决问题的能力得到了很大的提高,也充分体会到了自己设计东西的乐趣、学会查阅资料和对别人的东西融会变通的重要性,也明白了很多知识光靠趴在书本上学是学不到其中的精髓的,必须亲自去试着实践,亲自去经历才能对它们真正的掌握,凡事都要自己去动下手,去实践一下,遇到困难,永远不要沮丧气馁。 在动手的过程中,不仅能增强实践能力,而且在理论上可以有更深的认识;这次设计给了我极大的鼓舞和信心,相信在以后的学习中可以通过不断的摸索和实践来提高其他方面的知识。 通过本次课程设计,又使我学到了许多书本上无法学到的知识 ,也使也深该体 会到单片机技术应用领域的广泛,不仅使我对学过的单片机知识有了很多的巩固,同时也对单片机这一门课程产生了更大的 泸州职业技术学院 致谢 18 致谢 首先要感谢我的家人,是他们让我能上大学;在大学里,先要学会学习才能学的更好,是老师教了我怎样学习,到现在能完成毕业设计,都少不了老师的功劳;在整个设计过程中,从硬件电路图到软件编程,应用了相当多的知识,包含了大学三年所学的知识,在此向各位任课老师表示感谢。 在设计过程中,指导老师李庭贵老师给予了我很大帮助,李老师对设计中出现的问题作了及时讲解和耐心指导,使我的设计得以 顺利完成。 在此,特向李庭贵老师、何兵老师、等表示感谢;同时,很多同学也给我提供了很多帮助,也向帮助我的同学表示感谢。 泸州职业技术学院 附录 A 19 附录 A 泸州职业技术学院 附录 B:程序清单 20 附录 B 程序清单 include define uint unsigned int define uchar unsigned char define rate 15//脉冲数与里程数的比例 sbit P20=P2^0。 sbit P21=P2^1。 sbit P22=P2^2。 //接 74 LS 138 控制 数码管 sbit pulse_in=P1^0。 bit pulse=1。 bit dispflag。 uchar num,temp。 bit begin_signal。 // 开始标志 bit s_or_d。 //单程 还是往返 标志 uint times。 // 定时次数 uint pulse_counter。 uint record。 uint s_temple。 uint s,m。 //里程数 s 和 金额 m uint t。 //等待时间 char baiwei,shiwei,gewei,xiaoshu。 char keynum。 //键盘 的键值 uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0x40}。 //0~f and 39。 39。 的字型码(共阴) //声明 区 void delay(uint x)。 void init()。 void divide(uint counter)。 void select(bit a,bit b,bit c)。 void debouncer(void)。 uchar keyscan(void)。 void delay(uint x)//延时 x ms . { uint i,j。 for(i=0。 ix。 i++) for(j=0。 j=150。 j++)。 } 泸州职业技术学院 附录 B:程序清单 21 void init() // 定时器初始化 { TMOD=0x01。 TH0=(6553625000)/256。 // timer=1/40s TL0=(6553625000)%256。 EA=1。 ET0=1。 TR0=1。 } void divide(uint counter) { if(dispflag==0) { P0=0x00。 counter=counter*10/rate。 xiaoshu=counter%10。 gewei=(counter/10)%10。 shiwei=(counter/100)%10。 baiwei=(counter/1000)%10。 if(counter=30) m=80。 else if(s_or_d==0) m=80+2*(counter30)+t/300。 else m=80+*(counter30)+t/300。 select(1,1,0)。 //显示里程数目 P0=table[xiaoshu]。 delay(2)。 select(0,1,0)。 P0=table[gewei]|0x80。 delay(2)。 select(1,0,0)。 P0=table[shiwei]。 delay(2)。 select(0,0,0)。 P0=table[baiwei]。 delay(2)。 xiaoshu=m%10。 gewei=(m/10)%10。 shiwei=(m/100)%10。 baiwei=(m/1000)%10。 select(1,1,1)。 //显示 金额数目 P0=table[xiaoshu]。 delay(2)。 select(0,1,1)。 P0=table[gewei]|0x80。 泸州职业技术学院 附录 B:程序清单 22 delay(2)。 select(1,0,1)。 P0=table[shiwei]。 delay(2)。 select(0,0,1)。 P0=table[baiwei]。 delay(2)。 } else { P0=0x00。 xiaoshu=t%10。 gewei=(t/10)%10。 shiwei=(t/100)%10。 baiwei=(t/1000)%10。 select(1,1,0)。 //显示 等待时间 P0=table[xiaoshu]。 delay(2)。 select(0,1,0)。 P0=table[gewei]。 delay(2)。 select(1,0,0)。 P0=table[shiwei]。 delay(2)。 select(0,0,0)。 P0=table[baiwei]。 delay(2)。 } } void timer0() interrupt 1 { TH0=(6553625000)/256。 TL0=(6553625000)%256。 if(begin_signal==1) { if(pulse_in!=pulse) { delay(10)。 if(pulse_in!=pulse) { pulse=~pulse。 pulse_counter++。 } } if (times==39)//1 s timer pleted 泸州职业技术学院 附录 B:程序清单 23 { times=0。 if((pulse_counterrecord)5)//如果 每秒 脉冲小于 5 , 则等待时间 增加 t++。 record=pulse_counter。 } times++。 } // s_temple=pulse_counter/2。 // divide(s_temple)。 } void select(bit a,bit b,bit c) { P20=a。 P21=b。 P22=c。 } void debouncer(void)// 防抖动 程序 { uint i。 for(i=0。 i4800。 i++)。 } uchar keyscan() { P3=0x7f。 temp=P3。 temp=tempamp。 0x0f。 while(temp!=0x0f) { delay(10)。 temp=P3。 temp=tempamp。 0x0f。 while(temp!=0x0f) { temp=P3。 switch(temp) { case 0x7e:num=1。 break。 case 0x7d:num=2。 break。 泸州职业技术学院 附录 B:程序清单 24 case 0x7b:num=3。 break。 case 0x77:num=4。 break。 } while(temp!=0x0f) { temp=P3。 temp=tempamp。 0x0f。 } } } P3=0xbf。 temp=P3。 temp=tempamp。 0x0f。 while(temp!=0x0f) { delay(10)。 temp=P3。 temp=tempamp。 0x0f。 while(temp!=0x0f) { temp=P3。 switch(temp) { case 0xbe:num=5。 break。 case 0xbd:num=6。 break。 case 0xbb:num=7。单片机基于出租车计价系统的毕业论文设计
相关推荐
单片机概述 单片机是一种集成在 电路 芯片,是采用 超大规模集成电路 技术把具有数据处理能 力的中央处理器 CPU随机存储器 RAM、 只读存储器 ROM、多种 I/O口和中断系统、定时器 /计时器 等功能(可能还包括显示驱动电路、 脉宽调制 电路、模拟多路转换器、 A/D转换器 等电路)集成到一块硅片上构成的一个小而完善的 计算机系统。 单片机内部也用和电脑功能类似的模块,比如 CPU,内存
P1. 0 和 P1. 1输人.当 P1. 5为高电平时蜂鸣器89C51 32 南京工程学院毕业设计说明书(论文) 第 10 页 报警。 水位超过高警戒水位,单片机控制系统使电机停止转动,向水塔内供水工作也停止。 存储器 扩展接口电路 了便于系统扩展,存放大容量应用程序,系统设计扩展一片程序存储器,用于存放源程序代码。 74LS373 用于锁存地址,单片机的 P0. 0~ P0. 7
常见的集成稳压器有固定式三端稳压器与可调式三端稳压器。 此电路部分采用集成稳压器。 固定式三端稳压器的常见产品有两种: CW78**系列稳压器输出固定的正点压,如 7805 输出为 +5V, 7812 输出为 +12V; CW79**系列稳压器输出固定的负电压 ,如 7905 输出为 5V, 7912 输出为 12V。 输出端接电容 C2 进一步滤去纹波,输出端接电容 C3 能改善负载的瞬态影响
ng。 using。 using。 using。 using。 基于单片机活动门控制系统的设计与实现 第 13 页 共 31 页 using。 namespace WEUDUCELIANG { public partial class Form1 : Form { public Form1() { InitializeComponent()。 = 1000。 //设置 timer控件时间间隔 =
最终成绩评定 (依据指导教师评分、评阅教师评分、答辩小组评分和学校关于毕业论文 (设计 )评分的相关规定 ) 等级 (五级制 ): _______ 答辩小组组长 (签名 ) : 秘书 (签名 ): 年 月 日 院 (系 )答辩委员会主任 (签名 ): 院 (系 )(盖章 ) 摘要 XVI 单片机 I2C 串行接口扩展设计 学生:陈 诚 ,电信学院 指导教师:徐爱钧 /教授 摘要
ZQc@UE%amp。 qYp@Eh5pDx2zVkum amp。 gTXRm 6X4NGpP$vSTTamp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。 MuWFA5ux^Gj qv^$UE9wEwZQc@UE%amp。 qYp@Eh5pDx2zVkum amp。 gTXRm 6X4NGpP$vSTTamp。 ksv*3t nGK8! z89Am