標題:
PIC單片機開發(fā)板之流水燈代碼
[打印本頁]
作者:
51黑芯片
時間:
2016-1-17 02:22
標題:
PIC單片機開發(fā)板之流水燈代碼
這個是我自己diy的單片機開發(fā)板:
http://www.torrancerestoration.com/bbs/dpj-42590-1.html
/*
這是自已寫的流水燈,速度為500ms
*/
#include<pic.h>
#define uchar unsigned char
#define uint unsigned int
__CONFIG(0x3B31);
void delay(uint x)
{
uint a,b; for(a=x;a>0;a--)
for(b=110;b>0;b--);
}
void main()
{
uchar i; //變量定義最好放在第一行,否則會出錯(提示一大堆的錯誤)
TRISD=0x00;
TRISC=0x00; PORTC=0x00; //把數(shù)碼管屏蔽掉
//------------左移效果,向高位移動------------------------------
while(1)
{
PORTD=0x01;
/* RD0=1; //這是靜態(tài)的,PORTD=0x??是動態(tài)的,如果加了蜂鳴器就得用動態(tài)的,用靜態(tài)的蜂鳴器會一直響。
同樣,573鎖存器是靜態(tài)的,而38譯碼器是動態(tài)的,無法做到靜態(tài)同時選中8個數(shù)碼管。38譯碼器每次譯一個碼,每次只能選中一個數(shù)碼管,所以無法做到同時選中8個數(shù)碼管*/
for(i=8;i>0;i--)
{
delay(500);
PORTD=PORTD<<1; //左移(向高位移動,顯示效果為向右邊高位移動),移動形成流水效果
}
//------------右移效果,向低位移動------------------------
/*
心得:通過調(diào)試窗口,實踐得知PORTD=0x80才能形成右移效果。
犯的錯:之前設(shè)為0x08則為0000 1000。而0x80則為1000 0000
*/
PORTD=0x80;
for(i=8;i>0;i--) //循環(huán)8次
{
delay(500);
PORTD=PORTD>>1; //右移(向低位移動,顯示效果為向左邊高位移動),移動形成流水效果
}
}
}
復制代碼
作者:
seataozhang
時間:
2020-1-4 06:46
學習了,受益良多,感謝樓主分享,頂一下!
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1