找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2557|回復(fù): 0
收起左側(cè)

STC89C52的LED燈閃爍效果源程序

[復(fù)制鏈接]
ID:633321 發(fā)表于 2019-12-10 09:50 | 顯示全部樓層 |閱讀模式
#include <reg52.h>  
//#define X 50000                                //宏定義一個數(shù),方便修改時間        
sbit led_1 = P1^0;                        //定義P1口的第1位(即P1.0)
unsigned char count;                //定義全局變量,不用賦值,默認為0
void init();
void main ()
{        
        init();
        while (1)        
        {
                 if(count == 20 /*5*/)                //每一秒進入一次if函數(shù)
                {
                         count = 0;                //count清零,重新開始加
                        led_1 = ~led_1;        //位取反,實現(xiàn)LED等的閃爍效果
                }
        }        
}

void init()
{
        EA = 1;                                                //開啟中斷總開關(guān)
        ET0 = 1;                                        //開啟定時器0中斷開關(guān)
        TMOD = 0x01;                                //設(shè)置定時器0為工作方式1
        TH0 = (65536 - 45872) / 256;        //給定時器賦初值
        TL0 = (65536 - 45872) % 256;
        TR0 = 1;                                        //使定時器0工作
}

void LED0() interrupt 1                        //定時器0中斷服務(wù)程序
{
         TH0 = (65536 - 45872) / 256;        //每次進入中斷程序要從初值開始計算,否則會導(dǎo)致計算錯誤
        TL0 = (65536 - 45872) % 256;
        count++;                                        //每進入一次中斷程序,count加一
        }


回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表