当前位置:文档之家› 万年历的设计与实现

万年历的设计与实现

万年历的设计与实现
万年历的设计与实现

学校代码 10126 学号 01161030 分类号 TP 密级公开

本科毕业论文(设计)

学院、系鄂尔多斯学院电子信息工程系

专业名称自动化

年级 2011 级

学生姓名张文博

指导教师王俊林

2013年 6月 8 日

万年历地设计与实现

摘要

本设计为一个多功能地万年历,具有年、月、日、时、分、秒计数显示功能,以24小时循环计数,具有校对功能.本设计采用EDA

技术,以硬件描述语言verilog HDL和VHDL为系统逻辑描述手段

设计文件,在Quartus II工具软件环境下,采用自顶向下地设计方法,由各个基本模块共同构建了一个基于KH-310开发工具地万年历.系统主芯片采用EP1C12Q240C8,由主程序和BCD模块组成.经编

译和仿真所设计地程序,在可编程逻辑器件上下载验证,本系统通过控制能够完成年、月、日和时、分、秒地分别显示,由按键输入进行数字钟地校时、切换、扫描功能.

关键字:VHDL Verilog HDL EDA 万年历

目录

1绪论........................................................................................ . (1)

1.1选题背景 (1)

1.2课题相关技术地发展 (1)

1.3课题研究地必要性 (2)

1.4课题研究地内容 (3)

2E D A技术........................................................................................ (4)

2.1E D A概述 (4)

2.2什么是EDA (4)

2.3E D A地特点 (5)

3F P G A简介 (7)

3.1F P G A概述 (7)

3.2F P G A开发编程原理 (7)

3.3F P G A基本结构 (8)

3.4F P G A系统设计流程 (10)

4万年历设计方案 (1)

4

4.1万年历地原理 (14)

4.2实验程序 (14)

4.3实验连接 (34)

4.4实验仿真与实现 (36)

5实验结论与研究展望 (38)

5.1实验结论 (38)

5.2研究展望 (38)

致谢........................................................................................ . (39)

参考文献........................................................................................ .. (40)

1绪论

1.1选题背景

20世纪末,数字电子技术飞速发展,有力地推动了社会生产

力地发展和社会信息化地提高.在其推动下,数字技术地应用已经

渗透到人类生活地各个方面.从计算机到手机,从数字电话到数字

电视,从家用电器到军用设备,从工业自动化到航天技术,都尽可

能地采用了数字电子技术.而现代电子设计技术地核心是EDA技术.

本设计采用地VHDL和Verilog HDL是两种应用最为广泛硬件描述语言.前者具有很强大地功能,覆盖面广,描述能力强,支持门级电路地描述,也支持以寄存器、存储器、总线及其运算单元等构成地寄存器传输级电路地描述,还支持以行为算法和结构地混合描述为对象地系统级电路地描述.后者可以用来进行各种层次地逻辑设计,也可以进行数字系统地逻辑综合、仿真验证和时序分析.而采用Verilog HDL进行电路设计地最大优点就是设计与工艺无关性.

本设计将从EDA中FPGA嵌入式应用开发技术与数字钟技术

发展地客观实际出发,通过对该技术发展状况地了解,以及课题本

身地需要,指出研究基于FPGA地芯片系统与设计——万年历地

设计与实现地必要性.

1.2课题相关技术地发展

当今电子产品正向功能多元化,体积最小化,功耗最低化地方向发展.它与传统地电子产品在设计上地显著区别师大量使用大规模可编程逻辑器件,使产品地性能提高,体积缩小,功耗降低.同时广泛运用现代计算机技术,提高产品地自动化程度和竞争力,缩短研发周期.EDA技术正是为了适应现代电子技术地要求,吸收众多学科最新科技成果而形成地一门新技术.

美国Altera公司地可编程逻辑器件采用全新地结构和先进地技术,加上MaxplusII(或最新地QUARTUS)开发环境,更具有高性能,开发周期短等特点,十分方便进行电子产品地开发和设计.

EDA技术以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述主要表达方式,以计算机、大规模可编程逻辑器件地开发软件及实验开发系统为设计工具,通过有关地开发软件,自动完成用软件地方式设计地电子系统到硬件系统地逻辑编译,逻辑化简,逻辑分割,逻辑映射,编程下载等工作.最终形成集成电子系统或专用集成芯片地一门新技术.

1.3课题研究地必要性

如今地时代是科技是第一生产力地时期.因此,新产品、新技术层出不穷,电子技术地发展更是日新月异.在这快速发展地年

代,时间对人们来说是越来越宝贵,在快节奏地生活时,人们往往忘记了时间,一旦遇到重要地事情而忘记了时间,这将会带来很大地损失.因此我们需要一个定时系统来提醒这些忙碌地人.数字化地钟表给人们带来了极大地方便.近些年,随着科技地发展和社会地进步,人们对数字钟地要求也越来越高,传统地时钟已不能满足人们地需求.多功能,样式新颖已经成为数字钟地发展潮流.

1.4 课题研究地内容

本设计主要研究基于FPGA地数字钟,要求时间以24小时为一个周期,显示年、月、日、时、分、秒,可以对年、月、日、时、分及秒进行单独校对,使其校正到标准时间.因此,研究数字钟及扩大其应用,有着非常现实地意义.

2 EDA技术

2.1 EDA概述

EDA在通信行业(电信)里地另一个解释是企业数据架构,EDA给出了一个企业级地数据架构地总体视图,并按照电信企业地特征,进行了框架和层级地划分. “EDA是电子设计自动化(Electronic Design Automation)地缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)地概念发展而来地[1].”2.2 什么是EDA

20世纪90年代,国际上电子和计算机技术较先进地国家,一直在积极探索新地电子电路设计方法,并在设计方法、工具等方面进行了彻底地变革,取得了巨大成功.在电子技术设计领域,可编

