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

📄 led.c

📁 这是c8051f330最经典的跑马灯显示程序,真的可以用哦.
💻 C
字号:
/****************************************************************************/
//机构名称:宙环科技实验室
//网站地址:http://www.zhlab.cn
//文件名称:led.c
//起止日期:24.DEC.2008.WED. --> 26.DEC.2008.FRI.
//软件版本:v0.1
//编制人员:Z
//时钟频率:3.0625MHz
//序列号码:
//功能说明:让LED以2Hz频率闪烁
//微处理器:C8051F330
//编译环境:Keil C51 V8.16A
/****************************************************************************/

#include <C8051F330.h>                  //C8051F330寄存器头文件

sbit LED = P0^2;                        //定义LED硬件引脚

void Reset_Sources_Init(void)
{
    int i = 0;
    VDM0CN    = 0x80;
    for (i = 0; i < 350; i++);          //等待电源电压稳定(100us)
    RSTSRC    = 0x04;                   //允许侦测时钟丢失
}

void Timer_Init(void)
{
    CKCON     = 0x00;                   //定时器2使用TMR2CN中的T2XCLK位定义的时钟
    TMR2RLL   = 0xC6;                   //定时器重载值 溢出时间间隔0.25S
    TMR2RLH   = 0x06;
    TMR2L     = 0xC6;
    TMR2H     = 0x06;
    TMR2CN    = 0x04;                   //允许定时器2 定时器2外部时钟为系统时钟/12
}

void Port_IO_Init(void)
{
    P0MDOUT   = 0x04;                   //P0.2推挽输出
    XBR1      = 0xC0;                   //允许交叉开关 禁止弱上拉
}

void Oscillator_Init(void)
{
    OSCICN    = 0x80;                   //系统时钟3.0625MHz
}

void Interrupts_Init(void)
{
    IE        = 0x20;                   //允许定时器2中断
    EA        = 1;                      //允许总中断
}

void main(void)
{
    PCA0MD &= ~0x40;                    //向WDTE位写‘0’来禁止WDT

    Reset_Sources_Init();
    Timer_Init();
    Port_IO_Init();
    Oscillator_Init();
    Interrupts_Init();

    while(1)                            //等待中断发生...
    {
        ;
    }
}

void TMR2_ISR(void) interrupt 5         //定时器2中断
{
    TF2H=0;                             //清除定时器2高字节溢出标志
    LED = ~LED;                         //改变LED状态
}

⌨️ 快捷键说明

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