⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex5-6.c

📁 < 嵌入式C语言程序设计>>一书的源代码
💻 C
字号:
/*
标题:范例 5-6
版本:1.0
Target:89S51
程序描述:这个程序利用89S51连接DAC0800,然后通过Timer0
的控制不停地送出三角波 */
/* ***************************************************** */
#include <REGX51.H>
#define     TIMER0_COUNT    0xEE00
/* 10000h-(11,059,200/(12*FREQ)) */
#define     TOTAL             200
#define     HALF            TOTAL/2
long            ticks=0;
unsigned char   timer0_tick,count=0;
static void timer0_isr(void) interrupt TF0_VECTOR using 1
{
    TR0=0;
    TL0=(TIMER0_COUNT & 0x00FF);
    TH0=(TIMER0_COUNT >> 8);
    TR0=1;
    if(ticks==TOTAL) ticks=0;   // 一秒的时间到了,ticks=0
    if (ticks<HALF)count++;     // 前面一半的时间内,将count加1
    if (ticks>HALF)count--;     // 前面一半的时间内,将count减1
    P0=count;                   // 将count的数值由PORT 1输出
}               
static void timer0_initialize(void)
{
  EA=0;   
  timer0_tick=0;
  TR0=0;
  TMOD &= 0XF0;
  TMOD |=0x01;
  TL0=(TIMER0_COUNT & 0x00FF);
  TH0=(TIMER0_COUNT >> 8);
  PT0=0;
  ET0=1;
  TR0=1;
  EA=1;
}    
void main (void)  {
     timer0_initialize();
     ticks=0;
     count=0;
     while (1);                /* Loop forever */
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -