数字时钟的实验报告_第1页
数字时钟的实验报告_第2页
数字时钟的实验报告_第3页
数字时钟的实验报告_第4页
数字时钟的实验报告_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、北方民族大学电气信息工程学院实训报告课程名称电子作品制作与开发项目实践选修课系列题目数字时钟院(部、中心)电气信息工程学院学生姓名何勇专业测控技术与仪器学号20080280指导教师签名毛建东周春艳报告提交时间2010年 12月 25日同组人员伏露金鹏强窕北方民族大学教务处制评语 :成绩 :答辩:(%)报告:(%)平时:(%)总成绩 :指导教师 :年月日目录一:数字时钟的要求与任务4二:数字时钟的原理41 数字时钟结构4AT89S51 介绍42 、数字钟的电路结构组成83、单元电路设计81)译码驱动及显示单元82)校时控制电路93) 5V 稳压直流电源电路104)晶振电路和复位电路11三、数字时

2、钟的原理图12四、数字时钟Protel 整体原理图及PCB 板13五、数字时钟的程序151、流程图152、程序17六、元件清单21七、制作的心得22八、实物图23一:数字时钟的要求与任务要求:掌握单片机控制数码管显示系统的开发设计任务:设计并制作一个数字钟。 要求外接 4 个按键,分别为“设定”、“加 1”、“减 1”和“确定”键,用于调整时间;外接 8 个 LED 数码管,分别显示时、分、秒,以 24 小时制显示时间 。另外需要使用 AC220V 转 AC(单)12V 变压器、二极管 IN4004、稳压块 7905、7805 等自制 5v 电源一套。建议单片机使用 40 脚双列直插 AT89

3、S51 实现, LED 显示使用 74LS164 串入并出芯片模拟串口实现。二:数字时钟的原理1 数字时钟结构该实训作品是利用 AT89S51单片机结合数码管设计出的一个可调时的数字时钟,其主要利用单片机的输入 / 输出功能,定时 / 计数功能和中断功能。AT89S51 介绍AT89S51 是 一个低功耗, 高性能 CMOS8 位 单片机, 片含 4k Bytes ISP(In-system programmable) 的可反复擦写 1000 次的 Flash 只读程序存储器,器件采用 ATMEL公司的高密度、非易失性存储技术制造,兼容标准 MCS-51指令系统及 80C51引脚结构,芯片集成

4、了通用 8 位中央处理器和 ISP Flash 存储单元,功能强大的微型计算机的 AT89S51 可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40 个引脚(引脚图如图 1-2 所示),4k Bytes Flash片程序存储器, 128 bytes 的随机存取数据存储器( RAM),32 个外部双向输入 / 输出( I/O )口, 5 个中断优先级 2 层中断嵌套中断, 2 个 16 位可编程定时计数器 ,2 个全双工串行通信口,看门狗( WDT)电路,片时钟振荡器。此外,AT89S51设计和配置了振荡频率可为 0Hz并可通过软件设置省电模式。空闲模式下, CP

5、U暂停工作,而 RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存 RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。 同时该芯片还具有 PDIP、TQFP和 PLCC等三种封装形式, 以适应不同产品的需求。 VCC:电源电压 GND:地 P0口: P0 口是一组 8 位漏极开路型双向 I 0 口,也即地址数据总线复用口。作为输出口用时,每位能驱动 8 个 TTL 逻辑门电路,对端口写“ l ”可作为高阻抗输入端用。 在访问外部数据存储器或程序存储器时, 这组口线分时转换地址(低 8 位)和数据总线复用,在访问期间激活部上拉电阻。P1 口:Pl 是一个带部上拉电阻的

6、 8 位双向 I O口,Pl 的输出缓冲级可驱动(吸收或输出电流) 4 个 TTL 逻辑门电路。对端口写“ l ”,通过部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流 (IIL )。Flash 编程和程序校验期间,Pl 接收低 8 位地址。表 1 具有第二功能的 P1 口引脚端口引脚第二功能:P1.5MOSI(用于 ISP 编程)P1.6MOSI(用于 ISP 编程)P1.7MOSI(用于 ISP 编程)P2 口:P2 是一个带有部上拉电阻的8 位双向 I O 口,P2 的输出缓冲级可驱动(吸收或输出电流) 4 个 TT

