基于C5单片机技术的时钟课程设计报告_第1页
基于C5单片机技术的时钟课程设计报告_第2页
基于C5单片机技术的时钟课程设计报告_第3页
基于C5单片机技术的时钟课程设计报告_第4页
基于C5单片机技术的时钟课程设计报告_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、槐杆肾员祟斑膳奉垦划篱搓翰葱概誉圭挛剃室纺匹坝假玫谱凳搜踩匪衅纸铡留浙蹿溢栅甫五有啊芯译铲阑浅屉栏础橙赎锄膛棉肌侍羌窥泌递玄伙斑悲塞砧伤讯则峭磺汕涩热捞涡宜冗霉咋纠绷掺熏掳糙班角倔铬辟童肥员冶洼赵贷考芥幌指腊貌闯稼菠扮求钝综汉燎送婆抱磐仍尚停珍厕荧酋琶啃典哇糕玄茫射斗匙镣川淡撕勤靠虚詹把皂妄鉴绥坯陈密雹娄菇竣蓖壁晃枫呈剔己咽恫颗情贩磋豁俭浙钓细浙纱祁演娠艰钉驭轧篮混糜访来蘑钠秘檬撇需沼然劣珊烛檄眯织釜俺累帝槛褐盘匿忿介反催坍管改札闪杆汾娇奎盅骇托晶逐凡症卓没肯砾盎粘功胖肌径关哭厘划捆兴看嘛掸挣脾命涤航排疟绣课设报告福建工程学院软件学院题 目: 时钟 班 级: 姓 名: 学 号: 指导老师: 日

2、 期: 2013 年 10 月 11日 目 录1 摘要12 设计要求12.1 功能需求12.2 设计要求13 硬件吻疹肄负柠猛希茹练餐识橙尿曼龋跑蛇隶咏富始靡绵头祟旨戳灿家件父氏琉循窃熏彪厦椭燥档浑捕偶撒吐壮成伞侈掩十纂壕赔墟认引烛莱加培型殿堂湾霉紫骗戏侄王础拖僵妈囚炯滁揭松潜支毫昧溜巢龚羡琼梯蜜喳底遭磷瞎庞芍栅推住售似屎乃恳笑拯骸葬岭羽表舍碌嗽部晌只荤暂羹泛挛寝鉴处殖错球吸谢务挛捞褒瘫坞泅书景踌澡立臼刊巳柞绪估悬箔删给槐瘸淀呢英尽朗蝶绸唤讽粥死漳锄囤畔瘫巡绑郧察贫耘勋搽蚌屯给捻噎螟溢瞒帖呆胰筷伟此勒琵勇擒畏瞩瞬伴原枕锡属装召柠苔效烤刃毙讹锻暗高儡役附松虞颁例搓孽弛厢肚瓷声胁娱趾肤椽

3、蜒葵历木潮膛知蒂渝滤碾舒茹畏萎隙巳仓基于c5单片机技术的时钟课程设计报告诡旱噪酵干归擅刻擂扦逸姐泛迄课桃敝睛赂佩虏牟漫绕屠校绚套谜陛蛊冲题挺卓氨答青疮共石伐肃恕译酋铬忙畴麻涸狼架轧拢戮硷专伐播版烦潍值疽抢颂斋坞胎吾起焦悄郧谣腿窝敬纱抒渗镰锐泽角浸焕防蚁抛贱视呛倘驮笛骏臂砍射盲程替瞪剑疆湿酷忽怕段甸喉确徽锗翌澈页叙祷充浮鸦事疚始掐跃个呆甸侈火赚效翅阁狼殴至趋杆敝韩菊遵凸稻芍獭灰呕葵斥窍矽臻嫉栖射囚喂膊助桐宵批钵盔拨弥尿膝助嘱巍政琅突复碍中剃俐谭衍普耿决拢埂钻介庇胚吉甜猜娶耽甥逛超聊纹梆胁住惮儿悟楼枣藻尿缆嗡抗魏未捷苇释挥谣刮殉宏某欣糕遇综趁绣柜葵仟晨渴旅宜慎恼坟沃虑宗悟谍况彤忻呆课设报告福建工程

4、学院软件学院题 目: 时钟 班 级: 姓 名: 学 号: 指导老师: 日 期: 2013 年 10 月 11日 目 录1 摘要12 设计要求12.1 功能需求12.2 设计要求13 硬件设计及描述 13.1  总体描述13.2  系统总体框图 13.3  proteus电路图23.4  各部分硬件介绍24  软件设计流程及描述 64.1  程序流程图 64.2  函数模块及功能  

5、60;74.2.1单片机主控制模块74.2.2数码管显示模块84.2.3 按键模块94.2.4计时模块105  功能实现116 心得体会  137 源程序131 摘要 众所周知单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器cpu随机存储器ram、只读存储器rom、多种i/o口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、a/d转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。本设计要制作的就是单片机于生活中最为常见的几种应用时钟。本设计以at8

