《单片机原理及应用》课程设计电子万年历

上传人:1666****666 文档编号:38633149 上传时间:2021-11-08 格式:DOC 页数:19 大小:223.50KB
收藏 版权申诉 举报 下载
《单片机原理及应用》课程设计电子万年历_第1页
第1页 / 共19页
《单片机原理及应用》课程设计电子万年历_第2页
第2页 / 共19页
《单片机原理及应用》课程设计电子万年历_第3页
第3页 / 共19页
资源描述:

《《单片机原理及应用》课程设计电子万年历》由会员分享,可在线阅读,更多相关《《单片机原理及应用》课程设计电子万年历(19页珍藏版)》请在装配图网上搜索。

1、单片机原理及应用单片机原理及应用课程设计课程设计 题题 目:目: 电子万年历电子万年历 专专 业:业:电子信息工程技术电子信息工程技术 班班 级:级: 姓姓 名:名: 学学 号:号: 指导老师:指导老师: 日日 期:期: 成成 绩:绩: 目录目录摘要摘要1 1 概述概述1.11.1 单片机原理及应用简介单片机原理及应用简介 1.21.2 设计目的设计目的 1.31.3 设计要求设计要求 2 2 系统总体方案及硬件设计系统总体方案及硬件设计2.12.1 系统总体方案系统总体方案 2.22.2 硬件电路的总体框图设计硬件电路的总体框图设计 2.32.3 硬件电路原理图设计硬件电路原理图设计 3 3

2、 软件设计软件设计3.13.1 主程序流程图设计主程序流程图设计 3.23.2 显示模块流程图显示模块流程图 4 4 课程设计体会课程设计体会5 5 参考文献参考文献6 6 附图附图摘要:本设计是电子万年历。具备三个功能:能显示:年、月、日、时、分、秒及星期信息,并具有可调整日期和时间功能。我选用的是单片机 AT89C51 来实现电子万年历的功能。该电子万年历能够成功实现时钟运行,调整,显示年月日时分秒及星期,温度等信息。该电子万年历使用 12MHZ 晶振与单片机 AT89C51 相连接,通过软件编程的方法实现了以 24 小时为一个周期,同时显示小时、分钟和秒的要求。利用单片机定时器及计数器产

3、生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据。同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。电子万年历设计与制作可采用数字电路实现,也可以采用单片机来完成。若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,这样一来就降低了硬件电路的复杂性,从而使得其成本降低,更适合我们大学生自主研发。所以在该设计与制作中我选用了单片机 AT89C51。另外, 单片机 AT89C51 的指令

4、系统和引脚与 AT89C51 完全兼容,片内有 128B 的 RAM、32 条I/O 口线、2 个 16 位定时计数器、5 个中断源、一个全双工串行口等。因此,采用单片机 AT89C51 原理制作的电子万年历,不仅仅在原理上能够成功实现计时等功能,也更经济,更适用,更符合我们实际生活的需要,对我们大学生来说也更加有用。1 1 概述概述 1.1 单片机原理及应用简介随着国内超大规模集成电路的出现,微处理器及其外围芯片有了迅速的发展。集成技术的最新发展之一是将 CPU 和外围芯片,如程序存储器、数据存储器、并行、串行 I/O 口、定时/计数器、中断控制器及其他控制部件集成在一个芯片之中,制成单片计

5、算机(Single-Chip Microcomputer) 。而近年来推出的一些高档单片机还包括有许多特殊功能单元,如 A/D、D/A 转换器、调制解调器、通信控制器、锁相环、DMA、浮点运算单元等。因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统,如工业控制系统、数据采集系统、自动测试系统、万年历电子表等。单片机的出现,并在各个技术领域中得到如此迅猛的发展,与单片机构成计算机应用系统所形成的下述特点有关:1、单片机构成的应用系统有较大的可靠性。这些可靠性的获得除了依靠单片机芯片本身的高可靠性以及应用有最少的联接外,还可以方便地采用软、硬件技术。2、系统扩展、系统配置较典

6、型、规范,容易构成各种规模的应用系统,应用系统有较高的软、硬件利用系数。3、由于构成的应用系统是一个计算机系统,相当多的测、控功能由软件实现,故具有柔性特征,不须改变硬件系统就能适当地改变系统功能。4、有优异的性能、价格比。可以说,对于广大的电子应用专业技术人员,目前国和内国外面临的单片机应用技术,如同60年代面临晶体管技术,70 年代面临数字集成电路一样。单片机和可编程门阵列相结合,构成新一代电子应用技术是不可能回避的一项新型的工程应用技术。单片机是微型计算机的一个重要分枝,单片机是把中央处理器、随机存储器、只读存储器、定时器/计数器、并行接口接口、串行接口、A/D 转换器等主要计算机部件,

7、集中在一块集成电路芯片上。虽然只是一个芯片,但从功能上它就相当于一台完整的微机。随着科学技术的迅猛发展,单片计集成度高、体积小、运算速度快、功耗低、运行可靠、价格低廉等诸多优点,越来越显现出来。目前可以说单片机已经渗透到我们的生活的各个领域,在工业方面:像过程控制、数据采集,机电一体化、智能化仪器仪表,特别在军事武器控制方面尤为突出。在日常生活方面,我们使用彩电、洗衣机、电冰箱,录放机、VCD、照相机、手机、高级定时闹钟以及公共汽车上的报站器等等可以说举不胜举。1.21.2 设计目的设计目的1、熟悉 MCS-51 定时/计数器、中断的应用。2、熟悉时钟时、分、秒计时方法,掌握编程技巧。3、掌握

8、键盘的基本工作原理,键的识别,键抖动和重键问题的解决,键盘工作方式和键盘程序的编程。4、掌握七段码 LED 显示器的结构,七段码 LED 显示器的工作方式和显示程序的编程。5、掌握串行通信程序的编写。1.3.设计要求设计要求 1、设计实现电子万年历的硬件原理图。2、用 T0 定时器,产生时钟信号,设计定时中断程序。3、通过按键切换,分别显示时、分、秒,设计显示程序。4、可用键盘进行校对时间,设计键盘程序。5、当前时间可通过串口在其他单片机系统上显示。AT89C51 的引脚图及部分引脚功能RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外

9、部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000 H- FFFFH),不管是否有内部程序存储器。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。 口管脚备选功能P1.0P1.78 位双向口P2.0P2.78 位双向口P3.0P3.78 位双向口P3.0 RXD串行输入口P3.1 TXD串行输出口P3.2 /INT0外部中断 0P3.3 /INT1外部中断 1P3.4 T0

10、记时器 0 外部输入P3.5 T1记时器 1 外部输入P3.6 /WR外部数据存储器写选通P3.7 /RD外部数据存储器读选通2 系统总体方案及硬件设计系统总体方案及硬件设计2.1 系统总体方案系统总体方案 我选用的是单片机(AT89C51)来实现电子万年历的功能。共具备两个功能:(1)显示年月日及分秒信息(2)具有可调整日期和时间功能。1 微处理器在设计过程中我使用 12MHZ 晶振与单片机 AT89C51 相连接,通过软件编程的方法实现了以24 小时为一个周期同时显示小时,分钟和秒的要求,该定时闹钟设有九个按键,使之具备了校时、定时功能。利用单片机定时器及计数器产生定时效果通过编程形成数字

11、钟效果,再利用数码管动态扫描显示单片机内部处理的数据。同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。2.2 硬件电路的总体框图设计硬件电路的总体框图设计 该设计的硬件电路的总体框图如图所示2.3 硬件电路原理图设计硬件电路原理图设计该万年历是以单片机该万年历是以单片机 89s52 为核心来完成的。为核心来完成的。在硬件电路中采用 P0 口作为 6 位液晶显示电路的驱动接口,这是由于 P0 口输出驱动电路工作处于开漏状态,它的驱动能力强,故只需外接上拉电阻便可以把 LED 数码管点亮。因为共阴的 LED 数码管它的驱动电流是分开的,在单片机进行动态扫描的时候不会影响彼此的电

12、流,故该电路中的 8位 LED 数码管均用共阳阴极的数码管。8 位 LED 数码管的位选线分别由相应的 P2. 0P2. 5 控制,而将其相应的段选线并联在一起,由一个 8 位的 I/O 口控制,即 P0 口。P3 口与八个校时按键相连,以成功实现万年历校时的功能。主控制原理图:3.软件设计软件设计程序框图:程序框图:开始初始化按键扫描有键按下按键处理,确定模式时间显示模式根据按键状态显示相应时间段时间修改模式根据按键状态修改时间NONOYESYES图图 1 主程序主程序流程框图流程框图开始装入计数初值(50ms 中断)计数标志 num+num=20?num=0时间加 1 秒结束图图 2 定时