7、L 逻辑门电路。对端口写“ 1”,通过部的上拉电阻把端口拉到高电平, 此时可作输入口, 作输入口使用时, 因为部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流 ( IIL )。在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行 MOVXDPTR指令)时, P2 口送出高 8 位地址数据。在访问 8 位地址的外部数据存储器(如执行 MOVXRi指令)时, P2 口线上的容(也即特殊功能寄存器( SFR)区中 P2 寄存器的容),在整个访问期间不改变。 Flash 编程或校验时, P2 亦接收高位地址和其它控制信号。P3 口:P3 口是一组带有部上拉电阻的8 位双向 I 0 口。

8、P3 口输出缓冲级可驱动(吸收或输出电流)4 个 TTL逻辑门电路。对P3口写入“ l ”时,它们被部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的 P3 口将用上拉电阻输出电流( IIL )。P3口除了作为一般的 I 0 口线外,更重要的用途是它的第二功能,如下表所示:表 2具有第二功能的 P1 口引脚端口引脚第二功能:P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0 (外中断 0)P3.3/ INT1 (外中断 1)P3.4T0(定时计数器0 外部输入)P3.5T1(定时计数器1 外部输入)P3.6/ WR(外部数据存储器写选通)P3.7/ RD 外部数据

9、存储器读选通)P3 口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。 WDT溢出将使该引脚输出高电平, 设置 SFRAUXR的 DISRT0 位(地址 8EH)可打开或关闭该功能。 DISRT0位缺省为 RESET输出高电平打开状态。ALE PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字节。即使不访问外部存储器, ALE 仍以时钟振荡频率的1 6 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时

10、将跳过一个ALE 脉冲。对F1ash存储器编程期间,该引脚还用于输入编程脉冲( PROG)。如有必要,可通过对特殊功能寄存器( SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE 操作。该位置位后,只有一条 M0VX和 M0VC指令 ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE无效。PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当 AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN信号。EAVPP:外部访问允许。欲使CPU仅访问外部程序存储

11、器(地址为0000H FFFFH),EA端必须保持低电平 (接地)。需注意的是: 如果加密位 LB1 被编程,复位时部会锁存 EA端状态。如 EA端为高电平(接 VCC端),CPU则执行部程序存储器中的指令。 F1ash 存储器编程时,该引脚加上 +12V的编程电压 Vpp。 XTAL1:振荡器反相放大器及部时钟发生器的输入端。单片机时钟结构分硬件和软件两部分。硬件主要由单片机, LED数码管显示器和按键等组成。电路设计如图。图 2 电路主体设计图2 、数字钟的电路结构组成:1)晶振电路和复位电路。2)驱动电路及显示单元。3)校时控制电路。4)5V 稳压直流电源电路。3、单元电路设计:1)译码

12、驱动及显示单元图 1 LED 数码管显示图 2 输送段码电路当 74LS373 的 LE=1,OE(非)=0 时其输出口随输入口变化,即输出段码。再由 P0 选中相应位显示输出低电平,使三极管9015 导通驱动共阳数码管。2)校时控制电路。程序设计时给 P2 口高电平,当有对应按键按下时由于另一端接地,所以对应口变成低电平,单片机根据各按键信号运行相应程序。K1 为设定键,按下后进入调时状态, 计时也瞬时停止。 按一次进入调整小时的状态,在调时状态再按 K1 进入分调整状态,在分调整状态再按一次进入秒调整状态!进入相应状态后,利用K2,K3 键进行调整, K2 为加 1,K3 为减 1 。K4

13、键为确定键,当处在调时状态时,K4 按下时跳出调时状态,进入计时状态。3) 5V 稳压直流电源电路。图 3 电源电路电源主要使用的是AC220V转 AC12V变压器,二极管 IN4004,稳压块 7805等。220V交流电由变压器转为12V交流电,电路板外接 12V 交流电,经过 IN4004整流及电容滤波,在通过稳压块7805 得到 5V 左右的直流电,该电路接了电源指示灯 D1,通电时变亮。4)晶振电路和复位电路。图 4 晶振电路和复位电路三、数字时钟的原理图四、数字时钟Protel 整体原理图及PCB 板五、数字时钟的程序1、流程图2、程序/*sbitkey4=P23;*ucharnum

14、=0,temp=0,count=0;*程序名 ;时钟实验 1ucharaa;*功能: 数码管通过动态扫描显示时间,uchar hour,min,sec;时间可设定 ,调整时间时时钟不走 .ucharcode*编程者:ZJPtable=0x60,0xf3,0xa4,0xa1,0x33,0x29,*编程时间: 2010/11/90x28,0xe3,0x20,0x21;*/voiddelay(uint z);#includevoiddisplay(uchara,ucharb,uchar#define uint unsigned intc,uchar d,uchar e,uchar f,uchar a

