• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






Re: 請問p18F4520的這段程式詳細解釋?
#5
資深會員
資深會員


查看用戶資訊
那如果我要改成一開始七段顯示器顯示AA
再按下PORB0的按鈕後變成15
是不是改這樣就好呢?
void main (void)
{ADCON1=0b00000110;
PORTD = 0x15;
TRISD = 0;
TRISBbits.TRISB0=1;
while (1){
delay_ms(200);
if(PORTBbits.RB0==1)
PORTD=0x15
else
PORTD=0xAA

;;;;;;;;;;;;;;;;;;;;;;;;;
基本上是如此,只是你送AAh or 15h你點出來也不知到是什麼,
先建好你要點七段的表吧!
然後按鍵做一下debounce

發表於: 2010/1/15 8:07
不怕苦...苦半輩子;怕苦...苦一輩子
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問p18F4520的這段程式詳細解釋?
#4
新會員
新會員


查看用戶資訊
參照:

p886222 寫道:
這是曾老師書中的範例,簡單說就是讓燈有按了sw4時會往反方向跑!下面那個區段,分別是delay , 向左, 向右的副程式!
void main (void)
{ADCON1=0b00000110;
PORTD = 0x01;
TRISD = 0;
TRISAbits.TRISA4=1;
while (1){
delay_ms(200);
if(PORTAbits.RA4==1)
rot_left();
else
rot_right();
而上面這段就是他要執行的主程式



那如果我要改成一開始七段顯示器顯示AA
再按下PORB0的按鈕後變成15
是不是改這樣就好呢?
void main (void)
{ADCON1=0b00000110;
PORTD = 0x15;
TRISD = 0;
TRISBbits.TRISB0=1;
while (1){
delay_ms(200);
if(PORTBbits.RB0==1)
PORTD=0x15
else
PORTD=0xAA

發表於: 2010/1/15 7:34
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問p18F4520的這段程式詳細解釋?
#3
版主
版主


查看用戶資訊
致 aceapong,

看起來要要先了解的不是程式如何的動作,因為感覺起來 C 的敘述你還不了解所以無法看的懂這種解單的程式。
建議,先將 W401 看過後你就會了解 這些 I/O Port 與周邊的基本設定及使用方式。

發表於: 2010/1/14 10:05
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問p18F4520的這段程式詳細解釋?
#2
資深會員
資深會員


查看用戶資訊
這是曾老師書中的範例,簡單說就是讓燈有按了sw4時會往反方向跑!下面那個區段,分別是delay , 向左, 向右的副程式!
void main (void)
{ADCON1=0b00000110;
PORTD = 0x01;
TRISD = 0;
TRISAbits.TRISA4=1;
while (1){
delay_ms(200);
if(PORTAbits.RA4==1)
rot_left();
else
rot_right();
而上面這段就是他要執行的主程式

發表於: 2010/1/14 9:28
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


請問p18F4520的這段程式詳細解釋?
#1
新會員
新會員


查看用戶資訊
我在LAB的時候使用18f4520在MPLAB用到這段程式
可以告訴我這段程式碼每個地方的意思嗎?

#include <p18f4520.h>
#include <delays.h>
#pragma config OSC=HS, WDT=OFF, LVP=OFF
#define OSC_CLOCK 10

void delay_ms (long A);
void rot_right(void);
void rot_left(void);

void main (void)
{ADCON1=0b00000110;
PORTD = 0x01;
TRISD = 0;
TRISAbits.TRISA4=1;
while (1){
delay_ms(200);
if(PORTAbits.RA4==1)
rot_left();
else
rot_right();
}
}

void delay_ms(long A)
{
long i;
int us2TCY;
us2TCY=(100*OSC_CLOCK)>>2;
for(i=0;i<A;i++)
Delay100TCYx(us2TCY);
}

void rot_right(void)
{
if(PORTD>1)
PORTD=(PORTD>>1);
else
PORTD=127;
}
void rot_left(void)
{
if(PORTD<128)
PORTD=(PORTD<<1);
else
PORTD=0x01;
}

發表於: 2010/1/14 1:04
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------