单片机课程设计题目基于51 单片机的计数器设计
目录
1课程设计的目的
1...
2 设计思路 ................................................. 1. ..
3 设计过程 ................................................. 2. ..
3.1方案论证
2...
3.2电路的设计 ..........................................
4..
4 应用程序 ................................................. 6. ..
5 电路焊接 ................................................. 8. ..
5.1 标准锡点 ............................................................. 8. ..
5.2不标准锡点判定 ...................................... 8..
6 系统调试与结果 ................................................. 9. ..
7 结论 ................................................. 1.
.0.
8 心得体会 ................................................. 1.1 .
参考文献 ................................................. 1.3 .
附录 1:总体电路原理图 ................................................. 1. .4
附录 2:实物图 ................................................. 1. .5
附录 3:元器件清单 ................................................. 1. .6
1 课程设计的目的
1.利用单片机定时器/计数器中断设计计数器,0 到99 的累加。2.综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。
3.通过本次课程设计加深对单片机掌握定时器、外部中断的设置和编程原理的全面认识复习和掌握,对单片机实际的应用作进一步的了解。
4.通过本次试验,增强自己的动手能力。认识单片机在日常生活中的应用的广泛性,实用性。明确学习目的,端正学习态度,提高对课程设计重要性的认识,以积极认真的态度参加课程设计工作,按要求完成规定的设计任务。
2设计思路
本实验利用单片机的定时器/计数器定时和计数的原理,通过采用仿真软件来模拟实现。模拟利用AT89C2052单片机、LED 数码管以及各种控制器件来控制表的计数以及计数的开启/计数与复位等。利用单片机AT89S51单片机来制作一个手动计数器,在AT89S51单片机的P3.7管脚接一个轻触开关,作为手动计数的按钮,用单片机的P2.0-P2.7接一个共阴数码管,作为00-99 计数的个位数显示,用单片机的P0.0-P0.7接一个共阴数码管,作为00-99 计数的十位数显示,用单片机P1.0-P1.6接一个并排的7 个LED 灯,作为00-99 计数的二进制显示。设计总图如图2-1 所示
图 2-1 设计总图
3 设计过程
3.1 方案论证 用单片机技术来实现双显计数器的控制。多功能定时计
数器控制系 统的原理。它主要由单片机、发光二极管、晶振和双位数码管等部分组 成。
A .单片机采用 STC89C51 型。
B .数据显示电路:七段四位共阴极数码管, P1口接7个LED 二极
管,用二进制显示数据; P0 和 P2 口分别接两个数码管,用十进制显示 数据。
C .数据输入电路:有触发按键完成输入,一次按键 LE
D 显示和数 码
管显示分别加 1,LED 满二进位,数码显示满十进位。
D .电源指示电路:电路接通电源后电源指示灯亮起,表示电源接
通。
设计总体框架图如图 3-1 所示
最小控制系统的设计, STC89C51 单片机最小系统包括晶体振荡电 路、复位开关和电源部分。主控制器采用 STC89C52RC ,STC89C52RC 单 片机是宏晶科技推出的新一代高速 / 低功耗/ 超强抗干扰的单 片机,指令 代码完全兼容传统 8051 单片机,12 时钟/机器周期和 6 时钟/机器周期 可以任意选择。 STC89C51单片机的最小系统图如图 3-2 所示
图 3-2 单片机最小控制系统
当 RST 引脚有一个高电平并维持两个机器周期,则 CPU 就可以响 应并将系统复位。需要 100 欧, 10k 电阻各一个, 22pf 电容一个,按键 一个。时钟电路需要在 XTAL1 ,2,两个端口跨接石英晶体及两个电容, 电容一般取 10uF 左右。
图 3-1 总体框架
3.2电路的设计
1.指示电路如图3-3 所示
2.数码管为共阴极,八段选端接P1口,四个位选端接P3 口,如上图所示。数码管显示电路如图3-4 所示。
图3-4 数码管电路
3.复位电路。电容在上接高电平,电阻在下接地,电容和按键并联,中间为RST。这种复位电路为高电平复位。其工作原理是:通电时,电容两端相当于是短路,于是RST 引脚上为高电平,然后电源通过电阻对电容充电,RST 端电压慢慢下降,降到一定程度,即为低电平,单片机开始正常工作。当按下按键之后,rst 变为低电平,单片机复位。增强型8051 单片机, 6 时钟/ 机器周期和12 时钟/ 机器周期可以任意选择,指令代码完全兼容传统8051。工作电压: 5. 5V~3. 3V(5V 单片机)/3. 8V~2. 0V(3V 单片机)。工作频率范围:0~40MHz ,相当于普通8051 的0~80MHz,实际工作频率可达48MHz 。用户应用程序空间为8K 字节。片上集成512 字节RAM 。
复位电路如图3-5 所示。
图3-5 复位电路
4应用程序#include
#include
for(i=10;i>0;i--) for(j=248;j>0;j--);
} void delay2ms(void) {unsigned char i,j,k;
for(i=20;i>0;i--) for(j=20;j>0;j--) for(k=248;k>0;k--);
}
unsigned char code
LEDcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char code
LEDcoda[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0 x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18 ,
0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25,0x2 6,
0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0x3
4,
0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x4 2,
0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x5 0,
0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5 e ,0x5f,0x60,0x61,0x62,0x63};
unsigned char count;
sbit sp1=P3^7;
void main(void)
{count=0;
P0=LEDcode[count/10];
P2=LEDcode[count%10];
P1=LEDcoda[count];
while(1)
{if(sp1==0)
{delay5ms();
if(sp1==0)
{count++;
if(count==100)
{count=0;}
P0=LEDcode[count/10];
P2=LEDcode[count%10];
P1=LEDcoda[count];
while(sp1==0);
do{delay5ms();}
while(sp1==0);
do{delay5ms();}
while(sp1==0);
}
}
}
}
5电路焊接
在实际生产中,最容易出现的一种违反操作步骤的做法就是烙铁头不是先与被焊件接触,而是先与焊锡丝接触,熔化的焊锡滴落在尚末预热的被焊部位,这样很容易产生焊点虚焊,所以烙铁头必须与被焊件接触,对被焊件进行预热是防止产生虚焊的重要手段。
5.1 标准锡点
( 1)锡点成内弧形。
(2)锡点要圆满、光滑、无针孔、无松香渍。
( 3)要有线脚,而且线脚的长度要在1-1.2MM 之间。
(4)零件脚外形可见锡的流散性好。
(5)锡将整个上锡位及零件脚包围。
5.2不标准锡点判定
(1)虚焊:看似焊住其实没有焊住,主要有焊盘和引脚脏污或助焊剂和加热时间不够。
(2)短路:有脚零件在脚与脚之间被多余的焊锡所连接短路,另一种现象则因检验人员使用镊子、竹签等操作不当而导致脚与脚碰触短路,
亦包括残余锡渣使脚与脚短路。
(3)偏位:由于器件在焊前定位不准,或在焊接时造成失误导致引脚不在规定的焊盘区域内。
(4)少锡:少锡是指锡点太薄,不能将零件铜皮充分覆盖,影响连接固定作用。
(5)多锡:零件脚完全被锡覆盖,及形成外弧形,使零件外形及焊盘位不能见到,不能确定零件及焊盘是否上锡良好。
(6)错件:零件放置的规格或种类与作业规定或BOM 、ECN 不符者,即为错件。
(7)缺件:应放置零件的位置,因不正常的原因而产生空缺。
(8)锡球、锡渣:PCB 板表面附着多余的焊锡球、锡渣,会导致细小管脚短路。
(9)极性反向:极性方位正确性与加工要求不一致,即为极性错误。
6系统调试与结果
系统通电后,进入计数设置功能,等待信号的数据输入,当完成设置数值后,开始计数,此时如果对所记录的数据清零则返回到设置数值界面,可以重新设置数值。当所记录的数值等于预设定的数时,蜂鸣器发声报警。
在软件编写与调试时,我发现有很多我原来所没有注意到的问题,
硬件完成焊接后,先用万用表简单的进行是否短路检测,没有问题后进行通电测试,发现上电指示灯亮,然后程序到单片机内检测是否能下载程序;刚开始的时候,我的不能下程序,我首先按照原理图检查了一遍最小系统,发现复位电路存在问题,经修改后还是不能下程序,怎么试不行,我又检查了电路和最小系统发现都没有问题,最后听同学说可能是杜邦线的问题,经过检查后发现我的四根杜邦线有两根都是坏的。这是我所没有想到的,换了好的后,就可以程序了。
当编写完程序进行调试时,又发现存在很多的问题,首先是数码管的段码的问题,这个需要自己根据自己的电路来计算而不是统一的一样,这个问题直到我知道后才解决掉。然后是矩阵键盘扫描的程序的调试,这个也要自己根据自己的电路接口来计算所要输送的十六进制数码,而且还要通过软件去抖动,还要判断按键是否松开等问题,这个花费的时间较长些,最后通过把按键扫描和数码管动态显示组合到一起,发现还是有问题,这个当然是软件上的问题。实现这个功能之后,我要实现自己的计数功能和显示功能,在这个过程中,设置的数的显示和所要计的数的显示又存在问题,原因是他们会同时显示,出现重叠乱码现象,为此我请教了很多同学,最后,通过分别定义不同变量,用数组解决了这个问题。
最后经过讨论与研究终于找到了解决问题的办法。我们花费很多时间,虽然出现了许多问题但在老师和同学的帮助下都慢慢克服。
7 结论
调试方法:首先用软件将C编译成HEX 文件,打开软件,新建一个文文件,输入 C 程序,保存成 C 格式文件,然后新建工程,连接
单片
机为AT89C51,选择Options for target,选择OUTPUT 子菜单,在
Create
HEX 前打钩,子菜单中,Settings选择Proteus VSM Simulator ,
USE 前
10
打钩,再次运行文件,成功后在目录下会生成HEX 文件,打开Proteus 软件,或直接点击DSN 檔,双击单片机模板,点击文件夹式样的图标选择对应的HEX 驱动文件,然后点击开始,进行调试经调试运行基本成功,不过也有小小的不足之处。经过查找错误,已经调试成功。完成以STC89C52 为核心的计数器的设计和制作,并能实现计数显示和设置功能。
8 心得体会
经过两周的努力,我终于完成关于多功能定时计数器的控制的单片机课程设计,通过两周不断的查资料让我积累了许多实际操作经验,已初步掌握了单片机的应用技术,以及电路的知识和有关器件的应用,我深刻体会到了单片机技术对当今现代社会的重要作用。经过这次设计,我学会了许多东西,学会了严密的思考,构想及怎样把计划付诸于实际行动之中。同时与社会的不断高速发展的步伐相比,我认识到自己所学的知识和技能还远远不足,有些实际性的问题还不能够解决,缺少很多有实际运用价值的知识储备,缺乏应有的动手解决实际问题的能力,缺乏高效利用及筛选大量资料的能力,缺乏资源共享及应有的团队合作精神,有待进一步提高,我应当学好自己的专业知识以适应不断发展的社会。
在这次课程设计中,我学会了如何有效的利用网络资源及图书馆的藏书,找到了几个很不错的专业网站,通过这次课程设计,加强了我动手、思考和解决问题的能力.但是控制器控制信号灯不好。虽然花了很多的时间,但学到了很多东西。做课程设计的时候,自己把整个书本都看了几遍,增强了自己对知识的理解,很多以前不是很懂的问题现在都已经一一解决了。在课程设计的过程中,我想了很多种方案,对同一个问题都想了很多种不同的接法,运用不同的芯片进行了
比较,最后还是采取了上面的方法进行连接。为以后的查阅专业方面的信息和相互之间的交流打下了坚实的基础,学会了如何看电路图,识别电路图,提高了自己的专业技能,同时也培养了自己独立解决实际问题的能力,也培养了自己认真和严谨的科学态度,收到了很大的启发,为以后的工作积累了些宝贵的经验。
当准备测试电路板的时候,一定要先认真的做好目视检查,检查在焊接的过程中是否有可见的短路和管脚搭锡等故障,检查是否有元器件型号放置错误,第一脚放置错误,漏装配等问题,然后用万用表测量各个电源到地的电阻,以检查是否有短路,这个好习惯可以避免贸然通电后损坏单板。在今后还是要做好充分的准备工作,做到细心、谨慎、负责。通过实验意识到要从现在开始养成那种细心的好习惯。还有由于知识的局限性,对一些深层次的问题还是有所欠缺。这对以后的课程设计、毕业设计甚至是今后工作上都非常有帮助。再者通过这次实习锻炼了自己的动手及查资料的能力,也体会到了成功带来了的喜悦和自己的不足之处,可以说是受益匪浅。
参考文献
[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~89.
[9]胡汉才. 单片机原理及其接口技术(第 2 版) [M]. 北京:清华大学出版社.2004.49~77.
[10]胡全. 51单片机的数码管动态显示技术[J] .信息技术,2009,13:25~26.
[11]马云峰. 单片机与数字温度传感器DS18B20的接口设计[J]. 计算机测量与控制,2007,10(4):278~280.
附录1:总体电路原理图
附录2:实物图
附录3:元器件清单