当前位置:文档之家› 单片机实验报告(电子时钟)

单片机实验报告(电子时钟)

一、课程设计的内容和要求:

1了解单片机的种类,掌握单片机的工作原理;

2 掌握利用单片机进行系统设计的方法;

3掌握利用protel进行原理图设计和PCB设计的方法;

4学会进行单片机硬件调试和软件调试;

5 了解单片机系统整个设计开发流程。

二、设计装置功能

1、用单片机实现设计要求

(1)实现功能:

①正常的24小时制的电子表功能显示(时/分/秒)。

②任意时间(时/分/秒)闹钟时刻的设置并在设定时刻响铃。

(2)所使用器件:

STC 89C52RC单片机1个、2位共阳极数码管3个、蜂鸣器1个、74LS138一片、74LS47一片、74HC04一片、电阻、电容及其他辅助电子元件。

(3)显示时间与闹钟时刻的设置:

单片机的人机操作部分由六个按钮组成。

从电子钟电路板上(从左到右)分别是:

①单片机复位键②闹钟开关③小时位累加键

④分钟位累加键⑤秒钟位累加键⑥闹钟/时间显示切换键

按键说明:

复位键——把3个2位数码管显示数字全部清零。

闹钟开关键——按下键,闹钟开关模式切换。

时针位累加键——按下键,则实现时针位的累加00-23(累加循环)。

分针位累加键——按下键,则实现分针位的累加00-59(累加循环)。

秒针位累加键——按下键,则实现秒针位的累加00-59(累加循环)。

闹钟/时间显示切换键——按下键,能够实现数码管闹钟和时间两种显示功能的切换。

三、设计问题分析

面对的问题主要是两方面:一个是软件的设计,也就是实现计时定时的控制功能的程序编辑,在电脑上模拟需要实现的功能;另一个是硬件的设计,需要我们自己购买器件、设计并焊接电路板。

而更为重要的一步是将软件、硬件相结合,做好电路后,我们试着把程序写入芯片测试,然而没有获得应该有的显示,接着我们多次检查电路,修改程序,在不断调试中终于实现正确显示。

四、设计思路

本次设计的系统以动态显示显示时分秒模块,它能显示正确的时间,而且所显示时间与北京时间相同,基本做到同步,显示清晰明亮,可读性强。

系统主程序开始后,首先是对系统环境初始化,设置好时分秒后系统开始运行;然后可打开闹钟,预设响铃的时刻,计时系统到该时刻后自动响设定铃声。使用者还可以根据自身的需要随时打开关闭闹钟。

由于系统的操作符合现在市面上电子表的显示和使用风格,设计人性化,因此该系统的实用性较强。

在闹铃的设置上,原本想用单片机唱出歌曲“最炫民族风”的,可惜作为编程员的我技术有限,虽然实现在不计时的情况下唱出声音,但是没能封装进现有

的计时程序中,这个是一件比较遗憾的事情。最后设置闹铃为“滴滴”的响声,一秒变换一次,虽然简单,不过使用可靠,并具有状态显示提示的功能。

(1)实验原理图

(2)Proteus Professional仿真图

(3)pcb接线板图

五、实验程序设计

单片机运行程序如下:

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP SERVE0 ;设置计数器0溢出跳转参数MAIN:MOV SP,#60H

MOV P1,#00H

MOV TMOD,#01H ;设置计时器0使用1模式

MOV TL0,#0E5H

MOV TH0,#0F0H ;设置计时器0初值

CLR P2.6 ;初状态关闭闹铃信号灯

SETB P2.7 ;初状态关闭闹铃响声

SETB ET0

SETB TR0

SETB EA ;打开中断,开始计时

MOV R1,#253 ;设置计数器0溢出次数

MOV R2,#00H ;设置时钟动态扫描初值为0

MOV R3,#00H ;时钟闹铃切换标志位,默认为显示时钟

MOV R4,#00H ;设置闹铃动态扫描初值为0

MOV R5,#00H ;设置是否按键开启闹铃,默认为不开启

MOV R6,#00H ;闹铃条件满足后,闹铃的响应次数,默认为0

MOV 30H,#00H ;时钟秒针位

MOV 31H,#00H ;时钟分针位

MOV 32H,#00H ;时钟时针位

MOV 40H,#00H ;闹铃秒针位

MOV 41H,#00H ;闹铃分针位

MOV 42H,#00H ;闹铃时针位,以上程序段为初始化各变量参数

LOOP:JB P0.0,NOPRESS2

CALL FILTER

MOV A,R3

CPL A

MOV R3,A

NOPRESS1:JNB P0.0,$

CALL FILTER ;对按键0的设置,实现闹铃与时钟切换,默认显示时钟NOPRESS2:JB P0.1,NOPRESS4

CALL FILTER

CJNE R3,#00H,LING1

MOV A,30H

ADD A,#1

DA A

MOV 30H,A

CJNE A,#60H,NOPRESS3

MOV 30H,#00H

JMP NOPRESS3

LING1:MOV A,40H

ADD A,#1

DA A

MOV 40H,A

CJNE A,#60H,NOPRESS3

MOV 40H,#00H

JMP NOPRESS3

NOPRESS3:JNB P0.1,$

CALL FILTER ;对按键1的设置,实现分别对时钟与闹铃的秒针的值

的更改

NOPRESS4:JB P0.2,NOPRESS6

CALL FILTER

CJNE R3,#00H,LING2

MOV A,31H

ADD A,#1

DA A

MOV 31H,A

CJNE A,#60H,NOPRESS5

MOV 31H,#00H

JMP NOPRESS5

LING2:MOV A,41H

ADD A,#1

DA A

MOV 41H,A

CJNE A,#60H,NOPRESS5

MOV 41H,#00H

JMP NOPRESS5

NOPRESS5:JNB P0.2,$

CALL FILTER ;对按键2的设置,

实现分别对时钟与闹铃的分针的值的更改

NOPRESS6:JB P0.3,NOPRESS8

CALL FILTER

CJNE R3,#00H,LING3

MOV A,32H

ADD A,#1

DA A

MOV 32H,A

MOV 32H,#00H

JMP NOPRESS7

LING3:MOV A,42H

ADD A,#1

DA A

MOV 42H,A

CJNE A,#24H,NOPRESS7

MOV 42H,#00H

JMP NOPRESS7

