• 心得体会
  • 办公文秘
  • 报告总结
  • 致辞讲话
  • 条据书信
  • 合同范本
  • 宣传用语
  • 导游词大全
  • 党团范文
  • 毕业大全
  • 个人写作
  • 其他范文
  • 工作总结
  • 工作计划
  • 党建材料
  • 发言稿
  • 讲话稿
  • 演讲稿
  • 述职报告
  • 脱贫攻坚
  • 谈话记录
  • 党课下载
  • 主题教育
  • 对照材料
  • 自查报告
  • 观后感
  • 读后感
  • 事迹材料
  • 策划方案
  • 当前位置: 工作范文网 > 范文 > 条据书信 > 正文

    简易秒表设计实验报告

    时间:2020-10-22 09:56:20 来源:工作范文网 本文已影响 工作范文网手机站

    v1.0

    v1.0可编辑可修改

    PAGE

    PAGE #

    实验报告

    系别信工系专业 班级 姓名 学号

    课题名称:

    简易秒表设计

    实验目的:

    1、 熟悉Keil C51软件的使用方法及 proteus仿真软件的使用;

    2、 综合运用所学的理论知识(数码管、按键) ,通过实践加强对所学知识的理解,具备设 计单片机应用系统的能力。

    3、 通过本次试验,增强自己的动手能力。认识单片机在日常生活中的应用的广泛性,实用 性。

    设计要求:

    制作简易秒表,用三个按键分别实现秒表的启动、 停止与复位,利用两位共阴级的数码管显

    示时间。

    设计思路:

    硬件设计:数码管部分采用 2位共阴极的数码管,在 P0 口接上拉电阻,公共端低电 平扫描。按键电路部分,将按键一侧与单片机任一 I/O 口相连。

    软件设计:模块化思想,使用定时器T0的工作方式1,编写显示子程序,延时子程序, 初始化程序,主程序设计时注意按键消抖。

    原理图:

    RP1

    RESPACK-8

    C1

    」—r

    Q

    C2

    TlL

    R1

    29

    31

    19

    b XTAL1

    P0.0/AD0

    P0.1/AD1

    P0.2/AD2

    XTAL2

    P0.3/AD3

    P0.4/AD4

    P0.5/AD5

    P0.6/AD6

    RST

    P0.7/AD7

    P2.0/A8

    P2.1/A9

    P2.2/A10

    PSEN

    P2.3/A11

    ALE

    P2.4/A12

    EA—

    P2.5/A13

    P2.6/A14

    P2.7/A15

    P1.0

    P3.0/RXD

    P1.1

    P3.1/TXD

    P1.2

    P3.2/INT0

    P1.3

    P3.3/IN

    P1.4

    P3.4/T0

    P1.5

    P3.5/T1

    P1.6

    P3.6/WR

    P1.7

    P3.7/RD

    U1

    38

    37

    18

    35

    33

    9

    21

    1

    10

    2

    11

    4

    AT89C51

    13

    T6-

    6

    39

    12

    2 3 4 5 6 7 8 9

    源代码:

    #in clude<> #defi ne uint un sig ned int

    定义"

    定义"启动"按钮 定义"停止"按钮 定义"复位"按钮 定义位选

    TOC \o "1-5" \h \z sbit key1=P3A0; //

    sbit key2=P3A1; //

    sbit key3=P3A2; //

    sbit wei 仁卩2人6; // sbit wei2=P2A7;

    uchar aa;uchar temp;uchar shi;uchar ge;

    uchar code table[]={

    共阴极数码真值表0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

    共阴极数码真值表

    0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; // void delay( uint z)

    {

    ui nt x,y;

    for(x=z;x>0;x--)

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

    }

    void display(uchar shi,uchar ge) // 显示子程序

    {

    shi=temp/10;

    ge=temp%10; //分离个位和十位

    wei1=0; //送位选

    PO=table[shi];〃 使用动态扫描的方法实现数码管显示

    delay(1);

    wei仁1; //关闭位选

    wei2=0;

    P0=table[ge];

    delay(1);

    wei2=1;

    }

    void init() //初始化程序

    {

    aa=0;

    temp=0;

    TMOD=0x01; //使用定时器 T0的方式1

    TH0=0x4c;

    TL0=0x00; // 定时 50ms 中断一次

    EA=1; //终端总允许

    ET0=1; //允许定时器T0中断

    void timerO() interrupt 1 {

    TH0=0x4c;

    //重装初值

    TL0=0x00;

    aa++;

    //中断计数值加1

    if(aa==20)

    //中断20次后,定时时间为 20*50ms=1000ms=1s

    {

    aa=0;

    temp++;

    if(temp==60) //秒表到达60s后回零

    {

    temp=0;

    }

    }

    }

    void mai n()

    {

    init(); //调用初始化子程序

    while(1)

    {

    if(key1==0) // 检验启动按钮是否按下 {

    delay(10);〃 延时去抖动

    if(key1==0);〃 再次检测启动按钮

    {

    while(!key1);〃 松手检测

    TR0=1; //启动定时器开始工作

    }

    }

    if(key2==0) //

    {

    delay(10);

    if(key2==0)

    {

    while(!key2);

    TR0=0;

    }

    }

    if(key3=0)

    {

    delay(10);

    if(key3==0)

    {

    while(!key3);

    temp=0;

    shi=0;

    ge=0;

    TR0=0;

    }

    }

    display(shi,ge);

    实验结果:

    在proteus中编写程序,编译调试后生成hex文件,将hex文件加到仿真电 路中,通过对简易秒表进行演示,达到设计要求。。

    实验心得

    在keil软件中,即使程序不会需要模仿别人的时候,也必须通过自身再打一遍程序, 在多次的通过打印过程,渐渐记住并理解程序,也有助于我们以后的程序创新。

    内容:实验题目;实验目的;实验原理;实验步骤;数据处理;结果分析

    分数

    有关的专题