标签:
单片机 开发板 入门 程序
****************************************************************************
* (C) Copyright 2007,单片机初学者园地
* All Rights reserved.
*项目名称: 51单片机学习开发系统
*
*本文件名称:time.c
* 完成作者 : 单片机初学者
* 当前版本 : V1.0
* 完成日期 : 2007年4月1日
* 描 述 :
* 此程序实现,定时器中断20次,数码管显示加1
* 在0~9间循环显示
* 我的博客地址:
* http://blog.ednchina.com/ahai0306/
* 淘宝网店铺地址:http://shop35284066.taobao.com/
* 我的论坛:http://dianzi.5d6d.com/?fromuser=mcu_51
* 我在此论坛任软件区和硬件区超级版主,希望大家来这里讨论电子、
* 电气控制方面的问题。
***************************************************************************/
#include <reg52.h> //调用头文件(单片机内部的寄存器定义)
/******本段为硬件I/O口定义********/
sbit KEY0 = P0 ^ 0; //KEY和发光管复用,请将4个跳线插到KEY端
sbit KEY1 = P0 ^ 1;
sbit KEY2 = P0 ^ 2;
sbit KEY3 = P0 ^ 3;
sbit DIG0 = P0 ^ 4; //数码管位0
sbit DIG1 = P0 ^ 5; //数码管位1
sbit BUZZ = P3 ^ 3; //蜂鸣器
//数码管显示0~9
code unsigned char DispBuf[10]= {0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
//函数声明
void disp_selec(unsigned char bit_selec,unsigned char seg);
/**************************************************
** 函数名称: dellay
** 入口参数:h(unsigned int型)
** 出口参数:无
** 功能描述: 短暂延时,使用11.0592晶体,约0.01MS
****************************************************/
void dellay(unsigned int h)
{
while(h--); //0.01MS
}
unsigned char time_temp; //全局变量,定时器加1
unsigned char time_num; //全局变量,显示的数加1
/************主程序**************/
main()
{
time_num=0;
time_temp=0;
ET0=1;
TMOD="1"; //16位定时器
TH0=-50000/256; //定时器赋值,定时约50毫秒
TL0=-50000%256;
TR0=1;
EA="1";
dellay(100);
disp_selec(0,time_num);
while(1); //单片机待机
}
/**************************************************
** 函数名称: disp_selec
** 入口参数:bit_selec,seg
** 出口参数:无
** 功能描述: 选择相应数码管,进行显示
****************************************************/
void disp_selec(unsigned char bit_selec,unsigned char seg)
{
if(bit_selec==0) //数码管位选0
{
DIG0=0;
DIG1=1;
}
if(bit_selec==1) //数码管位选1
{
DIG0=1;
DIG1=0;
}
P1=DispBuf[seg];
}
void time0_ISR (void) interrupt 1
{
EA="0";
time_temp++;
if(time_temp>20) //约1S
{KEY3=!KEY3;
time_temp=0;
time_num++;
if(time_num>9)
time_num=0;
disp_selec(0,time_num); //显示
}
TH0=-50000/256; //定时器赋值
TL0=-50000%256;
EA="1";
}
系统分类:
单片机 | 用户分类:
单片机程序 | 来源:
原创 | 【推荐给朋友】