hiih, ổn rồi bác ợ, thank bác nhiều nhé
Thông báo
Collapse
No announcement yet.
adc pic 16f887
Collapse
X
-
#include "16f887.h"
#device 16F877*16ADC=8
#fuses NOWDT,HS,NOPUT,NOPROTECT,BROWNOUT,LVP,NOCPD,NOWRT
#define W 0
#define F 1
// register files
#byte INDF =0x00
#byte TMR0 =0x01
#byte PCL =0x02
#byte STATUS =0x03
#byte FSR =0x04
#byte PORTA =0x05
#byte PORTB =0x06
#byte PORTC =0x07
#byte PORTD =0x08
#byte PORTE =0x09
#byte EEDATA =0x10C
#byte EEADR =0x10D
#byte EEDATH =0x10E
#byte EEADRH =0x10F
#byte ADCON0 =0x1F
#byte ADCON1 =0x9F
#byte ADRESH =0x9F
#byte ADSESL =0x9F
#byte PCLATH =0x0a
#byte INTCON =0x0b
#byte PIR1 =0x0c
#byte PIR2 =0x0d
#byte PIE1 =0x8c
#byte PIE2 =0x8d
#byte OPTION_REG =0x81
#byte TRISA =0x85
#byte TRISB =0x86
#byte TRISC =0x87
#byte TRISD =0x88
#byte TRISE =0x89
#byte EECON1 =0x18C
#byte EECON2 =0x18D
//DINH NGHIA BIT
#bit ra5 =0x05.5
#bit ra4 =0x05.4
#bit ra3 =0x05.3
#bit ra2 =0x05.2
#bit ra1 =0x05.1
#bit ra0 =0x05.0
#bit rb7 =0x06.7
#bit rb6 =0x06.6
#bit rb5 =0x06.5
#bit rb4 =0x06.4
#bit rb3 =0x06.3
#bit rb2 =0x06.2
#bit rb1 =0x06.1
#bit rb0 =0x06.0
#bit rC7 =0x07.7
#bit rC6 =0x07.6
#bit rC5 =0x07.5
#bit rC4 =0x07.4
#bit rC3 =0x07.3
#bit rC2 =0x07.2
#bit rC1 =0x07.1
#bit rC0 =0x07.0
#bit rD7 =0x08.7
#bit rD6 =0x08.6
#bit rD5 =0x08.5
#bit rD4 =0x08.4
#bit rD3 =0x08.3
#bit rD2 =0x08.2
#bit rD1 =0x08.1
#bit rD0 =0x08.0
#bit rE2 =0x09.2
#bit rE1 =0x09.1
#bit rE0 =0x09.0
#bit trisa5 =0x85.5
#bit trisa4 =0x85.4
#bit trisa3 =0x85.3
#bit trisa2 =0x85.2
#bit trisa1 =0x85.1
#bit trisa0 =0x85.0
#bit trisb7 =0x86.7
#bit trisb6 =0x86.6
#bit trisb5 =0x86.5
#bit trisb4 =0x86.4
#bit trisb3 =0x86.3
#bit trisb2 =0x86.2
#bit trisb1 =0x86.1
#bit trisb0 =0x86.0
#bit trisc7 =0x87.7
#bit trisc6 =0x87.6
#bit trisc5 =0x87.5
#bit trisc4 =0x87.4
#bit trisc3 =0x87.3
#bit trisc2 =0x87.2
#bit trisc1 =0x87.1
#bit trisc0 =0x87.0
#bit trisd7 =0x88.7
#bit trisd6 =0x88.6
#bit trisd5 =0x88.5
#bit trisd4 =0x88.4
#bit trisd3 =0x88.3
#bit trisd2 =0x88.2
#bit trisd1 =0x88.1
#bit trisd0 =0x88.0
#bit trise2 =0x89.2
#bit trise1 =0x89.1
#bit trise0 =0x89.0
// INTCON Bits for C
#bit gie = 0x0b.7
#bit peie = 0x0b.6
#bit tmr0ie = 0x0b.5
#bit int0ie = 0x0b.4
#bit rbie = 0x0b.3
#bit tmr0if = 0x0b.2
#bit int0if = 0x0b.1
#bit rbif = 0x0b.0
// PIR1 for C
#bit pspif = 0x0c.7
#bit adif = 0x0c.6
#bit rcif = 0x0c.5
#bit txif = 0x0c.4
#bit sspif = 0x0c.3
#bit ccp1if = 0x0c.2
#bit tmr2if = 0x0c.1
#bit tmr1if = 0x0c.0
//PIR2 for C
#bit cmif = 0x0d.6
#bit eeif = 0x0d.4
#bit bclif = 0x0d.3
#bit ccp2if = 0x0d.0
// PIE1 for C
#bit adie = 0x8c.6
#bit rcie = 0x8c.5
#bit txie = 0x8c.4
#bit sspie = 0x8c.3
#bit ccp1ie = 0x8c.2
#bit tmr2ie = 0x8c.1
#bit tmr1ie = 0x8c.0
//PIE2 for C
#bit osfie = 0x8d.7
#bit cmie = 0x8d.6
#bit eeie = 0x8d.4
// OPTION Bits
#bit not_rbpu = 0x81.7
#bit intedg = 0x81.6
#bit t0cs = 0x81.5
#bit t0se = 0x81.4
#bit psa = 0x81.3
#bit ps2 = 0x81.2
#bit ps1 = 0x81.1
#bit ps0 = 0x81.0
// EECON1 Bits
#bit eepgd = 0x18c.7
#bit free = 0x18C.4
#bit wrerr = 0x18C.3
#bit wren = 0x18C.2
#bit wr = 0x18C.1
#bit rd = 0x18C.0
//ADCON0
#bit CHS0 =0x1F.3
#bit CHS1 =0x1F.4
#bit CHS2 =0x1F.5
#use delay(Clock = 4000000)
int8 temp = 0;
int8 adc;
#int_TIMER1
void TIMER1_isr(void)
{
temp++;
if(temp == 4) //400us = 40% muc cao.
output_high(PIN_D0);
else if(temp == 6)
{
output_low(PIN_D0); //600us = 60% muc thap.
temp = 0;
}
set_timer1(65335);
}
void adc_read(void)
{
setup_adc(ADC_CLOCK_DIV_2);
setup_adc_ports(sAN0);
set_ADC_channel(0);
delay_us(10);
while(true)
{
adc==read_adc();
output_B(adc);
if( adc>128)
{ output_low(PIN_D1);}
}
}
void main()
{
//Khoi tao T1 va ngat.
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); //T1 dem xung noi, ti le chia 1
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
set_timer1(65335); //Thach anh 8 MHz => CK may = 4/8 = 0,5us
//100us ngat 1 lan = 200xung = 65535 - 65335
//Thiet lap cac pin xuat nhap
set_tris_d(0x00);
set_tris_b(0xff);
adc_read();//PORTD xuat du lieu.
//----------------------------
while(true);
}
Comment
-
anh cho em hỏi những lệnh này hiểu thế nào ạ :
setup_adc(ADC_CLOCK_DIV_2);
và trong lệnh này : set_ADC_channel(0);
giá trị của channel mình có thể chọn tùy mình phải không ạ hay bị ràng buộc gì không ạ .
Và cho em hỏi đoạn này luôn ạ :
set_timer1(65335); //Thach anh 8 MHz => CK may = 4/8 = 0,5us
//100us ngat 1 lan = 200xung = 65535 - 65335
- Cách để mình tính toán các giá trị nhập cho timer nha anh.
Cảm ơn các anh.
Comment
-
cái này hình như chưa đúng ạ :
#include "16f887.h"
#device 16F877*16ADC=8
- đang dùng thư viện pic 887 sao lại khai báo device 16F877 ạ.
- cho em hỏi luôn giá trị đặt cho timer1 là 65335 là vì :
16 bit là 65536-1 , trừ cho giá trị xung timer là ra giá trị đặt cho timer . Hiểu vậy đúng ko ạ
Comment
-
Nguyên văn bởi langtu_711 Xem bài viếtsetup_adc(ADC_clock_div_2) là lệnh chọn xung clock , rồi chia cho 2 , tùy vào ứng dụng mà bạn muốn chia nhỏ tần số,
set_ADC_channel(0)là lệnh chọn kênh adc mà bạn muốn, kênh nào cũng được
- lập trình pic 887 dùng CCS thì có cần set các thanh ghi ANSEL và ANSEL hay không ạ ? hay cách khác ạ . Vì nếu dùng HTC thì phải set 2 thanh ghi này lên 1 thì là chân analog và 0 là digital anh ạ . Cảm ơn anh .
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80À, sản phẩm họ thiết kế ra, họ yêu cầu mình chứng minh là sau chỉnh sửa thì 1 là gỡ jump cắm lại không hư mạch, 2 là gỡ jump thì 220Vdc vẫn dùng được led áp thấp 20V mà không hư led như mình báo, nên họ hiểu rõ mà....
-
Channel: Điện tử công suất
hôm nay, 06:08 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Tôi biết và tôi biết.
Sẽ bắt đầu với cái Sồn La, rồi mấy mạch nguồn vớ vỉn.... Rồi sẽ đèn led...
Cuộc đời là những chuyến xe, nên sẽ có:
Xe đạp điện, xe máy điện, xe ô tô điện, xe cấp cứu điện, xe tang điện.
Rồi xem.-
Channel: Điện tử công suất
hôm nay, 01:38 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Vấn đề là thu ánh sáng rồi phát ra ánh sáng cơ. Hồi mẫu giáo cô bảo đừng làm, lão không nhớ à?
Tốt nhất im mồm....-
Channel: Điện tử công suất
hôm nay, 01:26 -
-
Trả lời cho Tiếng Anh cho người Việtbởi bqvietBài học kiểu trực tuyến dù là loại đơn giản bậc nhất cũng vẫn cần chú tâm. Chỉ bật tai nghe lên thì không có loại nào thấm nổi đâu. Cách hay hơn, dễ hơn là kiếm phim tiếng Anh nào đó xem, ban đầu bật phụ đề tiếng Việt, nghe và...
-
Channel: Tâm tình dân kỹ thuật
14-02-2025, 16:15 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nguyendinhvanỞ đtvn này mới biết đến 2 loại mạch
1 step down
2 step up
Bây giờ anh lưu vong làm thuê bên nước lạ còn làm ra cái mach vừa up vùa dow luôn.
Tính chất là:
1 Đầu vào bằn ra cho nối thẳng
2 Đầu vào cao hơn...-
Channel: Điện tử công suất
14-02-2025, 00:51 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nguyendinhvanHa ha !
Thay đổi cách nghĩ thì sẽ nghĩ ra.
.
.
.
Một thứ cần kiểm soát dòng + nhiệt + công suất tiêu tán. Nhưng lại dùng tư duy ổn áp. Làm sao mà giải quyết được.
Nó là mạch ổn dòng.
Vì thế các anh nước lạ không thèm quan tâm là phải....-
Channel: Điện tử công suất
14-02-2025, 00:42 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80Vì cứ phải chỉnh sửa cho mỗi dải điện áp, quên chỉnh thì hư chíp phải bảo hành nên em thấy bất tiện, mới cần cái mạch 1 dải áp cao dùng cho tất cả loại đèn đó bác!...
-
Channel: Điện tử công suất
13-02-2025, 17:02 -
-
Trả lời cho Tiếng Anh cho người Việtbởi hankhungdtMình thỉnh thoảng cũng làm việc với người nước ngoài nói tiếng Anh thì toàn ghép nhặt từ, cộng với quơ tay quơ chân để diễn tả, hix. Nỗi khổ là không biết cách để mô tả sự việc. Tôi muốn tìm các bài giảng tiếng anh nào phù hợp...
-
Channel: Tâm tình dân kỹ thuật
13-02-2025, 08:43 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi ti500Chúc mừng bác đã chỉnh sửa thành công, nhưng theo em thì video hơi rối nếu bác muốn gửi cho bên supplier xem.
Nếu là em thì em chỉ cần nối dây để hiển thị liên tục điện áp ở ngõ ra là 220Vdc trước khi gắn LED, kế đến là cắm...-
Channel: Điện tử công suất
13-02-2025, 07:39 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi tuyennhanTrước khi có đủ thực lực thì chỉ làm vì mình thôi đừng nghĩ đến chuyện khác cái mạch toàn dãi tiện sử dụng nhưng tỷ lệ hư hỏng phải bảo hành cũng cao hơn ,lợi bất cập hại .
-
Channel: Điện tử công suất
13-02-2025, 07:22 -
Comment