定时闹钟设计课程设计报告

定时闹钟设计课程设计报告
定时闹钟设计课程设计报告

定时闹钟设计

摘要:

本设计目的是利用单片机设计制作一个简易的定时闹铃时钟,可以放在宿舍或教室使用,在夜晚或黑暗的场合也可以使用。可以设置现在的时间以及闹铃的时间并且显示出来,若时间到则发出一阵声响。

本次设计的定时闹钟在硬件方面就采用了AT89C52芯片,用6位LED数码管进行显示。LED用P0口进行驱动,采用的是动态扫描显示,能够比较准确显示时时—分分—秒秒。通过五个功能按键可以实现对时间的修改、定时和闹铃终止,闹钟设置的时间到时蜂鸣器可以发出声响。在软件方面用C51编程。整个定时闹钟系统能完成时间的显示,调时和设置闹钟、停止响铃等功能,并经过系统仿真后得到了正确的结果。

关键词:定时闹钟;蜂鸣器;AT89C52;74HC245;

目录

第1章绪论

设计目的

本次课程设计的主题是定时闹钟,其基础部分是一个数字钟。电路系统由秒信号发生器、“时、分、秒”计数器、显示器组成。其中秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,这里用51单片机的定时器来实现。利用定时器获得每一秒的时刻,然后在程序中,我们就可以给秒进行逐秒赋值,满60秒则进位为1分,满60分则进位为1小时,满24小时则时间重置实现一天24小时的循环。译码显示电路将“时”、“分”、“秒”计数器的输出状态送到七段显示译码器译码,通过一个六位八段数码管显示出来。

这里利用51单片机的相关知识,来实现电子闹钟的相关功能。实验使用了

AT89C52、74HC245等芯片,通过单片机的P0、P3管脚来驱动数码管显示出相应的时刻。本文将讲述AT89C52、74HC245等芯片的基本功能原理,并重点介绍该电子闹钟的设计。

设计要求和任务

使用6位七段LED显示器来显示现在的时间;显示格式为“时时分分秒秒”;具有4个按键来做功能设置,可以设置现在的时间及显示闹铃设置时间;时间到则发出一阵声响,可通过按键复位;对单片机系统设计的过程进行总结,认真书写课程设计报告并按时上交。

利用51单片机结合七段LED显示器设计一个简易的定时闹铃时钟,可以放在宿舍或教室使用,由于用七段LED显示器显示数据,在夜晚或黑暗的场合也可以使用。可以设置现在的时间及显示闹铃设置时间,若时间到则发出一阵声响。

论文主要内容

论文分别叙述从硬件和软件上实现该设计的过程。第2章为总体设计方案。第3章主要介绍设计实现需要解决的硬件问题。依次介绍所使用的各种硬件的使用方法,并附上仿真电路图和文字说明。第4章从软件的角度说明实现该设计需要解决的问题。

第2章系统总体设计

系统设计需求

系统要求实现以下功能:

1.当电源接通时,系统能正确显示当前时间。

2.当前时间与实时时间有误差时,可以通过键盘调整当前时间。

3.系统允许进行闹钟设置,开启闹钟功能时,当设置的闹钟时间与当前时间一致的时候,系统通过蜂鸣器发出警报声并且可以通过按键停止。

总体设计方案

功能组成:

本次设计中的计时功能很容易实现,难点在于时钟功能和闹钟功能的切换和时间的设置。

该电子闹钟设计对51单片机定时器0装初值,使其初值对应50ms,定时器0的中断次数达到20次就刚好为1s,当秒部分计数到60时置零,并向分部分进一;当分部分计数到60时置零,并向时部分进一,当时部分计数到24时置零,从而满足时钟的正常工作。

在设计过程中,我发现通过4个按键来完成一个闹钟的基础功能虽然可以实现,但是用户用起来就会很麻烦,因为有的键必须有多种功能和不同的触发方式,我认为可以增加少许按键来方便用户快速了解到我们的闹钟是如何进行控制的。所以本次设计设置5个键依次对其进行“时间校准”、“闹钟设置”、“秒分时切换/终止警报”、“加1按钮”、“减1按钮”。“秒分时切换/终止报警”键在调时状态中,起时分秒切换的作用,在非调试状态下,起闹钟终止的作用。

