题 目 00~99计数器的设计
学生姓名 小红
1 课程设计的目的
(1) 利用单片机定时器/计数器中断设计秒表,从而实现秒、十分之一秒的计时。
(2) 综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。
(3) 通过本次课程设计加深对单片机掌握定时器、外部中断的设置和编程原理的全面认识复习和掌握,对单片机实际的应用作进一步的了解。
(4) 通过本次试验,增强自己的动手能力。认识单片机在日常生活中的应用的广泛性,实用性。 明确学习目的,端正学习态度,提高对课程设计重要性的认识,以积极认真的态度参加课程设计工作,按要求完成规定的设计任务。
2 设计思路
本实验利用单片机的定时器/计数器定时和计数的原理,通过采用仿真软件来模拟实现。模拟利用ATC2052单片机、LED数码管以及各种控制器件来控制表的计数以及计数的开启/暂停/继续与复位等。利用单片机ATS51单片机来制作一个手动计数器,在ATS51单片机的P1.7管脚接一个轻触开关,作为手动计数的按钮,用单片机的P2.0-P2.7接一个共阴数码管,作为00-99计数的个位数显示,用单片机的P0.0-P0.7接一个共阴数码管,作为00-99计数的十位数显示。
3 设计过程
3.1 方案论证
3.1.1 用单片机技术来实现多功能定时计数器的控制
多功能定时计数器控制系统的原理。它主要由单片机、发光二极管、晶振和双位数码管等部分组成。
1、总体描述
(1)单片机采用STCC52型。
(2)数据显示电路:七段四位共阴极数码管,P1口控制八位段码,P3.4到P3.7控制四位码。
(3)数据输入电路:四个按键完成输入,一号键控制个位加1,可以实现从1加到9;二号键控制十位加一;三号键控制百位加一;四号键控制千位加一。
(4)功能指示电路:上电指示发光二极管,P26口控制蜂鸣器报警功能。
2、总体设计:
设计总体框架图如图3-1所示:
图3-1总体框架图
3.1.2 最小控制系统的设计
STCC52单片机最小系统包括晶体振荡电路、复位开关和电源部分。图3-2为STCC52单片机的最小系统:
图3-2单片机最小控制系统
复位口为P3.0口,当RST引脚有一个高电平并维持两个机器周期,则 CPU就可以响应并将系统复位。需要200欧,1000欧电阻各一个,22微法电容一个,按键一个。时钟电路需要在XTAL1,2,两个端口跨接石英晶体及两个电容,电容一般取30pF左右。
3.2 电路的设计
3.2.1 指示电路
图3-3蜂鸣器电路
3.2.2 数码管显示电路
图3-4数码管电路
我的数码管为共阴极,八段选端接P1口,四个位选端接P3口,如上图所示。
3.2.3键盘输入
图3-4 键盘输入
上图为3*3矩阵键盘扫描电路的接法,三行分别相连接P2.5,P2.4,P2.3口,三列分别相连接P2.2,P2.1,P2.0口。先给所有行线一个低电平,然后将线口的电平状态读入单片机,如果有按键按下,总有一根线电平被拉至低电平,从而使输入不全为1.
判断键盘中哪一个键被按下是通过将行线逐行配置低电平后,检查列输入状态实现的。方法是:依次进给低电平,然后检查所有列状态,称行扫描。如果全为1,则所按下的键不在此行,如果不全为1,则所按下的键必在此行,而且是在与零电平线相交的交点上的那个键。
3.2.4复位电路
图3-5 复位电路
3.2.5 总原理图
3-6电路图设计
编程:
#include Unsignecharcode LEDcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char Count; sbit SP1=P1^7; void delay10ms(void) { unsigned char i,j,k; for(i=5;i>0;i--) for(j=4;j>0;j--) for(k=248;k>0;k--); } void main (void) {Count=0; P0=LEDcode[Count/10]; P2=LEDcode[Count%10]; while(1) {if(SP1==0) {delay10ms(); if(SP1==0) {Count++; if(Count==100) { Count=0;} P0=LEDcode[Count/10]; P2=LEDcode[Count%10]; while(SP1==0); do {delay10ms();} while(SP1==0); } } } } 4 系统调试与结果 系统通电后,进入计数设置功能,等待信号的数据输入,当完成设置数值后,开始计数,此时如果对所记录的数据清零则返回到设置数值界面,可以重新设置数值。当所记录的数值等于预设定的数时,蜂鸣器发声报警。 在软件编写与调试时,我发现有很多我原来所没有注意到的问题,硬件完成焊接后,先用万用表简单的进行是否短路检测,没有问题后进行通电测试,发现上电指示灯亮,然后程序到单片机内检测是否能下载程序;刚开始的时候,我的不能下程序,我首先按照原理图检查了一遍最小系统,发现复位电路存在问题,经修改后还是不能下程序,怎么试不行,我又检查了电路和最小系统发现都没有问题,最后听同学说可能是杜邦线的问题,经过检查后发现我的四根杜邦线有两根都是坏的。这是我所没有想到的,换了好的后,就可以程序了。 当编写完程序进行调试时,又发现存在很多的问题,首先是数码管的段码的问题,这个需要自己根据自己的电路来计算而不是统一的一样,这个问题直到我知道后才解决掉。然后是矩阵键盘扫描的程序的调试,这个也要自己根据自己的电路接口来计算所要输送的十六进制数码,而且还要通过软件去抖动,还要判断按键是否松开等问题,这个花费的时间较长些,最后通过把按键扫描和数码管动态显示组合到一起,发现还是有问题,这个当然是软件上的问题。实现这个功能之后,我要实现自己的计数功能和显示功能,在这个过程中,设置的数的显示和所要计的数的显示又存在问题,原因是他们会同时显示,出现重叠乱码现象,为此我请教了很多同学,最后,通过分别定义不同变量,用数组解决了这个问题。 最后经过讨论与研究终于找到了解决问题的办法。在这个上面,我们花费很多时间,虽然出现了许多问题但在老师和同学的帮助下都慢慢克服。 5 结论 调试方法:首先用软件将C编译成HEX文件,打开软件,新建一个文文件,输入C程序,保存成C格式文件,然后新建工程,连接单片机为ATC51,选择Options for target,选择OUTPUT子菜单,在Create HEX 前打钩,子菜单中,Settings选择Proteus VSM Simulator,USE前打钩,再次运行文件,成功后在目录下会生成HEX文件,打开Proteus软件,或直接点击DSN檔,双击单片机模板,点击文件夹式样的图标选择对应的HEX驱动文件,然后点击开始,进行调试经调试运行基本成功,不过也有小小的不足之处。经过查找错误,已经调试成功。完成以STCC52为核心的计数器的设计和制作,并能实现计数显示和设置功能。 6 心得体会 经过两周的努力,我终于完成关于多功能定时计数器的控制的单片机课程设计,通过两周不断的查资料让我积累了许多实际操作经验,已初步掌握了单片机的应用技术,以及电路的知识和有关器件的应用,我深刻体会到了单片机技术对当今现代社会的重要作用。 经过这次设计,我学会了许多东西,学会了严密的思考,构想及怎样把计划付诸于实际行动之中。同时与社会的不断高速发展的步伐相比,我认识到自己所学的知识和技能还远远不足,有些实际性的问题还不能够解决,缺少很多有实际运用价值的知识储备,缺乏应有的动手解决实际问题的能力,缺乏高效利用及筛选大量资料的能力,缺乏资源共享及应有的团队合作精神,有待进一步提高,我应当学好自己的专业知识以适应不断发展的社会。 在这次课程设计中,我学会了如何有效的利用网络资源及图书馆的藏书,找到了几个很不错的专业网站,通过这次课程设计,加强了我动手、思考和解决问题的能力.但是控制器控制信号灯不好。虽然花了很多的时间,但学到了很多东西。做课程设计的时候,自己把整个书本都看了几遍,增强了自己对知识的理解,很多以前不是很懂的问题现在都已经一一解决了。在课程设计的过程中,我想了很多种方案,对同一个问题都想了很多种不同的接法,运用不同的芯片进行了比较,最后还是采取了上面的方法进行连接。为以后的查阅专业方面的信息和相互之间的交流打下了坚实的基础,学会了如何看电路图,识别电路图,提高了自己的专业技能,同时也培养了自己解决实际问题的能力,也培养了自己认真和严谨的科学态度,收到了很大的启发,为以后的工作积累了些宝贵的经验。 参考文献 [1] 李学龙. 使用单片机控制的智能遥控电风扇控制器[J]. 电子电路制作, 2003,9:13~15. [2] 耿长清.单片机应用技术[M].北京:化学工业出版社,2001,8:14~16. [3] 杨西明.单片机编程与应用技术入门[M].北京:机械工业出版社,2004,9:27~28 [4] 公茂法 .单片机人机接口实例集[M].北京:北京航天航空大学出版社,1998,10:10~11 [5] 李全力.单片机原理及应用技术[M].北京:高等教育出版社,2001,7:34~35. [6] 李学龙. 使用单片机控制的智能遥控电风扇控制器[J]. 电子电路制作, 2003,9:13~15. [7] 蓝厚荣. 单片机的PWM控制技术[J]. 工业控制计算机, 2010,23(3):97~98 . [8] 龚运新.单片机实用技术教程[M].北京:北京师范大学出版社,2005,14:88~. [9] 胡汉才. 单片机原理及其接口技术(第2版)[M]. 北京:清华大学出版社.2004.49~77. [10] 胡全. 51单片机的数码管动态显示技术[J] .信息技术,2009,13:25~26. [11] 马云峰. 单片机与数字温度传感器DS18B20的接口设计[J]. 计算机测量与控制,2007,10(4):278~280. 附录1:总体电路原理图 附录2:实物图 附录3:元器件清单序号 名称 型号规格 数量 1 单片机 ATC2052 1 2 稳压电路 78L05 1 3 峰鸣器 有源5V 1 5 发光二极管 红3mm 4 6 电阻 18 7 三极管 9012 7 8 晶振 12M 1 9 电容 6 10 轻触开关 3 11 2p排针 2.54mm 2 12 IC插座 20p 1 14 导线 若干