找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2461|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

STC89C52的LED燈閃爍效果源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:633321 發(fā)表于 2019-12-10 09:50 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include <reg52.h>  
//#define X 50000                                //宏定義一個(gè)數(shù),方便修改時(shí)間        
sbit led_1 = P1^0;                        //定義P1口的第1位(即P1.0)
unsigned char count;                //定義全局變量,不用賦值,默認(rèn)為0
void init();
void main ()
{        
        init();
        while (1)        
        {
                 if(count == 20 /*5*/)                //每一秒進(jìn)入一次if函數(shù)
                {
                         count = 0;                //count清零,重新開(kāi)始加
                        led_1 = ~led_1;        //位取反,實(shí)現(xiàn)LED等的閃爍效果
                }
        }        
}

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

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


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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