当用户按下“时间校准”的按钮后,程序会关闭T0定时器,之后时钟停止工作,此时数码管会显示当前静止的时间,说明已经进入时间校准的界面了。在完成时间校准后,打开T0定时器,时钟会在设置好的时间上继续工作走秒。

当用户按下“闹钟设置”按钮后,会将当前时间复制出来提供给定时界面,注意此时我们的时钟仍然在继续工作,只是数码管显示的是定时模式的静止时间。当设置好后,此时用户设置的时间只要没有触发过闹铃,再次按“闹钟设置”按钮就能查看并修改,即闹钟会保存下用户最后一次未被触发的闹钟时间。

当正常工作的时钟时刻到达了预设的闹铃时刻,蜂鸣器发出警报声,屏幕会闪烁并显示当前时间。考虑到用户可能已经被提醒而不想继续被闹铃声干扰,还提供了一个能够终止闹铃的功能,此功能与“时分秒切换”功能共用同一按键,按下后时钟继续正常工作,且闹钟功能又可以重新设置。

系统软件

本设计在Keil编程环境下,使用C语言进行编程的编辑。编辑成功后,通过仿真软件Proteus进行仿真测试。

系统硬件

LED显示屏×1

主控芯片:AT89C52

闹钟提示:蜂鸣器

人机交互:按键×5

晶振:12KHz×1

排阻:RESPACK-8×1

电容:10nf×2

总线收发器:74HC245×2

第3章系统硬件设计

系统硬件模块及功能

系统硬件模块主要分为以下几个模块:

1.主控模块:控制其他子模块。

2.时钟模块:为系统提供实时时间。

3.显示模块:显示系统时间信息。

4.按键模块:用户通过按键进行人机交互,修改实时时间、设置闹钟时间和终止闹钟报警。

5.闹钟模块:在所设闹钟时间发出警报声。

主控模块

主芯片AT89C52

(1).AT89C52简介

AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。

AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。

AT89C52

图工作原理

AT89C52为8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。P0~P3为可编程通用I/O脚,其功能用途由

软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。

P0口:

P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的

方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

P1口:

P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51不同之处是,和还可分别作为定时/计数器2的外部计数输入(T2)和输入(T2EX),Flash编程和程序校验期间,P1接收低8位地址。

P2口:

P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。Flash 编程或校验时,P2亦接收高位地址和一些控制信号。

P3口:

P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。

RST:

复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

ALE/PROG:

当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。

PSEN:

程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。

在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

EA/VPP:

外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA 端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。

Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。

XTAL1:

振荡器反相放大器及内部时钟发生器的输入端。

XTAL2:

振荡器反相放大器的输出端。

时钟电路设计

晶振可以在~12MHZ之间任选,甚至可以达到24MHz,但是频率越高功耗也就越大。和晶振并联的电容C1、C2的大小对振荡频率有微小影响,可以起到频率微调作用。

图芯片

电路中用74HC245芯片充当总线收发器,作用是放大信号,它具有典型的CMOS型三态缓冲门电路。由于单片机或CPU的数据/地址/控制总线端口都有一定的负载能力,如果负载超过其负载能力,一般应加驱动器。

引脚定义:

1引脚DIR:未输入输出端口转换用,当它为高电平“1”时,信号由“A”端口输入“B”端口输出;当它为低电平“0”时,信号由“B”端口输入“A”端口输出。

2-9引脚:“A”端口输入输出端,每个端口与“B”端口对应。

11-18引脚:“B”端口输入输出端,每个端口与“A”端口对应。

10引脚:GUD,电源地。

20引脚:VCC,电源正极。

74HC245:

显示模块

本次课程设计采用了6位数码管显示电路。在6位LED显示时,为了简化电路,降低成本,采用动态显示的方式,?6个LED显示器共用一个8位的I/O,?6位LED数码管的位选线分别由相应的P2.?0~P2.?5控制,而将其相应的段选线并联在一起,由一个8位的I/O口控制,即P0口。译码显示电路将“时”、“分”、“秒”计数器的输出状态经七段显示译码器译码,通过6位LED七段显示器显示出来。到达定时电路时根据计时系统的输出状态产生脉冲信号,然后去触发音频发生器实现闹铃。校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整的。

LED仿真电路图如图:

按键模块

按键模块共设置了五个按键,功能分别如下:

(1).时间校准键“CLOCK”:自锁开关,按下后进入校准设置,再次按下后退出。

(2).闹钟设置键“ALARMCLOCK”:自锁开关,按下后进入闹钟设置,再次按下后退出。另外可供用户对已经设置的闹钟时间进行查看或修改。

