单片机 电子时钟实验报告

合集下载

单片机设计数字钟实验报告

单片机设计数字钟实验报告

单片机实验报告——数字钟设计班级:学号:姓名:时间:一.实验目的1、进一步熟悉C的语法知识和keil环境;2、熟练掌握一些常用算法;3、熟悉keil的编写、下载、调试过程;4、了解单片机的工作原理和电路图;5、熟悉单片机的外围电路功能模块、LED灯、数码管模块以及键盘;6、熟练焊接技术。

二.实验器件三.数字钟设计原理数字钟实际是对标准频率计数的电路,由于计数的起始时间不可能与标准时间一致,故需要在电路上加一个校时电路,同时标准的时间信号必须做到准确稳定。

通常使用石英晶体振荡电路构成数字钟。

数字钟电子钟由以下几部分组成:按键开关部分,振荡电路部分,89c51单片机控制器,4位数码管显示部分,7407数码管驱动部分。

按键开关振荡电路89C51单片机控制器4位数码管显示7407列驱动四.流程图主程序流程图如图2.3所示,定时器T0中断服务程序流程图如2.4所示。

返回五.51单片机系统的硬件连接1、STC单片机最小系统硬件电路图如下2、硬件电路的设计该电路采用AT89C51单片机最小化应用,采用共阴7段LED数码管显示器,P2.4~P2.7口作为列扫描输出,P0口输出段码数据,P1.2,P1.1口接2个按钮开关,用于调时及功能误差,采用12Mhz晶振,可提高秒计时的精确度。

六.程序设计HOUR EQU 3AH ;赋值伪指令MIN EQU 3BHSEC EQU 3CHBUFF EQU 3DHORG 0000HAJMP MAINORG 000BH ;主程序入口AJMP PTF0ORG 0033H ;跳转到标号PTF0执行;**************************************************************;主程序MAIN: MOV HOUR, #00H ;时,分,秒,标记清零MOV MIN, #00HMOV SEC, #00HMOV BUFF, #00HMOV SP, #0EFH ;设堆栈指针MOV TH0, #0ECH ;定时器赋初值MOV TL0, #78HMOV 40H, #100 ;设循环次数MOV 41H, #2MOV TMOD , #1 ;写TMODMOV IP, #2 ;写IPMOV IE, #82HMOV R5,#0;开中断SETB TR0 ;启动定时器PTF0: SETB P1.2MOV TH0, #0ECHMOV TL0, #78HINC R5MOV R6,BUFFCJNE R6,#00H,BBMOV DPTR,#TAB1LJMP LOOP0BB:MOV DPTR,#TABLOOP0: CJNE R5,#1,LOOP1ACALL LOP0AJMP JKLOOP1:CJNE R5,#2,LOOP2ACALL LOP1AJMP JKLOOP2:CJNE R5,#3,LOOP3ACALL LOP2AJMP JKLOOP3:ACALL LOP3MOV R5,#0JK: DJNZ 40H, PTFORXRL BUFF, #0FFHMOV 40H, #100JNB P1.1, JFJNB P1.2, JSMOV R7, 41HCJNE R7, #1, AAAA: DJNZ 41H, PTFORMOV 41H,#2MOV A, SEC ;秒加1ADD A, #1DA AMOV SEC, ACJNE A, #60H, PTFORMOV SEC, #0 ;秒清零JF: MOV A, MIN ;分加1ADD A, #1DA AMOV MIN, ACJNE A, #60H,PTFORMOV MIN, #0 ; 分清零ACALL LEDJS: MOV A,HOURADD A,#1DA AMOV HOUR,A ;时加1CJNE A, #24H,PTFOR ;时加到24时否?是,清零MOV HOUR, #0PTFOR:RETILOP0: MOV A, MIN ;显示分钟的个位ANL A, #0FHMOVC A, @A+DPTRMOV P0,AMOV P2,#0F0HCLR P2.4CLR P0.4RETLOP1:MOV A, MIN ;显示分钟的十位SWAP AANL A, #0FHMOVC A, @A+DPTRMOV P0, AMOV P2, #0F0HCLR P2.5CLR P0.4RETLOP2: MOV A, HOUR ;显示时钟的个位ANL A, #0FHMOVC A, @A+DPTRMOV P0, AMOV P2, #0F0HCLR P2.6RETLOP3:MOV A, HOUR ;显示时钟的十位SWAP AANL A, #0FHMOVC A, @A+DPTRMOV P0, AMOV P2, #0F0HCLR P2.7CLR P0.4RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;不带小数点的字型码TAB1:DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH ;带小数点的字型码END七.系统调试及结果分析硬件调试硬件电路板中器件连接好后,先用万用表测试电路中有无虚焊短接之处,测试无误后,将板子通电,进行静态调试。