程逻辑器件(如CPLD、FPGA)地应用,已得到广泛地普及,这些

器件为数字系统地设计带来了极大地灵活性.这些器件可以通过软

件编程而对其硬件结构和工作方式进行重构,从而使得硬件地设计可以如同软件设计那样方便快捷.这一切极大地改变了传统地数字

系统设计方法、设计过程和设计观念,促进了EDA技术地迅速发展.

EDA技术就是依靠功能强大地电子计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成设计文件,自动地完成逻辑编译、化简、分割、综合、优化、仿真,直至下载到可编程逻辑器件CPLD/FPGA或专用集成电路ASIC(Application Specific Integrated Circuit)芯片中,实现既定地电子电路设计功能.EDA技术使得电子电路设计者地工作仅限于利用硬件描述语言和EDA软件平台来完成对系统硬件功能地实现,极大地提高了设计效率,缩短了设计周期,节省了设计成本.

今天,EDA技术已经成为电子设计地重要工具,无论是设计芯片还是设计系统,如果没有EDA工具地支持,都将难以完成地.EDA工具已经成为现代电路设计师地重要武器,正在发挥着越来越重要地作用.

2.3 EDA地特点

(1) 高层综合和优化.为了能更好地支持自顶向下地设计方法,现代地EDA工具能够在系统进行综合和优化,这样就缩短了设计地周期,提高了设计效率.

(2)采用硬件描述语言进行设计.采用硬件描述语言进行电路与系统地描述是当前EDA技术地另一个特征.与传统地原理图设计

方法相比,HDL语言更适合描述规模大地数字系统,它能够使设计者在比较抽象地层次上对所设计系统地结构和逻辑功能进行描述.采用HDL语言设计地突出优点是:语言地公开性和利用性;设计与工艺地无关性;宽范围地描述能力;便于组织大规模系统地设计;便于设计地复用,交流,保存和修改等.目前最常用地硬件描述语言有VHDL和Verilog HDL,它们都已经成为IEEE标准.

(3)开放性和标准化.现代EDA工具普遍采用标准化和开放性框架结构,任何一个EDA系统只要建立了一个符合标准地开放式框架结构,就可以接纳其他厂商地EDA工具仪器进行设计工作.这样就可以实现各种EDA工具地优化组合,并集成在一个易于管理地统一环境下,实现资源共享.

3 FPGA简介

3.1 FPGA概述

“FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件地基础上进一步发展地产物.它是作为专用集成电路(ASIC)领域中地一种半定制电路而出现地,既解决了定制电路地不足,又克服了原有可编程器件门电路数有限地缺点.[2]”

3.2FPGA开发编程原理

FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分. 现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同地结构.FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器地输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能地基本逻辑单元模块,这些模块间利用金属连

线互相连接或连接到I/O模块.“FPGA地逻辑是通过向内部静态存储单元加载编程数据来实现地,存储在存储器单元中地值决定了逻辑单元地逻辑功能以及各模块之间或模块与I/O间地联接方式并最终决定了FPGA所能实现地功能,FPGA允许无限次地编程[2].”

3.3 FPGA基本结构

FPGA具有掩膜可编程门阵列地通用结构,它由逻辑功能块排成阵列,并由可编程地互连资源连接这些逻辑功能块来实现不同地设计.

FPGA一般由3种可编程电路和一个用于存放编程数据地静态存储器SRAM组成.这3种可编程电路是:可编程逻辑模块(CLB--Configurable Logic Block)、输入/输出模块(IOB--I/O Block)和互连资源(IR—Interconnect Resource).“可编程逻辑模块CLB是实现逻辑功能地基本单元,它们通常规则地排列成一个阵列,散布于整个芯片;可编程输入/输出模块(IOB)主要完成芯片上地逻辑与外部封装脚地接口,它通常排列在芯片地四周;可编程互连资源包括各种长度地连接线段和一些可编程连接开关,它们将各个CLB之间或CLB、IOB之间以及IOB之间连接起来,构成特定功能地电路[3].”

(1) CLB是FPGA地主要组成部分.它主要由逻辑函数发生器、触

发器、数据选择器等电路组成.CLB中3个逻辑函数发生器分别是G、F和H,相应地输出是G’ 、F’和H’.G有4个输入变量G1、G2、G3和G4;F也有4个输入变量F1、F2、F3和F4.这两个函数发生器是完全独立地,均可以实现4输入变量地任意组合逻辑函数.逻辑函数发生器H有3个输入信号;前两个是函数发生器地输出G’和F’,而另一个输入信号是来自信号变换电路地输出H1.这个函数发生器能实现3输入变量地各种组合函数.这3个函数发生器结合起来,可实现多达9变量地逻辑函数.

CLB中有许多不同规格地数据选择器(四选一、二选一等),通过对CLB内部数据选择器地编程,逻辑函数发生器G、F和H地输出可以连接到CLB输出端X或Y,并用来选择触发器地激励输入信号、时钟有效边沿、时钟使能信号以及输出信号.这些数据选择器地地址控制信号均由编程信息提供,从而实现所需地电路结构.

“CLB中地逻辑函数发生器F和G均为查找表结构,其工作原理类似于ROM.F和G地输入等效于ROM地地址码,通过查找ROM中地地址表可以得到相应地组合逻辑函数输出[4].”另一方面,逻辑函数发生器F和G还可以作为器件内高速RAM或小地可读写存储器使用,它由信号变换电路控制.

(2) 输入/输出模块IOB.IOB提供了器件引脚和内部逻辑阵列之间地连接.它主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成.每个IOB控制一个引脚,它们可被配置为输入、输出或

双向I/O功能.当IOB控制地引脚被定义为输入时,通过该引脚地输入信号先送入输入缓冲器.缓冲器地输出分成两路:一路可以直接送到MUX,另一路经延时几纳秒(或者不延时)送到输入通路D触发器,再送到数据选择器.通过编程给数据选择器不同地控制信息,确定送至CLB阵列地I1和I2是来自输入缓冲器,还是来自触发器.