13、中断流程框图定时中断流程框图NOYES开始清零按键状态位按键为低电平?延时,去抖动按键为低电平?按键为低高平?有按键,置按键状态YESYES结束图图 3 按键扫描流程框图按键扫描流程框图NONOYES清零按键状态程序中使用到了 T0,T1 和串口中断,P0,P2 口为 LED 的输出数据口,P32,P33,P34 分别为时分秒转换,时间校验和时间停止位(一):主机程序:(一):主机程序:org 0000hljmp mainorg 000bhljmp timeorg 0023hljmp chuanxingorg 0030hmain:setb p3.2setb p3.3setb p3.7setb

14、p3.5mov pcon,#00hmov scon,#01010000bmov tmod,#21hmov tl0,#0b0hmov th0,#3chmov th1,#0cch ;产生 600 波特率mov tl1,#0cchmov r5, #20 ;20 次以达到 1S 的计时mov r4,#3 ;切换标志位mov r6,#0ffh ;恢复暂停标志mov r7,#1 mov r3,#0ffh ;暂停标志mov 50h,#0 ;存放时分秒的数据空间地址mov 51h,#0mov 52h,#0mov 53h,#0mov 54h,#0mov 55h,#0mov 60h,#0ffh;串性发送标志mov

15、 61h,#0ffhmov 62h,#0ffhmov 70h,#0 ;存放串行接受的数 mov 71h,#0 ;接受从机发送的切换标志setb easetb essetb et0setb tr0setb tr1start:call keymov a,70h cjne a,#0f1h,qiehuan;是否为串性标接受到的切换志mov 70h,#0mov 71h,#1ljmp xianshiqiehuan:cjne a,#0f2h,qiehuan1mov 70h,#0mov 71h,#2ljmp xianshiqiehuan1:cjne a,#0f3h,qiehuan2mov 70h,#0mov

16、71h,#3ljmp xianshiqiehuan2:mov a,r0jnz xianshimov a,70hcjne a,#0f6h,qiehuan3;是否为串性接受到的恢复暂停标志mov r6,#0ljmp stopqiehuan3:mov a,r3jz stop1mov a,70hcjne a,#0f7h,xianshimov 70h,#0mov r6,#0ffhsjmp xianshistop1:ljmp stop;51h, 50h miao;53h,52h fen ;55h,54h shixianshi: ;显示子程序mov dptr,#segtab ;显示秒mov a,71hcjn

17、e a,#1,bingxing1sjmp bingxing2bingxing1:cjne r4,#3 ,fenbingxing2:mov a,51hmovc a,a+dptrmov p0,amov a,50hmovc a,a+dptrmov p2,amov a,60h ;串行发送秒jnz biaozhiclr timov a,50hmov sbuf,acall t10msjb ti ,$mov a,51hmov sbuf,ajb ti,$mov 60h,#0ffh;call t10msbiaozhi:ljmp startfen: ;显示分mov a,71hcjne a,#2,bingxing3

18、sjmp bingxing4bingxing3:cjne r4,#2 ,shibingxing4:mov a,53hmovc a,a+dptrmov p0,amov a,52hmovc a,a+dptrmov p2,amov a,61h ;串行发送分jnz biaozhi1clr timov a,52hmov sbuf,ajb ti ,$call t10msmov a,53hmov sbuf,ajb ti,$mov 60h,#0ffh;call t10msbiaozhi1:;call t10msljmp startshi: ;显示时mov a,71hcjne a,#3,bingxing5sjm

19、p bingxing6bingxing5:cjne r4,#1,shi1bingxing6:mov a,55hmovc a,a+dptrmov p0,amov a,54hmovc a,a+dptrmov p2,amov a,62h ;串行发送时?jnz biaozhi2clr timov a,54hmov sbuf,ajb ti ,$call t10msmov a,55hmov sbuf,ajb ti,$mov 60h,#0ffh;call t10msbiaozhi2:;call t10msshi1:ljmp startstop: ;暂停子程序mov a,r6jz xianshi1ljmp s

20、tartxianshi1:mov a,70hcjne a,#0f4h,aa mov 70h,#0ljmp num1aa:mov a,r1jnz num1mov a,70hcjne a,#0f5h,bbmov 70h,#0ljmp num2bb:mov a,r2jnz num2ljmp startnum1: ;高位累加cjne r4,#3,fen1 ;秒inc 51hmov a,51hcjne a,#6 ,qingling0mov 51h,#0qingling0:ljmp xianshifen1: ;分cjne r4,#2,shi11inc 53hmov a,53hcjne a,#6 ,qing