基于单片机制作电子时钟实训分析报告

基于单片机制作电子时钟实训分析报告

基于51单片机制作电子时钟实训报告————————————————————————————————作者:————————————————————————————————日期:2绪论单片机应用简述.................................... 电子时钟简介...................................... 电子时钟的基本特点................................ 任务要求.........................................设计方案.........................................控制系统的硬件设计................................芯片的选择....................................... AT89S51的功能概述............................... AT89S51引脚功能说明(附引脚图)................... LED数码管显示电路................................ 硬件设计及元器件技术说明电子元器件技术说明………. 控制系统的软件设计................................ 程序编程......................................... 流程图........................................... 测试调试........................................... 总结...............................................单片机应用简述目前,单片机正朝着高性能和多品种方向发展趋势是进一步向着CMOS化、低功耗、小体积,大容量、高性能、低价格和外围电路内装化等几个方面发展。

单片机实验报告-数字时钟设计报告

单片机实验报告-数字时钟设计报告

单片机实验报告-数字时钟设计报告一、实验目的1、掌握单片机的主要原理及相关的功能和特点。

2、熟悉单片机测试与调试的一般步骤与操作。

3、掌握定时/计数功能在单片机系统中的实现方法。

4、领会单片机实验模块设计思想。

二、实验内容本次实验主要是利用STC89C52单片机实现数字时钟设计,实验从硬件电路组成和单片机编程两个部分来实现数字时钟的设计。

(1)硬件电路设计该系统的硬件电路设计主要包括PCB板的设计、电源的设置、单片机与外设的连接以及时钟芯片的接入。

利用Altium Designer软件来进行电路板设计,将STC89C52芯片与时钟模块(DS1302)以及屏幕连接,整个电路如图1所示。