当IOB控制地引脚被定义为输出时,CLB阵列地输出信号OUT 也可以有两条传输途径:一条是直接经MUX送至输出缓冲器,另一条是先存入输出通路D触发器,再送至输出缓冲器.

IOB输出端配有两只MOS管,它们地栅极均可编程,使MOS管导通或截止,分别经上拉电阻接通Vcc、地线或者不接通,用以改善输出波形和负载能力.

(3) 可编程互连资源IR.可编程互连资源IR可以将FPGA内部地CLB和CLB之间、CLB和IOB之间连接起来,构成各种具有复杂功能地系统.IR主要由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路地连接.

3.4FPGA系统设计流程

一般说来,一个比较大地完整地工程应该采用层次化地描述方法:分为几个较大地模块,定义好各功能模块之间地接口,然后各个模块再细分去具体实现,这就是TOP DOWN(自顶向下)地设计

方法.目前这种高层次地设计方法已被广泛采用.高层次设计只是定义系统地行为特征,可以不涉及实现工艺,因此还可以在厂家综合库地支持下,利用综合优化工具将高层次描述转换成针对某种工艺优化地网络表,使工艺转化变得轻而易举.CPLD/FPGA系统设计地工作流程如图2-2所示.

图3.1FPGA系统设计流程

流程说明:

1.工程师按照“自顶向下”地设计方法进行系统划分.

2.输入verilog HDL代码,这是设计中最为普遍地输入方式.此外,还可以采用图形输入方式(框图、状态图等),这种输入方式具有直观、容易理解地优点.

3.将以上地设计输入编译成标准地verilog HDL文件.

4.进行代码级地功能仿真,主要是检验系统功能设计地正确性.这一步骤适用于大型设计,因为对于大型设计来说,在综合前对源代码仿真,就可以大大减少设计重复地次数和时间.一般情况下,这一仿真步骤可略去.

5.利用综合器对verilog HDL源代码进行综合优化处理,生成门级描述地网络表文件,这是将高层次描述转化为硬件电路地关键步骤.综合优化是针对ASIC芯片供应商地某一产品系列进行地,所以综合地过程要在相应地厂家综合库地支持下才能完成.

6.利用产生地网络表文件进行适配前地时序仿真,仿真过程不涉及具体器件地硬件特性,是较为粗略地.一般地设计,也可略去这一步骤.

7.利用适配器将综合后地网络表文件针对某一具体地目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线.

8.在适配完成后,产生多项设计结果:(a)适配报告,包括芯片内部资源利用情况,设计地布尔方程描述情况等;(b)适配后地仿真模型;(c)器件编程文件.根据适配后地仿真模型,可以进行

适配后时序仿真,因为已经得到器件地实际硬件特性(如时延特性),所以仿真结果能比较精确地预期未来芯片地实际性能.如果仿真结果达不到设计要求,就修改verilog HDL源代码或选择不同速度和品质地器件,直至满足设计要求.

最后将适配器产生地器件编程文件通过编程器或下载电缆载入到目标芯片CPLD/FPGA中.

4 万年历总体设计方案

4.1 万年历原理

设计原理如图4.1所示:

图4.1 设计原理图

计数器在正常情况下是对1HZ地频率计数,在调整时间状况下是对需要调整地时间模块进行计数;控制按键用来选择是正常计数还是调整时间并决定调整时、分、秒;置数按键按下时,表示相应地调整块要加一,如要对小时调整时,显示时间地LED管将闪烁且当置数按键按下时,相应地小时显示要加一.动态显示模块是对计数器地计数进行译码,送到LED显示.

4.2 实验程序

(1) Clock模块

Library ieee。

use ieee.std_logic_1164.all。

use ieee.std_logic_unsigned.all。

entity Clock is

port( mode, set, clr, clk ,k:in std_logic。

seg7, segctr :out std_logic_vector(7 downto 0) )。

end entity。

ARCHITECTURE arch OF Clock IS

signal state: std_logic_vector(1 downto 0)。

signal Hour, Min, Sec,Year,Mon,Day,d: std_logic_vector(5 downto 0)。

signal BCDH, BCDM, BCDS,BCDN,BCDY,BCDR: std_logic_vector(7 downto 0)。

signal segDat: std_logic_vector(3 downto 0)。

signal blink: std_logic_vector(2 downto 0)。

signal set_reg, blink_clk: std_logic。

component BCD

port(DataIn : in std_logic_vector(5 downto 0)。

BCDOut : out std_logic_vector(7 downto 0) )。 end component。

BEGIN

process(mode)

begin

if (clr='1') then

state<="00"。

else

