基于51单片机的计数器设计.docx

上传人:b****2 文档编号:2868914 上传时间:2023-05-04 格式:DOCX 页数:10 大小:29.81KB
下载 相关 举报
基于51单片机的计数器设计.docx_第1页
第1页 / 共10页
基于51单片机的计数器设计.docx_第2页
第2页 / 共10页
基于51单片机的计数器设计.docx_第3页
第3页 / 共10页
基于51单片机的计数器设计.docx_第4页
第4页 / 共10页
基于51单片机的计数器设计.docx_第5页
第5页 / 共10页
基于51单片机的计数器设计.docx_第6页
第6页 / 共10页
基于51单片机的计数器设计.docx_第7页
第7页 / 共10页
基于51单片机的计数器设计.docx_第8页
第8页 / 共10页
基于51单片机的计数器设计.docx_第9页
第9页 / 共10页
基于51单片机的计数器设计.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于51单片机的计数器设计.docx

《基于51单片机的计数器设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机的计数器设计.docx(10页珍藏版)》请在冰点文库上搜索。

基于51单片机的计数器设计.docx

基于51单片机的计数器设计

单片机课程设计

5.1电路的安装与焊接8

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方案论证

AT89C51是一种带4K字节FLASH存储器〔FPEROM—FlashProgrammableandErasableReadOnlyMemory〕的低电压、高性能CMOS8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高并且价廉的方案。

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到一样的字形码,但终究是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制翻开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

用单片机技术来实现双显计数器的控制。

多功能定时计数器控制系统的原理。

它主要由单片机、发光二极管、晶振和双位数码管等局部组成。

A.单片机采用STC89C51型。

B.数据显示电路:

七段四位共阴极数码管,P1口接7个LED二极管,用二进制显示数据;P0和P2口分别接两个数码管,用十进制显示数据。

C.数据输入电路:

有触发按键完成输入,一次按键LED显示和数码管显示分别加1,LED满二进位,数码显示满十进位。

D.电源指示电路:

电路接通电源后电源指示灯亮起,表示电源接通。

设计总体框架图如图3-1所示

图3-1总体框架图

最小控制系统的设计,STC89C51单片机最小系统包括晶体振荡电路、复位开关和电源局部。

STC89C51单片机的最小系统图如图3-2所示

图3-2单片机最小控制系统

当RST引脚有一个高电平并维持两个机器周期,那么CPU就可以响应并将系统复位。

需要100欧,10k电阻各一个,22pf电容一个,按键一个。

时钟电路需要在XTAL1,2,两个端口跨接石英晶体及两个电容,电容一般取10uF左右。

3.2电路的设计

1.指示电路如图3-3所示

图3-3指示电路

2.数码管为共阴极,八段选端接P1口,四个位选端接P3口,如上图所示。

数码管显示电路如图3-4所示。

图3-4数码管电路

3.复位电路如图3-5所示。

图3-5复位电路

4应用程序

#include

#include

#include

voiddelay5ms(void)

{unsignedchari,j;

for(i=10;i>0;i--)

for(j=248;j>0;j--);

}

voiddelay2ms(void)

{unsignedchari,j,k;

for(i=20;i>0;i--)

for(j=20;j>0;j--)

for(k=248;k>0;k--);

}

unsignedcharcodeLEDcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

unsignedcharcodeLEDcoda[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,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,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63};

unsignedcharcount;

sbitsp1=P3^7;