图1 数字时钟使用STC89C52的电路图(2)单片机程序设计本实验使用keil软件对单片机程序进行编程,主要的部分如下:(2.1)定义单片机IO口首先定义单片机IO口,其定义方式如下:#include<reg52.h>sbit Row0=P1^0; //定义P1.0作为数码管的Row0控制端sbit Row1=P1^7; //定义P1.7作为数码管的Row1控制端sbit Row2=P1^1; //定义P1.1作为数码管的Row2控制端sbit Row3=P2^0; //定义P2.0作为数码管的Row3控制端sbit Col0=P1^2; //定义P1.2作为数字管的Col0控制端sbit Col1=P1^3; //定义P1.3作为数字管的Col1控制端sbit Col2=P1^4; //定义P1.4作为数字管的Col2控制端sbit Col3=P1^5; //定义P1.5作为数字管的Col3控制端sbit Col4=P1^6; //定义P1.6作为数字管的Col4控制端(2.2)定义LED数码管数据和定义变量//定义LED数码管数据unsigned char codetable[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsigned char i,j,k,m,n,s;(2.3)调用初始化函数再调用初始化函数,用于完成I/O口、定时器0/1及外部中断的初始化,代码如下:void init (void){TMOD=0x01; //定时器0的模式1TH0=0x3c; //定时器0赋初值TL0=0xb0;EA=1; //外部总中断开启ET0=1; //允许定时器0中断ET1=0; //不允许定时器1中断TR0=1; //开启定时器0TR1=1; //关闭定时器1}(2.4)主函数最后我们考虑到,应该实现的LED点阵的显示函数和定时更新时钟的函数,本实验的核心代码如下:void main(){init(); //调用初始化函数while(1){display(); //调用LED点阵显示函数number_refresh(); //调用定时更新时钟函数}}(2.5)LED点阵显示函数为保证LED点阵的正常工作,可利用多次延时函数,定义LED点阵显示函数,每次显示一位数字,实现数字从左往右以及从右往左的滚动移动显示,具体实现如下:void display (int ){P2=0xfe; //定义P2这一行位先低电平,控制第一位显示P0=table[m]; //将得到的数字m 显示在第一位数码管Delay_1ms(2); //延时1msP2=0xfd; //定义P2这一行位先低电平,控制第二位显示P0=table[n]; //将得到的数字n 显示在第二位数码管Delay_1ms(2); //延时1msP2=0xfb; //定义P2这一行位先低电平,控制第三位显示P0=table[s]; //将得到的数字s 显示在第三位数码管Delay_1ms(2); //延时1msP2=0xf7; //定义P2这一行位先低电平,控制第四位显示P0=table[i]; //将得到的数字i 显示在第四位数码管Delay_1ms(2); //延时1msP2=0xef; //定义P2这一行位先低电平,控制第五位显示P0=table[j]; //将得到的数字j 显示在第五位数码管Delay_1ms(2); //延时1msP2=0xdf; //定义P2这一行位先低电平,控制第六位显示P0=table[k]; //将得到的数字k 显示在第六位数码管Delay_1ms(2); //延时1ms}(2.6)定时更新时钟函数本部分,利用定时器0的中断功能实现定时更新LED点阵时间,定义定时器0中断函数,实现每隔一秒更新一次,更新变量m、n、s、i、j、k,代码如下:ㄖ/Timer 0中断函数void Timer0() interrupt 1{TH0=0x3c; //定时器0赋初值TL0=0xb0;m++; //每秒,m值加1if(m>9) //当m的值大于9时,n值加1{n++;m=0;}if(n>9) //当n的值大于9时,s值加1{s++;n=0;}if(s>5) //当s的值大于5时,i值加1{i++;s=0;}if(i>9) //当i的值大于9时,j值加1{j++;i=0;}if(j>5) //当j的值大于5时,k值加1{k++;j=0;}if(k>9) //当k的值大于9时,m值加1{k=0;m=0;}}三、实验结果本次实验让我深入理解单片机及一些外设的工作原理,掌握定时/计数机制,以及实现数字时钟设计的思维过程。

单片机实验报告数字时钟设计报告

单片机实验报告数字时钟设计报告

单片机实验报告数字时钟设计报告一、实验目的本次单片机实验的目的是设计并实现一个基于单片机的数字时钟。

通过该实验,深入了解单片机的工作原理和编程方法,掌握定时器、中断、数码管显示等功能的应用,提高综合运用知识解决实际问题的能力。

二、实验原理1、单片机选择本次实验选用了常见的 51 系列单片机,如 STC89C52。

它具有丰富的资源和易于编程的特点,能够满足数字时钟的设计需求。

2、时钟计时原理数字时钟的核心是准确的计时功能。

通过单片机内部的定时器,设定合适的定时时间间隔,不断累加计时变量,实现秒、分、时的计时。

3、数码管显示原理采用共阳或共阴数码管来显示时间数字。

通过单片机的 I/O 口控制数码管的段选和位选信号,使数码管显示相应的数字。

4、按键控制原理设置按键用于调整时间。

通过检测按键的按下状态,进入相应的时间调整模式。

三、实验设备与材料1、单片机开发板2、数码管3、按键4、杜邦线若干5、电脑及编程软件(如 Keil)四、实验步骤1、硬件连接将数码管、按键与单片机开发板的相应引脚通过杜邦线连接起来。

