精华内容
下载资源
问答
  • 关于五子棋的应用软件设计实验报告,对于应付课程设计绰绰有余了
  • 1. 在时间区间 [0 10]中 绘出 曲线 程序 close all clc clear t 0:0 1:10; y 1 exp 0 5 t cos 2 t ; plot t y "r " ; shg
  • 1/2*5^(1/2)+1/2*i*3^(1/2) 1/2*5^(1/2)-1/2*i*3^(1/2) -1/2*5^(1/2)+1/2*i*3^(1/2) -1/2*5^(1/2)-1/2*i*3^(1/2)6. 题目: 在某激励条件下,二阶系统归一化响应可表示为)sin(11)(θββξ+-=-t e t y t ,其中ξ为...

    1/2*5^(1/2)+1/2*i*3^(1/2) 1/2*5^(1/2)-1/2*i*3^(1/2) -1/2*5^(1/2)+1/2*i*3^(1/2) -1/2*5^(1/2)-1/2*i*3^(1/2)

    6. 题目: 在某激励条件下,二阶系统归一化响应可表示为

    )sin(1

    1)(θββ

    ξ+-

    =-t e t y t ,其中ξ为阻尼系数,21ξβ-=,

    )1(

    2

    ξ

    ξθ-=arctg 。请用不同的颜色或线型,在同一张图上,绘制

    0.2:2.0:2.0=ξ取值下系统在]18,0[∈t 区间内的响应曲线,并要求用2.0=ξ和0.2=ξ对它们相应的两条曲线进行醒目的文字标志。

    实现方法: 使用了 text,for,if 函数 程序 clc clear syms k ;

    t=0:0.1:18; hold on ;

    %kz={'-r' '.g' 'b' 'c' 'm' 'y' 'k' 'w' ':r' ':g'}; kz='r g :b c m y k w r g r:'; i=0;

    for k=0.2:0.2:2 i=i+1; clear y ; a=sqrt(1-k^2); b=atan(sqrt(1-k^2)/k); if k==1

    y=(exp(t)-t-1)./exp(t); plot(t,y,kz(i)) else

    y=1-1/a*exp(-k*t).*sin(a*t+b); plot(t,y,kz(i)) end

    % plot(t,y,kz(i)) if k==0.2

    text(8,1.2,'阻尼系数是0.2')

    展开全文
  • 矿大软件课程设计实验报告,矿大计算机专业必备课程设计实验报告
  • 软件工程详细设计实验报告软件工程详细设计实验报告软件工程详细设计实验报告
  • 网络软件程序设计实验报告,华北电力大学科技学院,米特分享。
  • 武汉科技大学软件设计模式实验报告完整版
  • 结构化设计实验报告要求1目的与要求:1)系统学习和理解结构化软件工程设计阶段的基本任务、概念、原理、技术和方法;2)掌握设计阶段各种设计工具,如、层次图、程序流程图、N-S图、PAD图、判定表(树)、伪代码语言等...

    结构化设计实验报告要求

    1目的与要求:

    1)系统学习和理解结构化软件工程设计阶段的基本任务、概念、原理、技术和方法;

    2)掌握设计阶段各种设计工具,如、层次图、程序流程图、N-S图、PAD图、判定表(树)、伪代码语言等工具的使用方法;

    3)通过理论学习和试验要逐步提高运用结构化软件工程的设计理论、技术和方法解决实际问题的综合应用和实践创新能力;

    4)请借阅有关Microsoft Office Visio 系统,预习系统有关的结构化设计工具和使用方法;

    5)按照实验题目要求独立完成结构化设计实验内容,严禁拷贝、抄袭他人设计成果;

    6)认真书写实验报告,并于第七周周五以前提交,不得延误;

    7)本次实验内容极其重要,承前启后(下一次实验使用本次实验结果),希望同学提前做好设计和实验准备工作。

    2 实验内容或题目

    1. 针对自己第一次实验所完成的结构化分析项目(或题目),选择所绘制的数据流图,E-R图、状态图,完成下面2、3、4、5、6步要求的结构化设计内容;

    2. 按照面向数据流图的结构化设计方法,并在优化所选择数据流图的基础上,导出项目的总体设计层次图(H图);特别注意:设计过程中必须给出细化好并且加了输入输出边界的数据流图;

    3. 按照详细设计阶段所学的过程设计工具,分别选择程序流程图、盒图和PAD图等设计工具,在第2所得层次图中选择几个主要模块进行详细设计,画出相应详细设计结果图形;

    4. 根据E-R图所建立的数据模型进行数据库(以关系数据库模型为基准,进行数据库表及其关系设计);

    5. 根据H图进行界面菜单设计(模拟菜单显示样式绘制菜单设计图),选择一个数据库表(实体)进行界面表单(数据编辑界面)设计;

    6. 选择第3步中某一模块的详细设计结果,画出对应得流图,并计算其环形(圈)复杂度。

    3 实验步骤与源程序

    数据流图:

    c2c41845e2f203f4edc324b9a25e304d.png

    H图:

    ebd87ab959aa281612f6e6fb2eab9956.png

    登录和修改密码流程图:

    175842bfd8f4d28cf39ecbeb3f760c58.png

    修改图书信息盒图和删除图书信息盒图:

    ed1f1435e232884aa9ad4c159cfcf3cd.png

    PAD图:

    8b53871b4bd5f5ce0fd1ca3e4e0cbb15.png

    数据库:

    图书表:

    7cc93dc2ab1519a64b45230729849638.png

    用户表:

    1ea51ae4c48e9953f44beb2713e6d757.png

    登录界面:

    a9d34d18ddc0a60d88ddd9b99e694e8a.png

    图书管理总界面:

    d7ac58e9b4e04a722b59a6cd50c44619.png

    图书借阅界面:

    ae525c7d8634082e24c1f37721391b9b.png

    图书信息管理界面:

    c16d802ab126460e6c654cd9685ca628.png

    更改密码界面:

    2f8df43a7017620223d17da3845dc6f7.png

    程序流图:

    c8959d128f31fac85c54d35aa1ebafab.png

    4 结果分析与实验体会

    因为本次实验题目数量多,图形类型复杂虽然前期在实验分析阶段画了很多图有了一定的基础和经验。本以为会轻松一点,但一直从下午画到晚上12点多,但也有了很多的收货。使我体会到了这门课程有很多乐趣。通过本次实验,我更加深入的了解了结构化软件工程设计阶段的基本任务、概念、原理、技术以及方法。让我使用visio画层次图、数据流图、盒图、PAD图更加熟悉。同时使用数据库制作了图书库和用户库等文件,对MYSQL也有了更多的了解。并且通过Elipse对图书管理系统图形界面进行设计。使我对软件工程和软件生命周期的理解更加深入。

    展开全文
  • 软件设计模式的大部分模式设计方法,里面都有介绍具体的实例供大家参考。
  • 通信软件实验报告-软件设计,很实用的,希望能对你有所帮助!
  • uestc,软件安全课程人力资源管理系统威胁建模,郭建东
  • 期可以为每页日历选择背景图片以下是小编为大家整理 分享的Java课程设计实验报告欢迎阅读参考 1 加深对课堂讲授内容的理解掌握解决实际应用问 题时所应具有的查阅资料技术标准和规范以及软件编程 调试等能力掌握面向...
  • 软件设计过程实验报告-精品创业书模板.doc
  • 本科生实验报告 实验课程 Java语言程序设计 学院名称 信息科学与技术学院 专业名称 软件工程 学生姓名 学生学号 指导教师 实验地点 6A502 实验成绩 二一五年一月八日 Java语言程序设计上机实验报告 摘要 本实验报告...
  • 东北大学软件学院算法分析与设计实验的源代码+实验报告。zl上的课,实验只要代码能跑通,实验报告字数尽量多写,实验部分的分基本没问题,这个课最后有考试,微信出题,17级老师貌似根据大家考试分数调整期末的比例...
  • 程序设计课程设计 姓 名王 学 号 20100034 班 级软件工程 00 班 指导教师 王会青 成 绩 2010 年 6 月 . . 实验一 .构造可以使 n 个城市连接的最小生成树 专业 _软件工程 _ 班级 _软件 姓名 _王_ 学号 _20100034 ...
  • 武汉理工大学软件设计与体系结构实验报告
  • C语言程序设计实验报告模板-级软件工程 作者 日期 2 个人收集整理勿做商业用途 院 系 计算机科学学院 专 业 软件工程 年 级 2013级 课程名称 程序设计语言 学号 名姓 指导教师颜龙杰金邵敏 肖文英程林辉 2013年 10 ...
  • 各个银行都需要配备了简单方便的ATM自动柜员机,人们可以随时进行交易,而不用跑去银行办理业务,大大方便了人们对个人金融业务的处理,也提高了银行的业务效率,在此需求上,我们决定采用面向对象的分析设计方法来...
  • 燕山大学软件工程 课程设计 程序设计综合实验报告.zip
  • 软件开发实验报告

    2018-12-24 14:51:47
    实验报告了解软件项目需求分析、系统分析的过程、常用的方法和UML建模工具的使用;掌握根据概要设计报告和详细设计报告,使用自己熟悉的编程工具,根据编程规范编写相应的模块;根据单元测试的要求,进行代码走査,...
  • 软件测试课程设计报告,高分文档,毕业设计,课程设计,欢迎下载,黑盒白盒测试
  • 了解常用软件设计模式; 将实验过程中形成的图形、文字内容插入本文档。 二、实验内容 1、当前Web前端最经典的软件体系结构模式是MVC模式(Model-View-Controller),其中的三个组成部分为: V即View视图是指...

    一、实验目的

    1. 掌握Axure RP软件基本用法;
    2. 掌握软件体系结构设计;
    3. 了解常用软件设计模式;

    将实验过程中形成的图形、文字内容插入本文档。

     

    二、实验内容

    1、当前Web前端最经典的软件体系结构模式是MVC模式(Model-View-Controller),其中的三个组成部分为:

    1. V即View视图是指用户看到并与之交互的界面。比如由html元素组成的网页界面,或者软件的客户端界面。MVC的好处之一在于它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操纵的方式。
    2. M即Model模型是指模型表示业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
    3. C即Controller控制器是指控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。

    在一个复杂的Web站点中,处理一个请求时,需要做很多类似的工作,包括安全认证、国际化、为特定用户提供特殊视图等。如果输入控制器行为分散为多个对象中,这种行为相当一部分会在各处被复制,同时,在运行时改变行为也比较难。前端控制器通过引导请求经过一个处理程序对象来统一所有的请求处理,可以执行一些通用的行为,并且在程序运行时采用decorators来修改这些行为。然后,处理程序就调度一些command对象来处理某一请求的特定行为。前端控制器模式类图如下:

    根据上述描述,先画出前端控制器+MVC模式的顺序图,再根据所学的软件分析方法导出MVC模式对应的类图。

    2、利用Axure RP软件模仿类似下方的一个Web页面:

     

    操作过程:

    1)准备各项元件。从元件库中将所需元件拖放到页面上。如需图片,可从百度下载或搜索得到。按照示例页面,设备各项元件的对齐关系和样式。注意:复选框和右边的链接文字是两个不同元件,只是靠得近。保存,点击菜单“发布>预览”,在浏览器中打开。以后改动该文件后,只要刷新浏览器页面,就可观察到最新的页面。

    2)添加两个标签,放置在第一与第二文本框后,内容分别为“不得为空”和“密码长度不得小于6个字符”,并设置隐藏。

    3)为第一个文本框添加事件。点击“失去焦点时/设置可见性”,下方选择标签“不得为空”,再点击下方“确定”按钮。然后点击“启用用例”按钮,弹出条件设置对话框,点击“添加逻辑”,设置如下。这表明如果文本框是空的,就会将“不得为空”显示出来。

             

    你可以添加更多的逻辑,如判断手机号是否正确,判断邮箱是否正确等。

    4)为密码输入框添加类似事件,当密码长度小于6时显示提示。

    5)为“换一张”添加事件,点击时将其左边验证码换掉。

    6)为“用户协议”标签、“注册”按钮、右上角“登录”按钮添加事件,转至其它页面(其它页面内容不作要求)。

    保存本文件,随实验报告一起上交。

    3、了解并练习装饰模式的用法

    设计模式中装饰模式的介绍如下:

    装饰(Decorator)模式的意图

    1. 意图:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator 模式比生成子类更为灵活
    2. 适用场合:

    1)在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;

    2)当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立扩展,每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况是因为类定义被隐藏,或类定义不能用于生成子类

    装饰模式的结构:

    1. Component:对象接口:可以给对象动态地添加职责
    2. ConcreteComponent:具体对象
    3. Decorator:维持一个指向Component对象的指针,并定义一个与Component接口一致的接口
    4. ConcreteDecorator:向组件添加职责
    5. Decorator将请求转发给它的Component对象,并有可能在转发请求前后执行一些附加的动作

    装饰模式的评价:

    1. 使用Decorator模式可以很容易地向对象添加职责。可以用添加和分离的方法,在运行时添加和删除职责
    2. 使用Decorator模式可以很容易地重复添加一个特性,而两次继承则极容易出错
    3. 避免在层次结构高层的类有太多的特征:可以从简单的部件组合出复杂的功能。具有低依赖性和低复杂性
    4. 缺点:Decorator与Component不一样,使用装饰时不应该依赖对象标识;有许多小对象

    基于上述内容,编写代码,以两种方式实现该模式:。

    例1:游戏中,角色Character可以有属性attack, defence,可以有装备weapen, armour,可以对属性造成影响,它们可以是类的属性;可以随时变成巨人gigantize,可以变狂暴furious,都可以对attack和defence形成影响,它们可以形成装饰。

    package io.shentuzhigang.demo.design;
    
    import org.junit.jupiter.api.Test;
    
    /**
     * @author ShenTuZhiGang
     * @version 1.0.0
     * @date 2020-11-19 14:22
     */
    
    public class DecoratorTEST{
        @Test
        public void t(){
            Character person = new ConcreteCharacter();
            Decorator decorator = new Gigantize(
                    new Person(person));
            decorator.weapen();
            decorator.armour();
        }
    }
    interface Character {
       public void weapen();
       public void armour();
    }
    class ConcreteCharacter implements Character{
    
        @Override
        public void weapen() {
            System.out.println("ConcreteCharacter+weapen");
        }
    
        @Override
        public void armour() {
            System.out.println("ConcreteCharacter+armour");
        }
    }
    abstract class Decorator implements Character{
        private Character character;
    
        public Decorator(Character character){
            this.character = character;
        }
    
        String attack;
        String defence;
    
        @Override
        public void weapen() {
            this.character.weapen();
        }
    
        @Override
        public void armour() {
            this.character.armour();
        }
    }
    class Person extends Decorator {
    
        public Person(Character character) {
            super(character);
        }
    
        @Override
        public void weapen() {
            super.weapen();
            System.out.println("Person+weapen");
        }
    
        @Override
        public void armour() {
            super.armour();
            System.out.println("Person+armour");
        }
    }
    
    class Gigantize extends Decorator {
    
        public Gigantize(Character character) {
            super(character);
        }
    
        public void furious(){
            System.out.println("furious");
        }
    
        @Override
        public void weapen() {
            super.weapen();
            System.out.println("Gigantize+weapen");
        }
    
        @Override
        public void armour() {
            super.armour();
            System.out.println("Gigantize+armour");
        }
    }

     

    例2:考试成绩Score,如果直接告诉(report)成绩(例如65分),家长会生气;加一个装饰器,先告诉家长,这次考试比上次增加了几分,家长会比较高兴;加一个装饰器,告诉家长,这次考试最高成绩比我只高一点,家长也会比较高兴;加一装饰器,告诉家长,这次考试班级排名前列,家长也会比较高兴。

    package io.shentuzhigang.demo.design.score;
    
    import org.junit.jupiter.api.Test;
    
    /**
     * @author ShenTuZhiGang
     * @version 1.0.0
     * @date 2020-11-19 18:40
     */
    public class ScoreTEST {
        @Test
        public void t(){
            Person person = new Person();
            Decorator decorator = new Decorator_zero(new Decorator_first(
                    new Decorator_two(person)));
            decorator.report();
        }
    }
    interface Reportor{
        void report();
    }
    abstract class Decorator implements Reportor{
        private Reportor reportor;
        public Decorator(Reportor reportor){
            this.reportor = reportor;
        }
        @Override
        public void report() {
            reportor.report();
        }
    }
    
    
    class Decorator_zero extends Decorator {
    
        public Decorator_zero(Reportor reportor) {
            super(reportor);
        }
        @Override
        public void report() {
            System.out.println("这次考试比上次增加了几分");
            super.report();
        }
    }
    
    class Decorator_first extends Decorator {
    
        public Decorator_first(Reportor reportor) {
            super(reportor);
        }
        @Override
        public void report() {
            System.out.println("这次考试最高成绩比我只高一点");
            super.report();
        }
    }
    
    class Decorator_two extends Decorator {
    
        public Decorator_two(Reportor reportor) {
            super(reportor);
        }
        @Override
        public void report() {
            System.out.println("这次考试班级排名前列");
            super.report();
        }
    }
    
    
    
    class Person implements Reportor {
        @Override
        public void report() {
            System.out.println("65");
        }
    }

    参考文章

    设计模式——装饰者(Decorator)模式DEMO——成绩汇报的装饰者模式实现

    设计模式——装饰者(Decorator)模式DEMO——游戏角色的装饰者模式实现

    设计模式之装饰者模式(实例+Demo)

    JAVA设计模式初探之装饰者模式

    展开全文
  • 教育资料 本科实验报告 课程名称 软件测试方法与技术 实验项目 白盒-黑盒测试与QTP自动化测试 实验地点 实验中心210 专业班级 软件1313班 学号2013006156 学生姓名 贾冠一 指导教师 兰方鹏 2015年 10月1 日 实验...
  • 实验报告[概要设计]_图书管理系统概要设计说明书 欢迎下载
  • 软件工程实验报告

    2013-04-19 13:47:01
    软件工程 需求分析 数据流图 数据字典 详细设计 软件工程实验报告完全符合要求,,比较规范。
  • 云南大学软件学院设计模式实验报告,总共四次实验,第一次:策略者模式 第二次:装饰者模式 第三次:抽象工厂模式 第四次:命令模式,包括四次实验每个模式的UML图,仅供学弟学妹们参考。
  • 软件工程实验报告~~~~是关于需求分析的·~需求分析与需求设计
  • 嵌入式软件设计第09实验报告 学号:140201101 姓名:刘子聪 组别:第7组 实验地点:D19 一、实验目的: 1.熟悉WWW技术中的SSI(Server Side Include)技术。 2.学会使用SSI技术编写代码把当前开发板内RTC的...

    嵌入式软件设计第09实验报告

     

    学号:140201101                  姓名:刘子聪

     组别:第7组           实验地点:D19

    一、实验目的:

    1.熟悉WWW技术中的SSI(Server Side Include)技术。

    2.学会使用SSI技术编写代码把当前开发板内RTC的时钟及日期数据送往PC机浏览器显示。

    3.学会使用SSI技术把当前开发板的按键(KEY2、KEY1)次数信息送往PC机浏览器显示。

    二、实验内容:

    1.编写代码完成Web服务器端发送RTC实时时 钟信息的任务。

    2.编写代码完成Web服务器端发送按键(KEY2、KEY1)按键次数的任务。

    三、实验过程描述及结果展示:

    SSI技术简介 服务器端嵌入SSI(Server Side Include)是一种基于服务器的网页制作技术。大多数的WEB服务器等均支持SSI命令。将内容发送到浏览器之前,可以使用“SSI”指令将文本、图形或应用程序信息包含到网页中。因为包含SSI指令的文件要求特殊处理,所以必须为所有SSI文件赋予SSI文件扩展名。默认的扩展名是.stm、.shtm、.shtml。

    SSI是为WEB服务器提供的一套命令,这些命令只要直接嵌入到HTML文档的注释内容之中即可。如:<!=--#include file = “info.htm”-->就是一条SSI指令,其作用是将“info.htm”的内容拷贝到当前页面中。 <!=-- -->是HTML语法中的注释,当WEB服务器不支持SSI时,会忽略这些信息。

    按键与STM32的硬件连接图

    STM32F407芯片与键盘的连接电路图如下所示

    从图中可以看出,4个实体按键未按下去时,PE2,PE3,PE4会读入高电平。反之,为低电平。

     

    s#include "sys.h"

    #include <string.h>

    #include "delay.h"

    #include "httpd.h"

    #include "lwip/tcp.h"

    #include "fs.h"

    #include "lwip_comm.h"

     

     

    void system_init(void);

     void RTCTime_Handler(char *pcInsert);

     void RTCDate_Handler(char *pcInsert);

     void RTCKey1_Handler(char *pcInsert);

     void RTCKey2_Handler(char *pcInsert);

    const char *ppcTAGs[]=

    {

      "time",

    "date",

    "key2",

    "key1"

    };

     

    u8 key1=0,key2=0;

     

    void EXTI2_IRQHandler(void){

    delay_ms(10);

    key1++;

    printf("%d\n",key1);

    EXTI_ClearITPendingBit(EXTI_Line2);

    }

    void EXTI3_IRQHandler(void){

    delay_ms(10);

    key2++;

    printf("%d\n",key2);

    EXTI_ClearITPendingBit(EXTI_Line3);

    }

    void EXTIX_Init(void)

    {

    NVIC_InitTypeDef   NVIC_InitStructure;

    EXTI_InitTypeDef   EXTI_InitStructure;

     

    KEY_Init(); //按键对应的I/O初始化 

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);//使能SYSCFG时钟

     

     

    SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOE, EXTI_PinSource2);//PE2 连接到中断线2

    SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOE, EXTI_PinSource3);//PE3 连接到中断线3

     

    /*配置EXTI_Line2,3,4 */

    EXTI_InitStructure.EXTI_Line = EXTI_Line2 | EXTI_Line3 /*| EXTI_Line4*/;

      EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//中断事件

      EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //下降沿触发

      EXTI_InitStructure.EXTI_LineCmd = ENABLE;//中断线使能

      EXTI_Init(&EXTI_InitStructure);//配置

     

    NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQn;//外部中断2

      NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x03;//抢占优先级3

      NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;//子优先级2

      NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能外部中断通道

      NVIC_Init(&NVIC_InitStructure);//配置

     

     

    NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn;//外部中断3

      NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;//抢占优先级2

      NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;//子优先级 2

      NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中断通道

      NVIC_Init(&NVIC_InitStructure);//配置

     

       

    }

    int main(void)

    {

       system_init();//系统化初始化

    //以下代码对RTC进行初始化

     

    {

    RTC_InitTypeDef RTC_InitStructure;

     

    RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);//使能电源接口时钟

    PWR_BackupAccessCmd(ENABLE);//使能RTC+SRAM区域

     

    RCC_LSEConfig(RCC_LSE_ON);//开启LSE时钟

    RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE); //选择LSE时钟作为RTC时钟

    while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET); //等待LSE准备好

     

    RCC_RTCCLKCmd(ENABLE);//使能RTC时钟

     

    while(RTC_Wait_Synchro());//等待RTC和APB同步

     

    RTC_InitStructure.RTC_HourFormat = RTC_HourFormat_24;//24小时格式

    RTC_InitStructure.RTC_SynchPrediv = 0xFF;//同步预分频器

    RTC_InitStructure.RTC_AsynchPrediv = 0x7F;//异步预分频器

     

    RTC_Set_Time(10,0,0,0);//设置时间

    RTC_Set_Date(17,3,20,1);//设置日期

     

     

     

    }

        EXTIX_Init();

    //uart_init(115200); //串口初始化

     

    while(1)

    {

        

         lwip_periodic_handle();//LWIP轮询任务

     

    }

    }

    //SSI的Handler

    u16_t SSIHandler(int iIndex,char *pcInsert,int iInsertLen)

    {

     

    switch(iIndex)//iIndex索引号

    {

    case 0:

            RTCTime_Handler(pcInsert);

              break;

    case 1:

          RTCDate_Handler(pcInsert);

              break;

    case 2:

          RTCKey2_Handler(pcInsert);

              break;

    case 3:

          RTCKey1_Handler(pcInsert);

              break;

    }

    return strlen(pcInsert);

    }

     

    //SSIHandler中需要用到的处理RTC时间的函数

    void RTCTime_Handler(char *pcInsert)

    {

     

      u8 hour,min,sec,ampm;

    RTC_Get_Time(&hour,&min,&sec,&m);

     

    *(pcInsert+0) = (char)((hour/10)+0x30);

    *(pcInsert+1) = (char)((hour%10)+0x30);

    *(pcInsert+2) = ':';

      *(pcInsert+3) = (char)((min/10)+0x30);

    *(pcInsert+4) = (char)((min%10)+0x30);

    *(pcInsert+5) = ':';

    *(pcInsert+6) = (char)((sec/10)+0x30);

    *(pcInsert+7) = (char)((sec%10)+0x30);

    }

     

    void RTCDate_Handler(char *pcInsert)

    {

    u8 year,month,day,week;

    RTC_Get_Date(&year,&month,&day,&week);

     

    *(pcInsert+0) = '2';

    *(pcInsert+1) = '0';

    *(pcInsert+2) = (char)((year/10)+0x30);

    *(pcInsert+3) = (char)((year%10)+0x30);

    *(pcInsert+4) = '-';

    *(pcInsert+5) = (char)((month/10)+0x30);

    *(pcInsert+6) = (char)((month%10)+0x30);

    *(pcInsert+7) = '-';

    *(pcInsert+8) = (char)((day/10)+0x30);

    *(pcInsert+9) = (char)((day%10)+0x30);

    *(pcInsert+10) = ' ';

    *(pcInsert+11) = 'w';

    *(pcInsert+12) = 'e';

    *(pcInsert+13) = 'e';

    *(pcInsert+14) = 'k';

    *(pcInsert+15) = ':';;

    *(pcInsert+16) = (char)(week+0x30);

    }

    void RTCKey1_Handler(char *pcInsert)

    {

    if (key1<10)

    {

    *(pcInsert+0) = (char)(key1+0x30);

    *(pcInsert+1) = '\0';

    }

    else

    {

    *(pcInsert+0) = (char)((key1/10)+0x30);

    *(pcInsert+1) = (char)((key1%10)+0x30);

    *(pcInsert+2) = '\0';

    }

    }

    void RTCKey2_Handler(char *pcInsert)

    {

    if (key2<10)

    {

    *(pcInsert+0) = (char)(key2+0x30);

    *(pcInsert+1) = '\0';

    }

    else

    {

    *(pcInsert+0) = (char)((key2/10)+0x30);

    *(pcInsert+1) = (char)((key2%10)+0x30);

    *(pcInsert+2) = '\0';

    }

    }

    四、总结及实验心得:

    熟悉了WWW技术中的SSI(Server Side Include)技术,学会了使用SSI技术编写代码把当前开发板内RTC的时钟及日期数据送往PC机浏览器显示,学会了使用SSI技术把当前开发板的按键(KEY2、KEY1)次数信息送往PC机浏览器显示。

    转载于:https://www.cnblogs.com/liuzicong12345/p/6623672.html

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,930
精华内容 772
关键字:

软件设计实验报告