資源簡介
pic16f877a跑馬燈源程序和電路圖,簡單實(shí)在

代碼片段和文件信息
/*******************************************************************************
*?標(biāo)????題:?PIC_ST_V3.0學(xué)習(xí)板演示程序--跑馬燈
*?文?件?名:?跑馬燈
*?建立日期:?2009.8.4
*?修改日期:?2011.11.20
*?版????本:?V1.0
*?作????者:?simomli
********************************************************************************
*?跳線接法:用短接帽短接P14
*?功能描述:?8位LED接PORTD,L1~L8分別對應(yīng)RD0~RD7
對PIC16F877A單片機(jī)的IO口簡單的操作(輸出模式)
不同的方式點(diǎn)亮LED燈加深理解對IO的輸出操作
對PORTD的操作,詳細(xì)見PIC16F877A數(shù)據(jù)手冊4.4章節(jié)內(nèi)容
********************************************************************************
*【版權(quán)】Copyright(C)?2009-2019?All?Rights?Reserved
*【聲明】此程序僅用于學(xué)習(xí)與參考,引用請注明版權(quán)和作者信息!
*******************************************************************************/
//#include?
#include?
#define?uint8?unsigned?char
#define?uint16?unsigned?int
__CONFIG(WDTDIS?&?LVPDIS?&?HS?&?PWRTDIS?&?BORDIS);//設(shè)置配置位
//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);
/*******************************************************************************
*?函?數(shù)?名:?DelayMS(uint16?delay)
*?函數(shù)功能:?毫秒延時 for20MHZ
*?入口參數(shù):?delay
*?返????回:?無
*******************************************************************************/
void?DelayMS(uint16?delay)
{
????uint16?i;
????for(;delay>0;delay--)
????????for(i=0;i<453;i++);
}
/******************************************************************************
*?函?數(shù)?名:?HC595_Init(void)
*?函數(shù)功能:?74HC595初始化
*?入口參數(shù):?無
*?返????回:?無
*******************************************************************************/
void?HC595_Init(void)
{
ADCON1?=?0x8E;
TRISA5?=?0;
TRISE0?=?0;
TRISC0?=?0;
}
/******************************************************************************
*?函?數(shù)?名:?HC595_Write_Byte(uint8?data)
*?函數(shù)功能:?74HC595寫8位數(shù)據(jù)
*?入口參數(shù):?無
*?返????回:?無
*******************************************************************************/
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;
}
/*******************************************************************************
*?函?數(shù)?名:?main(void)
*?函數(shù)功能:?跑馬燈
*******************************************************************************/
void?main(void)
{
uint8?i;
//下面的代碼的作用是關(guān)閉點(diǎn)陣顯示和數(shù)碼管顯示,本例程不用關(guān)心其中具體的操作
HC595_Init(); //74HC595初始化
HC595_Write_Byte(0x00); //寫0x00數(shù)據(jù),關(guān)掉LED點(diǎn)陣顯示
TRISA?&=?0xE3; //RA2、RA3、RA4設(shè)置成輸出模式
PORTA?|=?0x1C;?? //RA2?=?1、RA3?=?1、RA4?=?1,不選通任何數(shù)碼管,則關(guān)掉數(shù)碼管顯示
//下面的代碼是對PORTD的操作,仔細(xì)查看數(shù)據(jù)手冊,結(jié)合本例,掌握對IO口的操作
TRISE?&=?0xEF; //配置PORTD為普通IO口,對PORTD的操作務(wù)必加上這句
TRISD?=?0x00; //設(shè)置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
評論
共有 條評論