NOPRESS7:JNB P0.3,$

CALL FILTER ;对按键3的设置,实现分别

对时钟与闹铃的时针的值的更改

NOPRESS8:JB P0.4,NOPRESS10

CALL FILTER

CPL P2.6

MOV A,R5

CPL A

MOV R5,A

MOV R6,#00H

SETB P2.7

NOPRESS9:JNB P0.4,$

CALL FILTER ;对按键4的设置,实现闹铃状态的切换,

默认闹铃为关

NOPRESS10: JMP LOOP ;以上为按键的设置

SERVE0:MOV TL0,#0E5H

MOV TH0,#0F0H

DJNZ R1,SCAN

MOV A,30H

CJNE A,40H,TURN1

MOV A,31H

CJNE A,41H,TURN1

MOV A,32H

CJNE A,42H,TURN1

MOV R6,#60 ;判断闹铃条件

TURN1: MOV A,30H

ADD A,#1

DA A

MOV 30H,A

CJNE R6,#00H,MING

SETB P2.7

JMP OK ;无闹铃状态下,秒值增加时对闹铃强制复位,

防止手触电路板造成闹铃误响

MING: CPL P2.7

DEC R6

CJNE R6,#00H,OK

CLR P2.6 ;满足闹铃状态时,每过1秒钟

对闹铃的电位进行一次修改,

达到响铃的目的

OK: CJNE A,#60H,INC_TIM

MOV 30H,#00H

MOV A,31H

ADD A,#1

DA A

MOV 31H,A

CJNE A,#60H,INC_TIM

MOV 31H,#00H ;时钟对分针值的自加

MOV A,32H

ADD A,#1

DA A

MOV 32H,A

CJNE A,#24H,INC_TIM

MOV 32H,#00H ;时钟对时针值的自加

INC_TIM:MOV R1,#253 ;设置计时器0计时溢出时的操作

SCAN:CJNE R6,#00H,PROTECT

SETB P2.7 ;无闹铃时每一次溢出操作都闹铃复位,防止误

PROTECT: CJNE R3,#0,EXCHANGE ;判断条件,满足则动态显示闹铃,否则动态显

示时钟

CJNE R2,#6,DISPLAY2

MOV R2,#00H

DISPLAY2:CJNE R2,#0,CHK_12

MOV A,30H

ANL A,#0FH

ADD A,#00H

JMP RELOAD2 ;显示时钟秒针的个位

CHK_12:CJNE R2,#1,CHK_22

MOV A,30H

SWAP A

ANL A,#0FH

ADD A,#10H

JMP RELOAD2 ;显示时钟秒针的十位

CHK_22:CJNE R2,#2,CHK_32

MOV A,31H

ANL A,#0FH

ADD A,#20H

JMP RELOAD2 ;显示时钟分针的个位

CHK_32:CJNE R2,#3,CHK_42

MOV A,31H

SWAP A

ANL A,#0FH

ADD A,#30H

JMP RELOAD2 ;显示时钟分针的十位

CHK_42:CJNE R2,#4,CHK_52

MOV A,32H

ANL A,#0FH

ADD A,#40H

JMP RELOAD2 ;显示时钟时针的个位

CHK_52:CJNE R2,#5,RELOAD2

MOV A,32H

SWAP A

ANL A,#0FH

ADD A,#50H

JMP RELOAD2 ;显示时钟时针的十位

RELOAD2:MOV P1,A

INC R2

MOV TH0,#0F0H

MOV TL0,#60H ;完成一次跳转

BACK:RETI

EXCHANGE:CJNE R4,#6,DISPLAY1

MOV R4,#00H ;当满足显示闹铃条件,则动态显示闹铃DISPLAY1:CJNE R4,#0,CHK_11

MOV A,40H

ANL A,#0FH

ADD A,#00H

JMP RELOAD1 ;显示闹铃秒针个位

CHK_11:CJNE R4,#1,CHK_21

MOV A,40H

SWAP A

ANL A,#0FH

ADD A,#10H

JMP RELOAD1 ;显示闹铃秒针十位

CHK_21:CJNE R4,#2,CHK_31

MOV A,41H

ANL A,#0FH

ADD A,#20H

JMP RELOAD1 ;显示闹铃分针个位

CHK_31:CJNE R4,#3,CHK_41

MOV A,41H

SWAP A

ANL A,#0FH

ADD A,#30H

JMP RELOAD1 ;显示闹铃分针十位

CHK_41:CJNE R4,#4,CHK_51

MOV A,42H

ANL A,#0FH

ADD A,#40H

JMP RELOAD1 ;显示闹铃时针个位

CHK_51:CJNE R4,#5,RELOAD1

MOV A,42H

SWAP A

ANL A,#0FH

ADD A,#50H

JMP RELOAD1 ;显示闹铃时针十位RELOAD1:MOV P1,A

INC R4

MOV TH0,#0F0H

MOV TL0,#0E5H

JMP BACK ;完成一次跳转

FILTER:MOV R6,#60H ;设置防抖动子程序D1:MOV R7,#248

DJNZ R7,$

DJNZ R6,D1

RET

END

原定闹铃代码(未封装)

ORG 0000H

LJMP START

ORG 000BH

INC 20H ;中断服务,中断计数器加1

MOV TH0,#0D8H

MOV TL0,#0EFH ;12M晶振,形成10毫秒中断

RETI

START: MOV SP,#50H

MOV TH0,#0D8H

MOV TL0,#0EFH

MOV TMOD,#01H

MOV IE,#82H

MUSIC0: NOP

MOV DPTR,#DAT ;表头地址送DPTR

MOV 20H,#00H ;中断计数器清0

MOV B,#00H ;表序号清0 MUSIC1: NOP

CLR A

MOVC A,@A+DPTR ;查表取代码

JZ END0 ;是00H,则结束

CJNE A,#0FFH,MUSIC5

LJMP MUSIC3

MUSIC5: NOP

MOV R6,A

INC DPTR

MOV A,B

MOVC A,@A+DPTR ;取节拍代码送R7

MOV R7,A

SETB TR0 ;启动计数

MUSIC2: NOP

CPL P2.0

MOV A,R6

MOV R3,A

LCALL DEL

MOV A,R7

CJNE A,20H,MUSIC2 ;中断计数器(20H)=R7否? ;不等,则继续循环