(3).秒分时切换/终止报警键“SWITCH/STOP”:按钮开关,在按下“CLOCK”或“ALARMCLOCK”键时,为时分秒切换功能,默认是“秒”,再次按下是“分”,然后是“时”之后是“秒”,以此类推。在“CLOCK”或“ALARMCLOCK”键未按下时,为终止报警功能。

(4).时间增加键“+”:按钮开关,可以在进入校准设置和闹钟设置后,进行加一操作。

(5).时间减少键“-”:按钮开关,可以在进入校准设置和闹钟设置后,进行减一操作。

按键模块仿真电路图如图:

警报模块

闹铃指示设置有声和光两种形式。声音形式的关键元件是蜂鸣器。蜂鸣器有无源和有源两种,前者需要输入声音频率信号才能正常发声,后者则只需外加适当直流电源电压即可,本次设计我们使用的是后者。闹钟电路是用比较器来比较计时系统和定时系统的输出状态,如果计时系统和定时系统的输出状态相同,则发出一个脉冲信号,再和一个高频信号混合,送到放大电路驱动扬声器发声,从而实现定时闹响的功能。

蜂鸣器仿真电路图如图:

第4章系统软件设计

系统软件设计概述

该部分主要分为实时时钟模块、LED显示模块、键盘中断模块、闹钟模块。实时时钟部分主要包括实时时间的读写,时间的修改。LED显示模块主要包括显示屏的初始化,显示的命令字。键盘中断模块包括各键的定义和作用,按键的消抖,各按键跳转的子程序分配。闹钟模块包括闹钟时间的设置,以及对蜂鸣器启动和停止条件的设置和处理。

主程序设计

主程序包含三个部分。一是主函数部分,负责系统的初始化操作;从中断服务取得实时时间;判断闹钟时间是否与实时时间相等并在相等时发出警报声。第二部分是定时中断部分,分两种情况:负责处理从中断服务获得的时间数据并送至LED显示缓冲显示,或者显示闹钟设置界面并显示闹钟时间的设置过程。第三部分是外部中断,主要定义5个按键的作用,分配每一个按键跳转的子程序。第三部分负责时间和日期的修改,闹钟时间的设置,停止蜂鸣器鸣叫的功能。

单片机的中断系统

断系统在单片机应用系统中起着十分重要的作用,是现代嵌入式控制系统广泛采用的一种适时控制技术,能对突发事件进行及时处理,从而大大提高系统对外部事件的处理能力。正是有了中断技术,单片机才得以能够普及。因此,中断技术是单片机的一项重要技术,掌握中断技术能开发出灵活、高效的单机片应用系统。

要让单机片停止当前的程序去执行其他程序,需要向它发出请求信号,CPU接收到中断请求信号后才能产生中断。让CPU产生中断的信号称为中断源(又称中断请求源)。单片机提供5个中断源,其中两个为外部中断请求源INT0()和INT1(),两个片内定时器/计数器T0和T1的溢出请求中断源TF0和TF1,1个片内串行口发送或接收中断请求源T1和R1。

单片机内的CPU工作时,如果一个中断源向它发出中断请求信号,它就会产生中断。但是,如果同时有两个中断源发出中断请求信号,CPU就会优先接收级别高的中断请求源,然后再接收优先级别低的中断请求。表列出5个独立中断请求源由其硬件结构决定的自然优先级排列顺序。

表单片机中断源的自然优先级、入口地址及中断编号

对应于单片机的5个独立中断源,应有相应的中断服务程序。这些中断服务程序有专门规定的存放位置,即表的中断入口地址。当有了中断请求后,CPU可以根据入口地址迅速找到中断服务程序并开始执行,大大提高执行效率。

主程序

主程序见附录。

第5章系统测试

测试内容

1.显示部分

2.按键部分

测试环境

Proteus仿真模拟软件。

测试步骤

测试环境的构建

(1).在Proteus软件中绘制好定时闹钟仿真模拟电路图。

(2).将Keil编译器生成的.hex文件载入AT89C52芯片。

图载入.hex文件

(3).在Proteus软件中,点击左下角的“play”按钮启动定时闹钟。如下图,“play”按钮在第一个。

图仿真电路运行控制按钮

测试内容

详细测试内容如下:

定时闹钟是否能正确显示时间;是否能正确显示闹钟设置时的界面;是否能正确显示时间调整时的界面。

(1).显示时间

点击“play”

图1)

经测试,显示结果达到预期要求。

(2).时间调整测试

如果用户发现时间运行不对,要对时间进行修改和调整,就需要进入时间修改的界面。预期可以对时、分、秒进行调整和修改。系统能正确显示时间修改的界面。用户可以完成时间的修改。

经测试,该部分运行正常。

(3).闹钟设置测试

在系统能正确显示时间之后,用户若想设置闹钟,可以通过按键完成闹钟时间的设置。设置时间到后蜂鸣器报警,按下“STOP”键后警报停止

经测试,该部分能正常运行。

结论:通过以上对仿真项目的全面测试,可知仿真部分运行正常。

测试结果

通过以上测试,证明本设计基本实现系统所有要求,即能够正确显示时间信息,能够对当前时间进行调整和修改,并且能够设定闹钟并在所设置的闹钟时间发出警报声,通过按键可以停止警报。

结论

该系统采用单机片AT89C52作为核心芯片,结合一些其他外围设备,一起构成了一款能够显示时间并且能够对其进行修改和设置定时闹钟的定时闹钟系统。

该系统采用数码管显示屏,能够清晰显示时间信息,并且能够友好的引导用户进行时间的修改以及闹钟的设置。可以通过各个寄存地址对时间进行读写操作,即读取时间和修改时间。利用蜂鸣器为用户提供闹铃功能,能够在设定时间发出警报声提醒用户。采用按键较少的独立式键盘供人机交互,操作简单方便。可以通过键盘修改时间,也可以设置闹铃时间和修改闹铃时间,另外,在闹铃时间与系统时间一致,蜂鸣器鸣叫时,可以通过按键中断警报声。总之,该定时闹钟系统完成了市场上一般闹钟应有的功能,能够显示时间和设置闹钟,可以给用户提供时间信息。

该设计也存在一些缺点,就是实际生产时投入资金会比市场上一般闹钟价格昂贵,如果进行包装,价格还会上升一些。另外,外观不如市场销售的闹钟美观。

致谢

衷心感谢雷俊红老师的指导。

参考文献

[1]李强,51系列单片机应用软件编程技术[M].北京:北京航空航天大学出版社,:134-138.

[2]薛慧芳.MCS-51单机片串行口的一口多用[J].南京化工大学学报(自然科学版),1998,S1:84-86.

[3]王东锋,王会良,董冠强.单机片C语言应用100例[M].北京:电子工业出版社,:218-219,148-152.

[4]楼然苗,李光飞.单片机课程设计指导(第2版)[M].北京:北京航空航天大学出版社,:285-289.

附录:

系统电路图如下:

系统电路图

系统程序如下:

#include<>

sbitbtnTime=P1^0;

sbitbtnClock=P1^1;

sbitbtnSwitch=P1^2;

sbitbtnUp=P1^3;

sbitbtnDown=P1^4;

sbitpin1=P2^0;

sbitpin2=P2^1;

sbitpin3=P2^2;

sbitpin4=P2^3;

sbitpin5=P2^4;

sbitpin6=P2^5;

sbitpinBuz=P2^6;

unsignedchartimer=0,sec,min,hour,count=0,s=60,m=60,h=24,flag=0; unsignedcharcodenumbers[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90} ;

voiddelayMs(unsignedintk){

unsignedinti,j;

for(i=k;i>0;i--)

for(j=110;j>0;j--);

}

voidtimeChange(){

sec++;

if(sec==60){

sec=0;

min++;

if(min==60){

min=0;

hour++;

if(hour==24)

hour=0;

}

}

}

voidshowTime(unsignedcharzs,unsignedcharzm,unsignedcharzh){ pin1=1;

P0=numbers[zh/10];

delayMs(5);

pin1=0;

pin2=1;

P0=numbers[zh%10]&0x7f;

delayMs(5);

pin2=0;

pin3=1;

P0=numbers[zm/10];

delayMs(5);

pin3=0;

pin4=1;

P0=numbers[zm%10]&0x7f;

delayMs(5);

pin4=0;

pin5=1;

P0=numbers[zs/10];

delayMs(5);

pin5=0;

pin6=1;

P0=numbers[zs%10];

delayMs(5);

pin6=0;

}