voidmain(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.布线尽量使电源线和地线靠近实验电路板的周边,以起一定的屏蔽作用;4.最好分模块安装。

此外焊接时不能出现虚焊、假焊、漏焊,更不能出现过焊,因为有些器件,不能耐高温,比方焊接三极管时,电烙铁绝对不能停留太久;同时过焊铜片将脱落,给焊接带来不必要的麻烦、也将影响板子的视觉效果。

5.在焊完之后,不要忙于去调试,而应该用万用表来查其电路是否接触良好、是否与电路图的布置一致、是否有器件在焊接的过程中烧坏了等。

5.2系统试调

系统通电后,进入计数设置功能,等待信号的数据输入,当完成设置数值后,开场计数,此时如果对所记录的数据清零那么返回到设置数值界面,可以重新设置数值。

当所记录的数值等于预设定的数时,蜂鸣器发声报警。

在软件编写与调试时,我发现有很多我原来所没有注意到的问题,硬件完成焊接后,先用万用表简单的进展是否短路检测,没有问题后进展通电测试,发现上电指示灯亮,然后程序到单片机内检测是否能下载程序;刚开场的时候,我的不能下程序,我首先按照原理图检查了一遍最小系统,发现复位电路存在问题,经修改后还是不能下程序,怎么试不行,我又检查了电路和最小系统发现都没有问题,最后听同学说可能是杜邦线的问题,经过检查后发现我的四根杜邦线有两根都是坏的。

这是我所没有想到的,换了好的后,就可以程序了。

当编写完程序进展调试时,又发现存在很多的问题,首先是数码管的段码的问题,这个需要自己根据自己的电路来计算而不是统一的一样,这个问题直到我知道后才解决掉。

然后是矩阵键盘扫描的程序的调试,这个也要自己根据自己的电路接口来计算所要输送的十六进制数码,而且还要通过软件去抖动,还要判断按键是否松开等问题,这个花费的时间较长些,最后通过把按键扫描和数码管动态显示组合到一起,发现还是有问题,这个当然是软件上的问题。

实现这个功能之后,我要实现自己的计数功能和显示功能,在这个过程中,设置的数的显示和所要计的数的显示又存在问题,原因是他们会同时显示,出现重叠乱码现象,为此我请教了很多同学,最后,通过分别定义不同变量,用数组解决了这个问题。

最后经过讨论与研究终于找到了解决问题的方法。

我们花费很多时间,虽然出现了许多问题但在教师和同学的帮助下都慢慢克制。

6结论

调试方法:

首先用软件将C编译成HEX文件,翻开软件,新建一个文文件,输入C程序,保存成C格式文件,然后新建工程,连接单片机为AT89C51,选择Optionsfortarget,选择OUTPUT子菜单,在CreateHEX前打钩,子菜单中,Settings选择ProteusVSMSimulator,USE前打钩,再次运行文件,成功后在目录下会生成HEX文件,翻开Proteus软件,或直接点击DSN檔,双击单片机模板,点击文件夹式样的图标选择对应的HEX驱动文件,然后点击开场,进展调试经调试运行根本成功,不过也有小小的缺乏之处。

经过查找错误,已经调试成功。

完成以STC89C52为核心的计数器的设计和制作,并能实现计数显示和设置功能。

7心得体会

经过两一的努力,我终于完成关于多功能定时计数器的控制的单片机课程设计,通过两周不断的查资料让我积累了许多实际操作经历,已初步掌握了单片机的应用技术,以及电路的知识和有关器件的应用,我深刻体会到了单片机技术对当今现代社会的重要作用。

经过这次设计,我学会了许多东西,学会了严密的思考,设想及怎样把方案付诸于实际行动之中。

同时与社会的不断高速开展的步伐相比,我认识到自己所学的知识和技能还远远缺乏,有些实际性的问题还不能够解决,缺少很多有实际运用价值的知识储藏,缺乏应有的动手解决实际问题的能力,缺乏高效利用及筛选大量资料的能力,缺乏资源共享及应有的团队合作精神,有待进一步提高,我应当学好自己的专业知识以适应不断开展的社会。

在这次课程设计中,我学会了如何有效的利用网络资源及图书馆的藏书,找到了几个很不错的专业网站,通过这次课程设计,加强了我动手、思考和解决问题的能力.但是控制器控制信号灯不好。

虽然花了很多的时间,但学到了很多东西。

做课程设计的时候,自己把整个书本都看了几遍,增强了自己对知识的理解,很多以前不是很懂的问题现在都已经一一解决了。

在课程设计的过程中,我想了很多种方案,对同一个问题都想了很多种不同的接法,运用不同的芯片进展了比拟,最后还是采取了上面的方法进展连接。

为以后的查阅专业方面的信息和相互之间的交流打下了坚实的根底,学会了如何看电路图,识别电路图,提高了自己的专业技能,同时也培养了自己独立解决实际问题的能力,也培养了自己认真和严谨的科学态度,收到了很大的启发,为以后的工作积累了些珍贵的经历。

本课设过程中一开场就出现数码管的焊接错误,其实在焊接前就问同学数码管的管脚是从哪开场数。

但在线路的布置时,却不知而然的顺时针数,后来发现要重新把数码管的焊点吸出,重新焊接,所以觉得麻烦,而且浪费时间和影响美观等,接着想到把数码管引脚倒过来插。

所以今后做如此的焊接实验时必须更仔细点。

在数码管这一块,以为直接焊上去就可以到达灯亮和基数的效果,结果没到达理想效果,通过网上查阅才明白怎么样焊接。

在最后过程中,教师提出应该用不同的数码管,接不通的电路;同时教师在检查时提到原理问题时,其实在做之前是看过、查阅过的,只不过因为当时头脑一热,只有几个词语,所以一言不语,当时也不明白数码管的具体构造组成以及其目的等〔认为这是在实验报告中要完成的任务〕,所以在今后还是要做好充分的准备工作,做到细心、慎重、负责。

通过实验意识到要从现在开场养成那种细心的好习惯。

还有由于知识的局限性,对一些深层次的问题还是有所欠缺。

这对以后的课程设计、毕业设计甚至是今后工作上都非常有帮助。

再者通过这次实习锻炼了自己的动手及查资料的能力,也体会到了成功带来了的喜悦和自己的缺乏之处,可以说是受益匪浅。

参考文献

[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:

元器件清单

序号

名称

型号规格

数量

1

单片机

AT89C2052

1

2

发光二极管

--

7

3

电阻

100

8

4

电阻

10k

1

5

晶振

12M

1

6

电容

22pf

2

7

电容

10uf

1

8

轻触开关

--

2

9

开关

--

1

10

拍阻

--

2

11

数码管

共阴极

2

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2