码迷,mamicode.com
首页 > 其他好文 > 详细

单片机程序模板

时间:2014-05-26 08:42:09      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:style   c   class   blog   code   java   

#include <reg52.h>           //头文件调用,写程序时都要加上,
#define uint unsigned int  //宏定义,为了后面定义变量书写简便
#define uchar unsigned char

uchar mm
=0;                    //全局变量
uchar flag_get=0;            //定义标志位,为1则灯亮
/*
***************************************************************************/
/*                  名称:延时函数                                                               */
/*                  功能:C语言中常用的for循环延时方法                     */
/*                            延时长短可以通过变量初值来改变                   */
/****************************************************************************/
void Delay1ms(uint count)
{
uint i,j;
for(i=0;i<count;i++)
for(j=0;j<110;j++);
}
/****************************************************************************/
/*                  名称:主函数                                                                   */
/*                  功能:利用定时器1每隔1秒使P1口LED灯全亮       */
/****************************************************************************/
void main()
{
TMOD
=0x10;                                 //设置T1工作于定时方式1(有16位计数)
TH1=(65536-50000)/256;              //定时器1赋初值,是TH1而不是TH0噢(若要设置是定时器0的话,把1改为0,下同);计数了50000次,即为50ms
TL1=(65536-50000)%256;
EA
=1;                                          //开总中断
ET1=1;                                        //开定时器1中断
TR1=1;                                       //开始计数
while(1)
{
  
if(flag_get==1)
    {
        P1
=0x00;
    Delay1ms(
200);
    flag_get
=0;
    }
   
else  P1=0xff;
}
}
/****************************************************************************/
/*                  名称:定时器1中断                                                         */
/*                  功能:通过定时1秒产生中断使标志位置1                */
/****************************************************************************/
void timer1() interrupt 3     //注意了,这里是3,为定时器1的标号,若改为1的话则为定时器0,要区别于基于TMOD控制的工作方式和中断向量入口地址
{
  mm
++;
  TH1
=(65536-50000)/256;
  TL1
=(65536-50000)%256;
 
if(mm==20)
  {
      mm
=0;
      flag_get
=1;
  }
}

bubuko.com,布布扣

 

外部中断1/0

bubuko.com,布布扣
bubuko.com,布布扣
#include <reg52.h>            //头文件调用,写程序时都要加上,
#define uint unsigned int    //宏定义,为了后面定义变量书写简便
#define uchar unsigned char

Init()

{

  EX0 = 1;   //打开外部中断(若要设置外部中断1的话,把0改为1,下同)

  IT0 = 1;   //设置外部中断的脉冲触发方式

  EA = 1;   //开总中断

}

void main (void)

{

  Init();

  while(1)

  {

   //you want。。。

  }

}

void exter0(void) interrupt 0     //0位外部中断0的的标号,2为外部中断2的标号

{

  //you want。。。

}
bubuko.com,布布扣

单片机程序模板,布布扣,bubuko.com

单片机程序模板

标签:style   c   class   blog   code   java   

原文地址:http://www.cnblogs.com/workstudy123/p/3747568.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!