确保连接正确可靠,避免短路或断路。

2、软件编程(1)初始化单片机的定时器、中断、I/O 口等。

(2)编写定时器中断服务程序,实现秒的计时。

(3)设计计时算法,将秒转换为分、时,并进行进位处理。

(4)编写数码管显示程序,将时间数据转换为数码管的段选和位选信号进行显示。

(5)添加按键检测程序,实现时间的调整功能。

3、编译与下载使用编程软件将编写好的程序编译生成可执行文件,并下载到单片机中进行运行测试。

五、程序设计以下是本次数字时钟设计的主要程序代码片段:```cinclude <reg52h>//定义数码管段选码unsigned char code SEG_CODE ={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};//定义数码管位选码unsigned char code BIT_CODE ={0x01, 0x02, 0x04, 0x08, 0x10,0x20, 0x40, 0x80};//定义时间变量unsigned int second = 0, minute = 0, hour = 0;//定时器初始化函数void Timer_Init(){TMOD = 0x01; //定时器 0 工作在方式 1 TH0 =(65536 50000) / 256; //定时 50ms TL0 =(65536 50000) % 256;EA = 1; //开总中断ET0 = 1; //开定时器 0 中断TR0 = 1; //启动定时器 0}//定时器 0 中断服务函数void Timer0_ISR() interrupt 1{TH0 =(65536 50000) / 256;TL0 =(65536 50000) % 256;second++;if (second == 60){second = 0;minute++;if (minute == 60){minute = 0;hour++;if (hour == 24){hour = 0;}}}}//数码管显示函数void Display(){unsigned char i;for (i = 0; i < 8; i++)P2 = BIT_CODEi;if (i == 0){P0 = SEG_CODEhour / 10;}else if (i == 1){P0 = SEG_CODEhour % 10;}else if (i == 2){P0 = 0xBF; //显示“”}else if (i == 3){P0 = SEG_CODEminute / 10;else if (i == 4){P0 = SEG_CODEminute % 10;}else if (i == 5){P0 = 0xBF; //显示“”}else if (i == 6){P0 = SEG_CODEsecond / 10;}else if (i == 7){P0 = SEG_CODEsecond % 10;}delay_ms(1);//适当延时,防止闪烁}}//主函数void main(){Timer_Init();while (1){Display();}}```六、实验结果与分析1、实验结果将程序下载到单片机后,数字时钟能够正常运行,准确显示时、分、秒,并且通过按键可以进行时间的调整。

电子时钟设计实验报告

电子时钟设计实验报告

编号符号引脚说明编号符号引脚说明1 VSS 电源地9 D2 Data I/O2 VDD 电源正极10 D3 Data I/O3 V L 液晶显示偏压信号11 D4 Data I/O4 R S 数据/命令选择端12 D5 Data I/O5 R/W 读/写选择端13 D6 Data I/O6 E 使能信号14 D7 Data I/O7 D0 Data I/O 15 BLA背光源正极8 D1 Data I/O 16 BLK 背光源负极单片机电子时钟设计报告一、设计任务本次课程设计的电子时钟电路,是基于单片机STC89C52、时钟芯片和液晶显示,运用C语言编程实现。

电子时钟可以显示日期的年、月、日和时间的时、分、秒,具有复位功能。

二、系统硬件设备及芯片简介数字电子钟系统设计已经成熟,但是目前系统设计时基本都是采用 LED 作为显示电路,造成硬件电路复杂、功耗高、产品体积庞大等特点;液晶显示模块由于具有低功耗、寿命长、体积小、显示内容丰富、价格低、接口控制方便等优点,因此在各类电子产品中被极广泛地推广和应用。

字符型液晶显示模块是一类专门用于显示字母、数字、符号等点阵式液晶显示模块。