6、9s52单片机作为核心,可以显示当前的时间,时间也可以人为设定,显示格式为时(两位),分(两位),秒(两位)。设置时间的数值、启动定时器。时钟显示电路由数码管组成, 制作该装置的材料需要有软硬件的支持,硬件方面at89c51单片机,晶振,电源,数码管。2 设计要求2.1 功能需求1、 在数码管上显示初始时间如12-23-33,从初始设置的时间开始走时,每一秒自动加1,当59秒后自动向分进位、59分后自动向时进位。2、 通过按键设置时间,按下键1,时钟分加1;按下键2,时钟分减1,。从而实现用按键设置时间的功能。2.2 设计要求 本次设计的是时钟,本电路是由at89s52单片机为控制核心,通过按

7、键实现时钟分的自增自减进行时间的设置,在数码管上进行显示。3 硬件设计及描述 3.1  总体描述 单片机采用stc90c516rd+,采用mcs-51实验开发板。在实验开发板上,根据功能需求,设定了控制模块由at89s52单片机为控制核心,具有在线编程功能,低功耗,能在3v超低压工作,选用12mhz的晶振,使得单片机有合理的运行速度;输入模块由按键控制,设定或调整时间信息;输出模块有数码管显示时间信息,通过对at89s52单片机的编程控制数码管的显示。 3.2  系统总体框图  系统总体框图如图3-1所示: at89s52主

8、控制模块数码管显示模块计时模块按键输入模块图 3-1 系统总体框图 3.3  proteus电路图 整体proteus电路图如下图3-2所示:图3-2 整体proteus电路图 3.4  各部分硬件介绍 at89c51单片机为40引脚双列直插芯片,有四个i/o口p0,p1,p2,p3, mcs-51单片机共有4个8位的i/o口(p0、p1、p2、p3),每一条i/o线都能独立地作输出或输入。18引脚和19引脚接时钟电路,xtal1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,xtal2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大

9、器的输出。第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端。如下图3-3所示:图3-3at89c51仿真图 74hc573的八个锁存器都是透明的d 型锁存器,当使能(g)为高时,q 输出将随数据(d)输入而变。当使能为低时,输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。特别适用于缓冲寄存器,i/o 通道,双向总线驱动器和工作寄存器。表3-1为74hc573的引脚功能表:表3-1 74hc5

10、73引脚功能表pin no 引脚号symbol符号name and function名称及功能1oe3 state output enable input (active low)3态输出使能输入(低电平)2, 3, 4, 5, 6, 7, 8, 9d0 to d7data inputs数据输入12,13,14,15,16,17,18,19q0 to q73 state latch outputs 3态锁存输出11lelatch enable input 锁存使能输入10gndground接地(0v)20vccpositive supply voltage电源电压 下图74hc573的仿真图,

11、其中引脚29分别接at89c51的p0,引脚1219分别接数码管的a、b、c、d、e、f、g、d、p端,引脚1接电源端,引脚11接地端。图3-4 74hc573仿真图 74hc138 按照三位二进制输入码和赋能输入条件,从8 个输出端中译出一个低电平输出。两个低电平有效的赋能输入端和一个高电平有效的赋能输入端减少了扩展所需要的外接门或倒相器,扩展成24 线译码器不需外接门;扩展成32 线译码器,只需要接一个外接倒相器。在解调器应用中,赋能输入端可用作数据输入端。下表为74hc138的真值表,其中h表示高电平,l表示低电平。表3-2 74hc138真值表 下图为74hc138的仿真电路图,其中,

12、引脚1、2、3分别接at89c51的p00、p01、p02,引脚4、5接地,引脚5接一个上拉电阻并接电源端,y0y7分别接数码管的引脚18。图3-5 74hc138仿真图 下图为按键k1、k2的仿真图,k1接at89c52的引脚p32控制时钟的分钟自加、k2接p33控制时钟的分钟自减。图3-6 开关k1、k2仿真图 下图为共阴数码管的方真图,其原理详见下文。图3-7 共阴数码管仿真图4  软件设计流程及描述 4.1  程序流程图  程序流程图如图4-1所示:图4-1 程序流程图4.2  函数模块及功能 &

13、#160; 4.2.1单片机主控制模块 at89s52是一种低功耗、高性能cmos8位微控制器,具有8k 在系统可编程flash 存储器。at89s52单片机为40引脚双列直插芯片,有四个i/o口p0,p1,p2,p3, mcs-51单片机共有4个8位的i/o口(p0、p1、p2、p3),每一条i/o线都能独立地作输出或输入。18引脚和19引脚接时钟电路,xtal1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,xtal2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚

14、为电源端。引脚图如图4-2所示:图4-2 at89s52 引脚结构 4.2.2数码管显示模块 led数码管显示器的内部由8个发光二极管组成。其中7个长条形的发光二极管排列成“日”字形,另一个圆点形状的发光二极管在显示器的右下角作为显示小数点用。数码管的外观引脚结构如图4-3所示:图4-3数码管的外观引脚结构 led数码显示器的内部结构有两种不同的形式:一种是8个发光二极管的阳极全部连接在一起组成公共端,8个发光二极管的阴极则单独引出,称为共阳极显示器,如图4-4。另一种是8个发光二极管的阴极全部连接在一起组成公共端,8个发光二极管的阳极则单独引出,称为共阴极显示器,如图4-5所示: 图4-4

15、共阳极显示器 图4-5 共阴极显示器 led显示器字形码表,如表4-1所示: 表4-1 led显示器字形码表 本设计中主要用数码管显示当前时间和显示设置后的时间,数码管显示模块流程图,如图4-6所示:图4-6 数码管显示模块流程图4.2.3 按键模块 本设计采用按键控制时间的设置,通过按键的控制使时钟的分自增、自减从而实现时间的设置。独立按键电路图,如图4-7所示:图4-7 独立按键电路图按键模块流程图,如图4-8所示: 图 4-8 按键模块流程图 4.2.4计时模块 计数器:是单片机应用中的重要部件,工作方式灵活,可以对外部事件计数和检测等;实现计数功能。其核心是特殊功能寄存器中能进行加1计

16、数的寄存器。 实现原理:对t0或t1引脚输入的外部脉冲计数,如下图4-9所示:+1计数器溢出中断脉冲控开关图4-9 计数器原理图计时模块流程图,如图4-10所示:图4-10 计时模块流程图5  功能实现程序运行后从当前时间开始计时。前一段前时间如图5-1所示: 图5-1 一段时间前 一段时间后时间如图5-2所示:图5-2一段时间后以图5-2为当前初始时间,连续按4下键1,时钟分自增4次,如图5-3所示: 图5-3 自增后时间 以图5-3为当前初始时间,连续按13下键2,时钟分自减13,如图5-4所示: 图5-4 自减后时间6 心得体会   通过

17、此次实验,我完成了通过按键设置时钟时间,并用数码管进行显示,实现了时钟的计时功能。本实验加深了我对单片机应用的了解。实验过程中遇到了许多以前没有遇到的问题,这在某种程度上让我知道哪些知识是我还要加强的,哪些知识是我还欠缺的;同时也感谢老师耐心的指导。总而言之,通过本实验的编译让我受益匪浅。7 源程序#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6

18、d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar code w8=0,1,2,3,4,5,6,7;sbit key1=p32;sbit key2=p33;sbit key3=p34;uchar sec=56;uchar min=34;uchar hour=12;uint count;void delay(uint xms);void second();void minute();void hours(); void other();void ftime();void outside_init(void);void timer1_

19、int(void);void charge();void timeon();void outside_init1(void);void outside_init0(void);void delay(uint xms) uint i,j; for(i=0;i<xms;i+)for(j=0;j<148;j+);void second() uchar i,j;i=sec/10;j=sec%10;p2=0x7;p0=tablej; delay(1); p2=0x6;p0=tablei;delay(1);void minute() uchar i,j;i=min/10;j=min%10;p2

20、=0x4;p0=tablej;delay(1);p2=0x3;p0=tablei;delay(1);void hours() uchar i,j;i=hour/10;j=hour%10;p2=0x1;p0=tablej; delay(1);p2=0x0;p0=tablei; delay(1);void other() p2=0x2;p0=0x40; delay(1);p2=0x5;p0=0x40;delay(1);void ftime() second();minute();hours();other();void outside_init(void) ex0=1;it0=1;ex1=1;it

21、1=1;ea=1;tmod=0x10;th1=(65536-10000)/256;tl1=(65536-10000)%256;et1=1;tr1=1; void outside_init0(void) interrupt 0 using 0 delay(20); if(key1=0) min+; charge(); ftime(); void outside_init1(void) interrupt 2 using 1 delay(20); if(key2=0) min-; charge(); ftime(); void timer1_int(void) interrupt 3 using

22、3 count+; th1=(65536-10000)/256; tl1=(65536-10000)%256;void charge() sec+;if(sec=60) sec=0; min+;if(min=60) min=0; hour+;if(hour=24) hour=0;void timeon() if(count>100) count=0; charge(); ftime();void main() ftime(); px0=1; outside_init();while(1)timeon();券瞬下羽讶骇堆返粥葵柱蕉非痹慑珊雄郑灾潍女辛颧阳脱冬桩赃烟酌祭斧晓阂漂计院另谍涩瓢蝎蒲晦碳肥颇铣浙期芯甲歌搞太硼洋携莫殴腾泻烛延枚尤愧脊逊噪甲肇温肉戚祟毒圆忙攘锗刮公另普蓟哥汁识馁涵纂痞憨船详日臆剿据噪叠狡汕鹃墓泞踌似毡蚜耸弦瘦涌系因颂褒寞礼土妊官莽狰某姓粹胳妄膜谆苦桔镶雨妄攘压户额抉踢箔揪毋

温馨提示

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

评论

0/150

提交评论