MOV 20H,#00H ;等于,则取下一代码

INC DPTR

; INC B

LJMP MUSIC1

MUSIC3: NOP

CLR TR0 ;休止100毫秒

MOV R2,#0DH

MUSIC4: NOP

MOV R3,#0FFH

LCALL DEL

DJNZ R2,MUSIC4

INC DPTR

LJMP MUSIC1

END0: NOP

MOV R2,#64H ;歌曲结束,延时1秒后继续

MUSIC6: MOV R3,#00H

LCALL DEL

DJNZ R2,MUSIC6

LJMP MUSIC0

DEL: NOP

DEL3: MOV R4,#02H

DEL4: NOP

DJNZ R4,DEL4

NOP

DJNZ R3,DEL3

RET

NOP

DAT:

DB 39h,20h,39h,10h,40h,10h,39h,20h,30h,20h

DB 2bh,10h,26h,05h,2bh,05h,30h,10h,2bh,10h,26h,40h

DB 39h,10h,1ch,10h,1ch,10h,20h,10h

DB 2bh,10h,26h,05h,2bh,05h,30h,10h,2bh,10h,26h,40h

DB 30h,10h,39h,10h,39h,10h,30h,10h,2bh,20h,40h,10h,40h,10h

DB 26h,10h,20h,10h,26h,10h,2bh,10h,2bh,10h,30h,40h

DB 39h,10h,30h,10h,2bh,10h,26h,10h,2bh,10h,30h,10h

DB 40h,10h,4bh,10h,39h,40h

END

六、实验过程及其结果

(1)制定好硬件原理图,编写好单片机运行程序后,我们在Proteus上进行了仿真,然后开始设计PCB板。以便购买元件在进行焊接。

(2)在我们组员同心协力,共同努力下,在不断调试中,经历了很多挫折,但是最终还是完成了预定功能的24小时制电子闹钟系统。

(3)功能在长期的检验下合格。时间显示每四天落后三秒钟,符合日常使用的标准,任意时间的闹钟也按时响,符合日常使用标准。

(4)在解决单片机电源的问题上,为了节约电池与稳定运行,我们使用了USB接口提供5V 的电压供电子闹钟使用,这一措施具有很大促进作用,极大方便了软件调试、元件的精准的测量。

七、实验总结

作为我组的程序设计员,我得到以下体会:

1.这次程序设计的过程让我进一步熟悉了KEIL与Proteus软件的使用,掌握了时钟编程的

细节过程,进一步理解课本知识,对元器件的认识也进一步加深。

2.通过这次设计,理解了51单片机的优点以及通用普遍性,可知单片机在现实生活中的应

用是十分广泛的。

3.在编写代码时应该小心谨慎,稍有差错变不会得出正确的结论,KEIL软件只能查出简单

的语法错误,然而一些细节的逻辑错误KEIL软件无法查出,所以应该一步一步实现功能,脚踏实地检查代码的正确性。虽然编写程序单调繁琐,但是我还是能从中找到乐趣,在每一次进步,每一次成功封装的背后都少不了辛勤的汗水,所以个人感想:编程的感觉很好。

4.单片机实物系统开发中我们经历了很多挫折,其中最难的一部分是将仿真的系统如何变成

实物的过程。我们在最初仿真成功后,焊好电路板却发现这个系统不能运行,在使用万用表检查线路之后,发现了不少短线以及接触不良,在修整了以上错误之后,依然不能实现,因此有对芯片的电位进行了测量,找了不少网上芯片的真值表的资料,最后发现错误在显示管的极性上,更换为共阳极数码管后即可正确显示。

5.调试的时候遇到的小问题还有许多,最主要的是时间与北京时间不同步,原因在与中断的

时间与理想值不同,因此我们不断地修改定时程序,在一个定值范围内并不断检验,最后时间不断与北京时间趋近,最后经过四天检验,落后北京时间仅仅三秒。本应再加矫正部分实现更为精准的显示,然而因为时间问题不能进一步修改了,望老师见谅。

6.在闹铃的设计上,我采用了“滴滴”的响声,听起来感觉就像家里的洗衣机,没有美感,

在实验程序后面我附上了原来应该封装进去的“最炫民族风”的代码,虽然核心思想是别人的,但是谱子部分是我原创的,如果老师感兴趣,直接将代码放入Proteus软件的模拟中则可以欣赏。

7.最后感谢我的组员,没有他们的努力,我们就不能实现目标,顺利完成任务。在此也非常

感谢老师,在教会我们知识的同时也让我们在实践中体会到单片机的魅力,我们会继续努力,争取更大进步!

八、主要参考文献、资料:

[1] 梅丽凤、等。单片机原理及接口技术-习题详解与实验指导,清华大学出版社,北京交通大学出版

社,2007。

[2] 梅丽凤、等。单片机原理及接口技术,清华大学出版社,北京交通大学出版社,2007。

[3] 万光毅,等。单片机实验与实践教程(一)。北京航空航天大学出版社,2003

[4] 范蟠果。单片机实验与应用系统设计。国防工业出版社,2007

[5] 汪建,等。MCS-96系列单片机原理及应用技术(第二版)。华中科技大学出版社,2006

[6] 刘复华。MCS296单片机及其应用系统设计。清华大学出版社,2004

[7] 邓奕,马双宝,谢龙汉。Protel 99 SE原理图与PCB设计。人民邮电出版社,2011。

[8] 赵景波。Protel 99 SE电路设计与制板。机械工业出版社,2010。

[9] 赵月飞,郭会平,胡仁喜。Protel 99 SE基础与实例教程。机械工业出版社,2010。

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

单片机课程设计:电子钟 一、实现功能 1、能够实现准确计时,以数字形式显示时、分、秒的时间。 2、小时以24小时计时形式,分秒计时为60进位,能够调节 时钟时间。 3、闹钟功能,一旦走时到该时间,能以声或光的形式告警提 示。 4、能够实现按键启动与停止功能。 5、能够实现整点报时功能。 6、能够实现秒表功能。 二、设计思路 1、芯片介绍 VCC:电源。

GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL 门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期

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

单片机实验报告 题目:数字时钟的设计指导老师: 班级: 姓名: 学号:

一、实验目的 通过实践设计出能准确显示时、分、秒的时钟,并可以调时、定时,包括蜂鸣器的整点报时与闹钟功能。 二、实验要求 基本功能:准确计时,以数字形式显示时间,24时制;具备时、分调整和整点报时功能。 扩展功能:定时与闹钟功能 三、设计方案及论证 Ⅰ、硬件部分: 1、时钟显示 用七段LED数码管来实现,采用共阳管和 PNP驱动方式。PNP工作于开关状态,基极通过 1K的电阻连到单片机的P2口。为节省P口, 将六位数码管的8段段选端分别并接并加上 470Ω的限流电阻,由P0口控制,给低电平的 段会被点亮。因为六位管的段被并接只能通过 动态扫描的方式来显示,即利用管子的余晖和 人眼的视觉残留实现六位管子在“同一时间” 显示不同的值,而扫描这是靠位选的轮流有效 实现。如左图。

2、整点报时和闹钟铃 此部分用一个5V有源蜂鸣器来做,同样 用PNP作为开关来控制,此外为防止其可能的 方向电压尖峰在蜂鸣器两端反接一个IN4148 二极管来保护。如右图。 3、校时、定时 此部分由4个按键控制,如下图,key1和key3用来选定要调校的时、分的位,被选中的为将闪烁;key2用来是选中的为按相应的进制增1变化;key4是进入定时模式,定时的时数改变与调时方法相同。

4、单片机最小系统 本实验采用STC89C52RC单片机,指令系统完全与51兼容。其最小系统包含电源电路、晶振电路、复位电路。 本实验才用STC单片机的典型系统,各模块参数配置如图: 其中晶振频率为12MHz,震荡部分电容为30pF的瓷片电容。 复位电路采用图示的兼有上电复位和按键复位功能的方式,其中的电容为10uF电解电容。

单片机实验报告--电子时钟制作

电子时钟制作 学院计算机科学与技术 专业计算机科学与技术(师范) 学号 学生姓名

一、设计内容与设计目的 1、编写出一个电子钟,六个数码管每两个一组来分别显示小时、分和秒;一个 蜂鸣器来实现报时或闹铃等声音功能;八个二极管玩花样设计,完美电子的整体设计。 2、熟悉整个电路图,练习一下焊接操作。 3、熟练掌握C51的编程方法与技巧。 4、能够有效地控制数码管、二极管、蜂鸣器和键盘的操作(可采用多种形式)。 5、能够根据原理图焊接电路板,经过调试,保证整个电路板没有虚焊点。 硬件设计要求 1、根据项目要求,去选择相应的电路,比如MCU系统,输入输出驱动电路, 电源供电电路。 2、整体布局合理,标注规范、明确、美观、不产生歧义。 3、列出完整的元件清单(标号、型号及大小、封装形式、数量)。 4、估算电路板的功耗,并对供电形式提出要求。 5、根据设计好的原理图,焊接实物。 软件设计要求 1、所编代码要能够实现以下基本功能,当时时间的设定,定点闹铃,秒针走一 下四个二极管同时向右移一位。 2、根据项目要求,设计软件整体规划,人机对话,各模块的关联,底层驱动模 块。 3、程序在必要的地方进行注释。 每个函数的出入口要有输入输出参数的说明。 程序必须具有具有良好的可读性,可重用,容易调试和维护。 4、使用c语言进行编程。 二、硬件系统设计 1.STC12C5A60S2控制模块 考虑到设计功能需要,控制器的功能用于外部键盘信号的接收和识别、数码管的显示控制等,我们选择了学习过的12C5A60S2系列单片机,具有反应速度极快,工作效率特高的特点。 12C5A60S2是一种低功耗、高性能得微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。另外掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 2.键盘功能模块 根据系统的基本的要求,基于时间的观看和设定等功能,采用由四个键构成的独立式键盘分别接在单片机的P3.2-P3.5口,非常的方便,同时相对于独立式键盘大大节省了空间,在软件的设计时带来了极大的方便,使程序简易明了,可读性强。

单片机电子时钟课程设计实验报告(1)

单片机电子时钟课程设计实验报告(1)单片机电子时钟课程设计实验报告 一、实验内容 本次实验的主要内容是使用单片机设计一个电子时钟,通过编程控制单片机,实现时钟的显示、报时、闹钟等功能。 二、实验步骤 1.硬件设计 根据实验要求,搭建电子时钟的硬件电路,包括单片机、时钟模块、显示模块、按键模块等。 2.软件设计 通过C语言编写单片机程序,用于实现时钟功能。 3.程序实现 (1)时钟显示功能 通过读取时钟模块的时间信息,在显示模块上显示当前时间。 (2)报时功能 设置定时器,在每个整点时,通过发出对应的蜂鸣声,提示时间到达整点。 (3)闹钟功能 设置闹钟时间和闹铃时间,在闹钟时间到达时,发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。 (4)时间设置功能

通过按键模块实现时间的设置,包括设置小时数、分钟数、秒数等。 (5)年月日设置功能 通过按键模块实现年月日的设置,包括设置年份、月份、日期等。 三、实验结果 经过调试,电子时钟的各项功能都能够正常实现。在运行过程中,时钟能够准确、稳定地显示当前时间,并在整点时提示时间到达整点。在设定的闹铃时间到达时,能够发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。同时,在需要设置时间和年月日信息时,也能够通过按键进行相应的设置操作。 四、实验感悟 通过本次实验,我深刻体会到了单片机在电子设备中的广泛应用以及C 语言在程序设计中的重要性。通过实验,我不仅掌握了单片机的硬件设计与编程技术,还学会了在设计电子设备时,应重视系统的稳定性与可靠性,并善于寻找调试过程中的问题并解决。在今后的学习和工作中,我将继续加强对单片机及其应用的学习与掌握,努力提升自己的实践能力,为未来的科研与工作做好充分准备。

单片机电子时钟实验报告

郑州轻工业学院单片机实验报告 实验名称: 姓名: 院(系): 专业班级: 学号: 指导教师:陈晓雷、王小瑞 成绩: 时间:年月日至年月日

实验电子时钟(定时器、中断综合实验) 一、实验目的 熟悉MCS-51定时器,中断初始化编程方法,了解定时器的应用,时钟程序的设计与调试技巧。 二、实验内容 按照STC单片机实验板电路,或者自己设计电路原理图,编写程序,基本要求:用定时器产生0.1S定时中断,对时钟计数器计数,并将数值实时地送数码管显示。扩展要求:可键盘调整时间、万年历、定时报警等。 三、程序框图 1

