单片机课设陈思副本.docx

上传人:b****3 文档编号:10266552 上传时间:2023-05-24 格式:DOCX 页数:23 大小:189.98KB
下载 相关 举报
单片机课设陈思副本.docx_第1页
第1页 / 共23页
单片机课设陈思副本.docx_第2页
第2页 / 共23页
单片机课设陈思副本.docx_第3页
第3页 / 共23页
单片机课设陈思副本.docx_第4页
第4页 / 共23页
单片机课设陈思副本.docx_第5页
第5页 / 共23页
单片机课设陈思副本.docx_第6页
第6页 / 共23页
单片机课设陈思副本.docx_第7页
第7页 / 共23页
单片机课设陈思副本.docx_第8页
第8页 / 共23页
单片机课设陈思副本.docx_第9页
第9页 / 共23页
单片机课设陈思副本.docx_第10页
第10页 / 共23页
单片机课设陈思副本.docx_第11页
第11页 / 共23页
单片机课设陈思副本.docx_第12页
第12页 / 共23页
单片机课设陈思副本.docx_第13页
第13页 / 共23页
单片机课设陈思副本.docx_第14页
第14页 / 共23页
单片机课设陈思副本.docx_第15页
第15页 / 共23页
单片机课设陈思副本.docx_第16页
第16页 / 共23页
单片机课设陈思副本.docx_第17页
第17页 / 共23页
单片机课设陈思副本.docx_第18页
第18页 / 共23页
单片机课设陈思副本.docx_第19页
第19页 / 共23页
单片机课设陈思副本.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机课设陈思副本.docx

《单片机课设陈思副本.docx》由会员分享,可在线阅读,更多相关《单片机课设陈思副本.docx(23页珍藏版)》请在冰点文库上搜索。

单片机课设陈思副本.docx

单片机课设陈思副本

摘要

单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。

单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。

由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。

这次毕业设计通过对它的学习、应用,以AT89C51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由5V直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能力。

本文讨论了单片机技术的构思、设计方案、工作原理,主要组成部分包括:

键盘输入模块、单片机运算控制模块、显示模块。

该电子时钟由80C51,按键,六段数码管等构成,采用晶振电路作为驱动电路,配合复位电路。

由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。

设置的四个控制键能满足电子表的基本设置要求。

 

关键词:

单片机;电子时钟;键盘控制

 

《单片机原理及应用》课程设计说明书

《单片机原理及应用》课程设计任务书

设计时间

11月14号——11月25号

设计题目

电子时钟

设计任务

完成给定设计条件下的系统设计,绘制相应硬件电路图和软件程序流程,编写软件程序,编写设计说明书。

设计要求

1.设计硬件电路图一张(A2),软件程序流程图一张(A2)。

2.设计说明书一份。

3.要求图面整洁,说明书书写工整、规范。

进度计划

时间(周.星期)

设计内容

1.1

布置设计任务,系统总体设计,

1.2—1.3

硬件系统设计

1.4—1.5

软件系统设计

2.1—2.2

绘制硬件电路图软件程序框图

2.3—2.4

编写设计说明书,准备答辩

2.5

答辩

成绩评定办法(评定考核项目、考核标准、所占比重)

按答疑(10%)、方案设计(图纸+程序设计+说明书)(60%)、

答辩(30%)给定设计成绩。

成绩分五档:

优、良、中、及格、不及格。

参考资料

(1)《单片机初级教程》,何立民,北京航空航天大学出版社,北京:

2004

(2)《单片机原理及接口技术》,余锡存等,西安电子科技大学出版社,西安:

2000

(3)《51系列单片机及C51程序设计》,王建校等,科学出版社,北京:

2002

(4)《单片机课程设计实例指导[M]》,李光才,北京航空航天大学出版社2004.

指导教师(签字)

年月日

2.1总体系统设计-------------------------------------3

2.1.1数码管显示方案----------------------------------3

2.1.2系统显示说明------------------------------------3

2.1.3系统结构框图------------------------------------4

2.2硬件系统设计-------------------------------------4

2.2.1AT89C51单片机芯片------------------------------4

2.2.2晶体振荡电路------------------------------------5

2.2.3复位电路----------------------------------------6