21、ling1mov 53h,#0qingling1:ljmp xianshi ;时shi11:cjne r4,#1,qingling2inc 55hmov a,55hcjne a,#6 ,qingling2mov 55h,#0qingling2:ljmp xianshi num2: ;低位累加cjne r4,#3,fen2 ;秒inc 50hmov a,50hcjne a,#10,qingling3mov 50h,#0qingling3:ljmp xianshifen2:cjne r4,#2,shil2 ;分inc 52hmov a,52hcjne a,#10 ,qingling4mov 52h

22、,#0qingling4:ljmp xianshi ;时shil2:cjne r4,#1,qingling5inc 54hmov a,54hcjne a,#10 ,qingling5mov 54h,#0qingling5:ljmp xianshi time: ;中断子程序mov a,r6jnz fanhui11retifanhui11:djnz r5,nextmov r5,#20inc 50hmov a,60hcpl amov 60h,amov a,50hcjne a,#10,nextinc 51hmov 50h,#0mov a,51hcjne a,#6,nextinc 52hmov a,61

23、hcpl amov 61h,amov 51h,#0mov a,52hcjne a,#10,nextinc 53hmov 52h,#0mov a,53hcjne a,#6,nextinc 54hmov a,62hcpl amov 62h,amov 53h,#0mov a,54hcjne a,#10,nextinc 55hmov 54h,#0mov a,55hcjne a,#6,nextmov 55h,#0 ;重装初值next:ljmp fanhui1key ;键盘扫描子程序 p3.2 切换 p3.3 十位加p3.5 暂停 p3.7 个位加 mov r0,#0mov r1,#0mov r2,#0j

24、b p3.2, rel1call t10msjnb p3.2,fanhui ;第一个键按下子程序mov r0,#1mov p1,#0fehdec r4mov a,r4jnz rel5mov r4,#3rel5:ljmp t10msrel1: ;第二个键按下子程序jb p3.3,rel2call t10msjnb p3.3 ,fanhuimov r1,#1ljmp fanhui ;第三个键按下子程序rel2:jb p3.7,rel3call t10msjnb p3.7 ,fanhuimov r2,#1ljmp fanhui ;第四个键按下子程序rel3:jb p3.5,fanhuicall t1

25、0msjnb p3.5 ,fanhuimov a,r3cpl amov r3,amov a,r6cpl amov r6,aljmp fanhuit10ms: ;十毫秒延时程序push 50hpush 51hmov 50h,#0ffh loop1: mov 51h,#0ffh nop loop2: nop djnz 51h,loop2djnz 50h,loop1pop 51hpop 50hfanhui: retfanhui1:mov tl0,#0b0hmov th0,#3chreti ;查表段segtab:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,9

26、0hchuanxing:;串性中断子程序jb ri,loop clr tiajmp endtloop:mov a,sbufmov 70h,aclr riendt: retit1ms:;一豪秒的延时?push 50hpush 51hmov 50h,#0ffhloop11:mov 51h,#0ffhnoploop22:nopdjnz 51h,loop22djnz 50h,loop11pop 51hpop 50hretend4 课程设计体会课程设计体会通过这一周的课程设计,我学到了不少的知识。把以前没有学好的模拟电路的知识进行了补充和加强。这使我受益很大。加深了我对于单片机和数字电路的认识,相信在以

27、后的学习和工作中碰到这些基础的元器件我会更加得心应手。通过查阅大量的资料,我获得了以前在课堂上学不到的东西,我想这对于以后的毕业设计,或者工作也好,都是很有帮助的。我很认真地对待这个过程中的每一个细节,希望自己能做得更好。希望今后还有这样的机会,能够让我学到更多的知识。在此次的数字钟设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。5 5 参考文献参考文献1李建忠.单片机原理及应用.西安电子科技大学出版 2006.02 2张俊谟.单片机中级教程.北京航空航天大学出版 2006.033余发山.单片机原理及及应用技术.中国矿业大学出版社 2003.124杨凌霄.微型计算机原理及应用.中国矿业大学出版社 2004.085何立民.单片机应用技术选编.北京航空航天大学出版社 2000.086万光毅.单片机实验与实践教程.北京航空航天大学出版社 2005.017周航慈.单片机程序设计基础.北京航空航天大学出版社 1991.118黄遵熹.单片机原理接口与应用.西北工业大学出版社 1997.056.6. 附图:(整体原理图)附图:(整体原理图)

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!