本系统设计采用字符型液品显示模块 LCD1602 作为显示器件,这样不仅简化了系统的硬件设计,而且极大地提高了系统的可靠性。

1 LCD1602 简介字符型液晶显示模块 LCD1602 已经是单片机应用设计中最常用的信息显示器件。

LCD1602 可以显示两行,每行16 个字符,采用+5V 电源供电,外围电路配置简单,价格便宜,具有很高的性价比。

2 LCD1602 功能介绍2.1 引脚功能LCD1602 采用标准 14 脚(无背光)或 16 脚(带背光)接口,各引脚功能见表 1。

表1 引脚功能2.2 LCD1602 读写指令LCD1602 读写指令较多且较复杂,具体使用可以查相关资料,下面仅列出最常用的的一些命令:①写指令 38H:显示模式设置;②写指令 08H:显示关闭;③写指令 01H:显示清屏;④写指令 06H:显示光标移动设置;⑤写指令 0CH:显示开及光标设置。

51单片机电子时钟课程设计报告实验报告

51单片机电子时钟课程设计报告实验报告

《单片机原理与应用》课程设计总结报告题目:单片机电子时钟(带秒表)的设计设计人员:张保江江润洲学号:********** **********班级:自动化1211指导老师:***目录1.题目与主要功能要求 (2)2.整体设计框图及整机概述 (3)3.各硬件单元电路的设计、参数分析及原理说明 (3)4.软件流程图和流程说明 (4)5.总结设计及调试的体会 (10)附录1.图一:系统电路原理图 (11)2.图二:系统电路PCB (12)3.表一:元器件清单 (13)4.时钟程序源码 (14)题目:单片机电子时钟的设计与实现课程设计的目的和意义课程设计的目的与意义在于让我们将理论与实践相结合。

培养我们综合运用电子课程中的理论知识解决实际性问题的能力。

让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。

课程设计的基本任务利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。

主要功能要求最基本要求1)使用MCS-51单片机设计一个时钟。

要求具有6位LED显示、3个按键输入。

2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。

3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。

开始计时时为000000,到235959后又变成000000。

4)使用3个键分别作为小时、分、秒的调校键。

每按一次键,对应的显示值便加1。

分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。

在调校时均不向上一单位进位(例如分加到59后变为00,但小时不发生改变)。

5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。

单片机实验电子钟报告

单片机实验电子钟报告

实验四 电子钟(定时器、中断综合实验)一、实验目的熟悉MCS51类CPU 的定时器、中断系统编程方法, 了解定时器的应用、实时程序的设计和调试技巧。

二、实验内容编写一个时钟程序, 产生一个50ms 的定时中断, 对定时中断计数, 将时、分、秒显示在数码管上。