2.2.5数码管显示电路----------------------------------6

2.2.6按键控制电路------------------------------------7

2.2.7硬件原理图--------------------------------------8

2.3软件系统设计--------------------------------------9

2.3.1软件设计说明------------------------------------9

2.3.2主程序流程图------------------------------------10

2.3.3显示子程序流程图--------------------------------10

2.3.4TO中断计时流程图-------------------------------11

2.3.5按键调节流程图---------------------------------11

第三章结论-------------------------------------------------12

附录1参考文献----------------------------------------------13

2总设计图----------------------------------------------14

3软件程序----------------------------------------------15

第一章绪论

近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。

单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。

从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。

因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。

怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?

这就要求人们不断设计出新型时钟。

现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。

时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。

在一个单片机应用系统中,时钟有两方面的含义:

一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:

一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:

DS1302,DS12887,X1203等都可以满足高精度的要求。

本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机AT89C51芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机电子时钟。

 

第二章系统设计

2.1总体系统设计

2.1.1数码管显示方案

方案一:

静态显示。

所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。

该方式每一位都需要一个8位输出口控制。

静态显示时较小的电流能获得较高的亮度,且字符不闪烁。

但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。

方案二:

动态显示。

所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。

利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。

显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。

调整参数可以实现较高稳定度的显示。

动态显示节省了I/O口,降低了能耗。

从节省I/O口和降低能耗出发,本设计采用方案二。

2.1.2系统说明

利用单片机(AT89C51)制作简易电子时钟,由六个LED数码管分别显示小时十位、小时个位、分钟十位、分钟个位、秒钟十位、秒钟个位。

6个PNP管(9012)分别控制六个数码管的亮灭;四个按键用于时间调整:

K0功能多样,按一次实现秒调节,两次实现分调节,三次实现时调节,四次实现取消返回;K1、K2为对应时分秒的加、减;K3实现确定储存功能。

 

2.1.3系统结构框图

2.2硬件系统设计

系统的硬件主要包括单片机芯片,晶体振荡电路,复位电路,数码管显示,按键开关电路。

2.2.1AT89C51单片机芯片

AT89C51外形与引脚排列

引脚说明:

1)XTAL1/XTAL2:

接外部晶振,频率为0~33HZ。

2)PSEN:

拓展ROM时起作用(基本不用)。

3)ALE:

地址锁存允许输出/编程脉冲输入端。

4)EA:

内、外程序存储器/编程电源输入端。

现采用片内闪存作为程序存储器,直接与相连。

主要特性:

A、与MCS-51兼容

B、4K字节可编程Flash存储器

C、寿命:

1000写/擦循环

D、数据保留时间:

10年

E、全静态工作:

0Hz-24Hz

F、三级程序存储器锁定

G、128*8位内部RAM

H、32可编程I/O线

I、两个16位定时器/计数器

J、5个中断源

K、可编程串行通道

L、低功耗的闲置和掉电模式

M、片内振荡器和时钟电路

2.2.2晶体振荡电路

a.晶体振荡电路的作用用来稳定频率和选择频率,是一种可以以取代LC谐振电路的晶体谐振元件。

b.石英晶体振荡器有并联型晶体振荡器和串联型晶体振荡器两类。

并联型晶体振荡器中,石英晶体以并联谐振的形式出现,起电感作用。

串联型晶体振荡器中,石英晶体以串联谐振的形式出现,起电阻作用。

c.本设计所用的晶体振荡电路为12MHZ如图所示:

晶体振荡电路

2.2.3复位电路

a.复位电路的用途:

当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮,内部的程序自动从头开始。

b.复位电路的主要功能:

1.必须保证系统可靠的进行复位。

2.必须具有一定的抗干扰能力。

下为按键复位电路。

该电路除具有上电复位功能外,若要复位,只需按图中的RESET键,此时电源VCC经电阻R1、R2分压,在RESET端产生复位高电平。

与单片机相连的复位电路

2.2.4数码管显示电路

数码管的引脚图,每位的段码线(a,b,c,d,e,f,g,dp)分别与1个8位的锁存器输出相连,由AT89S51控制组合0-9十个数据,如令其显示1则b,c引脚(即2,3引脚)送高电平,此时数码管显示1。