voidsetTime(){

unsignedcharst,mt,ht;

if(btnTime==0){

delayMs(10);

if(btnTime==0){

st=sec,mt=min,ht=hour;

TR0=0;

while(btnTime==0){

showTime(st,mt,ht);

if(btnSwitch==0){

delayMs(10);

if(btnSwitch==0){

while(!btnSwitch);

count++;

if(count==3)

count=0;

}

}

if(btnUp==0){

delayMs(10);

if(btnUp==0){

while(!btnUp);

switch(count){

case0:st++;if(st==60)st=0;break;

case1:mt++;if(mt==60)mt=0;break;

case2:ht++;if(ht==24)ht=0;break;

default:;

}

}

}

if(btnDown==0){

delayMs(10);

if(btnDown==0){

while(!btnDown);

switch(count){

case0:

if(st>0)

st--;

else

st=0;

break;

case1:

if(mt>0)

mt--;

else

mt=0;

break;

case2:

if(ht>0)

ht--;

else

ht=0;

break;

default:;

}

}

}

}

TR0=1;

sec=st,min=mt,hour=ht;

}

}

showTime(sec,min,hour);

}

voidsetClock(){

if(btnClock==0){

delayMs(50);

if(btnClock==0){

if(flag==0){

s=sec;

m=min;

h=hour;

}

flag=1;

while(btnClock==0){

showTime(s,m,h);

if(btnSwitch==0){

delayMs(10);

if(btnSwitch==0){

while(!btnSwitch);

count++;

if(count==3)

count=0;

}

}

if(btnUp==0){

delayMs(10);

if(btnUp==0){

while(!btnUp);

switch(count){

case0:

s++;

if(s==60)

s=0;

break;

case1:

m++;

if(m==60)

m=0;

break;

case2:

h++;

if(h==24)

h=0;

break;

default:;

}

}

}

if(btnDown==0){

delayMs(10);

if(btnDown==0){

while(!btnDown);

switch(count){

case0:

if(s>0)

s--;

else

s=0;

break;

case1:

if(m>0)

m--;

else

m=0;

break;

case2:

if(h>0)

h--;

else

h=0;

break;

default:;

}

}

}

}

}

}

}

voidbuzzer(){

if((hour==h)&&(min==m)&&(sec==s)){

inti;

for(i=1;i<30;i++){

if(btnSwitch==0){

delayMs(20);

if(btnSwitch==0){

break;

}

}

pinBuz=1;

delayMs(450);

showTime(sec,min,hour);

pinBuz=0;

delayMs(300);

showTime(sec,min,hour);

}

flag=0;

}

}

voidinit(){

TMOD=0x01;

TH0=(65536-45872)/256;

TL0=(65536-45872)%256;

EA=1;

ET0=1;

TR0=1;

pinBuz=0;

}

voidmain(){

init();

while(1){

setTime();

setClock();

buzzer();

}

}

voidT0_ms()interrupt1{

TH0=(65536-45872)/256;

TL0=(65536-45872)%256;

timer++;

if(timer==20){

timer=0;

timeChange();

} }

人工智能课程设计报告--动物识别系统

计算机科学与技术学院 《人工智能》课程设计报告设计题目:动物识别系统 设计人员:学号: 学号: 学号: 学号: 学号: 学号: 指导教师: 2015年7月

目录 目录 (1) 摘要 (2) Abstract (2) 一、专家系统基本知识 (3) 1.1专家系统实际应用 (3) 1.2专家系统的开发 (3) 二、设计基本思路 (4) 2.1知识库 (4) ....................................................................................................... 错误!未定义书签。 2.1.2 知识库建立 (4) 2.1.3 知识库获取 (5) 2.2 数据库 (6) ....................................................................................................... 错误!未定义书签。 ....................................................................................................... 错误!未定义书签。 三、推理机构 (7) 3.1推理机介绍 (7) 3.1.1 推理机作用原理 (7) ....................................................................................................... 错误!未定义书签。 3.2 正向推理 (7) 3.2.1 正向推理基本思想 (7) 3.2.2 正向推理示意图 (8) 3.2.3 正向推理机所要具有功能 (8) 3.3反向推理 (8) ....................................................................................................... 错误!未定义书签。 3.3.2 反向推理示意图 (8) ....................................................................................................... 错误!未定义书签。 四、实例系统实现 (9)

贪吃蛇游戏课程设计实验报告全解