if (mode'event and mode='1') then

state<=state+1。

end if。

end if。

end process。

process(state, blink_clk)

begin

case state is

when "00" => blink<="000"。

when "01" => blink<=(2=>blink_clk, others=>'0')。 when "10" => blink<=(1=>blink_clk, others=>'0')。 when "11" => blink<=(0=>blink_clk, others=>'0')。 end case。

电子万年历课程设计报告

课程:创新与综合课程设计 电子与电气工程系 实践教学环节说明书 题目名称电子万年历 院(系)电子与电气工程学院 专业电子信息工程 班级119411 学号1109635010 学生姓名11 指导教师q1 起止日期13周周一~14周周五

电子万年历 一.设计目的 设计一个具有报时功能、停电正常运行(来电无需校时)、带有年月日、时分秒及星期显示的电子日历。 二.方案设计 硬件控制电路主要用了AT89S52芯片处理器、LCD1602显示器等。根据各自芯片的功能互相连接成电子万年历的控制电路。软件控制程序主要有主控程序、电子万年历的时间控制程序、时间显示及星期显示程序等组成。主控程序中对整个程序进行控制,进行了初始化程序及计数器、还有键盘功能程序、以及显示程序等工作,时间控制程序是电子万年历中比较重要的部分。时间控制程序体现了年、月、日、时、分、秒及星期的计算方法。时间控制程序主要是定时器0计时中断程序每隔10ms中断一次当作一个计数,每中断一次则计数加1,当计数100次时,则表示1秒到了,秒变量加1,同理再判断是否1分钟到了,再判断是否1小时到了,再判断是否1天到了,再判断是否1月到了,再判断是否1年到了,若计数到了则相关变量清除0。先给出一般年份的每月天数。如果是闰年,第二个月天数不为28天,而是29天。再用公式s=v-1 +〔(y-1/4〕-〔(y-1/100〕+〔(y-1/400〕+ d计算当前显示日期是星期几,当调节日期时,星期自动的调整过来。闰年的判断规则为,如果该年份是4或100的整数倍或者是400的整数倍,则为闰年;否则为非闰年。在我们的这个设计中由于只涉及100年范围内,所以判断是否闰年就只需要用该年份除4来判断就行了。 三.系统的设计框图 本系统以AT89S52单片机为核心,结合时钟芯片DS1302,LCD1602,键盘等外围器件,实现电子万年历的一系列功能,并通过液晶屏和按键控制完成人机交互的功能。系统总体设计框图如图(1)所示

基于AT89C51的数字万年历设计

江西理工大学南昌校区 毕业设计(论文) 题目:基于AT89C51的数字万年历设计 系别:信息工程系 专业:电气自动化 班级:09电子自动化1班 学生: 学号:09321131 指导教师:职称:助教

摘要 电子万年历是一种日常广泛应用的计时工具,在现代社会中越来越流行。数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周、时、分、秒、温度等信息,还具有时间校准等功能。第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求!因此,电子万年历的出现带来了钟表计时业界跨跃性的进步。 本文中万年历的设计过程在硬件与软件方面进行同步设计,硬件部分主要由AT89C51单片机,液晶显示电路,复位电路,时钟电路,稳压电路电路等组成。在单片机的选择上使用了AT89C51单片机,该单片机适合于许多较为复杂控制应用场合,显示器使用液晶LCD1602。软件方面主要包括日历程序、液晶驱动程序、显示程序等,这些程序采用C语言编写。所有程序编写完成后,在Keil C51软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真。并且利用Protel软件进行制图,画出PCB图并且制作出实物。 关键词: 时钟电钟;液晶LCD1602;单片机

ABSTRACT E-calendar is a very extensive daily timing tool, more popular in modern society. For digital electronic calendar using intuitive digital display, simultaneously displays year, month, day, day, hour, minute, second, temperatures and other information, also with a time calibration capabilities. The third revolution is a single-chip digital timing technology ( electronic calendar ), so that the timing product walk time difference from graded narrowing to 1/ 6000000 of a second, from the original traditional pointer timing for the development of people's daily more familiar luminous digital display, intuitive and clear, and the increase of the full automatic date, week, temperature and other daily auxiliary information display function, which is more in line with consumer needs. Therefore, the electronic calendar brings a watch industry a big progress. Synchronizing design of calendar is based on hardware and software design. Hardware part by AT89C51 microcontroller, circuit for LCD, reset circuit, clock circuits, voltage-stabilizing circuit and serial download circuits and other components of the circuit. On the choice of using single-chip microcomputer AT89C51 microcontroller, the microcontroller is suitable for a host of complex control applications. Monitor LCD LCD1602. Software includes calendar, LCD drivers, display program. Programs using a language. All the programming is completed, Kiel C51 debugging software, sure no problem, in Proteus software embedded in single-chip microcomputer in the simulation. And the use of Portal software for drawing and draw the PCB. Keywords : clock electric clock II

万年历电子钟设计报告

课程设计报告课程设计名称 SOPC原理及应用专业电子科学与技术 班级电子13-1班 学号 姓名郑航 指导教师冯丽 成绩

2016年1月13日

目录 一、设计目的 (1) 二、设计内容要求 (1) 三、系统软、硬件需求分析 (1) 1. 硬件系统组成规划 (1) 2. 软件系统规划 (2) 四、设计步骤 (3) 3. 新建工程“count_binary” (3) 4. 添加ip核 (4) 5. 添加SDRAM Controller (5) 6. 添加flash (6) 7. 添加外部RAM总线(Avalon三态桥) (7) 8. 添加pio核 (7) 9. 添加cpu核 (8) 10. 添加LCD核 (9) 11. 自动分配基地址并生成系统 (9) 12. 设置顶层模块图 (10) 13. 管脚分配并编译 (11) 14. 启动Nios II IDE,新建工程 (12)

15. 导入设计程序 (12) 16. 编译工程并烧录 (13) 五、设计结果 (14) 六、源程序 (16) 1. 程序......................................... 错误!未定义书签。 2. 程序......................................... 错误!未定义书签。 3. 程序......................................... 错误!未定义书签。 4. 程序 (16) 七、实验心得 (28)

项目基于NiosII系统的电子钟设计 一、设计目的 1.掌握基本的开发流程。 2.熟悉QUARTUS II软件的使用。 3.熟悉NIOS II软件的使用。 4.掌握SOPC硬件系统的搭建和NIOSII软件编程方法。 5.掌握SOPC系统设计方法。 6.进一步了解简单的设置及其编程。 二、设计内容要求 NiosII系统的硬件设计,软件设计,该系统能实现一个电子钟功能。 三、系统软、硬件需求分析 1.硬件系统组成规划 根据系统要实现的功能和开发板配置,本项目中需要用到的Cyclone II开发板上的外围器件有: LCD:电子钟显示屏幕 按钮:电子钟设置功能键 Flash存储器:存储软、硬件程序 SRAM存储器:程序运行时将其导入SRAM 根据所用到的外设和器件特性,在SOPC Builder中建立系统要添加的模块包括:NiosII CPU定时器,按键PIO,LCD,外部RAM总线(Avalon三态桥),

Java万年历课程设计报告

杭州师范大学钱江学院课程设计 题目万年历 学院钱江学院 专业信电分院计算机科学与技术 班级计算机1101 姓名崔伊平 指导教师王李冬 2013 年9 月20 日

目录 一.概述 (1) 二.总体方案设计 (2) 三.详细设计 (3) 四.最终输出 (7) 五.课程设计总结 (8) 参考文献 (9)

一、概述 1.课程设计的目的 通过显示年日历程序的设计,培养学生综合利用java语言进行程序设计的能力,加强函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力和程序文档建立、归纳总结的能力。 通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力,能更好的巩固《java语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了java语言的好处和其可用性! 2.课程设计的要求 2.1 输入查询的年份与月份,单击“更新”按扭,则可得到相应的日历。本实验是对图形用户界面,布局管理器的综合运用。要掌握APPLET容器中添加组件的方法,理解JAVA 的事件处理机制,编写独立的运行窗口。 2.2 输出形式 使用独立的运行窗口进行显示。界面主要由两部分组成——查询输入部分和结果显示部分。查询输入部分包括两个文本域,一个用于输入年份:一个用于选择月份:一个更新按扭,用来触发查询事件。

二总体方案设计 1.程序开发环境 a.开发环境:eclipse b.系统环境:windows xp/7 c.设计工具:Microsoft office 2003 2.整体流程图 图1 流程图 3.功能模块图

推荐-电子万年历的设计与制作课程设计 精品

华南农业大学 电子工程学院应用物理系 课程设计(报告)任务书 设计题目:电子万年历的设计与制作 任务与要求(请按所选题目自行总结) 任务:设计一个电子万年历,利用实时时钟芯片ds1302和51单片机制作实时时钟。 要求: 1.使用LCD1602显示屏显示日期和时间; 2.能够显示新历和农历; 3. 包括时钟模块,能够显示实时时钟; 4. 要有时间设置按键部分; 5. 完成硬件电路的设计后,编写程序,实现时间和日期的显示等功能; 6. 调试程序,完成功能验证,写出完整的课程设计。 实验器材: 1.单片机最小系统:单片机(插座),晶振,电阻,电容,按键; 2.电源模块:自锁开关,LED灯,USB插座; 3.按键模块:按键; 4.1602显示模块:1602(排母),电位器,电容; 5.RTC模块:DS1302芯片(插座),晶振,CR2032电池(插座); 6.DIY小部件:漆包线,杜邦线,排针,排母,IC插座,电阻包,电容包,烙铁套装; 开始日期20XX 年 3 月 4 日完成日期20XX 年3 月 23 日

电子万年历设计 摘要:本系统是由单片机最小系统、电源模块、按键模块、LCD1602显示模块及RTC模块组成的电子万年历系统。通过时钟模块实时进行时间和日期的计数,进而传递给单片机处理,单片机再将其传递给LCD1602模块显示当前时间,另设有按键模块可以完成时间设置以及日期查询等功能操作。其设计简单,性能优良,时间设置可调,同时同步显示农历和星期,具有较强的实用性。本文先简要介绍每个模块的工作原理,再作整个系统电路的综合分析,说明该电子万年历的实现过程。 Summary:This system,electronic calendar system,is posed of SCM minimum system, power supply module, keys module, LCD1602 display module and RTC module .Through RTC module for counting the time and date, and then transmit to SCM for processing,and then send it to the LCD1602 module to show the current time, also operates key modules can be pleted time setting and operating date query function.Its simple design, excellent performance, adjustable time setting, synchronous display lunar calendar and week at the same time, has strong practicability.This paper first briefly introduces the working principle of each module, and then a prehensive analysis of the circuit.The last,illustrate the whole system implementation process of the electronic calendar. 关键词:万年历,计时,显示,农历 Keywords: calendar、timing、display、

C语言万年历设计报告

C语言课程 设计报告题目:编写万年历系统 年级: 专业: 班级: 姓名: 学号:

目录 第1章设计目的 第2章需求分析 第3章概要设计 第4章源程序清单 第5章执行结果 1)登陆界面 2)显示当前日月历 3)显示具体日期信息 第6章程序问题调试与课程设计心得

第1章设计目的 设计目的(实验要求): 1.模仿现实生活中的挂历. 2.当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几). 3.当系统日期变到下一月时,系统自动翻页到下一月. 第2章需求分析 (1)程序运行时,首先给出菜单选项和输入提示: (2)用户可以通过主菜单选择不同选项。输入1,通过输入当前日期可显示当前月的日历;输入2,通过输入具体日期(中间以空格分开)可显示该日具体信息;输入3,则退出查询系统。

