单片机简易数字钟设计及其报告_第1页
单片机简易数字钟设计及其报告_第2页
单片机简易数字钟设计及其报告_第3页
单片机简易数字钟设计及其报告_第4页
单片机简易数字钟设计及其报告_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

浙江XX学院电子信息学院课程设计报告PAGEPAGE12第12页共13页《单片机课程设计》课程设计报告题目:简易数字钟设计学年:2011~2012学期:一专业:电气工程及其自动化班级:094学号:000000000姓名:XXXXX指导教师:时间:浙江XXX学院电子信息学院目录1设计简介 22设计要求 23设计方案和系统结构 23.1电源模块 33.2复位模块 33.3时钟模块 33.48155扩展模块 43.5LCD显示模块 53.6键盘模块 64设计内容(包括硬件和软件) 75测试结果 76设计总结 7附录 7源程序 7总原理图 7操作说明 71设计简介本设计针对数字时钟的显示、计时、工作方式以及原理和设计方法等问题,通过应用以STC89C58单片机为核心芯片,以LCD1602液晶显示屏为显示器件,以及应用8155拓展辅助芯片等模块作为硬件基础,KEIL为编程软件进行程序编写,STC_ISP为程序烧写软件对单片机进行烧写的方法,展开对数字时钟的设计,获得了我们这个单片内部定时/计时器为计时方式以及应用外部时钟芯片PCF8563为技术方式的数字时钟。2设计要求本设计要主要应用KEIL、STC_ISP为开发设计软件,以C语言为编程语言进行编程设计,开发设计一个数字时钟,设计的任务要求如下:具有秒、分、时、年、月、日、星期的计时及LCD显示功能;具有外部调事功能。3设计方案和系统结构本设计采用的是分模块的设计方法,对各个模块进行分步设计,然后将各个模块进行汇总,将各个模块拼接在一起,来实现数字时钟的设计要求,本设计的设计框图如图3-1。图3-1设计原理框图3.1电源模块电源模块完成交流交流转直流的功能,将电网的220V交流转换为可为芯片工作的+5V直流电源其原理图如图3.1-1。图3.1-1直流稳压电源原理图3.2复位模块 复位模块是为单片机的复位设计的,复位模块包含了按键复位和上电复位两种。上电复位是利用电容的充电来实现的。在上电的瞬间,RST引脚的电位与Vcc相同,随着电容充电RST引脚的电位下降。上电复位所需的时间是振荡周期建立时间加上2个机器周期,在这个时间内,RST电位保持高电平。一般只要保持真脉冲的宽度为10us,就可使单片机复位。电路原理图如图3.2-1.按键复位和上电图3.2-1上电复位原理图3.3时钟模块时钟模块本设计中采用了两种一种为单片机内部的时钟,也就是晶振电路的分频实现,用T0定时/计数器来实现计时的功能。如图3.3-1。第二钟应用外部时钟芯片PCF8563如图3.3-2.图3.3-1单片机时钟电路图3.3-2外部时钟芯片pcf8563原理图3.48155扩展模块8155模块电路如图3.4-1所示,其中U1为81C55芯片,特性如下:256字节的RAM;一组可编程6位IO口;两组可编程8位IO口;可编程14位二进制计时计数器;多工地址和数据总线;内部地址锁存。8155采用40脚双列直插封装,单一+5v电源,引脚分布如下图所示:AD0—AD7为地址数据总线,单片机与8155之间的地址、数据、命令、状态信息都是通过这个总线口传送。CE为片选信号,输入低电平有效。WR为写信号,输入低电平有效。RD为读信号,输入低电平有效。PA0~PA7、PB0~PB7可工作于基本I/O方式或选通方式,由寄存器的编程来选择;PC0~PC5可作为输入/输出口线,也可以作为A口、B口选通方式工作时的状态控制信号线。本实验中,PA、PB口作为输出,其中PA口与LCD1602引脚相连,PC为输入口,PA与PC口构成键盘模块的行列线。IO/M为I/O与RAM选择信号。8155内部I/O口与RAM是分开编址的,因此要使用控制信号进行区分。IO/M=0,对RAM进行读写;IO/M=1,对I/O进行和计数器进行读写。8155详细资料请参考PDF,本实验8155的端口地址由单片机的P0口和P2.1以及P2.0决定。图3.4-18155电路原理图 3.5LCD显示模块显示模块电路如图3.5-1所示,U2为显示元件液晶LCD1602,整个液晶屏采用标准的16脚接口,其中GND为电源地,VDD接5V正电源,VO为液晶显示屏对比度调整端,可通过一个可调电阻接地,本图未接。RS为寄存器选择端,高电平时选择数据寄存器、低电平时选择指令寄存器。RW为读写信号线,高电平时进行读操作、低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或显示地址,当RS为低电平RW为高电平时,可读忙信号,当RS为高电平RW为低电平时可以写入数据。E端为使能端,当E端由低电平变成高电平时,液晶屏执行命令。RS、RW、E端通过JP2分别与单片机的P1.5、P1.6、P1.7引脚相连。DB0—DB7为8位双向数据线,通过JP1分别与并行I/O扩展芯片8155的PA0—PA7引脚相连。J1为跳线,该跳线主要功能为液晶背光的显示与消隐。图3.5-1LCD液晶显示电路原理图3.6键盘模块1.模块功能按键模块主要提供实验所需的控制功能以及向系统输入数据,实验箱采用矩阵式键盘组成4*4共16个键,在按键数量较多时可以节省I/O口线。2.模块电路按键模块电路如图3.6-1所示,S1—S16组成4*4的行列结构。行列式键盘的接口方法很多,例如直接接口于单片机的I/O口;利用扩展的并行I/O口接口;用串行口扩展I/O接口;利用可编程的键盘显示接口芯片8279、7279等。其中利用扩展的并行I/O接口方法方便灵活,本模块采用的就是这种接口方式。下图中4*4的按键通过8155的PA口和PC口组成,PA0—PA3为行线,PC0—PC3为列线。按键设置在行、列线的交电上。对按键的工作过程可以分为两步:第一步是CPU检测是否有键按下;第二步是识别出哪一个键按下。图3.6-1按键原理图4设计内容(包括硬件和软件)图4-1软件流程图图4-2硬件流程图5测试结果6设计总结附录源程序#include<INIF.h>#include<lcd1602.h>ucharKEY_DOWN(void); //键值判断函数,定义见Key.cucharnum,w,i,mi=50,fen=10,shi=23,ni1=11,ni2=20,yu=12,ri=5;longintx;ucharaaa[16]={0};ucharbbb[16]={0};ucharrunnian(longintx);ucharxingqi(longintyear,ucharyue,ucharri);voiddisplay() { x=ni2*100; x=x+ni1; i=runnian(x); if(mi==60) { fen++; mi=0; } if(fen==60) { fen=0; shi++; } if(shi==24) { shi=0; ri++; } switch(yu) { case1:if(ri==32){yu++;ri=1;}break; case2:if(ri==29+i){yu++;ri=1;}break; case3:if(ri==32){yu++;ri=1;}break; case4:if(ri==31){yu++;ri=1;}break; case5:if(ri==32){yu++;ri=1;}break; case6:if(ri==31){yu++;ri=1;}break; case7:if(ri==32){yu++;ri=1;}break; case8:if(ri==32){yu++;ri=1;}break; case9:if(ri==31){yu++;ri=1;}break; case10:if(ri==32){yu++;ri=1;}break; case11:if(ri==31){yu++;ri=1;}break; case12:if(ri==32){yu++;ri=1;}break; } if(yu==13) { ni1++; yu=1; } if(ni1==100) { ni1=0; ni2++; } w=xingqi(x,yu,ri); switch(w) { case0:aaa[11]='M';aaa[12]='O';aaa[13]='N';break; case1:aaa[11]='T';aaa[12]='U';aaa[13]='E';break; case2:aaa[11]='W';aaa[12]='E';aaa[13]='D';break; case3:aaa[11]='T';aaa[12]='H';aaa[13]='U';break; case4:aaa[11]='F';aaa[12]='R';aaa[13]='I';break; case5:aaa[11]='S';aaa[12]='A';aaa[13]='T';break; case6:aaa[11]='S';aaa[12]='U';aaa[13]='N';break; } aaa[0]=ni2/10+'0'; aaa[1]=ni2%10+'0'; aaa[2]=ni1/10+'0'; aaa[3]=ni1%10+'0'; aaa[4]='-'; aaa[5]=yu/10+'0'; aaa[6]=yu%10+'0'; aaa[7]='-'; aaa[8]=ri/10+'0'; aaa[9]=ri%10+'0'; aaa[10]=''; bbb[0]=shi/10+'0'; bbb[1]=shi%10+'0'; bbb[2]=':'; bbb[3]=fen/10+'0'; bbb[4]=fen%10+'0'; bbb[5]=':'; bbb[6]=mi/10+'0'; bbb[7]=mi%10+'0'; lcd_string(aaa,1); lcd_string(bbb,2); delay(200); }main(){ ucharkey_value=0,key_value1; PORT=0x03; //8155的A,B口作为输出,C为输入口 lcd1602init(); lcd_clear(); TMOD=0x01; TH0=19456/256; TL0=19456%256; EA=1; ET0=1; TR0=1; while(1) { key_value=KEY_DOWN(); delay(200); display(); key_value1=KEY_DOWN(); while(key_value==key_value1){key_value1=KEY_DOWN();display();} switch(key_value) { case0x00:ni1++;break; case0x01:yu++;break; case0x02:ri++;break; case0x03:shi++;break; case0x04:fen++;break; case0x05:ni1--;break; case0x06:if(yu==1)yu=13;yu--;break; case0x08:shi--;break; case0x09:fen--;break; } } }ucharrunnian(longintx){ if((x%400==0)|(x%100!=0)&&(x%

温馨提示

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

评论

0/150

提交评论