三、程序框图主程序中断处理电子钟程序框图四、实验步骤 1.连线说明: E5 区A0 ←→ A3 区A0 E5 区CS ←→ A3 区CS5 E5 区CLK ←→ B2 区2MHzE5 区A.B.C.D ←→ G5 区A.B.C.D (排线每个8 位, 注意高低位一致) 2.时间显示在数码管上五、程序清单 ms50 DATA 31H ;存放多少个50ms sec DATA 32H ;秒 min DATA 33H ;分hour DATA 34H ;时buffer DATA 35H ;显示缓冲区EXTRN CODE(Display8)ORG 0000HLJMP STARORG 000BH ;定时器T0中断处理入口地址LJMP INT_Timer0ORG 0100HSTAR: MOV SP,#60H ;堆栈MOV ms50,A ;清零ms50MOV hour,#12 ;设定初值: 12:59:50MOV min,#59MOV sec,#50MOV TH0,#60 ;定时中断计数器初值MOV TL0,#176 ;定时50msMOV TMOD,#1 ;定时器0: 方式一MOV IE,#82H ;允许定时器0中断SETB TR0 ;开定时器T0STAR1: LCALL Display ;调用显示JNB F0,$CLR F0SJMP STAR1 ;需要重新显示时间;中断服务程序INT_Timer0: MOV TL0,#176-5MOV TH0,#60PUSH 01HMOV R1,#ms50INC @R1 ;50ms单元加1CJNE @R1,#20,ExitIntMOV @R1,#0 ;恢复初值INC R1INC @R1 ;秒加1CJNE @R1,#60,ExitInt1MOV @R1,#0INC R1INC @R1 ;分加1CJNE @R1,#60,ExitInt1MOV @R1,#0INC R1INC @R1 ;时加1CJNE @R1,#24,ExitInt1MOV @R1,#0ExitInt1: SETB F0ExitInt: POP 01HRETIHexToBCD: MOV B,#10DIV ABMOV @R0,BINC R0MOV @R0,AINC R0RETDisplay: MOV R0,#bufferMOV A,secACALL HexToBCDMOV @R0,#10H ;第三位不显示INC R0MOV A,minACALL HexToBCDMOV @R0,#10H ;第六位不显示INC R0MOV A,hourACALL HexToBCDMOV R0,#bufferLCALL Display8RETENDEXTRN CODE (Display8)BUFFER DA TA 60HORG 0000HAJMP MAINORG 000BHAJMP IT0PMAIN: MOV TMOD,#01HMOV 20H,#20HCLR AMOV 52H,A ;计数和显示MOV 51H,A ;空间清零MOV 50H,#50HMOV 40H,AMOV 41H,AMOV 43H,AMOV 44H,AMOV 46H,AMOV 47H,ASETB ET0SETB EAMOV TH0,#9EH ;计数器赋初值MOV TL0,#58HSETB TR0MOV 45H,#11HMOV 42H,#11HMOV R0,#BUFFERLCALL Display8HERE: AJMP HEREIT0P: PUSH PSWPUSH ACCMOV TH0,#9EH ;重新转入计数值MOV TL0,#58HDJNZ 20H,RETURN ;计数不满20返回MOV 20H,#20H ;重置中断次数MOV A,#01H ;秒加1ADD A,50HDA A ;秒单元十进制调制PUSH ACCCJNE A,#60H,SWS ;是否到60秒, 否则返回MOV A,#00HSWS: MOV R5,ASW AP AANL A,#0FHMOV 41H,AMOV A,R5ANL A,#0FHMOV 40H,A ;满60秒, 秒单元清零LCALL AAAPOP ACCMOV 50H,ACJNE A,#60H,RETURNMOV 50H,#00HMOV A,#01H ;分单元加1ADD A,51H ;分单元十进制调整DA APUSH ACCCJNE A,#60H,SWS1;是否到60分, 否则返回MOV A,#00HSWS1: MOV R5,A·SW AP AANL A,#0FHMOV 44H,AMOV A,R5ANL A,#0FHMOV 43H,ALCALL AAAPOP ACCMOV 51H,ACJNE A,#60H,RETURNMOV 51H,#00H ;满60分, 分单元清零MOV A,#01H ;时单元加1ADD A,52HDA APUSH ACCCJNE A,#24H,SWS2 ;是否到24小时, 否则返回MOV A,#00HSWS2: MOV R5,ASW AP AANL A,#0FHMOV 47H,AMOV A,R5ANL A,#0FHMOV 46H,ALCALL AAAPOP ACCMOV 52H,ACJNE A,#24H,RETURNMOV 52H,#00H ;满24小时, 时单元清零RETURN:POP PSWPOP ACCRETIAAA: MOV R0,#40H ;计数器的值赋MOV R1,#60H ;给显示空间MOV R5,#08HABC: MOV A,@R0MOV @R1,AINC R1INC R0DJNZ R5,ABCMOV R0,#BUFFERLCALL Display8RETEND六、思考题1.电子钟走时精度与哪些有关系?中断程序中给TL0赋值为什么与初始化程序中不一样?2、使用定时器方式二, 重新编写程序。

单片机电子钟实训报告

单片机电子钟实训报告

