![]() |
|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 | |
Trưởng lão PIC bang
|
Trích:
Để phát hiện cực tính điện áp (thực ra bạn đang dò điểm không-zero crossing point) thì nên dùng vi mạch so sánh. Dùng OP-AMP với tần số lưới cũng được, nhưng OP-AMP vốn không được thiết kế để hoạt động ở chế độ này. Trước khi nói về code, bạn nên cho biết bạn dự định viết bằng hợp ngữ hay một ngôn ngữ cấp cao nào đó (Basic, Pascal, C, ...). Tốt hơn nữa thì bạn cho biết trình biên dịch bạn đang/dự định sử dụng. Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
#2 |
Nhập môn đệ tử
Tham gia ngày: Oct 2008
Bài gửi: 8
: |
mình viết bằng ccs.
mình dùng opamp tai vì thầy hướng dẫn bảo mình dùng con đó. mình cũng thử mô phỏng Protues rui.lm324 co tao ra xung vuong. và minh cũng thử viết 1 ngắt ngoài(ngắt cạnh lên) để kiểm tra trên mạch thực tế và thấy nó cũng hoạt động - à minh hỏi cái này nữa:trong mạch của mình sau cầu Chỉnh lưu dùng tụ 1uF thì có được không.tại mình nghĩ dùng tụ 1uF thì nó lọc áp chưa phẳng nên khi qua lm324 sau đó vào AN0 và AN1 thì ADC của pic nó đọc kô chính xác. mình đã thử viết một chương trình để đọc ADC: bạn thử kiểm tra giùm xem code nó đúng không nhé: #include <18f4520.h> #DEVICE ADC=10 #fuses HS,NOWDT,NOPROTECT,NOLVP #use delay(clock=20000000) #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, STOP=1) int16 ap=0,dong=0; void main() { setup_ADC(All_Analog); setup_ADC(ADC_CLOCK_INTERNAL); while(1) { set_adc_channel(0); delay_us(10); ap=read_adc(); set_adc_channel(1); delay_us(10); dong=read_adc(); printf("%lu %lu \n\r",ap,dong); } } thay đổi nội dung bởi: nuacuatoi2010, 20-12-2008 lúc 01:28 AM. |
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|