• 大小: 130KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-26
  • 语言: 其他
  • 标签: 跑马灯  

资源简介

pic16f877a跑马灯源程序和电路图,简单实在

资源截图

代码片段和文件信息

/*******************************************************************************
* 标    题: PIC_ST_V3.0学习板演示程序--跑马灯
* 文 件 名: 跑马灯
* 建立日期: 2009.8.4
* 修改日期: 2011.11.20
* 版    本: V1.0
* 作    者: simomli
********************************************************************************

* 跳线接法:用短接帽短接P14
* 功能描述: 8位LED接PORTD,L1~L8分别对应RD0~RD7
对PIC16F877A单片机的IO口简单的操作(输出模式)
不同的方式点亮LED灯加深理解对IO的输出操作
对PORTD的操作,详细见PIC16F877A数据手册4.4章节内容

********************************************************************************
*【版权】Copyright(C) 2009-2019 All Rights Reserved
*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!
*******************************************************************************/
//#include 
#include 

#define uint8 unsigned char
#define uint16 unsigned int

__CONFIG(WDTDIS & LVPDIS & HS & PWRTDIS & BORDIS);//设置配置位
//WDTDIS:disable watchdog timer 看门狗禁止
//LVPDIS:low voltage programming disabled 低电压编程禁止
//HS:high speed crystal/resonator 4M以上晶振选择HS高速
//PWRTDIS:disable power up timer
//BORDIS:disable brown out reset

#define  SCK_595  RA5
#define  RCK_595  RE0
#define  SER_595  RC0

void DelayMS(uint16 delay);
void HC595_Init(void);
void HC595_Write_Byte(uint8 data);

/*******************************************************************************
* 函 数 名: DelayMS(uint16 delay)
* 函数功能: 毫秒延时 for20MHZ
* 入口参数: delay
* 返    回: 无
*******************************************************************************/

void DelayMS(uint16 delay)
{
    uint16 i;
    for(;delay>0;delay--)
        for(i=0;i<453;i++);
}

/******************************************************************************
* 函 数 名: HC595_Init(void)
* 函数功能: 74HC595初始化
* 入口参数: 无
* 返    回: 无
*******************************************************************************/
void HC595_Init(void)
{
ADCON1 = 0x8E;
TRISA5 = 0;
TRISE0 = 0;
TRISC0 = 0;
}

/******************************************************************************
* 函 数 名: HC595_Write_Byte(uint8 data)
* 函数功能: 74HC595写8位数据
* 入口参数: 无
* 返    回: 无
*******************************************************************************/
void HC595_Write_Byte(uint8 data)
{
uint8 i;
for(i=0;i<8;i++)
{
if(data&0x80)
{
SER_595 = 1;
}
else
{
SER_595 = 0;
}
SCK_595 = 0;
data <<= 1;;;
SCK_595 = 1;
}
RCK_595 = 0;
    ;;
RCK_595 = 1;
}

/*******************************************************************************
* 函 数 名: main(void)
* 函数功能: 跑马灯
*******************************************************************************/
void main(void)
{
uint8 i;
//下面的代码的作用是关闭点阵显示和数码管显示,本例程不用关心其中具体的操作
HC595_Init(); //74HC595初始化
HC595_Write_Byte(0x00); //写0x00数据,关掉LED点阵显示
TRISA &= 0xE3; //RA2、RA3、RA4设置成输出模式
PORTA |= 0x1C;   //RA2 = 1、RA3 = 1、RA4 = 1,不选通任何数码管,则关掉数码管显示

//下面的代码是对PORTD的操作,仔细查看数据手册,结合本例,掌握对IO口的操作
TRISE &= 0xEF; //配置PORTD为普通IO口,对PORTD的操作务必加上这句
TRISD = 0x00; //设置PORTD为输出
while(1

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-05-02 19:42  NO2_Run_Light\
     文件      137215  2012-02-18 15:21  NO2_Run_Light\NO2_Run_Light接法图解.jpg
     目录           0  2013-05-02 19:42  NO2_Run_Light\Run_Light\
     文件        4082  2012-02-10 21:06  NO2_Run_Light\Run_Light\run_light.c
     文件        1532  2012-02-18 15:28  NO2_Run_Light\Run_Light\Run_Light.hex
     文件         989  2011-08-20 21:08  NO2_Run_Light\Run_Light\Run_Light.mcp
     文件       26112  2012-02-18 15:29  NO2_Run_Light\Run_Light\Run_Light.mcw

评论

共有 条评论