实验课程

THIS NAME

实验课程

当前位置: 首页 >> 实验课程 >> 正文

单片机原理及应用-数码秒表设计实验

发布日期:2024-03-04    作者:王娟     来源:     点击:

数码秒表设计实验

一、实验目的

1、数码秒表的工作原理。

2、学会编程实现数码秒表的设计。

二、实验内容

 

编写并调试一个程序,用定时器T0定时中断控制软件计数器计数。

 

三、实验原理及说明

使用定时器T0来实现50ms定时,然后用软件累计中断次数,当中断满20次时,所计时间就是1S。每计满1s,该变量的值加1,计满60时清0,秒表自动清零并重新从0开始显示,然后用两位数码管显示。

四、实验设备


PC


五、实验方法

1.Proteus ISIS工作环境中绘制好图1仿真电路图。

     

  1 仿真电路图

2..keil软件中编写下列程序。

#include<reg51.h>  //  包含51单片机寄存器定义的头文件

unsigned char code Tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

//数码管显示0~9的段码表

unsigned char int_time;        //记录中断次数

unsigned char second;        //储存秒

/***********************************************************************

函数功能:快速动态扫描延时,延时约0.6毫秒

************************************************************************/

void delay(void){

unsigned char i;

for(i=0;i<200;i++);

}

/**************************************************************

函数功能:显示秒

入口参数:k

出口参数:无

********************************************************/

void DisplaySecond(unsigned char k){

P2=0xfb;    //P2.6引脚输出低电平, DS6点亮

P0=Tab[k/10];   //显示十位

delay();

P2=0xf7;   //P2.7引脚输出低电平, DS7点亮

P0=Tab[k%10];   //显示个位

delay();

P2=0xff;  //关闭所有数码管

}

void main(void)      //主函数{

TMOD=0x01;                 //使用定时器T0

TH0=(65536-46083)/256; //将定时器计时时间为46083×1.085微秒//=50000微秒=50毫秒

TL0=(65536-46083)%256;

EA=1;                    //开启总中断

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

TR0=1;                   //启动定时器T0开始运行

 int_time=0;     //中断次数初始化

 second=0;     //秒初始化    

 while(1){

 DisplaySecond(second);   //调用秒的显示子程序

}

 }  

//********************************************************

//函数功能:定时器T0的中断服务程序

//*******************************************************

 void interserve(void ) interrupt 1 using 1{

TR0=0;    //关闭定时器T0

int_time ++;        //每来一次中断,中断次数int_time自加1    

 if(int_time==20)   //够20次中断,即1秒钟进行一次检测结果采样{

 int_time=0;    //中断次数清0

 second++;    //秒加1

 if(second==60)

      second =0; //秒等于60就返回0

}          

    TH0=(65536-46083)/256;   //重新给计数器T0赋初值

TL0=(65536-46083)%256;

TR0=1;     //启动定时器T0

}  

3.程序经Keil软件编译通过后,就可以利用Proteus软件进行仿真了。

 

上一条:企业安全建设与等级保护-通信传输实验 下一条:单片机原理及应用-流水灯实验

关闭