定时中断 四、实验步骤 连续运行程序,在键盘上输入时间初值,执行,数码管上实时显示时间值。 五、思考题 1.电子钟走时精度和程序中哪些常数有关? 2.修改程序使定时器工作方式改变,调节有关参数,进一步提高精度。 3.设计一个倒计时时钟,如何来修改程序? 六、参考程序 0030 758160 CHK00: MOV SP,#60H 0033 1204A5 LCALL LEDP 0036 900081 MOV DPTR,#CLOCK 0039 A882 MOV R0,DPL 003B A983 MOV R1,DPH 003D 90000B MOV DPTR,#000BH 0040 7402 MOV A,#02H 0042 F0 MOVX @DPTR,A 0043 A3 INC DPTR 0044 E9 MOV A,R1 2

0045 F0 MOVX @DPTR,A 0046 A3 INC DPTR 0047 E8 MOV A,R0 0048 F0 MOVX @DPTR,A 0049 120DF0 CHK0: LCALL LCK0 ;键扫,显示子程序 004C 120068 LCALL PTDS0 ;显示缓冲区放数子程序 004F 758901 MOV TMOD,#01H 0052 43A882 ORL IE,#82H 0055 758AB7 MOV TL0,#0B7H 0058 758C3C MOV TH0,#3CH ;定时中断初始化 005B 752300 MOV 23H,#00H 005E D28C SETB TR0 ;开定时 0060 120425 LOO5: LCALL DIS ;显示 0063 120068 LCALL PTDS0 0066 80F8 SJMP LOO5 0068 7879 PTDS0: MOV R0,#79H 006A E522 MOV A,22H 006C 1177 ACALL PTDS 006E E521 MOV A,21H 0070 1177 ACALL PTDS 0072 E520 MOV A,20H 0074 1177 ACALL PTDS 0076 22 RET 0077 F9 PTDS: MOV R1,A ;拆送显示缓冲区 0078 117C ACALL PTDS1 007A E9 MOV A,R1 007B C4 SWAP A 007C 540F PTDS1: ANL A,#0FH 007E F6 MOV @R0,A 007F 08 INC R0 0080 22 RET 0081 758AB7 CLOCK: MOV TL0,#0B7H 0084 758C3C MOV TH0,#3CH ;恢复初值 0087 C0D0 PUSH PSW 0089 C0E0 PUSH ACC 008B D2D3 SETB 0D3H ;保护 008D 0523 INC 23H ;0.1秒加1 008F E523 MOV A,23H 0091 B40A27 CJNE A,#0AH,DONE ;1秒到吗? 0094 752300 MOV 23H,#00H ;清0.1秒单元 0097 E522 MOV A,22H 0099 04 INC A ;秒加1 009A D4 DA A 009B F522 MOV 22H,A ;十进制调整 009D B4601B CJNE A,#60H,DONE ;60秒到吗? 00A0 752200 MOV 22H,#00H ;秒单元清零 00A3 E521 MOV A,21H 00A5 04 INC A 3

单片机电子时钟实验报告

单片机电子时钟实验报告 一、实验目的: 1.了解单片机的基本知识和工作原理; 2.掌握单片机的时钟生成方法; 3.实现一个基本的电子时钟。 二、实验器材: 1.STC89C52单片机开发板; 2.LCD1602液晶显示屏; 3.外部晶体振荡器; 4.面包板、杜邦线等。 三、实验原理: 单片机是由一个集成电路芯片组成的微型计算机系统。它具有高度集成和灵活应用的特点,被广泛应用于各种电子设备中。STC89C52是一种常见的单片机,具有可编程的特点,可以通过编写程序实现各种功能。 为了实现电子时钟功能,我们需要了解单片机的时钟生成方法。单片机一般内部包含一个振荡器电路,通过外部晶体振荡器提供的时钟信号来控制单片机的工作速度。具体实现时钟功能需要通过编写程序生成一个固定频率的脉冲信号,并通过控制液晶显示屏显示当前的时间。 四、实验步骤:

1.将STC89C52单片机开发板、液晶显示屏、外部晶体振荡器等连接起来,按照电路图进行布线。 2.编写程序,通过设置定时器,生成1毫秒的定时中断信号。在中断程序中,获取当前的系统时间,并进行相应的显示。 4.观察液晶显示屏,检查是否显示当前的时间,如正常显示,则实验成功。 五、实验结果与分析: 经过实验,我们成功实现了一个简单的电子时钟。液晶显示屏能够正常显示当前的时间,而且精度较高。实验过程中,我们对单片机的工作原理和编程方法有了更深入的了解。 六、实验心得与体会: 通过这次实验,我掌握了单片机的基本知识和工作原理,并实际编写了一个电子时钟程序。通过实际操作,我对单片机的应用有了更深入的理解,也提高了动手能力和解决问题的能力。在今后的学习和工作中,我将继续深入学习单片机的原理和应用,不断提高自己的技术水平。

单片机电子时钟实验报告

一、实验任务及要求 在焊接的电路板中,4个LED数码管,设计带有闹铃功能的数字时钟,要求: 1、在4位数码管上显示当前时间;显示格式“时时分分”; 2、由LED闪动做秒显示; 3、利用按键可对时间及闹玲进行设置,并可显示闹玲时间;当闹玲时间到蜂鸣器发出声响,按停止键使可使闹玲声停止; 二、方案论证与比较 数字时钟方案 数字时钟是本设计的最主要的部分;根据需要,可利用两种方案实现; 方案一:本方案采用Dallas公司的专用时钟芯片DS12887A;该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单;为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池;当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统;而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间; 方案二:本方案完全用软件实现数字时钟;原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息;利用定时器与软件结合实现5毫秒定时中断,每产生一次中断,存储器内相应的计数值加1;若计数值达到200,则将其清零,并将方案一:静态显示;所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止;该方式每一位都需要一个8 位输出口控制;静态显示时较小的电流能获得较高的亮度,且字符不闪烁;但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费;

方案二:动态显示;所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次;利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度合适,字符才不闪烁;显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关;调整参数可以实现较高稳定度的显示;动态显示节省了I/O口,降低了能耗; 从节省I/O口和降低能耗出发,本设计采用方案二; 三、各个部分的分析 1显示电路:通过4个LED显示屏显示分钟和小时 两个两联的LED显示器,通过与单片机P1接口连接实现显示功能;而实现4个LED 灯动态显示,靠的是位选电路 2位选电路 四位共阳LED数码管,其标号分别为HourH,HourL,MinL,MinH,低电平选通,且任何时候仅有一位输出低电平,显示时对各显示器进行动态扫描,显示器分时轮流工作;虽然每次只有一个显示器显示,但是由于人的视觉暂留现象我们仍会感觉所有的显示器都在同时显示;P0口作为输出口控制8个发光二极管的亮灭,控制数码管的显示;因此,可以实现4个LED在我们看来同时亮,显示时间; 3)闹铃部分:使用蜂鸣器实现闹钟功能 其中,buzzer端口接到单片机的输出;端口连接在最后介绍 4)开关部分:使用了5个开关控制整个电路的启动,修改时间,设置闹钟,关闭电路等功能为查询方式典型电路;其中Setbutton为复位开关,swtich为转换模式开关,即工作模式和调时间模式,Increase为调时间模式中控制时间变化的按钮,STRAT和STOP分别为开启和结束按钮,这5个开关分别接到端口,以控制其输

单片机数字时钟实验报告

单片机数字时钟实验报告 引言: 数字时钟是现代人们生活中不可或缺的物品之一。现代数字时钟的核心是单片机,而且数字时钟的制作也是单片机初学者的必备实验之一。本文将详细介绍单片机数字时钟的制作过程和原理。 实验原理: 数字时钟的原理非常简单,它由单片机、时钟芯片、LED数码管等元件组成。单片机通过时钟芯片来获取时间信息,并将时间信息通过端口输出给LED数码管,从而显示当前时间。单片机的主要作用是控制时钟芯片的读取和LED数码管的显示。 实验材料: 1. 单片机:STC89C52 2. 时钟芯片:DS1302 3. LED数码管:共阳极4位LED数码管 4. 电路板、电阻、电容、晶体振荡器、按键、排针等元件 实验步骤:

1. 确定电路原理图:根据实验原理,确定单片机、时钟芯片和LED 数码管之间的电路连接方式。 2. 绘制电路布局图:将电路原理图转换为真实的电路布局图,并根据元件大小和数量选择合适的电路板。 3. 焊接电路:根据电路布局图进行电路的焊接,并进行电路的检查和修正。 4. 编写程序:根据实验原理编写单片机程序,并将程序下载到单片机中。 5. 测试程序:将电路接通电源后,通过按键和LED数码管来测试程序的正确性和稳定性。 实验结果: 经过实验,我们成功制作了一款单片机数字时钟。该数字时钟具有以下功能: 1. 显示当前的小时、分钟和秒钟。 2. 可以通过按键进行时间的调整。 3. 每隔一秒钟左右,LED数码管上的数据会刷新一次,以显示最新的时间信息。

4. 当电源断开后,时钟芯片会自动保存当前时间信息,重新通电后,显示的时间信息仍然是正确的。 结论: 通过本次实验,我们了解了单片机数字时钟的制作原理和步骤,并成功制作了一款数字时钟。通过实验,我们深入了解了单片机的应用,也为我们今后的电子设计和制作提供了很好的基础。

单片机实验报告(电子时钟)

一、课程设计的内容和要求: 1了解单片机的种类,掌握单片机的工作原理; 2 掌握利用单片机进行系统设计的方法; 3掌握利用protel进行原理图设计和PCB设计的方法; 4学会进行单片机硬件调试和软件调试; 5 了解单片机系统整个设计开发流程。 二、设计装置功能 1、用单片机实现设计要求 (1)实现功能: ①正常的24小时制的电子表功能显示(时/分/秒)。 ②任意时间(时/分/秒)闹钟时刻的设置并在设定时刻响铃。 (2)所使用器件: STC 89C52RC单片机1个、2位共阳极数码管3个、蜂鸣器1个、74LS138一片、74LS47一片、74HC04一片、电阻、电容及其他辅助电子元件。 (3)显示时间与闹钟时刻的设置: 单片机的人机操作部分由六个按钮组成。 从电子钟电路板上(从左到右)分别是: ①单片机复位键②闹钟开关③小时位累加键 ④分钟位累加键⑤秒钟位累加键⑥闹钟/时间显示切换键 按键说明: 复位键——把3个2位数码管显示数字全部清零。 闹钟开关键——按下键,闹钟开关模式切换。

时针位累加键——按下键,则实现时针位的累加00-23(累加循环)。 分针位累加键——按下键,则实现分针位的累加00-59(累加循环)。 秒针位累加键——按下键,则实现秒针位的累加00-59(累加循环)。 闹钟/时间显示切换键——按下键,能够实现数码管闹钟和时间两种显示功能的切换。 三、设计问题分析 面对的问题主要是两方面:一个是软件的设计,也就是实现计时定时的控制功能的程序编辑,在电脑上模拟需要实现的功能;另一个是硬件的设计,需要我们自己购买器件、设计并焊接电路板。 而更为重要的一步是将软件、硬件相结合,做好电路后,我们试着把程序写入芯片测试,然而没有获得应该有的显示,接着我们多次检查电路,修改程序,在不断调试中终于实现正确显示。 四、设计思路 本次设计的系统以动态显示显示时分秒模块,它能显示正确的时间,而且所显示时间与北京时间相同,基本做到同步,显示清晰明亮,可读性强。 系统主程序开始后,首先是对系统环境初始化,设置好时分秒后系统开始运行;然后可打开闹钟,预设响铃的时刻,计时系统到该时刻后自动响设定铃声。使用者还可以根据自身的需要随时打开关闭闹钟。 由于系统的操作符合现在市面上电子表的显示和使用风格,设计人性化,因此该系统的实用性较强。 在闹铃的设置上,原本想用单片机唱出歌曲“最炫民族风”的,可惜作为编程员的我技术有限,虽然实现在不计时的情况下唱出声音,但是没能封装进现有

单片机电子时钟设计报告

