单片机课程设计 0059 秒计时器.docx
- 文档编号:9168964
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:22
- 大小:995.40KB
单片机课程设计 0059 秒计时器.docx
《单片机课程设计 0059 秒计时器.docx》由会员分享,可在线阅读,更多相关《单片机课程设计 0059 秒计时器.docx(22页珍藏版)》请在冰豆网上搜索。
单片机课程设计0059秒计时器
目录
摘要1
引言2
第一章概述3
第二章电路设计4
2.1单片机核心模块4
2.2时钟模块5
2.3复位电路模块5
2.4显示模块6
第三章软件程序及调试结果7
3.1程序设计内容7
3.2程序框图8
3.3汇编源程序8
3.3C语言源程序9
3.4调试结果11
第四章联合仿真12
4.0联合仿真结果12
第五章电路板制作14
5.1印制电路板图14
5.200-59秒计时器电路板三维视图15
第六章设计总结17
参考文献18
附件19
摘要
单片微型计算机简称单片机,是典型的嵌入式微控制器(MicrocontrollerUnit),常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
它最早是被用在工业控制领域。
由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。
现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。
手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。
汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!
单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。
该课程设计为00-59秒计时器的设计。
以AT89C51单片机为核心,配合两个LED显示灯完成。
电路图原理参考课程要求,并在原来要求的基础上在P0口加多了一个排阻RESPACK-8来驱动LED实现P0口和P2口同时点亮两个LED灯。
该设计从00开始计时直到59,然后从新回到00重复计时。
程序设计采用汇编语言编程,利用Keil完成程序的检查和编译。
电路图的制作则运用了Proteus,并利用Keil编译的文件进行模拟仿真。
根据仿真结果再次检查程序的正确性。
关键词:
AT89C51单片机、LED显示灯、Keil、程序编译、Protus、模拟仿真
引言
单片机作为微型计算机的一个重要分支,在现代社会的生产和生活中正发挥着越来越重要的作用。
单片机技术已经成为实现各种工作测控系统和只能仪器仪表的重要手段。
因此,单片机原理与应用技术已经成为高等学校电类、机电类各专业的必修课程。
现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。
手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。
汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作,单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。
微机原理课程设计以AT89C51为例子,深入研究单片机的电路图设计、程序编写、电路板制作等。
第一章概述
1.1课程设计主要目的
学习单片机开发时的编程及仿真调试,通过仿真软件及相应程序的联机调试,实现单片机设计的硬件、软件、接口、工具四大板块有机结合。
1.2实验任务
如下图所示,在AT89S51单片机的P0和P2端口分别接有两个共阴数码管,P0口驱动显示秒时间的十位,而P2口驱动显示秒时间的个位。
1.3电路原理图
图1.3电路原理图
1.4功能说明
在设计过程中我们用一个存储单元作为秒计数单元,当一秒钟到来时,就
让秒计数单元加1,当秒计数达到60时,就自动返回到0,重新秒计数。
在数码上显示,仍通过查表的方式完成。
一秒时间的产生在这里我们采用软件精确延时的方法来完成,经过精确计算得到1秒时间为1.002秒。
第二章电路设计
单元电路设计
本设计主要分为单片机核心模块,时钟电路模块,复位电路模块和显示模块。
设计方案如下
2.1单片机核心模块
图2.1单片机电路
系统板上硬件连线
(1.把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到
“四路静态数码显示模块”区域中的任一个a-h端口上;要求:
P0.0/AD0
对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。
(2.把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四
路静态数码显示模块”区域中的任一个a-h端口上;要求:
P2.0/A8对
应着a,P2.1/A9对应着b,……,P2.7/A15对应着h。
2.2时钟模块
图2.2时钟电路
89C51单片机的时钟信号通常用内部振荡方法得到,在引脚XTAL1和XTAL2外接晶体振荡器或陶瓷谐振器,就构成了内部振荡方法。
由于单片机内部有一个高增益反相放大器,当外接晶振后就构成了自激振荡器并产生振荡时钟脉冲。
晶振通常选择6MHz、12MHz\24MHz。
本设计采用11.0925MHz晶振。
图中C1、C2起到稳固振荡频率、快速起振的作用。
电容值一般为5—30pF。
本设计选用30pF电容。
2.3复位电路模块
图2.3复位电路
复位操作完成电路的初始化,使单片机从一种确定的状态开始运行。
由上图可知,控制模块实际上就是单片机的最小系统。
本设计采用常用的上电且开关复位电路。
上电后,由于电容的充电,使RST持续一段高电平时间。
当单片机已运行中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。
此处C1电容取10uF,R1=10KΩ。
2.4显示模块
图2.4显示电路
在AT89S51单片机的P0和P2端口分别接有两个共阴数码管U2、U3,P0口驱动显示秒时间的十位,而P2口驱动显示秒时间的个位。
显示模块由十脚数码管、电阻、排阻respack-8等元件构成,其中排阻为了驱动电流,增加电流,排阻一般有九个脚,一个脚接VCC,其他脚接单片机I/0口,此设计为了U2提供高电平,从而十位才能显示。
第三章软件程序及调试结果
3.1程序设计内容
(1.在设计过程中我们用一个存储单元作为秒计数单元,当一秒钟到来时,就
让秒计数单元加1,当秒计数达到60时,就自动返回到0,重新秒计数。
(2.对于秒计数单元中的数据要把它十位数和个数分开,方法仍采用对10整
除和对10求余。
(3.在数码上显示,仍通过查表的方式完成。
(4.一秒时间的产生在这里我们采用软件精确延时的方法来完成,经过精确计
算得到1秒时间为1.002秒。
DELY1S:
MOVR5,#100
D2:
MOVR6,#20
D1:
MOVR7,#248
DJNZR7,$
DJNZR6,D1
DJNZR5,D2
RET
3.2程序框图
图3.2程序框图
3.3汇编源程序
SecondEQU30H
ORG0
START:
MOVSecond,#00H
NEXT:
MOVA,Second
MOVB,#10
DIVAB
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVP0,A
MOVA,B
MOVCA,@A+DPTR
MOVP2,A
LCALLDELY1S
INCSecond
MOVA,Second
CJNEA,#60,NEXT
LJMPSTART
DELY1S:
MOVR5,#100
D2:
MOVR6,#20
D1:
MOVR7,#248
DJNZR7,$
DJNZR6,D1
DJNZR5,D2
RET
TABLE:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
3.3C语言源程序
#include
unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
unsignedcharSecond;
voiddelay1s(void)
{
unsignedchari,j,k;
for(k=100;k>0;k--)
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}
voidmain(void)
{
39
Second=0;
P0=table[Second/10];
P2=table[Second%10];
while
(1)
{
delay1s();
Second++;
if(Second==60)
{
Second=0;
}
P0=table[Second/10];
P2=table[Second%10];
}
}
3.4调试结果
图3.4调试结果
调试结果如上图所示。
第四章联合仿真
4.0联合仿真结果
图4.0.1开始运行(0S)
图4.0.2运行中(1S)
图4.0.3运行中(59S)
图4.0.4运行结束,仿真结束,显示变为“00”(60S)
第五章电路板制作
5.1印制电路板图
图5.100-59秒计时器印制电路板
5.200-59秒计时器电路板三维视图
图5.200-59秒计时器印制电路板三维视图
图5.300-59秒计时器印制电路板三维视图(背面)
第六章设计总结
通过此次的课程设计,我们不仅更加了解单片机在实际应用的具体例子,懂得单片机在实际应用中各种参数的设定,实际生产的电路设计和改良优化,还懂得了做设计不能眼高手低,一下看起来很简单甚至是不起眼的要求,在自己的脑海中觉得很简单没难度,但实际动手起来感觉是完全不一样的。
就像这次的秒表设计只是微机原理中一个很简单的例子,原理并不复杂,但是我们在实际操作中还是出了些错误,后来经过仔细的排查,逐步分析程序找到了问题。
从这就提醒了我们无论是何种设计都要谨小慎微,不能想当然,一个小小的错误再简单的设计再简单的工程都会毁于一旦,这就要求我们要有严谨的科学态度去面对每次的设计和工程。
课堂上学的理论知识在这次课程设计终于有了用武之地,在动手操作中得到了不一样的升华,让我们不再错误地认为理论知识和实际生产的距离很遥远,实际上二者关系是紧密相连的,纠正了错误的思想让我们在设计中如虎添翼。
这次设计让我们巩固了平时学习的专业知识,拓宽了视野和思路,还学会将理论和实际生产有机地结合,举一反三,增强了我们提出问题,面对问题和解决问题的能力。
我们自己看教程自己摸索,掌握了Proteus和Keil这两款软件的使用,并能纯熟的使用于这次任务中。
我们一起讨论、一起测试,合作无间地完成了这次任务。
在这次设计,我们加深了对理论知识的理解,掌握了汇编语言的应用和软件的使用,了解程序每个模块的作用和原理,制版的原则和布线的思路,程序的排障调试和错误的排查,学会和队友沟通交流,共同面对、解决问题,了解自身的不足和思想的局限性并加以改正,获益匪浅,这不仅增加了我们自身的实力,还激发了我们的兴趣,为我们未来的设计打下了坚实的基础。
参考文献
1.李全利仲伟峰徐军编著,单片机原理及应用,清华大学出版社,2006.2
2.姚超友,陈东青,李秋平,谭兆湛编著,光机电一体化强化训练实训教材(单片机篇),华南理工大学广州学院,2012.9
3.Protues教程,
4.ProtuesPCB制板,
5.PCB板制作,
6.谭浩强编著,C程序设计(第四版),北京,清华大学出版社,2010.6
7.刘娟等编著,单片机C语言与PROTUES仿真技能实训,中国电力出版社,2010.8
8.高玉泉编著,单片机应用技术(汇编语言),机械工业出版社,2012.8
9.邹久朋编著,80C51单片机实用技术,北京航空航天大学出版社,2008.4
10.(美)克尼汉(美)里奇编著著,徐宝文李志译,C程序设计语言第2版·新版,机械工业出版社,2004.1
11.王爽编著,汇编语言(第2版),清华大学出版社,2008.4
附件一源程序
ORG0
START:
MOVSecond,#00H
NEXT:
MOVA,Second
MOVB,#10
DIVAB
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVP0,A
MOVA,B
MOVCA,@A+DPTR
MOVP2,A
LCALLDELY1S
INCSecond
MOVA,Second
CJNEA,#60,NEXT
LJMPSTART
DELY1S:
MOVR5,#100
D2:
MOVR6,#20
D1:
MOVR7,#248
DJNZR7,$
DJNZR6,D1
DJNZR5,D2
RET
TABLE:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
附件二电路图
附件三PCB制板
附件四三维视图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机课程设计 0059 秒计时器 单片机 课程设计 计时器