单⽚机电⼦钟实训报告XXXXXXXX⼤学XXXXX学院《单⽚机》实训报告专业班级学号姓名组号实验室成绩评定⽼师签名20XX年XX⽉XX⽇实训⽬的:掌握汇编语⾔程序设计和调试⽅法,熟悉键盘操作。

掌握RAM中的数据操作。

掌握程序设计⽅法。

掌握简单的数值转换算法。

了解单⽚机的结构,能利⽤单⽚机的内部硬件资源和外围常⽤器件进⾏⼩型实验,体会利⽤单⽚机汇编语⾔开发系统的⼯作过程,达到与毕业后实际⼯作情况⼀致的效果,彻底完成与毕业后实际⼯作环境“接轨”的⽬的实训任务:1、选定题⽬:设计⼀个电⼦时钟,格式为:XX XX XX由左向右分别为时、分、秒,利⽤单⽚机的定时器和外围的数码显⽰电路,以便可以进⼀步掌握定时器的使⽤和编程⽅法,进⼀步掌握中断服务程序的编程⽅法,进⼀步掌握数码显⽰电路的编程⽅法;2、理清思路,定时器每100uS中断⼀次,对中断次数进⾏计数,100uS计数10000次就是1S,然后对秒计数得到分和⼩时值,画出主程序框图,画出定时中断服务程序的框图,从⽽领会中断服务程序的原理,并着⼿编写该⼦程序;3、学会⽤伟福软件调试程序,并⽤该软件菜单的各项调试⼯具和窗⼝;结合硬件和软件,进⾏整体调试;数据转化为BCD码并显⽰程序流程图4、流程图:(⾃⼰弄)实训要求:1、实训要求①通过系统设计和调试实训等,要求获得单⽚机熟练的操作维护技能,领会单⽚机开发的整个过程;②实训结束后,每⼈写出实训报告,通过⽂字⽅式总结出本门课程全部的所学、所得,以此达⾄加深巩固、提⾼的⽬的;③实训中处理各种软、硬件故障,特别要求学⽣具有良好的⼼理素质和吃苦耐劳精神,因此,本实训对培养学⽣正确的劳动观念、组织纪律性、团队合作精神和严谨的科学作风起到了⾄关重要的作⽤。

2、实训报告在实训过程中完成各实训任务的同时,写1份实训报告,即实训⼼得体会(要求⼿写)。

⼀、硬件部分AT89C51芯⽚ 7SEG-MPX8-CC-BLUE共阴极数码管试验⼀1、设计要求:①⽤AT89C51芯⽚、7SEG-MPX8-CC-BLUE共阴极数码管完成动态扫描②7SEG-MPX8-CC-BLUE共阴极数码管中显⽰的数字依次为765432102、硬件连接:确定连接⽅式,AT89C51的P1接7SEG-MPX8-CC-BLUE共阴极数码管的显⽰数据,P2接⽚选3、硬件电路:4、汇编语⾔:5、调试过程:在调试过程中出现⼀些问题,⽐如数码管⽆法正常显⽰数字,有的显⽰正确了,有的⽆法显⽰。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子时钟设计实验报告
姓名:学号:班级:指导老师:
一、实验基本要求
利用定时计数器,设计一个电子时钟,使用前面使用过的显示子程序。

从左到右依次显示时分秒。

有两种方法实现,一种是在中断程序中计数,产生时分秒计数,送显示缓冲区。

另一种是中断程序每一秒清除一个位变量,而主程序通过监视位变量的变化来知道每秒的时间。

进而要求:
1.加入时间调整程序,使用两个或三个按钮,调节当前的时间。

类似平常使用的电
子表。

可以让正在调整的位闪烁显示。

2.可以加入一个闹钟钟设置,当所定的时间到时,产生断续的蜂鸣声。

可以加入日历的功能。