由于各位的段码线并联,8位I/O口输出段码对各个显示位来说都是相同的。

P0.0~P0.7段选口

键码

0

1

2

3

4

5

6

7

8

9

=

字型码

3FH

06H

5BH

4FH

66H

6DH

7DH

D7H

7FH

6FH

48H

P2.0~P2.5位选口

表为共阴极LED显示字型码表:

2.2.5按键控制电路

四个按键用或门连接到外部中断INT0上,同时又相互独立,使两个显示子程序能得到很好地协调。

2.2.6硬件原理图

包括AT89C51附属电路——复位电路与晶振电路;数码管显示电路片选接P2,段选接P3;四个按键接P1口,用或门接于INT0。

2.3软件系统设计

2.3.1软件设计说明

使用单片机中的定时器中断,定时50ms,设定一计数单元53H为20,当53H减为0时(50×20=1000)时秒值加一,当秒值为60时,分值加一秒值清零。

分值为60时时值加一分值清零时值为24时时分秒全部清零。

为了使程序运行的更顺畅,按键是否按下用外部中断来判断,进入中断后再具体判断到底是哪个键,四个按键中:

K0按一次实现秒调节,两次实现分调节,三次实现时调节,四次实现取消返回;K1、K2为对应时分秒的加、减;K3实现确定储存功能为对应时分秒的加、减;K3实现确定储存功能。

2.3.2主程序流程图

2.3.3显示程序流程图

 

2.3.4T0计时中断流程图

(1)

\

图1图

(2)

 

2.3.5按键中断服务流程图

(2)

 

第三章课程设计总结

在设计过程中遇到了很多问题,值得探讨和今后更深的研究。

首先,对单片机知识的掌握还不够熟练,对于一些编程和芯片结构的问题不得不上网、查阅资料获取相关信息,这也是以后需要着重注意的地方。

第二,即使简化了这次设计的内容还是有一些难度,比如两种显示的交替,FLASH2的显示只希望在K0键按下后才起作用,一开始是在主程序中加一个判断,考虑到系统不能在每次扫描中都进行判断,这样十分不合理,因此利用中断,让FLASH2只在中断中起作用。

第三,为了使系统运行更顺畅,使主程序只负责初始化与显示时间,时分秒的自加一以及是否有按键按下都采用中断,并且让时分秒的自加一优先;第四,自己编写的程序并没有经过调试,不合理的成分应该会很多,比如子程序的名称、程序的标号,程序的地址,并且这次用到两个中断但是虽然用到中断保护但是难免会有考虑不周的地方,还需进一步完善。

 

附录

1参考文献

1、周坚。

单片机C语言轻松入门北京航空航天大学出版社

2、公茂法单片机人机接口实例北京航空航天大学出版社

3、杨欣等.电子设计从零开始[M].清华大学出版社.2005-10

4、谢嘉奎.电子线路[M].高等教育出版社.2003-2

5、夏路易,石宗义.电路原理图与电路设计教程Protel99SE[M].北京希望电子出版社.2002

6、王毓银.数字电路逻辑设计[M].高等教育出版社.2004-2

7、邱关源.电路[M].高等教育出版社

 

2总设计图

 

3软件程序

主程序

ORG0000H

LJMP0100H

ORG0100H

MOVTH0,#3CH

MOVTL0,#0B0H

MOVTH1,#06H

MOVTL1,#06H

MOV50H,#14H;初始化

MOV51H,#06H

MOV52H,#28H

MOVR0,#00H

MOVR2,#01H

MOVR3,#03H

MOVR4,#06H

SETBEA

SETBEX0

SETBET0;开定时器T0、外部INT0中断,并且T0优先

SETBIT0

SETBTR0

SETBPT0

L0:

LCALLFLASH1;显示时间

SJMPL0

T0中断子程序,实现时钟运转

ORG000BH

LJMP0060H

ORG0060H

PUSHACC

PUSHPSW

MOVTH0,#3CH

MOVTL0,#0B0H

DJNZ50H,LE

MOV50H,#14H

INCR2

CJNER2,#3CH,LE

INCR3

MOVR2,#00H

CJNER3,#3CH,LE

INCR4

MOVR3,#00H