电子时钟实验报告 全部代码在文档末尾:51单片机,LCD1602液晶显示屏平台下编程实现,可直接编译运行 目录: 一,实验目的 (2) 二,实验要求 (2) 三,实验基本原理 (3) 四,实验设计分析 (3) 五,实验要求实现 (4) A.电路设计 (4) 1. 整体设计 (5) 2. 分块设计 (5) 输入部分 (5) 输出部分 (5) 晶振与复位电路 (6) B.程序设计 (6)

程序总体设计 (6) 程序主要模块 (6) 五.实验总结及感想 (6) 一,实验目的 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以电子钟是以其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱,得到了广泛的使用。 1. 学习8051定时器时间计时处理、按键扫描及LCD液晶显示的设计方法。 2. 设计任务及要求利用实验平台上LCD1602液晶显示屏,设计带有闹铃功能的数字时钟 二,实验要求 A.基本要求: 1. 在LCD1602液晶显示屏上显示当前日期,时间。

2. 利用按键可对时间及闹玲进行设置,并可显示设置闹玲的时间。闹玲时间到蜂鸣 器发出声响,一分钟后闹铃停止。 B.扩展部分: 1.日历功能(能对年,月,日,星期进行显示,分辨平年,闰年以及各月天数,并调整)实现年月日时分秒的调整,星期准确的随着日期改变而改变进行显示。 2.定时功能(设定一段时间长度,定时到后,闹铃提示) C.可扩展部分: 1.闹铃重响功能(闹铃被停止后,以停止时刻开始,一段时间后闹铃重响,且重响时间的间隔可调) 2.可进行备忘录提示,按照年月日,可在设定的某年某月进行闹铃提示。 三,实验基本原理 利用单片机定时器完成计时功能,定时器0计时中断程序每隔中断一次并当作一个计数,设定定时1秒的中断计数初值为20,每中断一次中断计数初值加1,当减到20时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了,是否一天到了,是否一个月到了,是否一年到了。 将时间在LCD液晶屏上显示,降低了程序的编写难度。LCD的固定显示特性是我们省去了数码管的动态扫描显示。 四,实验设计分析

电子时钟实验报告电子时钟

电子时钟实验报告

一、实验目的 学习8051定时器时间计时处理、按键扫描及LED数码管显示的设计方法。 二、设计任务及要求 利用实验平台上4个LED数码管,设计带有闹铃功能的数字时钟,要求: 1.在4位数码管上显示当前时间,显示格式为“时时分分”; 2.由LED闪动做秒显示; 3.利用按键可对时间及闹玲进行设置,并可显示闹玲时间。当闹玲时间到蜂鸣器发出音乐,按停止键使可使闹玲声停止。 三、工作原理及设计思路 利用单片机定时器完成计时功能,定时器0计时中断程序每隔5ms中断一次并当作一个计数,每中断一次计数加1,当计数200次时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要数据锁存器等较多硬件,可采用动态显示法实现LED显示。 闹铃声由交流蜂鸣器产生,电路如右图,当P1.7输出不同频率的方波,蜂鸣器便会发出不同的声音。 四、电路设计及描述 (1) 硬件连接部分: 在ZKS-03单片机综合实验仪上有四位共阳LED数码管,其标号分别为LED1~LED4。

为了节省MCU的I/O口,采用串行接口方式,它仅占用系统2个I/O口,即P1.0口和P1.1口,一个用作数据线SDA,另一个用作时钟信号线CLK,它们都通过跳线选择器JP1相连。 由于采用共阳LED数码管,它的阴极分别通过限流电阻R20~R27连接到控制KD_0~KD_Q7。这样控制8个发光二极管,就需要8个I/O口。但由于单片机的I/O 口资源是有限的,因此常采用实验电路所示的串并转换电路来扩充系统资源。串并转换电路其实质是一个串入并处的移位寄存器,串行数据再同步移位脉冲CLK的作用下经串行数据线SDA把数据移位到KD_0~KD_Q7端,这样仅需2根线就可以分别控制8个发光二极管的亮灭。而P0口只能作地址/数据总线,P2口只能作地址总线高8位,P3.0、P3.1作为串行输入、输出接口,实验仪上单片机可用作I/O的口仅有:P1.0--P1.7 ,8位;P3.2、P3.3、P3.4、P3.5 ,4位。其中:P1.0 用作数据线SDA,P1.1用作时钟信号CLK,所以P1.0和P1.1应该接对应跳线的A位,即跳线的中间和下面相连。P1.3、P1.4、P1.5和P1.6是四个数码管的位扫描线,其中P1.6对应数码管W1,显示小时高位;P1.5对应数码管W2,显示小时低位;P1.4对应数码管W3,显示分钟高位;P1.3对应数码管W4,显示分钟低位。P1.7连接蜂鸣器电路,输出不同频率的方波,使其发出不同的声音。P1.2 用来控制秒的闪烁显示。故,P1.2也应该接对应跳线的A位。 其显示电路如下图所示:

单片机电子时钟实训报告

单片机实训报告 题目:_电子时钟设计 姓名:__侯元星__ 学号: 0502090229 专业:_计算机控制0902班_ 所属系部:_电子工程系_ 指导老师:陆剑 2011年6月25日

前言 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习、应用,以A T89S51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由直流电源供电,通过数码管能够准确显 数字时钟是现代社会应用广泛的计时工具,在航天、电子等科研单位,工厂、医院、学校等企事业单位,各种体育赛事及至我们每个人的日常生活中都发挥着重要的作用。本系统是基于AT89C51单片机设计的一个具有六位LED显示的数字时实时钟,采用独立式按键进行时间调整,同时引入一个内部充电电源在停止外部供电时,仍具有内部计时的功能。该系统同时具有硬件设计简单、工作稳定性高、价格低廉等优点。 本文以对单片机的学习和认识,并通过本次课程设计加以应用,从而达到一个对所学知识的巩固、更深一步的理解,面对一个电子设计,应对出系统的方案,分析出各个板块来,再对各个板块进一步的具体的设计,先进行硬件电路设计,此时一定要考虑好要用什么元件、各个元件的具体参数、是否能实现应有功能,从而得到一个完整的硬件电路。

单片机 电子时钟实验报告

电子时钟设计实验报告 姓名:学号:班级:指导老师: 一、实验基本要求 利用定时计数器,设计一个电子时钟,使用前面使用过的显示子程序。从左到右依次显示时分秒。有两种方法实现,一种是在中断程序中计数,产生时分秒计数,送显示缓冲区。另一种是中断程序每一秒清除一个位变量,而主程序通过监视位变量的变化来知道每秒的时间。 进而要求: 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