辽宁科技大学课程设计说明书 设计题目:基于C#的贪吃蛇游戏 学院、系:装备制造学院 专业班级:计算机科学与技术 学生姓名:叶佳佳 指导教师:丁宁 成绩: 2015年12月12日

目录 一、概述 (1) 1、用C#实现该设计的方法 (1) 2、贪吃蛇游戏说明 (1) 二、实验目的及设计要求 (1) 1、实验目的 (1) 2、实验要求 (2) 三、课程设计具体实现 (2) 1、概要设计 (2) 1.1、设计思想 (2) 1.2、主模块实现 (2) 1.3、主函数流程图 (4) 2、详细设计 (5) 2.1、设计思想 (5) 2.2、具体模块实现: (5) 四、调试过程及运行结果 (10) 1、调试过程 (10) 2、实验结果 (11) 五、实验心得 (12) 六、参考资料 (13) 七、附录:源代码 (13)

一、概述 1、用C#实现该设计的方法 首先应该了解设计要求,然后按照功能设计出实际模块,每个模块都要完成特定的功能,要实现模块间的高内聚,低耦合。设计模块是一个相当重要的环节,模块的数量不宜太多,也不宜太少,要是每个模块都能比较简单的转换成流程图。模块设计完成后,就该给每个模块绘制流程图。流程图要尽可能的简单且容易理解,多使用中文,补一些过长的代码,增加理解难度。此外,流程图应容易转换成代码。 根据流程图编写好代码后在WindowsXP操作系统,https://www.360docs.net/doc/1617828269.html,2008开发环境下进行运行测试,检查错误,最终设计出可行的程序。 2、贪吃蛇游戏说明 游戏操作要尽可能的简单,界面要尽可能的美观。 编写程序实现贪吃蛇游戏,贪吃蛇游戏是一个深受人们喜欢的游戏:一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被吃掉,这时蛇的身体长一节,同时计10分;接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁、障碍物或身体交叉(蛇头撞到自己的身体),则游戏结束。游戏结束时输出相应得分。 具体要求有以下几点: (1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理; (2)系统设计要实用,采用模块化程序设计方法,编程简练、可用,功能全面; (3)说明书、流程图要清楚; 二、实验目的及设计要求 1、实验目的 .NET课程设计是教学实践环节中一项重要内容,进行此课程设计旨在掌握基础知识的基础上,进一步加深对VC#.NET技术的理解和掌握; 提高和加强学生的计算机应用及软件开发能力,使学生具备初级程序员的基本素质; 培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新 1

扫雷的课程设计报告

西安文理学院信息工程学院课程设计报告 设计名称:数据结构课程设计 设计题目:实现一个N*M的扫雷游戏 学生学号:1402130407 专业班级:软件13级四班 学生姓名:樊秀琳 学生成绩: 指导教师(职称):谢巧玲(讲师) 课题工作时间:2015.6.22 至2015.7.3

说明: 1、报告中的任务书、进度表由指导教师在课程设计开始前填写并发给每个 学生。 2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。 3、所有学生必须参加课程设计的答辩环节,凡不参加答辩者,其成绩一律 按不及格处理。答辩由指导教师实施。 4、报告正文字数一般应不少于3000字,也可由指导教师根据本门综合设 计的情况另行规定。 5、平时表现成绩低于6分的学生,取消答辩资格,其本项综合设计成绩按 不及格处理。

信息工程学院课程设计任务书 指导教师:院长: 日期:2015年6月22日

信息工程学院课程设计进度安排表 学生姓名:樊秀琳学号:1402130407 专业:软件工程班级:13级四班 指导教师签名: 2014年6月22日

成绩评定表 学生姓名:樊秀琳学号:1402130407 专业:软件工程班级:13级四班

摘要 摘要: 扫雷游戏是Windows操作系统自带的一款小游戏,在过去的几年里,Windows操作系统历经数次换代更新,变得越来越庞大、复杂,功能也越来越强大,但是这款小游戏依然保持原来的容貌,可见这款小游戏受到越来越多人的喜爱。扫雷游戏是比较经典的一款小游戏,实现它的方法很多,可以用很多不同算法设计和语言实现,如C,C++,VB,JAVA等。我利用eclipse编写了与它功能相似的扫雷游戏,寓学于乐。 程序的功能是随机生成地雷数,通过鼠标操作玩游戏,不接受键盘,按任意键结束程序。单击屏幕上的笑脸可以重新开始游戏。所有地雷标出后胜利,当鼠标左键单击到地雷时提示游戏失败。其功能类似于Windows操作系统自带的扫雷游戏。论文首先介绍了进行该游戏课程设计的目的,然后是任务描述和设计的相关要求,最后是最重要的需求分析和设计方案。重点介绍了在游戏过程中各事件的处理,其中又以鼠标事件和清除未靠近地雷区方块这两方面最为最要,鼠标事件是利用鼠标所发出的信息了解用户的意图,进而做出相对应的动作。清除未靠近地雷区的方块较为复杂。 关键词:算法设计;事件;Eclipse

