mình dùng mikroc.
Pic16f877a TỪ DỄ TỚi KhÓ
Collapse
This topic is closed.
X
This is a sticky topic.
X
X
-
Thắc mắc
Xin lổi vì có một thac mắc nhỏ:Nguyên văn bởi namqn View PostKhai báo 'count1 equ 0x20' cho trình dịch biết count1 có giá trị là 0x20. Đây là địa chỉ được dùng trong chương trình để truy xuất biến, là một ô nhớ nằm ở địa chỉ 0x20 (trong RAM của PIC).
Đây chỉ là một trong nhiều ứng dụng của directive equ, vốn dùng để làm cho symbol bên trái nó mang giá trị nằm bên phải nó.
Bạn có thể dùng thẳng địa chỉ 0x20 trong chương trình, nhưng nếu chương trình của bạn có nhiều biến và sau thời gian vài tuần, khi đọc lại chương trình bạn có khả năng không hiểu được ô nhớ đó mang ý nghĩa gì.
Thân,
Trong 8051, thường câu lệnh này để khai báo biến count1 bằng giá trị 0X20. Để khai báo byte nhớ : Count1 DB 0X20. Không biết lời giải thích trên có chính xác or là trong PIC nó khác.
Comment
-
Với 8051, count1 trong "count1 equ 0x20" vẫn không phải là biến, mà chỉ là một giá trị hằng (0x20). count1 trong "count1: DB 0x20" là một nhãn để truy xuất giá trị hằng 0x20 trong vùng bộ nhớ chương trình hay vùng bộ nhớ cho const (giá trị của count1 lúc này không thể xác định trước, vì nó do trình hợp dịch cấp phát).Nguyên văn bởi namlong782004 View PostXin lổi vì có một thac mắc nhỏ:
Trong 8051, thường câu lệnh này để khai báo biến count1 bằng giá trị 0X20. Để khai báo byte nhớ : Count1 DB 0X20. Không biết lời giải thích trên có chính xác or là trong PIC nó khác.
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
Comment
-
Em cũng mới học PIC ,thử viết một đoạn chương trình gửi tín hiệu từ bộ chuyển đổi ADC có sẵn trong PIC lên máy tính nhưng mô phỏng bằng Protues mà chưa thấy chạy,mọi người xem xét chỉnh sửa lại đoạn code cho mình với ,Thanks
#include <16f877a.h>
#include <def_877a.h>
#device *=16 ADC = 10
#fuses NOWDT,HS,NOPUT,NOPROTECT,NODEBUG,NOBROWNOUT,NOLVP, NOCPD,NOWRT
#use delay(clock = 20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=9)
#int_ad
conversion_isr()
{
char c;
float value;
value = read_adc();
c=(char)value;
putc(c);
}
void main()
{
trisa=0xff;
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
delay_us(10);
enable_interrupts(int_ad);
enable_interrupts(GLOBAL);
while(1);
}
Comment
-
enable_interrupts(int_rda); //thiết lập ngặt nhậnNguyên văn bởi laka View Postcó bạn nào chỉ giúp mình cách thiết lập interrupt serial port của pic16f877a được không?
cảm ơn nhiều...!
enable_interrupts(int_tbe); //thiết lập ngặt truyền
enable_interrupts(GLOBAL);
#INT_RDA //Hàm xử lí ngắt truyền
Receive_isr() {};
#INT_TBE //Hàm xử lí ngắt nhận
Tranmit_isr() {};
Comment
-
các bác giúp với, em đang tìm sơ đồ mạch điều khiển động cơ step dùng pic 16f877a sử dụng nút nhấn( đièu khiển thuận nghịch) mà chưa có. bác nào có thi post lên cho em xin. cảm ơn nhiều
Comment
-
anh nct oi cho em hỏi: trên broad điều khiển của mạch đồng hồ thời gian thục RTC thì J2,J3,J5,J6 được nối đi đâuEmail:hoangdtvt07b@yahoo.com.vn
Comment
-
Chào tất cả mọi người!Em là người mới bắt đầu tìm hiểu về Pic! Mong sau này sẽ được sự chỉ giáo nhiệt tình của mọi người!
Cho em hỏi đã có những bài tiếp theo Pic16f877a TỪ DỄ TỚi KhÓ chưa ah!
Cảm ơn Bác Chính đã viết ra làm tài liệu cho anh em tham học hỏi! mong bác viết chi tiết nuă để những người tự tìm hiểu về Pic như em có thể hiểu được!
thân!!
Comment
-
sao giống mình thế.mình cũng hỏi nhưng ko có ai trả lời.mỗi tội cái của mình nó chạy ko ổn định.chứ ko như bạn là chạy tốt.đi hỏi ngoài thì có người bảo thay tụ 33p=22p(đã thay nhưng vẫn vậy).còn bản chất ở đâu thì mình chịu chết.Nguyên văn bởi luongnhut View Poste đang xài thạch anh 20Mhz,2 tụ 33p cho con 16f877a, mạch chay tốt mà không hiểu tại sao khi e lấy tay chạm vào 1 chân thạch anh nối vào chân OSC1/CLK(13) thi mạch bị đứng lại, thả tay ra lại hoạt động binh thường, mấy pác giúp e khắc phục lỗi này của e với
Comment
-
Đề tài này đã cũ, nên chúng tôi khóa lại.
Hiện nay tất cả các sản phẩm sử dụng PIC16F877A đều có thể thay thế bằng PIC16F887 với giá thành thấp hơn nhiều, vì vậy, chúng ta sẽ không phân tích phát triển PIC16F877A nữa mà chuyển qua sử dụng PIC16F887 hết các bạn ạ.
Những kỹ thuật và nội dung sử dụng cho 877A đều có thể thay thế và sử dụng trên 887. Tuy nhiên, cứ thảo luận về 877A thì sẽ làm cho những người đi sau hiểu sai về PIC và sẽ không phát triển đúng hướng.
Chúc vui.
Comment

namqn
falleaf
Comment