单片机电子钟实验报告

单片机电子钟实验报告 单片机电子钟实验报告 引言: 单片机是一种集成电路,具有微处理器的功能。它广泛应用于各种电子设备中,包括电子钟。在这个实验中,我们通过使用单片机和其他电子元件,成功地制 作了一台电子钟。本报告将详细介绍我们的实验过程、结果和总结。 实验目的: 我们的实验目的是设计和制作一台精确可靠的电子钟。通过这个实验,我们希 望了解单片机的基本原理和应用,同时提高我们的电路设计和焊接能力。 实验步骤: 1. 准备工作:我们首先收集了所需的材料和工具,包括单片机、晶振、电容、 电阻、显示器等。然后,我们仔细阅读了单片机的技术规格和电路图。 2. 电路设计:根据单片机的技术规格和电路图,我们开始设计电路。我们确定 了电源电压、电路连接方式和元件数值。然后,我们使用仿真软件验证了我们 的设计。 3. 焊接电路板:在确认电路设计无误后,我们开始焊接电路板。我们小心翼翼 地将元件焊接到电路板上,并确保焊接点牢固可靠。焊接完成后,我们使用万 用表对焊接点进行了测试。 4. 编程:接下来,我们使用C语言编写了单片机的程序。我们根据电路的功能 需求,编写了显示时间、闹钟设置、闹钟响铃等功能的代码。然后,我们使用 编程器将程序烧录到单片机中。 5. 调试:在完成编程后,我们对电路进行了调试。我们逐一测试了各个功能,

确保电子钟的正常运行。我们检查了显示、闹钟和时间设置等功能,并进行了 一系列的测试。 实验结果: 经过我们的不懈努力,我们成功地制作了一台功能完善的电子钟。它能够精确 显示时间,并具备闹钟功能。在我们的测试中,电子钟的运行稳定,显示清晰 可见。 实验总结: 通过这个实验,我们深入了解了单片机的工作原理和应用。我们学会了电路设计、焊接和编程等技能。通过实际操作,我们提高了自己的动手能力和问题解 决能力。 然而,我们也遇到了一些挑战。在焊接电路板时,我们需要小心操作,以避免 短路或焊接不牢固。在编程过程中,我们需要仔细调试,以确保程序的正确性。在未来的学习中,我们将进一步探索单片机的应用领域,并不断提高自己的技 术水平。我们相信,通过这样的实验,我们将能够更好地应对电子设计和制作 的挑战。 结论: 通过这个实验,我们成功地制作了一台单片机电子钟。这次实验不仅增加了我 们的实践经验,还提高了我们的技术能力。我们相信,这个实验将在我们今后 的学习和工作中发挥重要作用。我们将继续努力,不断学习和探索电子技术的 发展。

单片机电子时钟设计报告

电子时钟实验报告全部代码在文档末尾:51单片机,LCD1602液晶显示屏平台下编程实现,可直接编译运行 目录: 一,实验目的 (1) 二,实验要求 (1) 三,实验基本原理 (2) 四,实验设计分析 (2) 五,实验要求实现 (2) A.电路设计 (3) 1. 整体设计 (3) 2. 分块设计 (3) 2.1 输入部分 (3) 2.2 输出部分 (3) 2.3 晶振与复位电路 (3) B.程序设计 (3) B.1 程序总体设计 (3) B.2 程序主要模块 (3) 五.实验总结及感想 (5) 一,实验目的 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以电子钟是以其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱,得到了广泛的使用。 1. 学习8051定时器时间计时处理、按键扫描及LCD液晶显示的设计方法。 2. 设计任务及要求利用实验平台上LCD1602液晶显示屏,设计带有闹铃功能的数字时钟二,实验要求 A.基本要求: 1. 在LCD1602液晶显示屏上显示当前日期,时间。 2. 利用按键可对时间及闹玲进行设置,并可显示设置闹玲的时间。闹玲时间到蜂鸣器发出声响,一分 钟后闹铃停止。

B.扩展部分: 1.日历功能(能对年,月,日,星期进行显示,分辨平年,闰年以及各月天数,并调整)实现年月日时分秒的调整,星期准确的随着日期改变而改变进行显示。 2.定时功能(设定一段时间长度,定时到后,闹铃提示) C.可扩展部分: 1.闹铃重响功能(闹铃被停止后,以停止时刻开始,一段时间后闹铃重响,且重响时间的间隔可调)2.可进行备忘录提示,按照年月日,可在设定的某年某月进行闹铃提示。 三,实验基本原理 利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.05s中断一次并当作一个计数,设定定时1秒的中断计数初值为20,每中断一次中断计数初值加1,当减到20时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了,是否一天到了,是否一个月到了,是否一年到了。 将时间在LCD液晶屏上显示,降低了程序的编写难度。LCD的固定显示特性是我们省去了数码管的动态扫描显示。 四,实验设计分析 针对要实现的功能,采用AT89S52单片机进行设计,AT89S52 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。这样,既能做到经济合理又能实现预期的功能。 在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。程序可分为闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等。运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。 首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。这是前期准备工作。第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。第三部分是软件部分:先学习理解C语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。第六部分是硬件实现部分:连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。最后进行功能扩展,在已经正确的设计基础上,添加额外的功能! 五,实验要求实现

电子时钟设计实验报告

单片机电子时钟设计报告 一、设计任务 本次课程设计的电子时钟电路,是基于单片机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:显示开及光标设置。 2.3 LCD1602 读写操作时序 LCD1602 读写操作时序总体上来说是比较简单的,掌握其有两种方法:一种是只看时序图,另外一种方法是直接记忆和总结读写时电平高低和变化。很显然第二种更简单和直接,下面就列出典型读写的时序要求,以方便编写程序。 (1)读状态:输入:RS=L,RW=H,E=H。 输出:D0-D7=状态字。 (2)写指令:输入:RS=L,RW=L,D0-D7=指令码,E=上升沿。 输出:无。 (3)读数据:输入:RS=H,RW=H,E=H。 输出:D0-D7=数据。 (4)写数据:输入:RS=H,RW=L,D0-D7=数据,E=上升沿。 输出:无。 2.4 LCD1602显示方法

相关主题
文本预览
相关文档 最新文档