单片机课程设计.docx
- 文档编号:26557520
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:24
- 大小:809.55KB
单片机课程设计.docx
《单片机课程设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计.docx(24页珍藏版)》请在冰豆网上搜索。
单片机课程设计
课程设计任务书
题目单片机课程设计
多功能数字万年历
系(部)
专业
班级
学生姓名
学号
12月02日至12月06日共1周
指导教师(签字)
系主任(签字)
2013年12月06日
一、设计内容及要求
基本内容:
以80C51单片机为核心,设计,编程,仿真,调试一个具有显示时间(时、分、月、日、星期),并可以通过按键输入调整的万年历时钟。
扩展内容:
闰年月、温度显示、时间掉电保留等等其他内容。
要求:
在仿真软件keil—Protues环境中可以正常输入调试及显示运行。
二、设计原始资料
教材、元器件数据手册、网上相关资料。
三、设计完成后提交的文件和图表
文字部分:
一、设计思路、程序清单(可打印)、安装调试体会、经验、问题,总结。
二、操作使用方法。
图纸部分:
设计原理图、电路图、程序流程图,仿真调试过程抓图、正常工作图片。
仿真环境下的可运行电子文档。
以及上述文档的电子稿。
电子文档:
上述内容的电子稿。
四、进程安排
布置任务,1小时
查找资料、熟悉相关电原理图,交流设计思路一天
设计、分析电原理图。
一天
仿真、调试电路二天
调试程序、写报告。
一天
四、主要参考资料
单片机、数字电子技术、模拟电子技术教材及元器件手册
各类网络资源
成绩评定表
口试(答辩)成绩
报告成绩
总评成绩
单片机课程设计
多功能数字万年历
班级:
姓名:
学号:
指导教师:
摘要
本设计是基于51系列的单片机进行的电子万年历设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。
在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。
在硬件与软件设计时,没有良好的基础知识和实践经验会受到很大限制,每项功能实现时需要那种硬件,程序该如何编写,算法如何实现等,没有一定的基础就不可能很好的实现。
在编写程序过程中发现以现有的相关知识要独自完成编写任务困难重重,在老师和同学的帮助下才完成了程序部分的编写。
关键词:
时钟电钟;单片机;AT89C51;万年历
Abstract
Thisdesignisbasedonthedesignofelectroniccalendar51seriesMCUcandisplayYYMMDDHHMMSSandweeklyinformation,withadjustabledateandtimefunctions.Inthedesign,whilethetheoreticalbasisforthemicrocontrollerandperipheralexpansionofknowledgemorecomprehensivepreparation.Hardwareandsoftwaredesign,withoutgoodfoundationofknowledgeandpracticalexperiencewillbegreatlyrestricted,eachfunctionrequiresthekindofhardwareimplementation,theprogramhowtowrite,howtoimplementthealgorithmsoitisimpossiblewithoutsomegoodfoundationimplementation.Foundintheprogrammingprocesswithexistingknowledgetocompletethedifficulttaskofwritingalone,withthehelpofteachersandstudentstocompletethepreparationofthenextpartoftheprogram.
Keyword:
Clockelectricclock;SCM;AT89C51;calenda
目录
一、课程设计题目1
二、内容要求1
三、目的和意义1
四、总体方案设计思路1
五、仿真电路设计2
5.1AT89C51的芯片概述2
5.2管脚说明3
5.3电路设计4
5.3.1数码管日历显示电路4
5.3.274HC238片选电路:
5
5.3.3AT89C51单片机控制电路6
5.3.4硬件电路的总体框图6
六、软件设计8
6.1主程序流程图8
七、软件程序9
八、仿真调试13
九、ProteusISIS简介14
十、实际目标时情况15
十一、课程设计心得体会15
十二、参考文件16
一、课程设计题目
以80C51单片机为核心,设计,编程,仿真,调试一个具有显示时间(时、分、月、日、星期),并可以通过按键输入调整的万年历时钟。
扩展内容:
闰年月、温度显示、时间掉电保留等等其他内容。
二、内容要求
1. 具有年、月、日、星期、时、分、秒等功能; 2. 时间与阴、阳历能够自动关联; 3. 具有温度计功能; 4. 具备年、月、日、星期、时、分、秒校准功能
5.在仿真软件keil—Protues环境中可以正常输入调试及显示运行。
三、目的和意义
1、进行一次实际开发的实验,提高用户实际开发的能力。
2、全面利用所学的电子技术方面的知识,进行这次综合的运用,同时深入了解汇编语言在单片机上的运用。
3、综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。
4、通过本次课程设计加深对单片机掌握定时器、外部中断的设置和编程原理的全面认识复习和掌握,对单片机实际的应用作进一步的了解。
5、通过本次试验,增强自己的动手能力。
认识单片机在日常生活中的应用的广泛性,实用性。
四、总体方案设计思路
本实验利用单片机的定时器/计数器定时和记数的原理,通过采用proteus仿真软件来模拟实现。
模拟利用AT89C51单片机、LED数码管以及控件来显示日期的变更。
选用电子万年历芯片时,应重点考虑功能实在、使用方便、单片存储、低功耗、抗断电的器件。
根据选用的电子万年历芯片设计外围电路和单片机的接口电路。
在硬件设计时,结构要尽量简单实用、易于实现,使系统电路尽量简单。
根据设计的硬件电路,编写控制89C51芯片的单片机程序。
通过编程、编译、调试,并实现本设计的功能。
在硬件电路和软件程序设计时,主要考虑提高人机界面的友好性,方便用户操作等因素。
软件设计时必须要有完善的思路,要做到程序简单,调试方便。
单片机电子万年历的制作有多种方法,可供选择的器件和运用的技术也有很多种。
所以,系统的总体设计方案应在满足系统功能的前提下,充分考虑系统使用的环境,所选的结构要简单使用、易于实现,器件的选用着眼于合适的参数、稳定的性能、较低的功耗以及低廉的成本。
系统的功能往往决定了系统采用的结构,经过成本,性能,功耗等多方面的考虑决定用9个8进制74HC573外接8位数码管显示日期变化,74HC238作为译码器决定某个74HC573工作。
芯片采用89C51。
从而实现电子万年历的功能。
五、仿真电路设计
5.1AT89C51的芯片概述
AT89C51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序内存,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
其工作电压在4.5-5V,一般我们选用+5V电压。
外形及引脚排列如图2所示
图1:
89C51的核心电路框图
5.2管脚说明
(1)电源及时钟引脚(4个)
Vcc:
电源接入引脚
Vss:
接地引脚
XTAL1:
晶振震荡器接入的一个引脚(采用外部振荡器时,此引脚接地);
XTAL2:
晶体振荡器的另一个引脚(采用外部振荡器时,此引脚作为外部振荡器信号的输入端)。
(2)控制线引脚(4个)
RST/Vpd:
复位信号输入引脚/备用电源输入引脚;
ALE:
地址锁存允许信号输出引脚/编程脉冲输入引脚:
EA:
内外内存选择引脚/片外EPROM编程电压输入引脚;
PSEN:
外部程序内存选通信号输出引脚。
(3)并行I/O引脚
P0.0-P0.7:
一般I/O口引脚或数据/低位地址总线复用引脚;
P1.0-P1.7:
一般I/O口引脚;
P2.0-P2.7:
一般I/O口引脚或高位位址总线引脚;
P3.0-P3.7:
一般I/O口引脚或第二功能引脚
5.3电路设计
5.3.1数码管日历显示电路
图1
元件参数:
1、74HC573
74HC573包含八进制3态非反转透明锁存器,是一种高性能硅门CMOS器件。
74HC573跟LS/AL573的管脚一样。
器件的输入是和标准CMOS输出兼容的,加上拉电阻他们能和LS/ALSTTL输出兼容。
74HC573管脚:
1脚三态允许控制端低电平有效,1D~8D为数据输入端,1Q~8Q为数据输出端。
74HC573引脚图
74HC573引脚图
74HC573内部原理图
2、数码管
我选用的是7SEG-MPX1-CA型号的数码管,共阳,如图5所示:
图57SEG-MPX1-CA数码管
总共有九个引脚,远离八个引脚的一个可以接地,可以接上拉电阻后接地,若把单独的引脚放在右边,从左往右数,依次对应a,b,c,d,e,f,g(小数点)
5.3.274HC238片选电路:
74HC238连接锁存器74HC573选择控制某一个数码管显示。
74HC238片选电路图
元件参数:
74HC238译码器,74HC238也是3-8译码器,输出高电平选中。
74HC238引脚图
74HC238引脚连接说明
5.3.3AT89C51单片机控制电路
5.3.4硬件电路的总体框图
六、软件设计
6.1主程序流程图
七、软件程序
;定义变量
KEQU30H;T0定时计数
MEREQU31H;月计数
REREQU32H;日计数
SEREQU33H;时计数
FEREQU34H;分计数
XQREQU35H;星期计数
MMREQU36H;秒计数
DA1EQU40H;9个显示单元的显示段码
DA2EQU41H;第二个
DA3EQU42H;
DA4EQU43H;
DA5EQU44H;
DA6EQU45H;
DA7EQU46H;
DA8EQU47H;
DA9EQU48H;第九个显示缓存
;定义位标志
XSBZBIT00H;
T0BZBIT01H;
BLBZBIT02H;
LED1BITP1.4;1
;定义端口
;程序部分
ORG0000H
LJMPMAIN
ORG0003H;
LJMPWZD0
ORG0013H;
LJMPT0ZD
//ORG000BH;
//LJMPWZD1
//ORG001BH;
//LJMPT1ZD
//ORG0023H;
//LJMPUAZD
ORG0030H
TAB1:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;共阴段码
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H,00H
TAB2:
DB0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82;共阳显示段码
DB0xf8,0x80,0x90,0x88,0x83,0xa7,0xa1;0-F,全灭
DB0x86,0x8e,0xff
MAIN:
MOVSP,#5FH;
MOVA,#0FFH;
MOVP0,A;
MOVP1,A
MOVP2,A
MOVP3,A
MOVTMOD,#20H;T1方式1
MOVTH0,#3CH;50ms定时
MOVTL0,#0B0H;
//MOVSCON,#50H;方式1,开接收
//MOVPCON,#00H;不加倍
SETBTR0;打开T1
SETBET0;开T0中断
SETBEA;总中断
MOVR7,#9;初始化显示缓存区
MOVDPTR,#TAB2;送入0-9段码
MOVR0,#30H;变量首地址
MOVR1,#40H;显缓首地址
CSXS:
CLRA;
MOV@R0,A;清变量
MOVCA,@A+DPTR;读入段码
MOV@R1,A;送到显缓
INCR1;地址加一
INCR0;
INCDPTR;
DJNZR7,CSXS;
SETBXSBZ;置显示标志
LOOP:
NOP;
CALLT0CL;调定时处理
CALLXSZC;调显示输出
CALLSJCL;调数据处理
SJMPLOOP;
SJCL:
JBBLBZ,SJCL1;数据处理,有要求?
RET
SJCL1:
MOVR0,#40H;Y,显缓首址
MOVDPTR,#TAB2;段码表首地址
MOVA,MER;月份拆分
MOVB,#10;十位数取出
DIVAB;
MOVCA,@A+DPTR;取段码
MOV@R0,A;送显缓
INCR0;指向下一显缓
MOVA,B;取个位
MOVCA,@A+DPTR;取段码
MOV@R0,A;送显缓
INCR0
MOVA,RER;日拆分
MOVB,#10;十位数取出
DIVAB;
MOVCA,@A+DPTR;取段码
MOV@R0,A;送显缓
INCR0;指向下一显缓
MOVA,B;取个位
MOVCA,@A+DPTR;取段码
MOV@R0,A;送显缓
INCR0;
MOVA,SER;时拆分
MOVB,#10;十位数取出
DIVAB;
MOVCA,@A+DPTR;取段码
MOV@R0,A;送显缓
INCR0;指向下一显缓
MOVA,B;取个位
MOVCA,@A+DPTR;取段码
MOV@R0,A;送显缓
INCR0;
MOVA,FER;分拆分
MOVB,#10;十位数取出
DIVAB;
MOVCA,@A+DPTR;取段码
MOV@R0,A;送显缓
INCR0;指向下一显缓
MOVA,B;取个位
MOVCA,@A+DPTR;取段码
MOV@R0,A;送显缓
MOVA,XQR;星期拆分
MOVCA,@A+DPTR;取段码
MOV@R0,A;送显缓
SETBXSBZ;
RET
XSZC:
JBXSBZ,XSC0;有显示要求?
RET;
XSC0:
CLRXSBZ;有,清标志
MOVR7,#9;9个单元
MOVR6,#00H;第一单元位码
MOVR1,#40H;
XSC1:
MOVA,R6;送出位码
MOVP2,A;
MOVA,@R1;送出段码
MOVP0,A;
INCR1;地址加一
INCR6;
DJNZR7,XSC1;
RET
T0CL:
JBT0BZ,T0CL0;
RET
T0CL0:
CLRT0BZ;
INCK;
MOVA,K;
CJNEA,#10,TCLM;
MOVK,#0;
CPLLED1
INCMMR;
MOVA,MMR;
CJNEA,#120,TCLM;
MOVMMR,#0;
INCFER;
MOVA,FER;
CJNEA,#60,TCLM1;
MOVFER,#0;
INCSER;
MOVA,SER;
CJNEA,#24,TCLM1;
MOVSER,#0;
INCXQR;
MOVA,XQR;
CJNEA,#8,T0CL1;
MOVXQR,#0;
INCXQR
T0CL1:
INCRER;
MOVA,RER;
CJNEA,#32,TCLM1;
MOVRER,#0;
INCRER
INCMER;
MOVA,MER;
CJNEA,#13,TCLM1;
MOVMER,#0;
INCMER
TCLM1:
SETBBLBZ;
TCLM:
NOP
RET
;中断程序
WZD0:
NOP;
RETI
WZD1:
NOP
RETI
T0ZD:
NOP;
MOVTH0,#3CH;50ms定时
MOVTL0,#0B0H;
SETBT0BZ;
RETI
T1ZD:
NOP
RETI
UAZD:
NOP
PUSHPSW
PUSHACC
JNBRI,UAZD1;
CLRRI;
MOVA,SBUF;
MOVDPTR,#TAB1;
MOVCA,@A+DPTR;
MOVP0,A;
UAZD1:
CLRTI;
POPACC
POPPSW
RETI
END
八、仿真调试
通过在Keil下对源程序的编译,改正了其中的很多错误,然后运行,保证源程序的正确性。
同时,按原理图选择正确合理的电器元件,画出正确的电路图。
然后,连接单片机为AT89C51,选择Optionsfortarget,选择OUTPUT子菜单,在CreateHEXFi前打钩,DeBug子菜单中,Settings选择ProteusVSMSimulator,USE前打钩,再次运行文件,成功后在目录下会生成HEX文件,打开Proteus软件,或直接点击DSN檔,双击单片机模板,点击文件夹式样的图标选择对应的HEX驱动文件,然后点击开始,进行调试。
顺利实现了单片机数字电子钟的“小时”、“分钟”、“秒”的显示。
该电子万年历的显示效果如图
九、ProteusISIS简介
Labcenter公司开发的电路分析与实物仿真软件。
它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路。
该软件的特点是:
(1)全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。
(2)具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS-232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
(3)目前支持的单片机类型有:
ARM7系列、68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
(4)支持大量的存储器和外围芯片。
总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大,可仿真ARM、51、AVR、PIC。
Proteus启动画面:
十、实际目标时情况
在仿真,基本满足题目要求,可以做到计时,日期的变更,但在程序变量的设置上出现过问题,还是对这次的设计进度有一定的影响
十一、课程设计心得体会
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学生,掌握单片机的开发技术是十分重要的。
此次设计立足于电子技术的实际运用,不断实践,开拓了思维,设计以考查、调研、搜集资料、拟订方案、进行系统规划、编程、仿真、调试的流程,使我深刻的体会到了在学习我们专业的过程中理论与实践相结合的重要性,同时也解决了以前学习比较模糊的专业知识点,使自己掌握的专业知识更加结构化、系统化
首先摆在我面前的是要先弄懂所要设计电路的原理,于是最开始我在拿到题目之后就查找了大量的相关的数据,再加上平时理论课的学习以及充分利用了网络资源和在图书馆借了相关的书籍资料,在仔细分析了这个题目所要达到的目的之后,初步确定了原理图。
接下来的是单元电路的设计,以及进一步的分析其原理,实现哪些功能需要哪些电路,在此之间我们用到了以前没有用到过的芯片,但最终我们还是弄清楚了其原理。
经过几天研究,终于确定好了符合要求的电路。
在电路确定之后就需要编写程序,经过多次的修改和仿真,程序也顺利的编写完成。
经过这些天的学习我深刻的体会到实际与理论有很大的区别。
在我们学习的过程中不仅考验了我们对知识的吸收和掌握,而且也考验了我们的细心和耐心。
特别是在仿真过程中对参数的改进和电路图的查找过程中,我深有体会。
我认为这次实习不仅仅学习了软件知识,还提高了我们专业素质。
作为一个物理专业的学生,我深知课程设计的重要性。
这次课程设计我从刚开始的什么都不懂不会,到现在的基本了解了一个电路组件是如何构成的,
完成这次课程设计我觉得收获很多,不但进一步掌握了单片机的知识及相关专业仿真软件的基本操作,还提高了自己的设计能力及动手能力。
实践是检验真理的唯一标准。
理论知识的不足在这次实习中表现的很明显。
这将有助于我今后更加明确学习的方向,可认识到自己的不足,确定自己的目标,从而更加努力的学习。
只有这样我们才能真正的去掌握它,真正的去运用它。
十二、参考文件
1.《单片机应用系统设计技术-基于C51的Proteus仿真》电子工业出版社
2.《单片机应用系统设计技术-基于C51的Proteus仿真实验与解题指导》电子工业出版社
3.张庆玲FPGA原理与实践2006-9-1北京航空航天大学出版社
4.陈明义主编.数字电子技术基础(电类).中南大学出版社2004.1
5.赵亚兴,FPGA原理、设计与应用1999-4-1天津大学出版社
6.徐志军,EDA技术与VHDL设计2009-1-1电子工业出版社
7.崔葛瑾主编,基于FPGA数字电路系统设计2008-7-1西安电子科技大学出版社
8.全
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计