定时器数码管显示秒表
来源:互联网 发布:matlab矩阵输入 编辑:程序博客网 时间:2024/05/16 08:02
/**********************************
用定时器0的方式1实现第一个发光二极管以
200ms间隔闪烁,用定时器1的方式1实现数码
管的前两位59S循环计时 时间2月11
**************************************/
#include<reg52.h>
#define uchar unsigned char
//#define uint unsigned int
sbit duan=P2^6;
sbit wei=P2^7;
sbit led=P1^0;
uchar code table[]=
{0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39 ,0x5e,0x79,0x71};
uchar shu,count0,count1,flag;
/**********初始化函数***************/
void init()
{
flag=1;
wei=0;
P0=0xff;
duan=0;
P0=0x00;// 初始化关显示
shu=0;
count0=0;
count1=0;
TMOD=0x11;//选择计数器TO模式1定时器1选择模式1
TH0=(65536-46080)/256;
TL0=(65536-46080)%256;//定时器0实现50MS定时
TH1=(65536-46080)/256;
TL1=(65536-46080)%256;//定时器1实现50MS定时
EA=1;//开总中断
ET0=1;//开定时器0中断
ET1=1;
TR0=1; //定时器0开始计数
TR1=1;
}
/*******延时函数***************/
void delay(uchar xms)
{
char x,y;
for(x=xms;x>0;x--)
for(y=110;y>0;y--);
}
/************显示函数***********/
void display(uchar temp)
{
uchar shi,ge;
temp=shu;
shi=temp/10;
ge=temp%10;
if(flag==1)
{
P0=0xff; //消隐
wei=1;
P0=0x3e;//第一个数码管选中
wei=0;
duan=1;
P0=table[shi];
duan=0;
delay(1);
P0=0xff;//消隐
wei=1;
P0=0x3d;//第二个数码管选中
wei=0;
duan=1;
P0=table[ge];
duan=0;
delay(1);
}
}
/******定时器0中断函数*********/
void t0() interrupt 1 //定时器0中断级别为1
{
TH0=(65536-46080)/256;//数据重载
TL0=(65536-46080)%256;
count0++;
if(count0==4)//200MS
{
count0=0;
led=~led;
}
}
/******定时器1中断函数*********/
void t1() interrupt 3 //定时器1中断级别为3
{
TH1=(65536-46080)/256;//数据重载
TL1=(65536-46080)%256;
count1++;
if(count1==20)
{
count1=0;
shu++;
flag=1;
if(shu>59)
{
shu=0;
flag=1;
//display(shu);
flag=0;
}
}
}
void main()
{
init();
while(flag)
{
display(shu);
}
}
实验开始时没有设置消隐,出现了所有数码管都显示数字。前两位数码管能过很亮的显示0到59秒,后面几位数码管有阴暗的显示。加了消隐的两行程序则没有出现那样的现象。
位标志的设置非常重要,不然则在59后出下乱显示。
- 定时器数码管显示秒表
- 单片机之数码管秒表的动态显示
- 共阴极数码管60秒表显示
- 定时器控制数码管扫描显示
- 【数码管/定时器/中断】一个定时器控制数码管显示
- STC89C52RC数码管秒表程序编写
- VHDL7段数码管秒表设计
- 秒表显示
- 51_定时器扫描矩阵键盘_数码管显示
- lesson3~数码管的静态显示&定时器&中断的应用
- 定时器计时,并在数码管实时显示时间
- 数码管显示
- 数码管显示
- 数码管显示
- 数码管显示
- 数码管显示
- 数码管显示
- 数码管 定时器 去抖动
- NetBeans 时事通讯(刊号 # 91 - Feb 11, 2010)
- spring 3.0新特性学习1
- android学习小结5
- 程序员与VBA之怪现状
- 阅读一款3D游戏引擎源码的简明方法
- 定时器数码管显示秒表
- PowerShell与AD之节点路径处理:New-LdapPath
- 压缩纹理相关
- 满足xy恰有k个约数的(x,y)所组成的图形
- dll
- [轉] 伊朗要永久关闭 G o o g l e 电子邮件
- 风云的银光志Silverlight4.0教程之打印报表和图形
- 图片
- 关于“转义字符”