|
這個(gè)是我自己diy的單片機(jī)開(kāi)發(fā)板:http://www.torrancerestoration.com/bbs/dpj-42590-1.html
- /*
- 這是自已寫(xiě)的流水燈,速度為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; //變量定義最好放在第一行,否則會(huì)出錯(cuò)(提示一大堆的錯(cuò)誤)
- TRISD=0x00;
- TRISC=0x00; PORTC=0x00; //把數(shù)碼管屏蔽掉
- //------------左移效果,向高位移動(dòng)------------------------------
- while(1)
- {
- PORTD=0x01;
- /* RD0=1; //這是靜態(tài)的,PORTD=0x??是動(dòng)態(tài)的,如果加了蜂鳴器就得用動(dòng)態(tài)的,用靜態(tài)的蜂鳴器會(huì)一直響。
- 同樣,573鎖存器是靜態(tài)的,而38譯碼器是動(dòng)態(tài)的,無(wú)法做到靜態(tài)同時(shí)選中8個(gè)數(shù)碼管。38譯碼器每次譯一個(gè)碼,每次只能選中一個(gè)數(shù)碼管,所以無(wú)法做到同時(shí)選中8個(gè)數(shù)碼管*/
- for(i=8;i>0;i--)
- {
- delay(500);
- PORTD=PORTD<<1; //左移(向高位移動(dòng),顯示效果為向右邊高位移動(dòng)),移動(dòng)形成流水效果
- }
- //------------右移效果,向低位移動(dòng)------------------------
- /*
- 心得:通過(guò)調(diào)試窗口,實(shí)踐得知PORTD=0x80才能形成右移效果。
- 犯的錯(cuò):之前設(shè)為0x08則為0000 1000。而0x80則為1000 0000
- */
- PORTD=0x80;
- for(i=8;i>0;i--) //循環(huán)8次
- {
- delay(500);
- PORTD=PORTD>>1; //右移(向低位移動(dòng),顯示效果為向左邊高位移動(dòng)),移動(dòng)形成流水效果
- }
- }
- }
復(fù)制代碼
|
|