15、a);#define uchar unsigned charvoidread_key();voidled();sbit_led=P27;voidtime_change();sbitkey1=P20;sbitkey2=P21;/*主函数sbitkey3=P22;*/void main()P2=0xff;P0=0xfd&aa;P1=b;delay(2);hour=12;elsemin=0;P0=0xfd;P1=b;delay(2);/hoursec=0;if(num=2)TMOD=0x11;TH0=(65536-50000)/256;P0=0xf7&aa;P1=c;delay(2);TL0=(65

16、536-50000)%256;TH1=(65536-50000)/256;elseTL1=(65536-50000)%256;EA=1;P0=0xf7;P1=c;delay(2); /minET0=1;if(num=2)ET1=1;TR0=1;P0=0xef&aa;P1=d;delay(2);TR1=1;aa=0xff;elsewhile(1)P0=0xef;P1=d;delay(2); /minif(num=3)time_change();P0=0xbf&aa;P1=e;delay(2);display(tablehour/10,tablehour%10,tablelseemin/10,P0

17、=0xbf;P1=e;delay(2); /secif(num=3)tablemin%10,tablesec/10,tablesec%10,0xff);P0=0x7f&aa;P1=e;delay(2);elseP0=0x7f&aa;P1=f;delay(2); /sec/*显示函数*/void display(uchar a,uchar b,uchar c,uchar/*定时器 0中断函数d,uchar e,uchar f,uchar aa)*/ if(1)void timer0() interrupt 1P0=0xfb&aa;P1=0xbf;delay(2);TH0=(65536-50000

18、)/256;P0=0xdf&aa;P1=0xbf;delay(2);TL0=(65536-50000)%256;if(num=1)temp+;P0=0xfe&aa;P1=a;delay(2);else/*定时器 1中断函数P0=0xfe;P1=a;delay(2);/hour*/if(num=1)void timer1() interrupt 3TH1=(65536-50000)/256;if(num3)num=0;break;TL1=(65536-50000)%256;count+;while(!key1);if(count=20)delay(10);count=0;while(!key1)

19、;_led=1;/*延时子函数*/void delay(uint z)if(key2=0)uint j,k;for(j=z;j0;j-)for(k=120;k0;k-);_led=0;delay(80);if(key2=0)/*读按键函数if(num=1)hour+;if(hour=24)hour=0; */void read_key()if(num=2)min+;if(min=60)min=0;if(key1=0)_led=0;delay(100);if(key1=0)if(num=3)sec+;if(sec=60)sec=0;while(!key1);delay(10);while(!ke

20、y1);_led=1;delay(100);_led=1;num+;if(num3)num=0;while(1)if(key3=0)_led=0;delay(80);if(key3=0)if(key1=0)_led=0;if(num=1)hour-;if(hour=0)hour=delay(10);23;if(key1=0)num+;if(num=2)min-;if(min=0)min=59;if(num=3)sec-;if(sec=0)sec=59;while(!key1);while(!key1);delay(10);delay(10);while(!key1);while(!key1);

21、_led=1;_led=1;if(key4=0)_led=0;delay(80);num=0;break;if(key4=0)/*/void time_change()时间调整函数read_key();if(temp=20)temp=0;if(count=60)display(tablehour/10,tablehour%10,tablemin/10,sec=0;min+;tablemin%10,tablesec/10,tablesec%if(min=60)10,0xff);if(count15)display(tablehour/10,tablehour%10,tablemin/10,min

22、=0;hour+;if(hour=24)hour=0;tablemin%10,tablesec/10,tablesec%10,0x00);六、元件清单序号元器件名称元件数目(个)140脚双列直插 AT89S51单片机1240脚双列直插芯片底座1320脚74HC373锁存器1420脚双列直插芯片底座15稳压块 780516极性电容 50V220uF27极性电容 50V22uF18电容 16V1uF29瓷片电容 30pF210按键51112MHz晶振1120.56 寸共阳极 7段数码管81310K 1/4W 金属膜电阻 1% 色环铜脚电阻19149015三极管815IN4004二极管416发光二极管1173脚 接插件(含簧片)

温馨提示

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

评论

0/150

提交评论