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


Browsing this Thread:   1 Anonymous Users






Re: 請教關於16F877的A/D轉換RE2接腳不能使用的問題
#5
初級會員
初級會員


查看用戶資訊
還是不太懂版主的意思耶...
可以再說清楚些嗎?
抱歉囉~~小弟真的對單晶片沒有什麼概念

發表於: 2006/1/4 21:01
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請教關於16F877的A/D轉換RE2接腳不能使用的問題
#4
版主
版主


查看用戶資訊
C18 對週邊的位元是採位元結構的方式定義,所以你必須修改 main() 裡的位元設定。

TRISEbits.PSPMODE=0;
TRISEbits.Bit2=1;

發表於: 2005/12/22 17:22
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請教關於16F877的A/D轉換RE2接腳不能使用的問題
#3
初級會員
初級會員


查看用戶資訊
程式碼如下~~拜託各位了~~謝謝!

#include <pic.h>
#include "MID_LCD.h"


void A2D_0( unsigned char );
void LCD_ItoA(unsigned int);
unsigned char Set_BCD_ASCII(unsigned char);




unsigned int AD_Temp;
bit DS_Zero_Flag;

union {
int AD_10bit;
struct {
char AD_LSB;
char AD_MSB;
}AD_Byte;
}AD_Int;

/*****************************
DELAY FUNCTION
*****************************/

void delay_x_ms(int);
void del_1ms(void);

void delay_x_ms(int N_ms)
{
int Loop_ms;

for(Loop_ms = 0;Loop_ms<N_ms;Loop_ms++)
{
del_1ms();
}
}

void del_1ms(void)
{
int del_1ms;
for(del_1ms = 0;del_1ms<199;del_1ms++)
{
asm("nop");
asm("nop");
}
}

/***********************************
Convert A/D Channel
************************************/

void A2D_0( unsigned char channel )
{
unsigned char temp; // Temp storage
ADCON0=0b10111001;

temp = channel << 3; // Shift channel value three bits left
ADCON0 &= 0b11000111; // Clear channel select bits in ADCON0
ADCON0 |= temp; // Logically OR shifted channel value into place in ADCON0
delay_x_ms(100);

ADGO = 1; // Initiate conversion on selected channel
while (ADGO) ; // Poll ADGO bit until it clears, indicating conv. done
AD_Int.AD_Byte.AD_MSB=ADRESH;
AD_Int.AD_Byte.AD_LSB=ADRESL;
}



//***************************************
//* Program Main ( ) *
//***************************************
void main(void)
{
OpenLCD();
ADCON1=0b10000000; //all channel is A/D input and Right justified
PSPMODE=0;
TRISE2=1;
TRISC=0x00; // Set PortC for Output
PORTC=0x80; // Initila LED display = 0x80

while(1)
{
A2D_0(0x07); // Get 10-bit A/D result from CH7
LCD_Set_Cursor(0,0);
LCD_ItoA(AD_Int.AD_10bit);

}

}

void LCD_ItoA(unsigned int AD_Data)
{
AD_Temp=AD_Data;
DS_Zero_Flag=1;

putcLCD(Set_BCD_ASCII(AD_Data/1000)); // 顯示千位數
AD_Temp=AD_Temp%1000; // 取出百位以後的數

putcLCD(Set_BCD_ASCII(AD_Temp/100)); // 顯示百位數
AD_Temp=AD_Temp%100;

putcLCD(Set_BCD_ASCII(AD_Temp/10)); // 顯示十位數
AD_Temp=AD_Temp%10;

putcLCD(AD_Temp+='0'); // 顯示個位數
}


unsigned char Set_BCD_ASCII(unsigned char BCD_Data)
{
if (BCD_Data==0)
{
if (DS_Zero_Flag) return ' '; // 居先零抑制
else return '0'; // 顯示一般的零
}
else
{
DS_Zero_Flag=0; // 取消居先零的抑制
return (BCD_Data +='0'); // 並傳回 ASCII Code
}
}

發表於: 2005/12/22 16:03
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請教關於16F877的A/D轉換RE2接腳不能使用的問題
#2
版主
版主


查看用戶資訊
把您的程式寫得簡單一點,post上來大家研究研究吧!

發表於: 2005/12/20 22:12
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


請教關於16F877的A/D轉換RE2接腳不能使用的問題
#1
初級會員
初級會員


查看用戶資訊
版主以及各位先進,小弟在此想請教一個問題
那就是我使用16F877的A/D轉換時,其他CHANNEL都沒問題,
偏偏RE2就是無法使用,我可能的設定均已設定,設定如下:

ADCON1 裡的 PCFG0~PCFG3 的設定,全部設定為類比應無問題。
相關暫存器TRISE裡面的Bit4,設定為PSPMODE=0
小弟實在已經想不出辦法囉~~~
希望各位前輩可以幫幫忙,感恩ㄚ~~~


發表於: 2005/12/20 17: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... ]

教育訓練中心

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