网页制作课程设计报告

网页制作课程设计报告 学院: 专业班级: 姓名: 学号: 成绩: 阅卷教师:

目录 1.设计目的 (1) 2.设计思想 (1) 2.1网站整体结构规划思想 (1) 2.2 主页设计思想 (1) 2.3子页的设计思想 (1) 3网页详细设计分析 (1) 4结论 (2)

1.设计目的 阐述该个人网站的设计意图和创意,简单介绍自己的个人网站。 2.设计思想 阐述网站的整体设计思想,包括: 2.1网站整体结构规划思想 要求阐述网站整体结构的选择、设计的思想,绘制网站结构草图。 2.2 主页设计思想 要求对主页的布局思路进行阐述和分析。 2.3子页的设计思想 要求对子页的设计以及网页对象的选取思路进行阐述和分析。 3网页详细设计分析 要求选取一张网页,对网页的设计实现过程进行阐述和分析,详细说明制作该网页的步骤,所使用的网页对象以及该网页对象的操作方法。

4结论 对整个设计报告做归纳性总结,并分析设计过程中的困难及如何解决的,最后提出展望。 一、设计目的 本课程的设计目的是通过实践使同学们经历Dreamweaver cs3开发的全过程和受到一次综合训练,以便能较全面地理解、掌握和综合运用所学的知识。结合具体的开发案例,理解并初步掌握运用Dreamweaver cs3可视化开发工具进行网页开发的方法;了解网页设计制作过程。通过设计达到掌握网页设计、制作的技巧。了解和熟悉网页设计的基础知识和实现技巧。根据题目的要求,给出网页设计方案,可以按要求,利用合适图文素材设计制作符合要求的网页设计作品。熟练掌握Photoshop cs3、Dreamweaver cs3等软件的的操作和应用。增强动手实践能力,进一步加强自身综合素

人工智能课程设计报告-罗马尼亚度假问题

人工智能课程设计报告-罗马尼亚度假 问题 1

2

3 2020年5月29日 课 程 :人工智能课程设计报告 班 级: 姓 名: 学 号: 指导教师:赵曼 11月

人工智能课程设计报告 课程背景 人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,能够设想,未来人工智能带来的科技产品,将会是人类智慧的”容器”。 人工智能是对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。 人工智能是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学。人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能研究的一个主要目标是使机器能够胜任一些一般需要人类智能才能完成的复杂工作。但不同的时代、不同的人对这种”复杂工作”的理解是不同的。 人工智能是计算机学科的一个分支,二十世纪七十年代以来被称为世界三大尖端技术之一(空间技术、能源技术、人工智能)。也被认为是二十一世纪三大尖端技术(基因工程、纳米科学、人工智能)之一。这是因为近三十年来它获得了迅 速的发展,在很多学科领域都获得了广泛应用,并取得了丰硕的成果,人工智能已逐 - 1 - 2020年5月29日

WEB个人主页课程设计

Web应用开发技术 实验报告 专业:计算机科学与技术 班级: 学号: 姓名:

一、设计题目 个人网站 二、目的 1、本次设计是学生在学完ASP动态网站开发课程后的一次实践性很强的课程设计,是对ASP进行动态网站开发所学知识的综合运用。 2、掌握使用ASP技术进行网站开发设计。 3、通过本次实习,使学生加深所学知识内容的理解,并能积极地调动学生的学习兴趣,结合实际应用操作环境,真正做到理论与实际相结合。 三、功能需求描述 此网站可以对主人留言,来发表自己的心情,也可以把自己的联系方式写入其中,达到和睦相处、心灵的驿站的目的等。 四、总体设计

五、详细设计 (一)、我的主页 此页面为网站的主页,通过发布新心情,点击通讯录可以查看通讯录好友信息,点击留言板可以查看好友留言。 主要代码: 个人空间