郑州大学单片机课程设计.docx
《郑州大学单片机课程设计.docx》由会员分享,可在线阅读,更多相关《郑州大学单片机课程设计.docx(17页珍藏版)》请在冰豆网上搜索。
郑州大学单片机课程设计
存档资料成绩:
郑州大学光华学院
课程设计报告书
所属课程名称单片机原理与应用
题目万年电子历
分院 电信分院
专业班级2007级运算机科学与技术
(2)班
学 号440212
学生姓名 冯文科
指导教师 夏康伟
2010年7月16日
郑州大学光华学院
课程设计(论文)任务书
专业07运算机科学与技术班级
(2)班姓名冯文科
一、课程设计(论文)题目万年电子历
二、课程设计(论文)工作:
自2020年7月5日起至2020年7月16日止。
三、课程设计(论文)的目的要求和任务内容:
一.实验目的
通过本次课程设计达到如下目的:
一、熟悉AT89C51单片机与时钟芯片DS1302的应用。
二、熟悉时钟时、分、秒计时方式,把握编程技术。
3、把握键盘的大体工作原理,键的识别,键抖动和重键问题的解决,键盘工作方式和键盘程序的编程。
4、把握七段码LED显示器的结构,七段码LED显示器的工作方式和显示程序的编程。
五、把握串行通信程序的编写。
二.设计要求
利用AT89C51单片机,时钟芯片DS1302、七段码LED显示器、按键、MAX7219及经常使用外围器件,设计一个具有动态显示功能的电子万年历,具体要求如下:
一、设计实现电子万年历的电路系统组成框图。
2、能动态显示年、月、日、礼拜、小时、分钟、秒。
3、可用键盘进行校对时刻,和日期时刻的修改。
学生签名:
_____________
2020年7月16日
课程设计(论文)评阅意见
序号
项目
等 级
优秀
良好
中等
及格
不及格
1
课程设计态度评价
2
出勤情况评价
3
任务难度评价
4
工作量饱满评价
5
任务难度评价
6
设计中创新性评价
7
论文书写规范化评价
8
综合应用能力评价
综合评定等级
评阅人 职称
2010年7月16日
目 录
第一章课程设计任务书...........................2
第二章设计方案................................6
第三章硬件设计.................................7
第四章软件设计................................15
第五章程序清单................................17
第六章课程设计心得............................24
第七章参考文献................................25
第二章设计方案
依照系统设计功能的要求,初步确信系统由主控模块、时控模块、显示驱动及显示模块和键盘接口模块共4个模块组成,电路系统组成框图如下图。
图电子万年历电路系统组成框图
主控芯片利用51系列AT89C51单片机,时钟芯片利用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实不时钟DS1302。
采纳DS1302作为计时芯片,能够做到计时准确。
更重要的是,DS1302能够在很小电流的后备电源(~电源,再时耗电小于300nA),而且DS1302
能够编程选择多种充电电流来队后备电源进行慢速充电,能够保证后备电源大体不耗电。
显示驱动采纳MAX7219,MAX7219是微处置器和共阴极八段八位LED数码管显示、图条/柱图显示或64点阵显示接口的小型串行输入/输出芯片。
片内包括BCD译码器、多路扫描操纵器、字和位驱动器和8×8静态RAM。
外部只需要一个电阻设置所有LED显示器字段电流。
MAX7219和微处置器只需三根导线连接,每位显示数字有一个地址由微处置器写入。
许诺利用者选择每位是BCD译码或不译码。
利用者还可选择停机模式、数字亮度操纵、从1~8选择扫描位数和对所有LED显示器的测试模式。
显示模块采纳一般的共阴极四位一体八段LED数码管。
第三章硬件设计
系统硬件概述
3.1.1主操纵器AT89C51
ATMEL公司生产的AT89C51单片机采纳高性能的静态80C51设计,并
采纳先进工艺制造,还带有非易失性Flash程序存储器。
它是一种高性能、低功耗的8位CMOS微处置芯片,市场应用最多。
其要紧特点如下:
8KBFlashROM,能够擦除1000次以上,数据保留10年。
●256字节内部RAM;
●电源操纵模式;
●时钟可停止和恢复;
●空闲模式;
●掉电模式;
●6个中断源;
●4个中断优先级;
●4个8位I/O口;
●全双工增强型TUAR;
●3个16位按时/计数器:
T0、T1(标准80C51)和增加的T2(捕捉和比较)
●全静态工作方式:
0~24MHZ
3.1.2时钟电路DS1302
DS1302的性能特性:
●实不时钟,可对秒、分、时、日、周、月和带闰年补偿的年进行比较;
●用于高速数据暂存的31*8位RAM;
●最少引脚的串行I/O;
●~电压工作范围;
●时耗小于300nA;
●用于时钟或RAM数据读/写的单字节或多字节(脉冲方式)数据传送方式;
●简单的三线接口;
●可选的慢速充电(至Vcc1)的能力。
DS1302在任何数据传送时必需先初始化,把RST脚置为高电平,然后把8位地址和命令字装入移位寄放器,数据在SCLK的上升沿被访问到。
在开始8个时钟周期,把命令字节装入移位寄放器后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。
时钟脉冲的个数在单字节方式下为8+8,在多字节方式下为8+字节数,最大可达248字节数。
若是在传送进程中置RST脚为低电平,那么会终止本次数据传送,而且I/O引脚变成高阻态。
上电运行时,在Vcc≥之前,RST脚必需维持低电平。
只有在SCLK为低电平常,才能将RST置为高电平。
DS1302的操纵字如表所示。
操纵字节的最高有效位(位7)必需是逻辑1,若是它为0,那么不能把数据写入到DS1302中。
位6若是为0,那么表示存取日历时钟数据;为1那么表示存取RAM数据。
位5~1(A4~A0)指示操作单元的地址。
最低有效位(位0)若是为0,那么表示药进行写操作;为1表示进行读操作。
操纵字节老是从最低位开始输入/输出。
为了提高对32个地址寻址能力(地址/命令位1~5=逻辑1),能够把时钟/日历或RAM寄放器规定为多字节(burst)方式。
位6规按时钟或RAM,而位0规定读或写。
在时钟/日历寄放器中的地址9~31或RAM寄放器中的地址31不能存储数据。
在多字节方式下,读或写从地址0的位0开始。
必需按数据传送的顺序写最先的8个寄放器。
可是,当以多字节方式写RAM时,为了传送数据没必要写所有的31字节,不管是不是谢了全数31字节,所写的每一字节都将传送至RAM。
表DS1302操纵字
DS1302共有12个寄放器,其中有7个寄放器与日历、时钟相关,寄存的数据位为BCD码形式。
其日历、时刻寄放器及其操纵字如上表所示,其中奇数为读操作,偶数为写操作。
时钟暂停:
秒寄放器的位7概念位时钟暂停位。
当它为1时,DS1302停止振荡,进入低功耗的备份方式,通常在对DS1302进行写操作时(如进入时钟调整程序),停止振荡。
当它为0时,时钟将开始启动。
AM-PM/12-24小时方式:
小时寄放器的位7概念为12或24小时方式选择位。
它为高电平常,选择12小时方式。
在此方式下,位5为第二个10小时位(20~23h)。
DS1302的晶振选用32768Hz,电容推荐值为6pF。
因为振荡频率较低,也能够不接电容,对计时精度阻碍不大。
3.1.3显示驱动MAX7219
●MAX7219和单片运算机连接有三条引线(DIN、CLK、LOAD),采纳16位数据串行移位接收方式
●八位LED显示、图条/柱图显示或64点阵显示
●包括BCD译码器、多路扫描操纵器、字和位驱动器和8×8静态RAM
●可选择停机模式、数字亮度操纵、从1~8选择扫描位数和对所有LED显示器的测试模式
●最多能驱动8位LED显示器
●内部RAM地址01~08H别离对应于DIG0~DIG7。
●扫描界限寄放器(地址0BH):
该寄放器中D0~D3位数据设定值为0~7H,设定值表示显示器动态扫描个数位1~8。
●停机寄放器(地址0CH):
当D0=0时,MAX721处于停机状态;当D0=1时,处于正常工作状态。
●显示测试寄放器(地址0FH):
当D0=0时,MAX7219按设定模式正常工作;当D0=1时,处于测试状态。
在该状态下,不管MAX7219处于什么模式,全数LED将按最大亮度显示。
●亮度寄放器(地址0AH):
亮度能够用硬件和软件两种方式调剂亮度寄放器中的D0~D3位能够操纵LED显示器的亮度。
MAX7219通过D11~D84位地址位译码,可寻址14个内部寄放器,别离是8个LED显示位寄放器,5个操纵寄放器和1个空操作寄放器。
LED显示寄放器由内部8×8静态RAM组成,操作者可直接对位寄放器进行个别寻址,以刷新和维持数据,只要V+超过2V(一样为+5V)。
操纵寄放器包括:
译码模式,显示亮度调剂,扫描限制(选择扫描位数),关断和显示测试寄放器。
MAX7219的驱动程序第一必需对5个操纵寄放器初始设置即初始化,各操纵寄放器设置含义如下:
译码模式选择寄放器(地址=F9H);MAX7219有两种译码方式:
B译码方式和不译码方式。
被选择不译码时,8个数据为别离一一对应7个段和小数点位;B译码方式是BCD译码,直接送数据就能够够显示。
实际应用中能够按位设置选择B译码或是不译码方式。
扫描限制寄放器:
地址=FBH;用于设置显示的LED个数(1~8),比如当设置为0xX4时,LED0~5显示。
亮度调剂寄放器:
地址=FAH;共有16级选择,用于LED显示亮度的强弱设置。
关断模式寄放器:
地址=FCH;有两种模式选择:
一种是关断状态模式(D0=0);一种是正常操作状态(D0=1),通常选择正常操作状态。
显示测试寄放器:
地址=FFH;有两种选择用于设置LED是测试状态仍是正常操作状态:
当在测试状态时(D0=1)列位全应亮,一样选择正常操作状态(D0=0)。
要紧单元电路的设计
3.2.1显示电路
显示部份采纳一般的共阴数码管显示,采纳动态扫描,以减少硬件电
表MAX7219引脚功能
路。
年月日时分秒礼拜共需要17位数码显示,考虑到一次扫描17位数码
管显示时会显现闪烁情形,故采纳动态扫描,可将数码管数量减少至9位,
也确实是两个四位一体八段LED显示数码管和一个一名LED数码管设计时数码管同时扫描,显示时采纳串行口输出段码,用MAX7219驱动数码管。
图MAX7219要紧引脚
3.2.2键盘接口
键盘在单片机系统中是一个很重要的部件。
为了输入数据、查询和操纵系统的工作状态,都要用到键盘,键盘是人工干与运算机的要紧手腕。
键盘可分为编码和非编码键盘两种。
编码键盘采纳硬件线线路来实现键盘编码,每按下一个键,键盘能自动生成按键代码,键数较多,而且还具有去抖动功能。
这种键盘利用方便,但硬件较复杂,PC机所用的键盘就属于这种。
非编码键盘仅提供按键开关工作状态,其他工作由软件完成,这种键盘键数较少,硬件简单,一样在单片机应用系统中普遍利用。
此处要紧介绍该类非编码键盘及其与MCS—51型单片机的接口。
3.2.3时钟电路
3.2.3.1DS1302工作方式简介及数据操作原理
DS1302能够对年、月、日、礼拜、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达~。
采纳三线接口与CPU进行同步通信,并可采纳突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个33x8的用于临时性寄存数据的RAM寄放器。
DS1302是的DS1202升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。
DS1302时钟芯片包括实不时钟/日历和31字节的静态RAM。
它通过一个简单的串行接口与微处置器通信。
实不时钟/日历提供秒、分、时、日、周、月和年等信息。
关于小于31天的月和月末的日期自动进行调整,还包括闰年校正的功能。
时钟的运行能够采纳24<小>时或带AM/PM的12小时格式。
采纳三线接口与CPU进行同步通信,并可采纳突发方式一次传送多字节的时钟信号或RAM数据。
DS1302有主电源/后备电源双电源引脚:
Vcc1在单电源与电池供电的系统中提供低电源,并提供低功率的电磁备份;Vcc1在双电池系统中提供主电源。
在这种运行方式中,Vcc1里连接到后备电源,以便在没有主电源的情形下能保留时刻信息和数据。
DS1302由Vcc1或Vcc2中较打大者供电。
当Vcc2>(Vcc1+)时,Vcc2给DS1302供电;当Vcc2<Vcc1时,DS1302由Vcc1供电。
图DS1302
DS1302在任何数据传送时必需先初始化,把RST脚置为高电平,然后把8位地址和命令字装入移位寄放器,数据在SCLK的上升沿被访问到。
在开始8个时钟周期,把命令字节装入移位寄放器后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。
时钟脉冲的个数在单字节方式下为8+8,在多字节方式下为8+字节数,最大可达248字节数。
若是在传送进程中置RST脚为低电平,那么会终止本次数据传送,而且I/O引脚变成高阻态。
上电运行时,在Vcc≥之前,RST脚必需维持低电平。
只有在SCLK为低电平常,才能将RST置为高电平。
DS1302的操纵字如下图。
操纵字节的最高有效位(位7)必需是逻辑1,若是它为0,那么不能把数据写入到DS1302中。
位6若是为0,那么表示存取日历时钟数据;为1那么表示存取RAM数据。
位5~1(A4~A0)指示操作单元的地址。
最低有效位(位0)若是为0,那么表示药进行写操作;为1表示进行读操作。
操纵字节老是从最低位开始输入/输出。
为了提高对32个地址寻址能力(地址/命令位1~5=逻辑1),能够把时钟/日历或RAM寄放器规定为多字节(burst)方式。
位6规按时钟或RAM,而位0规定读或写。
在时钟/日历寄放器中的地址9~31或RAM寄放器中的地址31不能存储数据。
在多字节方式下,读或写从地址0的位0开始。
必需按数据传送的顺序写最先的8个寄放器。
可是,当以多字节方式写RAM时,为了传送数据没必要写所有的31字节,不管是不是谢了全数31字节,所写的每一字节都将传送至RAM。
DS1302共有12个寄放器,其中有7个寄放器与日历、时钟相关,寄存的数据位为BCD码形式。
其日历、时刻寄放器及其操纵字如下表所示,其中奇数为读操作,偶数为写操作。
表DS1302操纵字
时钟暂停:
秒寄放器的位7概念位时钟暂停位。
当它为1时,DS1302停止振荡,进入低功耗的备份方式,通常在对DS1302进行写操作时(如进入时钟调整程序),停止振荡。
当它为0时,时钟将开始启动。
AM-PM/12-24小时方式:
小时寄放器的位7概念为12或24小时方式选择位。
它为高电平常,选择12小时方式。
在此方式下,位5为第二个10小时位(20~23h)。
DS1302的晶振选用32768Hz,电容推荐值为6pF。
因为振荡频率较低,也能够不接电容,对计时精度阻碍不大。
第四章软件设计
程序设计
电子万年历的程序要紧包括3个方面的内容:
一是DS1302从单片机中读取数据进行计数,二是利用按键进行时刻的调整,三是MAX7219从单片机中读取数据驱动LED数码管显示时刻。
AT89C51单片机要紧I/O口的分派,别离接MAX7219的DIN,LOAD,CLK三个功能端,P3接查询式按键,别离接DS1302的CLK,IO,RST端。
程序流程图
4.2.1显示驱动程序流程图
图4.1MAX7219显示驱动程序流程图
4.2.2时刻操纵流程图
图DS1302时控流程图
第五章程序清单
#include<>
#include""
#defineuintunsignedchar
#defineuintunsignedint
ucharxingqi,nian,yue,ri,xiaoshi,fen,miao;
ucharnianh,nianl,yueh,yuel,rih,ril,xiaoshih,xiaoshil,fenh,fenl,miaoh,miaol;
uchardd=2;sbitclk=p1^0;
sbitdat=p1^1;sbitrst=p1^2;
sbitA0=ACC^0;sbitA1=ACC^1;
sbitA2=ACC^2;sbitA3=ACC^3;
sbitA4=ACC^4;sbitA5=ACC^5;
sbitA6=ACC^6;sbitA7=ACC^7;
sbitp30=p3^0;
sbitp31=p3^1;
sbitp32=p3^2;
sbitp33=p3^3;
sbitp34=p3^4;
sbitp35=p3^5;
sbitp36=p3^6;
sbitp37=p3^7;
sbitdate=p2^0;
sbitload=p2^1;sbitclkk=p2^2;
ucharbdatabitmsb;
sbitm7=bitmsb^7;
ucharx,y,c;
bitflag=0;
bitflagh=1;
ucharcodetab[]={0xff,4F5f7f京大学出版社2020
[2]陈忠平单片机基础与最小系统实践.北京航空航天大学出版社
[3]窦振中单片机外围器件有效手册存储器分册.北京航空航天大学出版
[4]沈庆阳,郭庭吉8051单片机实践与应用.清华大学出版社
[5]侯玉宝,李成群基于Proteus的51系列单片机设计与仿真电子工业出版社
[6]陈明荧.8051单片机课程设计实训教程[M].北京:
清华大学出版
[7]郁慧娣.微机系统及其接口技术[M].南京:
东南大学出版社,1999年.
[8]何立民.单片机高级教程[M].北京:
北京航空航天大学出版社,2003年.
[9]王毓银.数字电路逻辑设计[M].北京:
高等教育出版社.
[10]李广弟.单片机原理及应用[M]北京航空航天大学出版社,2004年.
[11]谢嘉奎.电子线路[M].高等教育出版社,1999年.