




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编号: 课程设计说明书课程设计说明书 题 目: 基于单片机的数字时钟基于单片机的数字时钟 院 (系): 信息与通信学院 专 业: 电子信息工程 学生姓名: 学 号: 指导教师: 2013 年 12 月 03 日 摘 要 电子时钟是一种非常广泛日常计时工具,对现代社会越来越流行。它可以实现对 年、月、日、星期、时、分、秒进行计时等多种功能。数字时钟采用直观数字显示, 还具有时间校准等功能。该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压 工作,电压可选用3-5V电压供电。 本系统硬件部分由AT89S52单片机、1062液晶显示器、键盘、蜂鸣器系统等部分构 成。软件部分在keil环境下用C51语言编写,包括时间显示、时间校对。 基于单片机技术原理,以单片机芯片AT89C52作为核心控制器,通过硬件电路的制 作以及软件程序的编制,设计制作出一个简易数字时钟系统。单片机扩展的LCD显示器 用来显示秒、分、时、星期、日、月、年计数单元中的值。整个设计包括两大部分: 硬件部分和软件部分,以单片机为核心,配以一定的外围电路和软件。硬件是整个系 统的基础,软件部分则要合理、充分地支持和使用系统的硬件,从而完成系统所要完 成的任务。 关键词:单片机AT89S52;液晶显示1602;按键 Abstract Electronic clock is a very extensive daily timing tool , more and more popular in modern society . It can be achieved on the year, month , date, day , hour, minute , seconds chronograph and other functions . Intuitive digital display digital clock , also has a time calibration functions. This circuit uses AT89S52 microcontroller as the core , low power consumption , can work in low-voltage 3V voltage can choose 3 5V voltage supply. The hardware of the system by the AT89S52 microcontroller , some 1062 LCD monitor, keyboard , buzzer systems and other accessories. Software part in keil environment with C51 language, including the time display, time proofreading. Based on the principle of single-chip technology , chip AT89C52 microcontroller as the core controller , and a software program produced by the preparation of the hardware circuit , designed to create a simple digital clock system. Single-chip LCD display is used to display the extended seconds, minutes , hours, day, date, month, year counting unit value. The whole design consists of two parts: hardware and software components , microcontroller as the core , with some peripheral circuits and software. Hardware is the foundation of the entire system, the software part will have reasonable and adequate to support the use of systems and hardware ,thus completing the system to complete the task . Keywords: Microcontroller AT89S52; LCD 1602; buttons 目 录 引言.5 1 设计方案.5 1.1 数字时钟的设计分析.5 1.2 设计要求.6 2 总体系统方案的设计与选择论证.6 2.1 计时方案.6 2.2 控制芯片的选择 6 2.3 芯片控制语言的选择 7 3 系统电路的设计及原理说明.8 3.1.1AT89S52 单片机性能与特点 .8 3.1.2AT89S52 单片机的引脚及内部结构.8 3.2 单片机最小系统电路介绍8 3.3 LCD1602 显示电路.9 4 软件设计部分 .9 4.1 软件编程思路9 4.2 电路的仿真10 4.2.1Proteus 仿真原理图10 4.2.2Proteus 仿真结果. .10 4.3 电路调试.10 4.3.1 硬件调试. .10 4.3.2 软件调试. .10 5 结论10 谢 辞11 参考文献.12 附 录13 附录一:原理图.13 附录二:PCB 图14 附录三:程序代码.15 第 1 页 共 26 页 引言 21 世纪,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社 会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使 现代化电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时钟,自它被发明的那天起,就成为人类的朋友。随着时间的推移,随着科学技 术的不断发展,随着生活水平的提高,人们越来越追求人性化的事物,对时间计量的精 度要求越来越高,应用也越来越广泛,这些都导致传统的时钟已不能满足人们的需求。 现代生活的人们越来越重视了时间观念,可以说是时间和金钱划上了等号。对于那些 对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以 以 LCD1602 为显示器的时钟比指针式的时钟表现了更大的优势。 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着 CMOS 化、低功 耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。单片机应 用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前 必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实 现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。 单片机模块中最常见的是数字时钟。利用单片机实现的电子时钟具有编程灵活、 精确度高等特点,并且便于电子时钟的扩充,即可用该电子钟发出各种控制信号,同 时可以用该电子时钟发出各种控制信号。 本时钟还具有环保、走时无噪音、低功耗等非实时时钟不具有的功能。该实时时 钟不但可以作为家用,而且更可以在公共场合使用,如车站、码头、商场等场所。 本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片 机 AT89S52 芯片和 LCD1602 为核心,辅以必要的电路,构成了一个单片机数字时钟。 第 2 页 共 26 页 1 设计方案 1.1 数字时钟的设计分析 方案一:采用AT89S52作为主控单片机,显示模块选用LCD1602,设置部分选用按 键电路; 方案二:采用AT89S52作为主控单片机,显示模块选用数码管,设置部分选用按键 电路; 方案三:可用数字电路芯片74192,74153,7447,NE555,与非门和数码管实现数 字时钟功能。 三种方案相比较,方案三使用芯片过多,线路繁琐,方案二显示电路需要多个三 极管辅助驱动,电路复杂,相比之下,方案一LCD1602显示电路、驱动程序都相对简单, 所以本设计选择了方案一。 1.2 设计要求 设计制作一个能实现显示年、月、日、星期、时、分、秒功能时钟,要求方案简 单,易行并有一定的实用意义。 2 总体系统方案的设计与选择论证 2.1 计时方案 采用 AT89S52 作为主控单片机,显示模块选用 LCD1602,设置部分选用按键电路配 合软件延时实现时、分、秒的计时。该方案节省硬件成本,并且能使读者在定时/计数 器的使用、中断及程序设计方面得到锻炼和提高,对单片机的指令系统能有更深入的 了解。 AT89S52 外接 LCD1602 显示电路、按键电路、晶振电路、复位电路、电源以及按键 电路构成设计框图。设计框图如图 2-1 所示: 图 2-1 系统设计框图 按键电路 晶振电路 复位电路 电源 AT89S52LCD1602 显示电路 第 3 页 共 26 页 图 2-2 系统整体设计图 数字时钟总电路包括单片机最小系统,即单片机、振荡电路、复位电路、电源供 电模块,另外供电,模块附有 LED 指示灯,指示电源电源供电是否成功,LCD1602 显示 模块,独立按键模块,下载接口模块,蜂鸣器模块。 2.2 控制芯片的选择 AT89S52 是一种低功耗、高性能 CMOS8位微控制器,具有8K 在系统可编程 Flash 存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和 引脚完全兼容。片上 Flash 允许程序存储器在系统可编程,亦适于常规编程器。在单 芯片上,拥有灵巧的8 位 CPU 和在系统可编程 Flash,使得 AT89S52为众多嵌入式控制 应用系统提供高灵活、超有效的解决方案。 2.3 芯片控制语言的选择 C 语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的 第 4 页 共 26 页 特点。它由美国贝尔研究所的 D.M.Ritchie 于 1972 年推出,1978 年后,C 语言已先后 被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序, 也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广 泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到 C 语言,适于编写系统软件,三维、二维图形和动画,具体应用比如单片机以及嵌入式 系统开发。 3 系统电路的设计及原理说明 3.1 AT89S52 单片机的工作原理 AT89S52 是一种低功耗、高性能 CMOS 8 位微控制器,具有 8K 在系统可编程 Flash 存储器。它是利用单片机内部定时器/计数器工作与定时方式,对机器周期计数形成基 准时间(如 10ms) ,然后再用另外一个计数器或软件计数的形式对基准时间进行计数, 形成秒(如 10ms 计数 100 次) , “秒”计数 60 次形成“分” , “分”计数 60 次形成“时” , “时”计数 24 次形成“天” ,并清零,然后通过译码、显示器把它们的内容在显示屏 上显示出来。在具体的设计时,定时器采用中断方式工作,对时钟的形成在中端程序 中实现,主程序是对定时器/计数器的定义初始化,调用显示程序和控制程序的初始化, 另外为了使用方便,也设计了按键,他可以对时分秒等进行调整,这样,程序就加了 按键程序。 3.1.1AT89S52 单片机性能与特点 (1)AT89S52 为 ATMEL 所生产的一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。 (2)在单片机的应用系统中,单片机作为一种较为简单的计算机是嵌入到系统内 部,作为系统电路的一部分,作为系统实现数字化和智能化的关键部件。AT89S52 主要 功能列举如下: 拥有灵巧的 8 位 CPU 和在系统可编程 Flash 晶片内部具时钟振荡器(传统最高工作频率可至 12MHz) 内部程序存储器(ROM)为 8KB 内部数据存储器(RAM)为 256 字节 32 个可编程 I/O 口线 8 个中断向量源 三个 16 位定时器/计数器 三级加密程序存储器 全双工 UART 串行通道 3.1.2AT89S52 单片机的引脚及内部结构 P89C5X 系列单片机有 40 个引脚。其引脚图如图 2-1 所示: 第 5 页 共 26 页 (1)VCC:AT89S52 电源正端输入,接+5V。 (2)VSS:电源地端。 (3)XTAL1:单芯片系统时钟的反相放大器输入端。 (4)XTAL2:系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入 一 20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。 (5)RESET:AT89S52 的重置引脚,高电平动作,当要对晶片重置时,只要对此 引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51 便能完成系统重置的 各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址 0000H 处 开始读入程序代码而执行程序。 (6)EA/Vpp:“EA“为英文“External Access“的缩写,表示存取外部程序代码之意, 低电平动作,也就是说当此引脚接低电平后, 系统会取用外部的程序代码(存于外部 EPROM 中)来执行程序。因此在 8031 及 8032 中,EA 引脚必须接低电平,因为其内部无程序存储器 空间。如果是使用 8751 内部程序空间时,此 引脚要接成高电平。此外,在将程序代码烧录 至 8751 内部 EPROM 时,可以利用此引脚来输入 21V 的烧录高压(Vpp) 。 (7)ALE/PROG:ALE 是英文“Address Latch Enable“的缩写,表示地址锁存器启用信 号。AT89S52 可以利用这支引脚来触发外部的 8 位锁存器(如 74LS373) ,将端口 0 的地址总线 (A0A7)锁进锁存器中,因为 AT89S52 是以 多工的方式送出地址及数据。平时在程序执行 时 ALE 引脚的输出频率约是系统工作频率的 1/6,因此可以用来驱动其他周边晶片的时 基输入。此外在烧录 图 3-1 AT89S52 引脚图 8751 程序代码时,此引脚会被当成程序规划的特殊功能来使用。 (8)PSEN:此为“Program Store Enable“的缩写,其意为程序储存启用,当 8051 被设成为读取外部程序代码工作模式时(EA=0) ,会送出此信号以便取得程序代码,通 常这支脚是接到 EPROM 的 OE 脚。AT89S52 可以利用 PSEN 及 RD 引脚分别启用存在外部 的 RAM 与 EPROM,使得数据存储器与程序存储器可以合并在一起而共用 64K 的定址范围。 第 6 页 共 26 页 (9)PORT0(P0.0P0.7):端口 0 是一个 8 位宽的开路汲极(Open Drain)双 向输出入端口,共有 8 个位,P0.0 表示位 0,P0.1 表示位 1,依此类推。其他三个 I/O 端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0 在当做 I/O 用 时可以推动 8 个 LS 的 TTL 负载。如果当 EA 引脚为低电平时(即取用外部程序代码或 数据存储器) ,P0 就以多工方式提供地址总线(A0A7)及数据总线(D0D7) 。设计 者必须外加一锁存器将端口 0 送出的地址栓锁住成为 A0A7,再配合端口 2 所送出的 A8A15 合成一完整的 16 位地址总线,而定址到 64K 的外部存储器空间。 (10)PORT2(P2.0P2.7):端口 2 是具有内部提升电路的双向 I/O 端口,每一 个引脚可以推动 4 个 LS 的 TTL 负载,若将端口 2 的输出设为高电平时,此端口便能当 成输入端口来使用。P2 除了当做一般 I/O 端口使用外,若是在 AT89S52 扩充外接程序 存储器或数据存储器时,也提供地址总线的高字节 A8A15,这个时候 P2 便不能当做 I/O 来使用了。 (11)PORT1(P1.0P1.7):端口 1 也是具有内部提升电路的双向 I/O 端口,其 输出缓冲器可以推动 4 个 LS TTL 负载,同样地若将端口 1 的输出设为高电平,便是由 此端口来输入数据。如果是使用 8052 或是 8032 的话,P1.0 又当做定时器 2 的外部脉 冲输入脚,而 P1.1 可以有 T2EX 功能,可以做外部中断输入的触发脚位。 (12)PORT3(P3.0P3.7):端口 3 也具有内部提升电路的双向 I/O 端口,其输 出缓冲器可以推动 4 个 TTL 负载,同时还多工具有其他的额外特殊功能,包括串行通 信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。 其引脚分配如下: 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,外部数据存储器的读取信号。 AT89S52 单片机的内部功能模块如下图 3-2,为实现其基本功能,内部必需要有配 置输入输出(I/O 口) 、储存器(RAM 或 ROM) 、运算和控制单元(CPU)等相应的功能电 路。 第 7 页 共 26 页 图 3-2 AT89S52 内部结构 3.2 单片机最小系统电路介绍 单片机最小系统主要由复位电路,晶振电路,电源等几部分组成。复位电路是为 了把电路初始化到一个确定的状态,把一个例如状态机初始化到空状态;震荡电路是 为系统提供基本的时钟信号;电源则是为系统供电。 复位电路:由电容串联电阻构成,由图 2-1 并结合“电容电压不能突变”的性质, 可以知道,当系统一上电,RST 脚将会出现高电平,并且这个高电平持续的时间由电路 的 RC 值决定,所以适合组合 RC 的取值就可以保证可靠的复位。一般 C 取 10uF,R 取 10K。单片机最小系统复位电路的极性电容的大小直接影响单片机的复位时间,相应的 值越大,复位时间越短。 晶振电路:典型的晶振取 11.0592MHz 或者 12MHz,单片机最小系统晶振的振荡频 率直接影响单片机的处理速度,频率越大处理速度越快。 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5(MOSI) 6 P1.6(MISO) 7 P1.7(SCK) 8 REST 9 P3.0(RXD) 10 P3.1(TXD) 11 P3.2(INT0) 12 P3.3(INT1) 13 P3.4(T0) 14 P3.5(T1) 15 P3.6(WR) 16 P3.7(RD) 17 XTAL2 18 XTAL1 19 GND 20 P2.0(A8) 21 P2.1(A9) 22 P2.2(A10) 23 P2.3(A11) 24 P2.4(A12) 25 P2.5(A13) 26 P2.6(A14) 27 P2.7(A15) 28 PSEN 29 ALE/PROG 30 EA/VPP 31 P0.7(AD7) 32 P0.6(AD6) 33 P0.5(AD5) 34 P0.4(AD4) 35 P0.3(AD3) 36 P0.2(AD2) 37 P0.1(AD1) 38 P0.0(AD0) 39 VCC 40 U1 AT89S52A 30pF C2 Cap CRY1 CRY1 GND GND 30pF C3 Cap P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P1.3 P1.4 P1.5 P1.6 Res S1 SW-PB R4 10K GND Res C1 10uF P1.7 P1.2 P1.1 P1.0 1 2 3 4 5 6 7 8 9 J3 CON9 +5V +5V +5V P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 XTAL1 XTAL2 XTAL1 XTAL2 第 8 页 共 26 页 图 3-3 单片机最小系统 3.3 LCD1602 显示电路 图 3-4 1602 显示电路 液晶显示器简称是利用液晶经过处理后能够改变光线传输方向的特性,达到显示 字符或者图形的目的。其特点是体积小、重量轻、功耗极低、显示内容丰富等特点, 在单片机应用系统中有着日益广泛的应用。 1602 芯片:主要用于显示时间和定时时间。1602 芯片由点阵字符液晶显示器件和 专用的行、列驱动器、控制及必要的链接件、结构件组装而成,可以显示数字和西文 字符,但不能显示图形,已经可以满足本次设计的需要。1602 型 LCD 可以显示 2 行 16 个字符,有 8 位数据总线 D0D7 和 RS,R/W,EN 三个控制端口,工作电压为 5V,并且 具有字符对比度调节和背光功能。 4 软件设计部分 软程序主要分为两个部分,即液晶显示部分和控制按键部分。由于本设计采用的 是用按键分别控制,可以在主函数中调用一个键盘扫描的函数,当相应的不同按键按 下后通过控制单片机 P2 的输出,从而控制液晶的显示。源程序见附录三所示: 4.1 软件编程思路 在确定了时钟要实现的功能后按照上述各按键所实现的效果编写程序。本程 第 9 页 共 26 页 序包含液晶写指令函数(write-com())、写数据函数(write-data()、初始化函数 (init())、写入时分秒函数(write-sfm())和键盘扫描函数这些程序围绕主函数相 互调用。 4.2 电路的仿真 4.2.1Proteus 仿真原理图 图 4-1 仿真原理图 4.2.2Proteus 仿真结果 第 10 页 共 26 页 图 4-2 仿真结果图 4.3 电路调试 4.3.1 硬件调试 将安装好的电路板按要求接入 5V 电源,指示灯亮,说明电源连接成功;拨动开关 后,两个指示灯都亮,电路板已进入正常供电模块,液晶也已点亮,调节控制 LCD1602 的电位器,使液晶显示屏第一行出现 16 个小黑方块,则电位器调已合适,硬 件调试结束。 4.3.2 软件调试 先定义管脚,写 void w_com(uchar com);(写指令)和 void w_data(uchar date);(写 数据)函数,初始化函数,中断函数,主函数等,液晶显示年月日、星期、时分秒, 然后写按键扫描函数,实现时间校对功能。 5 结论 本次设计主要采用了 AT89S52 单片机和 LCD1602 显示频等元器件,实现本次设计 的方法不唯一,但相较而言,本方案所用的元器件较少,提高了设计电路的易操作性, 并且实验的调节方法也很简单,做到了节约、简便、迅速、易行的基本要求。通过 C 语言将程序写入芯片内部后,是芯片按照设定进行运行。 课程设计主要目的还是培养我们综合运用所学的知识,将理论与实践相结合,初 步认识单片机芯片与电路,研究它的线路组成和工作方式、工作原理。电路设计是一 个很灵活的东西,它反映你解决问题的逻辑思维和创新能力。本次课程设计,我能运 用已学知识解决设计过程中碰到的问题,使自己的动手能力和思考问题的能力得到很 大的提高本次实验提高了我的课程设计基本技能,使我学会了如何设计电路,熟练了 电路焊接方法以及掌握硬件调试方法与软件调试方法,同时还提高了我的动手能力和 第 11 页 共 26 页 测试技术能力。从开始进行设计到完成实现数字时钟功能,我找了很多资料,并应用 了 Altium designer,Proteus 软件进行画图、仿真,并通过调试以完成设计要求的功 能。 谢 辞 感谢学校、学院给我们提供这样的实践动手机会,并通过课程设计使我们能够有 机会将书本上学到的知识运用到的实际中去。在电路设计和硬件调试的过程中,本人 通过复习课本和上网查阅多种资料,尤其是着重对单片机的学习,了解其原理、性能 及各引脚的作用,此外本次设计中的复位电路,晶振电路及 LCD1602 显示部分也有了 更深刻的认识,也对模拟电路和数字电路的基础知识又有了许多新的了解,从而对设 计方法与性能参数的测试有所了解与掌握。在这次课程设过程中蒋俊正老师给了我很 多的指导和帮助,并监督我及时完成了本次课程设计,在此对蒋俊正老师和所有给予 我帮助的同学表示感谢。谢谢! 第 12 页 共 26 页 参考文献 1 王卫东 李旭琼. 模拟电子技术基础(第 2 版). 北京:电子工业出版社,2010 2 周茜.电路分析基础M.北京:电子工业出版社,2010. 3 谭浩强.C 语言程序设计M.北京:清华大学出版社,2008. 4 华成英. 模拟电子技术基础(第 4 版). 北京:高等教育出版社,2006 5 康华光. 电子技术基础-模拟部分(第 4 版).北京:高等教育出版社,2006 第 13 页 共 26 页 附 录 附录一:原理图 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5(MOSI) 6 P1.6(MISO) 7 P1.7(SCK) 8 REST 9 P3.0(RXD) 10 P3.1(TXD) 11 P3.2(INT0) 12 P3.3(INT1) 13 P3.4(T0) 14 P3.5(T1) 15 P3.6(WR) 16 P3.7(RD) 17 XTAL2 18 XTAL1 19 GND 20 P2.0(A8) 21 P2.1(A9) 22 P2.2(A10) 23 P2.3(A11) 24 P2.4(A12) 25 P2.5(A13) 26 P2.6(A14) 27 P2.7(A15) 28 PSEN 29 ALE/PROG 30 EA/VPP 31 P0.7(AD7) 32 P0.6(AD6) 33 P0.5(AD5) 34 P0.4(AD4) 35 P0.3(AD3) 36 P0.2(AD2) 37 P0.1(AD1) 38 P0.0(AD0) 39 VCC 40 U1 AT89S52A 30pF C2 Cap CRY1 CRY1 GND GND 30pF C3 Cap P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P1.3 P1.4 P1.5 P1.6 Res S1 SW-PB R4 10K GND Res C1 10uF P1.7 BE1 BEEP 200 R2 GND E 1 C 3 B 2 V1 8550 P2.3 P1.2 P1.1 P1.0 1 2 3 4 5 6 7 8 9 J3 CON9 +5V +5V +5V +5V P3.2 S2 SW-PB S3 SW-PB S4 SW-PB GND P3.3 P3.4 P3.5 P3.6 1k R1 S5 SW-PB P3.7 P2.0 P2.1 P2.2 P2.3 P2.4 P1.0 P2.5 P2.6 P2.7 GND 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 J2 1602 R3 10K GND GND P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P1.1 P1.2 P1.3 P2.5 P2.6 P2.7 +5V +5V 17(SCK) 1 G/no 10 16(MISO) 3 VCC 4 REST 5 no 6 no 8 no 7 15(MOSI) 9 GND 2 1 10P 51 D1 LED_R R5 1K 1 2 3 4 J1 CON4 GND +5V P1.5 P1.7 P1.6 RST GND GND XTAL1 XTAL2 XTAL1 XTAL2 +5V 第 14 页 共 26 页 附录二:PCB 图 附录三:程序代码 #include #define uchar unsigned char #define uint unsigned int sbit rs=P20; sbit rw=P21; sbit lcden=P22; sbit s1=P14; sbit s2=P16; sbit s3=P17; sbit beep=P36; uint count,s1num; uchar shi,fen,miao,zhou,ri,yue,nian; uchar code table=“ 2013-11-26 2 “; uchar code table1=“ 23:59:55 “; void delay(uint z); /延时 1ms void di();/ void w_com(uchar com); /写指令 void w_data(uchar date); /写数据 第 15 页 共 26 页 void init(); /1602 初始化 void w_sfm(uchar add,uchar date);/时分秒显示函数 void w_zhou(uchar add,uchar date);/周显示函数 void w_ryn(uchar add,uchar date); /日月年显示函数 void keyscan();/按键扫描程序 /-主程序- /-主程序- void main() init(); TMOD=0x01; /使用定时器 T0 的模式 1 TH0=(65536-46083)/256; /定时器 T0 的高 8 位设置初值 TL0=(65536-46083)%256; /定时器 T0 的低 8 位设置初值 EA=1; /开总中断 ET0=1; /定时器 T0 中断允许 TR0=1; /启动定时器 T0 while(1) keyscan(); if(count=20) count=0; miao+; if(miao=60) miao=0; fen+; if(fen=60) fen=0; di(); shi+; if(shi=24) shi=0; zhou+; ri+; if(zhou=8) zhou=1; 第 16 页 共 26 页 w_zhou(14,zhou); if(yue=1|yue=3|yue=5|yue=7|yue=8|yue=10|yue=12) if(ri=32) ri=1; yue+; if(yue=13) yue=1; nian+; if(nian=100) nian=1; w_ryn(4,nian); w_ryn(7,yue); w_ryn(10,ri); if(yue=4|yue=6|yue=9|yue=11) if(ri=31) ri=1; yue+; if(yue=13) yue=1; nian+; if(nian=100) nian=1; w_ryn(4,nian); w_ryn(7,yue); w_ryn(10,ri); w_sfm(4,shi); w_sfm(7,fen); w_sfm(10,miao); 第 17 页 共 26 页 /-子程序- /-子程序- void delay(uint z) uint x,y; for(x=0;xz;x+) for(y=0;y110;y+); void di() beep=0; delay(50); beep=1; delay(50); void w_com(uchar com) rs=0; rw=0; lcden=0; P0=com; delay(5); lcden=1;/给高脉冲 delay(5); lcden=0; void w_data(uchar date) rs=1; rw=0; lcden=0; P0=date; delay(5); lcden=1; delay(5); lcden=0; 第 18 页 共 26 页 void init() uchar num; lcden=0;/初始化使能为 0 fen=59; miao=55; shi=23; zhou=2; ri=26; yue=11; nian=1013; w_com(0x38);/写入显示模式指令码 w_com(0x0c);/写入显示开/关及光标指令码 w_com(0x06);/当写一个字符后,地址指针加一,光标加一,不动光标不闪烁 w_com(0x01); /清零 w_com(0x80);/代表第一行第一位 for(num=0;num15;num+) w_data(tablenum); delay(5); w_com(0x80+0x40);/代表第二行第一位 for(num=0;num12;num+) w_data(table1num); delay(5); TMOD=0x01; TH0=0x3c; TL0=0xb0; EA=1; ET0=1; TR0=1; /* 初始化函数 */ void w_sfm(uchar add,uchar date)/时分秒 uchar shi,ge; shi=date/10; 第 19 页 共 26 页 ge=date%10; w_com(0x80+0x40+add);/写第二行 add 个地址 w_data(0x30+shi); w_data(0x30+ge); void w_zhou(uchar add,uchar date)/周 uchar z; z=date; w_com(0x80+add); /写第一行 add 个地址 w_data(0x30+z); void w_ryn(uchar add,uchar date)/日 uchar shi,ge; shi=date/10; ge=date%10; w_com(0x80+add); w_data(0x30+shi); w_data(0x30+ge); void keyscan() if(s1=0)/闪烁位置 delay(15); if(s1=0) while(!s1); s1num+; if(s1num=1)/s1 键按一下依次从秒分周日月时向左移 TR0=0; w_com(0x80+0x40+0x0b); w_com(0x0f);/左移光标开始闪烁 if(s1num=2) TR0=0; w_com(0x80+0x40+0x08); if(s1num=3) TR0=0; 第 20 页 共 26 页 w_com(0x80+0x40+0x05); if(s1num=4) TR0=0; w_com(0x80+0x0e); if(s1num=5) TR0=0; w_com(0x80+0x0b); if(s1num=6) TR0=0; w_com(0x80+0x08); if(s1num=7) TR0=0; w_com(0x80+0x05); if(s1num=8) s1num=0; w_com(0x80+0x40+12); w_com(0x0c);/光标恢复原样,不闪烁 TR0=1; /-s1num=1-miao- if(s1num=1) if(s2=0) delay(10); if(s2=0) miao+; while(!s2); if(miao=60) miao=0; w_sfm(10,miao); 第 21 页 共 26 页 w_com(0x80+0x40+11); if(s3=0) delay(10); if(s3=0) while(!s3); miao-; if(miao=-1) miao=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国水解蛋白粉专用复合乳化剂数据监测研究报告
- 2025年中国无氟冰箱发泡输送线市场调查研究报告
- 2025年中国微雕木书数据监测研究报告
- 2025年中国平开浮中梃市场调查研究报告
- 2025年中国妈妈装数据监测研究报告
- 2020-2025年中国休闲食品连锁零售行业竞争格局分析及投资规划研究报告
- 2024-2030年中国果酸行业市场全景监测及投资前景展望报告
- 2025年中国相册过胶机行业市场发展前景及发展趋势与投资战略研究报告
- 2018-2024年中国宠物食品市场全景评估及发展趋势研究预测报告
- 智能合约在铜矿采选供应链金融中的应用-洞察阐释
- 2025年高考真题-物理(广东卷) 含答案
- 2025-2030中国伊利石行业运营效益及竞争策略展望分析报告
- 江西省上饶市2022-2023学年高一下册数学期末试卷(含答案)
- 2025春季学期国开电大本科《管理英语3》一平台机考真题及答案(第十套)
- 湖南省2025年高考公安院校公安专业考生档案审核表
- 地理:(网络参考版)黑吉辽蒙2025年高考真题地理试卷含答案
- 电大:理论联系实际谈一谈如何传承发展中华秀传统文化?参考答案
- 2025新修订《全国人民代表大会和地方各级人民代表大会代表法》宣讲
- 部编人教版八年级语文下册期末各单元重点知识
- 2024-2025学年八年级下册道德与法治期末测试模拟卷(统编版)(含答案)
- 宿迁市重点中学2025届八下数学期末教学质量检测试题含解析
评论
0/150
提交评论