二、最终实现的功能
1、日历(年、月、日)显示与数值的修改
2、时钟(时分秒)显示及数值的修改
3、闹钟设定及数值的修改、到时响铃
4、秒表计时及秒表重置
三、设计核心思想
程序设计中设置定时器0作为基本时钟,中断每50ms进入一次,每20次中断即1秒,秒加一,在中断服务程序中执行60秒进位、60分进位。

通过独立式键盘,进行各项数值调整、定时器开启和暂停以及重置。

各个功能在分立的子函数中实现,在主函数中进行调用,结构清晰。

四、设计亮点
1、按键功能通过“按下时间的长短”丰富
在按键消抖结束后,再次判断按键按下的同时,记录按下时间的长短。

短按实现数值
的修改、计时暂停及启动,长按实现模式的切换和重置。

2、闹铃设置为一段音乐
通过查阅网上资料,将蜂鸣器的响声富有变化,从而实现一段有旋律的音乐。

3、函数独立
设计的程序中包含以下函数模块:延时、初始化、时间(日历、闹钟)显示、键盘扫描、秒表显示、定时器0中断函数(时钟)、定时器1中断(秒表)、音乐、闹钟及主函数。

4、各功能的实现采用模块化处理
模式1:时钟显示;模式2:日历显示;模式3:秒表显示;模式4:闹钟显示。

五、实验中的问题总结
LED数码管显示部分小结:
(1)要设置段选(P2.6)和位选(P2.7)。

(2)段选和位选需按照书上讲的逻辑编写。

虽然P0口作为段选,P2口作为位选,但是程序设计中位选时要将值赋给P0口(打开位选→赋位选→关闭位选)。

网上很多实验报告的代码位选是P2=0X**,但我在实际操作中发现,如果位选值赋给P2口,数码管的显示会出现不规则跳变,具体原因不清楚。

段选可以赋值给P0口(打开段选→赋段选→关闭段选)。

六、实验心得
本次实验设计历时10天,初期设计并不顺利,因为设计的构思实际操作障碍重重。

通过上网查阅电子时钟的资料,自学C51编程,结合汇编语言的部分想法,自主设计了程序框架。

显示函数借鉴了网上经验,通过自己的实际操作进行了一定的修改,使其切实可行。

键扫描函数根据教材提供的程序进行相应的设计,并根据自己查阅的C51书籍进行了相应的功能扩充。

程序编写过程中,充分结合了自己的所学知识,将程序设计为模块化,主函数简洁清晰,体现了高级语言的特点。

本次实验的程序烧录达200多次,因为一些原因无法进行debug,所以非语法错误的BUG
均为自己调试,本次实验成果来之不易。

在未来的学习过程中依旧要坚持不懈的努力,成功只属于那些坚持到底的人。

七、实验程序及说明
【全局变量定义及部分函数的声明】
说明:“歌曲音调”“歌曲节奏”曲子网络【各项内容初始化】
【延时函数】
【时间、日历、闹钟显示函数】
【秒表显示函数】
说明:因为秒表显示的数字位数(分钟、十秒、秒、毫秒)和时钟(时分秒)不同,故需要分成两个显示函数。

【定时器0中断函数(时钟)函数】
【定时器1中断(秒表)函数】
【蜂鸣器音乐及闹钟函数】
【键盘扫描函数】
说明:长短按键的实现通过判断length和flag标志。

即Length满足一定时长后,转移到相应的模式;若按下时间不满足判断条件,则视为“短按”,执行短按的相应功能。

独立式键盘从左到右将键盘编号为1~4。

按键1:短按——时钟、秒表停时及启动;长按——转至模式0(时钟模式)。

按键2:短按——秒(时钟和闹钟)、天数值调整;长按——返回上一模式(若为模式0,
则无上一模式)。

按键3:短按——分(时钟和闹钟)、月数值调整;长按——进入下一模式(若为模式0,则下一模式为模式1,即日历显示)。

按键4:短按——时(时钟和闹钟)、年的数值调整;长按——秒表重置。

【主函数】。

相关文档
最新文档