电子时钟实习报告.doc_第1页
电子时钟实习报告.doc_第2页
电子时钟实习报告.doc_第3页
电子时钟实习报告.doc_第4页
电子时钟实习报告.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

单片机电子时钟实习报告 1 大大 型型 作作 业业 专业:专业: 班级:班级: 姓名:姓名: 学号:学号: 指导老师:指导老师: 单片机电子时钟实习报告 2 前言前言 单单片片计计算算机机即即单单片片微微型型计计算算机机。R RA AM M , ,R RO OM M, ,C CP PU U 构构成成,定定时时,计计数数和和多多种种接接口口于于一一体体的的微微控控制制器器。它它体体积积 小小,成成本本低低,功功能能强强,广广泛泛应应用用于于智智能能产产业业和和工工业业自自动动化化 上上。而而 5 51 1 系系列列单单片片机机是是各各单单片片机机中中最最为为典典型型和和最最有有代代表表 性性的的一一种种。这这次次课课程程设设计计通通过过对对它它的的学学习习,应应用用,从从而而达达 到到学学习习、设设计计、开开发发软软、硬硬的的能能力力。 单单片片机机电电子子时时钟钟,是是利利用用单单片片机机技技术术实实现现计计时时、时时间间 显显示示、时时间间调调整整、定定时时调调整整、闹闹铃铃等等功功能能。完完成成该该项项目目能能 够够有有效效的的训训练练大大家家的的单单片片机机应应用用能能力力,电电子子时时钟钟的的设设计计过过 程程中中,除除了了应应用用单单片片机机前前六六课课题题的的基基础础知知识识外外,还还使使用用了了 外外部部中中断断技技术术、定定时时器器中中断断技技术术、键键盘盘查查询询及及动动态态显显示示技技 术术,希希望望大大家家通通过过该该项项目目的的设设计计,对对单单片片机机应应用用技技术术有有一一 个个较较深深的的认认识识。 单片机电子时钟实习报告 3 目目录录 前言前言2 目录目录3 摘要摘要4 硬件描述及系统设计构思硬件描述及系统设计构思5 1.单片机电子时钟功能.5 2. 数码管显示工作原理 .6 单片机电子时钟单片机电子时钟7 1.电路原理图.7 2.元件列表.7 电子时钟程序电子时钟程序8 实习小结实习小结18 参考文献参考文献19 4 摘要摘要 设设计计目目的的: 通通过过课课程程设设计计,熟熟悉悉 89C51 定定时时器器、中中断断初初始始化化 编编程程方方法法,定定时时器器应应用用在在时时间间控控制制中中程程序序的的设设计计技技巧巧。使使 学学生生巩巩固固和和加加深深对对单单片片机机基基本本知知识识的的理理解解,学学会会查查寻寻资资料料、 方方案案设设计计 、方方案案比比较较,以以及及单单元元电电路路设设计计计计算算等等环环节节,进进 一一步步提提高高学学生生综综合合运运用用所所学学知知识识的的能能力力,提提高高分分析析解解决决实实 际际问问题题的的能能力力。锻锻炼炼分分析析、解解决决电电子子电电路路问问题题的的实实际际本本领领, 通通过过此此综综合合训训练练,为为以以后后毕毕业业设设计计打打下下一一定定的的基基础础。 设设计计要要求求: ( 1 1)上上电电以以后后自自动动进进入入计计时时状状态态,起起始始于于0 00 0: :0 00 0。 ( 2 2)设设计计调调整整时时间间,完完成成时时间间设设计计。 ( 3 3)定定时时时时间间,驱驱动动闹闹铃铃。 ( 4 4)采采用用 L LE ED D 数数码码管管显显示示,时时、分分、秒秒采采用用数数字字显显示示。 5 硬件描述及系统设计构思硬件描述及系统设计构思 1.单片机电子时钟功能单片机电子时钟功能 单片机电子时钟单片机电子时钟 计计 时时 功功 能能 计计 时时 调调 整整 定定 时时 显显 示示 定定 时时 调调 整整 定定 时时 闹闹 铃铃 计计 时时 显显 示示 控控制制器器用用A AT T8 89 9S S5 51 1 , , 1 12 2M M 晶晶振振 数数码码管管动动态态扫扫描描驱驱动动 P P2 2 口口 数数码码管管段段码码驱驱动动 P P1 1 口口 闹闹铃铃驱驱动动 P P1 1. .0 0 调调整整键键 K K1 1P P3 3. .2 2( (外外部部中中断断0 0, , 正正常常、调调时时、调调分分、 调调秒秒 ) ) 定定时时 / /正正常常切切换换键键K K2 2P P3 3. .3 3 时时间间参参数数低低位位加加1 1 键键 K K3 3P P3 3. .4 4 时时间间参参数数高高位位加加1 1 键键 K K4 4P P3 3. .5 5 6 2. 数码管显示数码管显示工作原理工作原理 数数码码管管是是一一种种把把多多个个LED 显显示示段段集集成成在在一一起起的的显显示示 设设备备。有有两两种种类类型型,一一种种是是共共阳阳型型,一一种种是是共共阴阴型型。共共阳阳 型型就就是是把把多多个个LED 显显示示段段的的阳阳极极接接在在一一起起,又又称称为为公公共共 端端。共共阴阴型型就就是是把把多多个个LED 显显示示段段的的阴阴极极接接在在一一起起, 即即为为公公共共商商。阳阳极极即即为为二二极极管管的的正正极极,又又称称为为正正极极,阴阴极极 即即为为二二极极管管的的负负极极,又又称称为为负负极极。通通常常的的数数码码管管又又分分为为8 段段,即即 8 个个 LED 显显示示段段,这这是是为为工工程程应应用用方方便便设设计计的的, 分分别别为为 A、 B、 C、 D、 E、 F、 G、 DP,其其中中 DP 是是小小 数数点点位位段段。而而多多位位数数码码管管,除除某某一一位位的的公公共共端端会会连连接接在在一一 起起,不不同同位位的的数数码码管管的的相相同同端端也也会会连连接接在在一一起起。即即所所有有的的 A 段段都都会会连连在在一一起起,其其它它的的段段也也是是如如此此,这这是是实实际际最最常常用用 的的用用法法。数数码码管管显显示示方方法法可可分分为为静静态态显显示示和和动动态态显显示示两两种种。 静静态态显显示示就就是是数数码码管管的的8 段段输输入入及及其其公公共共端端电电平平一一直直有有 效效。动动态态显显示示的的原原理理是是,各各个个数数码码管管的的相相同同段段连连接接在在一一起起, 共共同同占占用用8 位位段段引引管管线线;每每位位数数码码管管的的阳阳极极连连在在一一起起组组 成成公公共共端端。利利用用人人眼眼的的视视觉觉暂暂留留性性,依依次次给给出出各各个个数数码码管管 公公共共端端加加有有效效信信号号,在在此此同同时时给给出出该该数数码码管管加加有有效效的的数数据据 信信号号,当当全全段段扫扫描描速速度度大大于于视视觉觉暂暂留留速速度度时时,显显示示就就会会清清 晰晰显显示示出出来来。 7 单片机电子时钟单片机电子时钟 1.电路原理图电路原理图 123456 A B C D 654321 D C B A Title Nu mberRev isionSize B Date:2-Jun-20 08 Sheet o f File:E:产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产产.ddbDrawn B y: a bf c g d e DPY1 2 3 4 5 6 7 a b c d e f g 8 dp dp SM5 a bf c g d e DPY1 2 3 4 5 6 7 a b c d e f g 8 dp dp SM2 560 560 560 560 560 560 560 560 8550 8550 2.7K2.7K p1.0VC C p1.1p0.0 p1.2p0.1 p1.3p0.2 p1.4p0.3 p1.5p0.4 p1.6p0.5 p1.7p0.6 RSTp0.7 p3.0EA p3.1AL E p3.2PSE N p3.3p2.7 p3.4p2.6 p3.5p2.5 p3.6p2.4 p3.7p2.3 XT AL2p2.2 XT AL1p2.1 GN Dp2.0 AT 89S51 12.000MHZ 10U F 30P 30P 10K 200 RST P3.2 K1 P3.3 K2 P3.4 K3 P3.5 K4 104104104104 100100100100 10K10K10K10K a bf c g d e DPY1 2 3 4 5 6 7 a b c d e f g 8 dp dp SM4 a bf c g d e DPY1 2 3 4 5 6 7 a b c d e f g 8 dp dp SM3 8550 2.7K 1 4 6 5 2 3 8 7 1G VC C 1A 12G 2Y 41Y 1 1A 22A 4 2Y 31Y 2 1A 32A 3 2Y 21Y 3 1A 42A 2 2Y 11Y 4 GN D 2A 1 74L S244 +5V a bf c g d e DPY1 2 3 4 5 6 7 a b c d e f g 8 dp dp SM1 a bf c g d e DPY1 2 3 4 5 6 7 a b c d e f g 8 dp dp SM0 855085508550 10K10K10K10K10K10K2.7K2.7K2.7K 910 +5V SPK 8550 2.7K 10K 910910910910910 2.元件列表元件列表 单片机 AT89S51一片1M 晶振1 个 共阳数码管6 只PNP 管 85507 只 74LS2441 片蜂鸣器1 个 微动按键1 只10UF 电容5 个 2.7K 电阻7 只104 瓷片电容4 只 30P 瓷片电容2 只 200 电阻 4 只 560 电阻 8 只10K 电阻12 只 100 电阻 1 只 8 电子时钟程序电子时钟程序 #include #include uchar H=0,M=0,S=0,T_Count=0;/设设置置时时间间初初值值,进进行行 时时间间计计数数 uchar H_Set=11,M_Set=11,S_Set=11;/设设定定闹闹铃铃时时间间 uchar *Sp=/时时间间指指针针 uchar Select2Seg=0;/调调时时闪闪烁烁位位号号 uchar Select2Seg_=0;/定定时时闪闪烁烁位位号号 uchar *Select2SegP;/闪闪烁烁位位号号指指针针 uchar H_h=0,H_l=0,M_h=0,M_l=0,S_h=0,S_l=0;/时时 分分秒秒的的各各位位的的数数值值-用用于于显显示示 uchar SaveH_h=0,SaveH_l=0,SaveM_h=0,SaveM_l=0,SaveS _h=0,SaveS_l=0;/ 时时分分秒秒的的各各位位的的数数值值-用用于于调调时时间间 时时的的数数据据保保护护 uchar light=0; /灯灯亮亮 bit Key3Down=1;/允允许许 KEY3 按按键键值值增增加加1 的的标标志志 (个个位位加加一一) bit Key4Down=1;/允允许许 KEY4 按按键键值值增增加加1 的的标标志志 (十十位位加加一一 ) bit SetTime=0;/定定时时标标志志 1 为为定定时时 24 /*蜂蜂鸣鸣器器报报警警 */ 9 void SPK(void) if(SetTime=0)spk=0; /闹闹铃铃响响 void TunOffSPK(void) spk=1;/闹闹铃铃不不响响 void init_INT0(void)/*外外部部中中断断 0 初初始始化化 */ EA=1; /打打开开中中断断总总允允许许位位 EX0=1;/打打开开外外部部中中断断0 允允许许位位 PX0=0;/设设定定外外部部外外部部中中断断0 为为低低优优先先级级中中断断 IT0=1;/设设置置外外部部中中断断0 为为边边沿沿(下下降降沿沿)触触发发方方式式 void init_t0() /*t0-初初始始化化为为 50mS 定定时时 ,并并启启动动 */ TMOD=(TMOD/定定时时器器 0,方方式式 1: 16 位位定定时时。 TH0=0x3C;/设设置置定定时时器器T0 初初值值 TL0=0xB0; EA=1; /打打开开中中断断总总允允许许位位 ET0=1;/允允许许 T0 中中断断 PT0=1;/设设定定定定时时器器T0 为为高高优优先先级级中中断断 TR0=1;/启启动动 T0 10 void init_INT1(void) /*外外部部中中断断 1 初初始始化化 */ EA=1; /打打开开中中断断总总允允许许位位 EX1=1; /打打开开外外部部中中断断1 允允许许位位 PX1=0; /设设定定外外部部外外部部中中断断1 为为低低优优先先级级中中断断 IT1=1; /设设置置外外部部中中断断1 为为边边沿沿(下下降降沿沿)触触发发方方式式 /*t1-初初始始化化为为 50mS 定定时时 ,并并启启动动 */ void init_t1(void) TMOD=(TMOD/定定时时器器 1,方方式式 1: 16 位位定定时时 TH1=0x3C; /设设置置定定时时器器T1 初初值值 TL1=0xB0; EA=1; /打打开开中中断断总总允允许许位位 ET1=1; /允允许许 T1 中中断断 PT1=0; /设设定定定定时时器器T1 为为高高优优先先级级中中断断 TR1=1; /启启动动 T1 /*外外部部中中断断 0 子子程程序序 */ void Int0(void) interrupt 0 using 2 if(SetTime)/判判断断定定时时标标志志是是否否为为0 Select2SegP=/此此时时为为定定时时闪闪烁烁 else Select2SegP=/否否则则此此时时是是调调时时闪闪烁烁 11 if(+(*Select2SegP)=4) *Select2SegP=0;/ 当当闪闪烁烁的的位位数数为为4 时时则则停停止止闪闪烁烁即即闪闪烁烁的的位位数数为为0 TunOffSPK();/蜂蜂鸣鸣器器不不响响 /*T0 定定时时 1S 中中断断子子程程序序 1*/ void Timer0() interrupt 1 using 1 TH0=0x3C;/ 设设置置定定时时器器T0 初初值值 TL0=0xB0; if(T_Count+)=20)/判判断断循循环环是是否否到到达达20 S+;/秒秒位位开开始始加加1 T_Count=0;/把把循循环环置置零零重重新新开开始始循循环环 spk=spk ; if(S=60)M+;S=0;/如如果果秒秒位位到到达达60,则则分分钟钟位位加加 1,秒秒位位置置0 if(M=60)H+;M=0; /如如果果分分钟钟位位为为60,则则时时位位开开 始始加加 1,分分钟钟位位置置零零 if(H=24)H=0;/如如果果时时位位达达到到24,时时位位置置零零 if(H=H_Set) /执执行行此此子子程程序序即即蜂蜂鸣鸣器器响响起起 void Int1(void) interrupt 2/*外外部部中中断断 1 子子程程序序 */ SetTime=SetTime;/此此时时不不再再定定时时 *Select2SegP=0;/此此时时闪闪烁烁的的位位数数置置为为0 TunOffSPK();/执执行行子子程程序序蜂蜂鸣鸣器器停停止止鸣鸣笛笛 12 void Timer1() interrupt 3 using 3 /*T1 定定时时 50mS 中中断断子子程程序序 1*/ TH1=0x3C; /给给定定时时器器T1 的的高高 8 位位赋赋初初值值 */ TL1=0xB0; /给给定定时时器器T1 的的低低 8 位位赋赋初初值值 */ if(light+8)/数数码码管管从从0 亮亮到到 8 light=0; /对对其其置置零零 uchar code DIY_data=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0 xF8,0x80,0x90,0xBF,0xFF;/数数码码管管数数据据定定义义 /“0- 9“,“-“,不不亮亮 5 uchar code WX_data=0xfe,0xFd,0xfb,0xf7,0xef,0xdf;/自自左左到到 右右分分别别是是面面 /*数数码码管管循循环环显显示示,N 为为位位序序号号, D 为为数数据据序序号号 void DSP_Data(uchar N,uchar D) uchar i=N,j=D;/定定义义 i,j seg7_data=DIY_dataN;/把把数数码码管管的的各各个个数数据据赋赋值值给给 P0 口口 wx=WX_dataD; /把把数数码码管管的的选选择择位位赋赋给给P2 口口 void DLYmS(uchar N)/*软软件件延延时时 N mS*/ uchar k=125;/把把 25 赋赋值值给给 K for(;N0;N-) 13 for(;k0;k-);/利利用用 FOR 循循环环实实现现延延时时 void testKey2(void) if(SetTime)/判判断断是是否否定定时时 Sp=Mp=Hp=/分分别别把把调调时时 位位赋赋值值给给时时分分秒秒 Select2SegP= /此此时时闪闪烁烁位位为为定定时时 else Sp=Mp=Hp= /否否则则为为调调时时,把把时时间间赋赋值值 给给时时分分秒秒 Select2SegP=/此此时时闪闪烁烁位位为为调调时时闪闪烁烁 void Scan_kl(void) /检检测测 KEY3(调调整整时时间间个个位位键键)子子 程程序序 if(kl=0)/*此此时时不不允允许许各各位位加加1*/ testKey2(); /*执执行行此此子子程程序序*/ TunOffSPK(); /*执执行行此此程程序序 */ switch(*Select2SegP) /判判断断闪闪烁烁位位 case 0:break; /如如果果输输出出为为0 则则停停止止此此程程序序 case 1:SaveS_h=*Sp/10;/保保护护 秒秒 十十位位 *Sp+=1; /秒秒位位加加 1 14 *Sp=SaveS_h*10+*Sp%10;/高高位位的的数数乘乘以以10 与与所所调调 置置的的数数对对10 求求余余的的和和即即使使所所要要调调制制的的数数 break; case 2:SaveM_h=*Mp/10;/保保护护 分分 十十位位 11 *Mp+=1; /分分位位加加 1 *Mp=SaveM_h*10+*Mp%10;/高高位位的的数数乘乘以以10 与与所所 调调置置的的数数对对10 求求余余的的和和即即使使所所要要调调制制的的数数 break; case 3:SaveH_h=*Hp/10;/保保护护 时时 十十位位 *Hp+=1; /*时时位位加加 1*/ if(SaveH_h3) *Hp=SaveH_h*10; /*如如果果时时对对10 求求余余大大于于3 时时那那么么时时位位就就等等于于高高位位乘乘以以10*/ break; default:break; /*如如果果皆皆没没有有时时就就跳跳出出此此程程序序*/ if(kl=1)Key3Down=1; /*如如果果 kl 等等于于 1 时时,则则允允许许低低 为为加加 1*/ void Scan_kh(void)/*检检测测 KEY4(调调整整时时间间十十位位键键)子子 程程序序 */ if(kh=0)/*不不允允许许高高位位加加1*/ testKey2(); /*执执行行此此程程序序 */ TunOffSPK();/*执执行行此此程程序序 */ switch(*Select2SegP) /*判判断断闪闪烁烁指指针针位位*/ case 0:break; /*输输出出为为 0 时时停停止止此此程程序序*/ case 1:SaveS_l=*Sp%10;/保保护护 秒秒 个个位位 *Sp+=10;/*秒秒位位加加 10*/ if(*Sp=60)*Sp=SaveS_l;/*如如果果秒秒位位大大于于60 时时,则则把把 低低位位的的数数赋赋值值给给秒秒位位*/ break; case 2:SaveM_l=*Mp%10;/保保护护 分分 个个位位 2 *Mp+=10;/*分分位位加加 10*/ if(*Mp=60)*Mp=SaveM_l; /*如如果果分分位位的的数数大大于于 60 则则此此时时分分位位数数就就等等于于分分的的低低位位数数值值*/ break; case 3:SaveH_l=*Hp%10;/保保护护 时时 个个位位 *Hp+=10;/*时时位位加加 10*/ if(SaveH_l3)if(*Hp/101)*Hp=SaveH_l; /*如如果果时时 位位数数的的低低位位数数大大于于3;如如果果时时位位的的数数除除以以10 商商大大于于 1 则则时时位位的的数数就就等等于于时时位位数数的的低低位位*/ else if(*Hp/102)*Hp=SaveH_l; /*如如果果时时位位的的数数除除以以 10 商商大大于于 2 则则时时的的数数等等于于时时位位数数的的低低位位数数*/ break; 16 default:break; /*否否则则跳跳出出此此程程序序*/ if(kh=1)Key4Down=1;/*如如果果 kh 键键不不按按下下则则允允许许高高位位 调调时时 */ void Display(void) /*显显示示程程序序 */ testKey2();/*执执行行此此子子程程序序*/ if(*Select2SegP!=1|light4) /*如如果果闪闪烁烁位位号号位位不不为为1 或或数数码码管管显显示示数数大大于于4 时时 */ DSP_Data(*Sp%10,0);DLYmS(N1); /*0 号号数数码码管管显显示示 秒秒位位的的个个位位数数即即秒秒数数对对10 求求余余 */ DSP_Data(*Sp/10,1);DLYmS(N1); /*1 号号数数码码管管对对秒秒位位 的的十十位位显显示示即即十十位位的的数数等等于于秒秒位位数数对对10 求求商商得得到到然然后后 延延时时 */ if(*Select2SegP!=2|light4) /*如如果果闪闪烁烁位位号号位位不不为为 2 或或数数码码管管显显示示数数大大于于4 时时 */ DSP_Data(*Mp%10,2);DLYmS(N1); /*2 号号数数码码管管对对分分 位位的的个个位位显显示示即即分分位位数数对对10 求求余余然然后后延延时时*/ DSP_Data(*Mp/10,3);DLYmS(N1); /*3 号号数数码码管管对对分分 位位的的十十位位显显示示即即分分位位数数对对10 求求商商然然后后延延时时*/ 17 if(*Select2SegP!=3|light4)/*如如果果闪闪烁烁位位号号位位不不为为3 或或数数码码管管显显示示数数大大于于4 时时 */ DSP_Data(*Hp%10,4);DLYmS(N1); /*4 号号数数码码管管对对时时 位位的的个个位位显显示示即即时时位位数数对对10 求求余余然然后后延延时时*/ DSP_Data(*Hp/10,5);DLYmS(N1);/*5 号号数数码码管管对对时时位位 的的十十位位显显示示即即时时位位数数对对10 求求商商然然后后延延时时*/ Scan_kl(); /*执执行行检检测测 KEY3(调调整整时时间间个个位位键键)子子程程 序序 */

温馨提示

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

评论

0/150

提交评论