CJNER4,#18H,LE

MOVR4,#00H

LE:

POPACC

POPPSW

NOP

RETI

显示子程序1,服务于正常显示

FLASH1:

MOVA,R2

MOVB,#0AH

DIVAB

MOV61H,A

MOVA,B

MOV60H,A

MOVA,R3

MOVB,#0AH;拆分十位与个位

DIVAB

MOV63H,A

MOVA,B

MOV62H,A

MOVA,R4

MOVB,#0AH

DIVAB

MOV65H,A

MOVA,B

MOV64H,A

MOVR1,#60H

MOVA,#FEH

L4:

MOVP2,A

MOVA,@R1

MOVDPTR,#TAB

MOVCA,@A+DPTR;送段选与位选

MOVP0,A

LCALLDELY10ms

INCR1

MOVA,P2

RLA

JBACC.6,L4

RET

显示子程序2,服务于调节时钟时的显示

FLASH2:

MOVA,R5

MOVB,#0AH

DIVAB

MOV67H,A

MOVA,B

MOV66H,A

MOVA,R6

MOVB,#0AH

DIVAB

MOV69H,A

MOVA,B

MOV68H,A

MOVA,R7

MOVB,#0AH

DIVAB

MOV6BH,A

MOVA,B

MOV6AH,A

MOVR1,#66H

MOVA,#FEH

L7:

MOVP2,A

MOVA,@R1

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP0,A

LCALLDELY10ms

INCR1

MOVA,P2

RLA

JBACC.6,L7

RET

DELY10ms:

SETBTR1

L6:

JBCTF1,L5

SJMPL6

L5:

DJNZ52H,L6

CLRTR1

RET

按键中断子程序

0RG0003H

PUSHACC

PUSHPSW

KEY:

JNBP1.0,K0

L1:

JNBP1.1,K1

L2:

JNBP1.2,K2;判断哪一个按键按下

L3:

JNBP1.3,K3

CJNER0,#00H,L16

SJMPNE

L16:

LCALLFLASH2

SJMPKEY

NE:

POPACC

POPPSW

NOP

RETI

K0功能程序段

K0:

LCALLDELY10ms;确定按键真的按下

JBP1.0,L1

MOVR5,R2

MOVR6,R3;将显示1的时分秒数值送入显示2的寄存器中

MOVR7,R4

L8:

LCALLFLASH2

JNBP1.0,L8

INCR0;标志寄存器值加一

CJNER0,#04H,KEY

MOVR0,#00H

SJMPNE;按四次则返回

K1:

LCALLDELY10ms

JBP1.1,L2

CJNER0,#01H,L10

MOVR5,#00H

SJMPKEY

L9:

LCALLFLASH2

JNBP1.1,L9

CJNER0,#01H,L10

MOVR5,#00H;K1功能程序段,实现对应位加一

SJMPKEY

L10:

CJNER0,#02H,L11

INCR6

CJNER6,#60H,KEY

MOVR6,#00H

SJMPKEY

L11:

CJNER0,#03H,KEY

INCR7

CJNER7,#24,KEY

MOVR7,#00H

SJMPKEY

K2:

LCALLDELE10ms

JBP1.2,L3

CJMER0,#00H,L12

SJMPNE

L12:

LCALLFLASH2

JNBP1.2,L13

MOVR5,#00H;K2功能程序段,实现对应位减一

SJMPKEY

L13:

CJNER0,#02H,L14

DECR6

CJNER6,#0FFA,KEY

MOVR6,#59

SJMPKEY

L14:

CJNER0,#03H,KEY

DECR7

CJNER7,#0FFH,KEY

MOVR7,#23

SJMPKEY

K3:

LCALLDELY10ms

JBP1.3,KEY

CJNER0,#00H,L15

SJMPNE;K3功能程序段实现储存所调数值

L15:

LCALLFLASH2

JNBP1.2,L15

MOVR0,#00H

MOVR4,R7

MOVR3,R6;将FLASH2寄存器中数放入FLASH1寄存器中

MOVR2,R5

SJMPNE

TAB:

DB3FH,06H,5BH,4FH,66H,6DH,7DH

DB07H,7FH,6FH

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

当前位置:首页 > 自然科学 > 物理

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

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