第3章概要设计 1.菜单选择界面可通过下面所示函数时现; 主要思路: 通过while语句与swich…case以及if条件语句实现菜单的循环功能和不同选 项的功能实现。 闰年与平年的判断: 代码如下: void main() { int year,month,day,a,b; while(1) { printf("\n\n\n\n"); printf(" **********************************************************\n\n"); printf(" * * \n");

printf(" Welcome to enter calendar system \n"); printf(" * * \n\n"); printf(" **********************************************************\n\n\n" ); printf(" 1 The month of current date 2 Date 3 Exit\n"); printf(" please import your choose<1~3>,press Enter to define: "); scanf("%d",&b); switch(b) { case 1: printf("\n Please import the year,month and day which you want to check,the year,month and day separation by blank space: "); scanf("%d%d%d",&year,&month,&day); a=x3(year,month,1); if(a==0) { printf("Error!Please import again.\n"); break;} yueli(year,month,day); break; case 2: printf("\n Please import the year,month and day which you want to check, the year,month and day separation by blank space: "); scanf("%d%d%d",&year,&month,&day); a=x3(year,month,day); if(a==0) { printf("Error!Please import again.\n"); break;} rili(year,month,day); break; case 3: exit(0); default: printf("Error!Please import again.\n\n"); } }

单片机课程设计—万年历[1]

郑州轻工业学院 软件学院 单片机与接口技术课程设计总结报告 设计题目:电子万年历 学生姓名: 系别: 专业: 班级: 学号: 指导教师: 2011年12月16日

设计题目: 电子万年历 设计任务与要求: 1、显示年月日时分秒及星期信息 2、具有可调整日期和时间功能 3、增加闰年计算功能 方案比较: 方案一:系统分为主控制器模块、显示模块、按键开关模块,主控制模块采用 AT89C52单片机为控制中心,显示模块采用普通的共阴LED数码管,键输入采用中断实现 功能调整,计时使用AT89C52单片机自带的定时器功能,实现对时间、日期的操作,通 过按键盘开关实现对时间、日期的调整。 方案二:系统分为主控模块、时钟电路模块、按键扫描模块,LCD显示模块,电源 电路、复位电路、晶振电路等模块。主控模块采用AT89C52单片机,按键模块用四个按键,用于调整时间,显示模块采用LCD1602,时钟电路模块采用DS1302时钟芯片实现对 时间、日期的操作。 两个方案工作原理大致相同,只有显示模块和时钟电路不同。LED数码管价格适中,对于数字显示效果较好,而且使用单片机的端口也较少; LCD1602液晶显示屏,显示功 能强大,可以显示大量文字、图形,显示多样性,清晰可见,价格相对LED数码管来说 要昂贵些,但是基于本设计显示的东西较多,若采用LED数码管的话,所需数码管较多,而且不利于控制,因此选择LCD1602作为显示模块。DS1302是一款高性能的实时时钟芯片,以计时准确、接口简单、使用方便、工作电压范围宽和低功耗等优点,得到广泛的 应用,实时时钟有秒、分、时、星期、日、月和年,月小于31天时可以自动调整,并具 有闰年补偿功能,而且在掉电时能够在外部纽扣电池的供电下继续工作。单片机有定时 器的功能,但时间误差较大,且需要编写时钟程序,因此采用DS1302作为时钟电路。 对比以上方案,结合设计技术指标与要求我们选择了方案二进行设计。

基于单片机电子万年历的毕业设计说明

单片机课程设计报告 电子万年历设计 姓名:建强 学号: 专业班级: 08电气(2)班指导老师:吴永 所在学院:科技学院 2011年6月30日

摘要 随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS1302。它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。 综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。 本设计是基于51系列的单片机进行的电子万年历设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。在硬件与软件设计时,没有良好的基础知识和实践经验会受到很大限制,每项功能实现时需要那种硬件,程序该如何编写,算法如何实现等,没有一定的基础就不可能很好的实现。 具体实现功能: (1)显示年月日时分秒及星期信息 (2)具有可调整日期和时间功能 (3)与即时时间同步

目录 1方案论证 (3) 1.1单片机芯片的选择方案和论证 (3) 1.2显示模块选择方案和论证 (3) 1.3时钟芯片的选择方案和论证 (4) 1.4电路设计最终方案决定 (4) 2系统的硬件设计与实现 (5) 2.1电路设计框图 (5) 2.2系统硬件概述 (5) 2.3主要单元电路的设计 (5) 2.3.1单片机主控制模块的设计 (5) 2.3.2时钟电路模块的设计 (6) 2.3.3电路原理及说明 (7) 2.3.4显示模块的设计 (8) 3系统的软件设计 (9) 3.1程序流程框图 (9) 4测试与结果分析 (11) 4.1硬件测试 (10) 4.2软件测试 (10) 4.3测试结果分析与结论 (10) 4.3.1 测试结果分析 (10) 4.3.2 测试结论 (10) 5prodeus软件仿真........................................ ..........错误!未定义书签。 5.1Proteus ISIS简介 (12) 5.2Proteus运行流程 (13) 5.3Proteus功能仿真 (13) 6课程设计总结与体会.......................................... .....错误!未定义书签。 参考文献...........................................................错误!未定义书签。 附录一:系统电路图.................................................错误!未定义书签。 附录二:系统程序...................................................错误!未定义书签。

简单万年历设计

信电学院 电子信息工程专业CDIO一级项目项目设计说明书(2013/2014学年第一学期) 项目名称:简单万年历的设计 专业班级:电子信息工程 学生姓名: 学号: 指导教师: 设计周数:一周 设计成绩: 2013 年12 月29 日

目录 1项目设计目的及任务--------------------------------------------------------------2 2 设计方案--------------------------------------------------------------2 3 电路仿真与分析--------------------------------------------------------------9 4项目设计心得-------------------------------------------------------------17 5参考文献-------------------------------------------------------------17

1.项目设计目的及任务 用51单片机或52单片机为主体,设计并制作一台数字万年历。基本要求有时钟显示(时/分/秒);日期、星期显示,可设定月份;上电即可显示当前系统的时间该系统的设计电路是以 AT89C51单片机为核心控制器,其外围电路主要包括时钟模块,液晶模块,和与电脑主机通信模块等。通过 PC 机在 Internet 上同步时间,整个系统使用C语言进行编程,实现其设计的各种功能。输出方式灵活、功耗低、计时准确、性能稳定、维护方便等优点。实用电子时钟是一个时间控制系统,既能作为一般的时间显示器,同时可以根据需要扩展其功能。系统上电自检后,实时实现小时、分钟、秒以及日历的显示等指示信息的显示,通过按键可实现校对时间等功能。 2 设计方案 2.1总方案设计:设计简单万年历一般有三个可行方案,方案一:纯硬件电路系统,各功能采用分离的硬件电路模块实现。用时序逻辑电路实现时钟功能,用555定时器实现闹钟的设定。但这种实现方法可靠性差、控制精度低,灵活性小、线路复杂、安装调试不方便,而且不方便实现对系统的扩展。方案二:用可编程逻辑器件(PLD)实现。这种方案与前一种相比,可靠性增加,同时可以很好的完成时钟的功能。同时这种方案只能选用数码管显示,显示的效果不够理想,无法很好的完成扩展功能的要求。同时,系统的灵活性不够。方案三:采用单片机作为系统的控制核心。随着国内超大规模集成电路的出现,微处理器及其外围芯片有了迅速的发展。集成技术的最新发展之一是将CPU和外围芯片,如程序存储器、数据存储器、并行I/O口、串行I/O口、定时/计数器、中断控制器及其他控制部件集成在一个芯片之中,制成单片计算机。而近年来推出的一些高档单片机还包括有许多特殊功能单元,如A/D、D/A转换器、调制解调器、通信控制器、锁相环、DMA、浮点运算单元、PWM控制输出单元、PWM输出时的死区可编程控制功能等。因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统,如工业流水线控制系统、作为家用电器的主控制器、分布式控制系统的终端节点或作为其主控制节点起中继的作用、数据采集系统、自动测试系统等。我们选用的是方案三。因为单片机的出现,并在各技术领域中得到如此迅猛的发展,与单片机构成计算机应用系统所形成的下述特点有关:

C语言课程设计报告-万年历1

课程设计题目:万年历 实验题目:万年历程序的编写 实验目的:综合运用所学的C语言知识解决一个比较实际的简单问题,侧重对数组、函数、指针、结构体和文件等相关内容的综合应用, 使同学们能进一步熟悉掌握C语言的基本语法,进一步提升自 己的编程能力并逐步培养编程思维,进而不断提高同学们解决问 题的能力,并为以后的语言学习打下良好的基础。 实验要求:万年历设计 主要功能包括: 1、查询某年某月每一天对应星期几。 2、可以查询某年某月的上个月或是下个月的日历情况。 3、查询某年某月某日是这一年的第几天,并查询改天 是星期几。 4、判断该年是闰年还是平年,判断这一年的生肖。实现思路(要求有文字描述,并画出流程图):

实现过程(要求有文字说明实现的过程,并对相应的代码添加注释):见程序(程序见后)后的解析。。。运行时只要你输入年月日,你要的星系都会显示出来;如果想继续输入日期的话,只需按y就可以,祥结束按n就可以结束。 实验总结(分析程序的得与失): 得:通过这次程序设计,更使我了解了编程序的严谨性,每个问题,每个不走都得有依据,不得盲目乱造,同时也让我获得了一点 编写简单程序的能力,使自己平时在理论课中很多部明白的东 西明白了好多,学会了好多语句的用法,比如会用‘y’ or‘ n’ 来决定程序是否要继续;怎么控制输出格式等等。总之在这次 程序设计中我学到了很多。 失:在编程序过程中有些函数的用法不怎么会用,偶尔会落下写简单的东西。如‘,’‘;’等;同时在编写输出上下个情况及判断 程序是否要继续的程序上花费了好多时间;函数的声明、调用 既然不清楚,感到很惭愧。实验的过失就是成功的阶梯,在过 失中我也学到很多。 心得体会:我体会到了编程序的严谨性,也觉得如果我们要是熟悉课本所讲的内容,不怕麻烦,坚持不懈,我们一定可以将它实现的。 要有耐心,有时候很多的错误就是一个地方引起的,只要认真 检查,一定能突破的,所以在以后的编程序是要细心,有耐心, 人不断调试程序,直至最后成功。 #include struct //定义包含年月日数组结构体 {int year; int month; int day;

万年历设计

面向对象技术实验报告 (万年历)

1.实验目的 掌握一种编程工具和面向对象程序设计的基本思想和方法,培养我们学生综合利用某种语言进行程序设计的能力,培养我们学生利用系统提供的功能进行创新设计的能力,培养我们学生充分利用计算机的功能和特点分析实际问题及解决实际问题的能力。 为我们提供一个综合运用所学知识解决实际问题的机会,增强我们学生的实践动手能力和工程实践能力,并培养和锻炼我们学生的自学创新能力。 为了能更好地了解C++语言,因此开设了此次课程设计,程序设计教学课程的目的不是为了单独的课堂学习,而是要让我们学生掌握程序设计的基本思想及方法。一方面,在课程设计过程中,可以明确的指导为什么而学,还能对所学知识得到应用,更重要的是可以让我们学生掌握一些基本函数的用法,从而不在对编程序感到茫然,经过设计,可以让我们熟悉简单程序的设计方法和编写,对程序设计及该门课程设计语言的应用得到理解。 2.功能简介 万年历,输入年份,可以显示出这一年的每个月份和所对应的星期天,可以查询每一天.

3.流程图 4.代码 #include #include using namespace std; int i,c,day,year,k,a[50]; void f1(int x) //大月 { for( i=0;i<50;i++) a[i]=33; for(i=k-1;i>=0;i--) a[i]='\000'; //1号前均为空格 for(i=k;i<31+k;i++) a[i]=a[i-1]+1; }

void f2(int x) //小月 { for( i=0;i<50;i++) a[i]=33; for(i=k-1;i>=0;i--) a[i]='\000'; for(i=k;i<30+k;i++) a[i]=a[i-1]+1; } void f3(int x) //闰年二月 { for( i=0;i<50;i++) a[i]=33; for(i=k-1;i>=0;i--) a[i]='\000'; for(i=k;i<29+k;i++) a[i]=a[i-1]+1; } void f4(int x) //非闰年二月 { for( i=0;i<50;i++) a[i]=33; for(i=k-1;i>=0;i--) a[i]='\000'; for(i=k;i<28+k;i++) a[i]=a[i-1]+1; } void g(int y[],int z) // 输出日历表 { cout<<"日"<<'\t'<<"一"<<'\t'<<"二"<<'\t'<<"三"<<'\t'<<"四"<<'\t'<<"五"<<'\t'<<"六"<

Java课程设计-万年历

河北科技大学课程设计报告 号:学生姓名:学 专业班级:程序设计课程设计Java课程名称:学期学年第 2 2 015 学年学期: 2 014 — 指导教师:刘伟月年 2 0

的?.................................................................. ................................1?? 2.需求分................................................................... .........析................................1? 3.总体设计................................................................... ........................................1? 4.详细设计................................................................... ........................................1?

5.软件测试................................................................... . (10) 6.课程设计总结................................................................... ................................11. 一、课程设计目的(1)熟练使用java语言编写程序,解决实际问题。? (2)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;? (3)学会自己调试程序的方法并掌握一定的技巧。 二、需求分析本程序的要求为: 1.使用图形用户界面;? 2.本程序能够实现日期与星期的查询。 ?三、总体设计(1)可以通过图形界面显示日历。? (2)能以月历形式显示日期与星期。? (3)支持用户自己输入年份,可以通过上一年,下一年等按钮来选择年份和月份。? ?四、详细设计1.总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。 ,0若是取余得几既为星期几,7使总天数除以输出月份第一天为星期几的算法:2. 则为星期日。? 3.算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。? 4.查询年份必须为四位有效数字,否则不予显示。 程序源代码: import import import import import import; import import import ; import ; import import import java.awt.*; import import java.text.*; import ;

万年历C++课程设计报告

徐州师范大学科文学院本科生课程设计 课程名称:计算机程序设计实训 题目:万年历的设计 专业班级:电子信息工程08电信 学生姓名: 学生学号: 日期:2010/12/20 指导教师:姜芳艽 科文学院教务部印制

指导教师签字: 年月日

目录 摘要...................................................错误!未定义书签。 Abstract ...................错误!未定义书签。 1 绪论...................................................错误!未定义书签。 课题的设计......................................................................... 错误!未定义书签。 课题的背景……………………………………………………………………….错误!未定义书签。 课题的目的………………………………………………………………………..错误!未定义书签。 课题的意义………………………………………………………………………..错误!未定义书签。 2 设计方案简述 ..................................................... 错误!未定义书签。 设计总体规划..................................................................... 错误!未定义书签。 实现的功能………………………………………………………………………..错误!未定义书签。 结构模块分析……………………………………………………………………...错误!未定义书签。 3 详细设计 ............................................................. 错误!未定义书签。 设计思路............................................................................. 错误!未定义书签。 设计语言…………………………………………………………………………..错误!未定义书签。 设计程序流程图…………………………………………………………………..错误!未定义书签。 模块详细设计....................................................................... 错误!未定义书签。 大月和小月的定义………………………………………………………………..错误!未定义书签。 闰年与非闰年二月的定义………………………………………………………..错误!未定义书签。 日历表的输出……………………………………………………………………..错误!未定义书签。 4 设计结果及分析.................................................. 错误!未定义书签。 软件测试............................................................................... 错误!未定义书签。 设计成果............................................................................... 错误!未定义书签。 5 总结..................................................错误!未定义书签。 参考文献 ................................................................. 错误!未定义书签。

C++万年历课程设计报告

华东交通大学理工学院 课程设计报告书 所属课程名称 C++程序设计课程设计 题目万年历 - 分院电信分院 专业班级 2012级计算机 (1) 班 学号 20 学生姓名陶志敏 指导教师肖盛文 2013 年 6月16 日

课程设计报告书 (1) 第一章需求分析................................................. . (3) 第二章概要设计................................................. . (4) 第三章详细设计与编码 (6) 第四章调试分析 (9) 第五章用户使用说明 (12) 设计心得 (13) 参考文献 (14) 致谢................................................. .. (14)

第一章需求分析 如今的社会是一个信息的时代,随着电脑等科技产品在人们生活中占据着越来越重要的地位,人们就会越加的善加利用,这为我们的生活带来了极大的效率,同时计算机的普及更可以看出它所占的地位。 万年历作为日常中的一种小工具,它具有多方面的小工能,主要在日期的显示上给人以直观的表达效果,在日期的查询上方便简洁,还有就是在某些节日的提醒上都给我们带来极大的方便 ,是一种比较实用的小工具。我们每个人都可以在自己的个人电脑上进行制作,一方面不仅可以加强巩固我们对C++语言的学习,还可以通过自主的编程找到自身的缺点。这对培养我们自身的创新能力和动手能力具有很大的作用。

第二章概要设计 1.设计要求 程序完成运行时,能过正确的表达出所输入年份的万年历。 2.总体设计 <1>实现操作流程图

单片机电子万年历课程设计报告书

单片机课程设计 姓名:吕长明 学号:04040804021 专业班级:机电四班

一、单片机原理及应用简介 随着国内超大规模集成电路的出现,微处理器及其外围芯片有了迅速的发展。集成技术 的最新发展之一是将CPU和外围芯片,如程序存储器、数据存储器、并行、串行I/O口、定时/计数器、中断控制器及其他控制部件集成在一个芯片之中,制成单片计算机(Single-Chip Microcomputer)。而近年来推出的一些高档单片机还包括有许多特殊功能单元,如A/D、D/A转换器、调制解调器、通信控制器、锁相环、DMA、浮点运算单元等。因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统,如工 业控制系统、数据采集系统、自动测试系统、万年历电子表等。 二、系统硬件设计 8052 是标准的40引脚双列直插式集成电路芯片,引脚分布请参照----单片机引脚图图1: 图1 8052引脚 P0.0~P0.7 P0口8位双向口线(在引脚的39~32号端子)。 P1.0~P1.7 P1口8位双向口线(在引脚的1~8号端子)。 P2.0~P2.7 P2口8位双向口线(在引脚的21~28号端子)。 P3.0~P3.7 P2口8位双向口线(在引脚的10~17号端子)。 8052芯片管脚说明: 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的一些特殊功能口,如表1所示: 表1 特殊功能口 P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

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