Các bác ơi! Em gặp nhiều trường hợp vẽ orcad bị nhầm. Theo em biết thì proteus có thể mô phỏng và thiết kế mạch in nữa. Vậy tại sao không dùng Proteus? Có ai so sánh hai món này giúp em ko? Cho em hỏi thêm: Làm sao để tạo bus trong proteus. Cảm ơn các bác rất nhiều!
|
cái đoạn code này:
#include <16F877A.h> #fuses HS,NOWDT,NOPROTECT,NOLVP #device 16F877*=16 ADC=8 #use delay(clock=10000000) #use fast_io(b) int8 adc; main() {set_tris_b(0); setup_adc(adc_clock_internal); setup_adc_ports(AN0); set_adc_channel(0); delay_ms(10); while(true) { adc=read_adc(); output_B(adc); } } ///////////////////////////// setup_adc_ports(AN0); //tại sao lại lại chọn chân AN0, mình có thể chọn chân khác được không.nếu chọn chân khác thì mình có phải thay thông số nào khác nữa không? thank! |
To anh giỏi @ : bạn phải nắm đuợc các tập lệnh sẵn của ccs :)
Như lệnh Setup_ADC_port (value) dùng để xác định chân nhận tín hiệu Analog và điện thế chuẩn sử dụng (Vref), thường thì mình hay dùng (all_analogs) tức là dùng hết các chân analog mà VDK cung cấp và điện thế chuẩn bằng VDD, nhưng tuỳ vào nguời sử dụng muốn biến một chân Analog thành pin I/O và Vref từ một nguồn khác thì sẽ chọn value này khác đi :o . Lệnh Set_ADC_channel (channel) dùng để chọn chân đọc giá trị ADC channel là các số từ 0->n (n phụ thuộc vào từng loại vi điều khiển đuợc trang bị bao nhiêu cổng ADC) ví dụ như bạn nhìn thấy chân AN3, và bạn muốn đọc giá trị từ chân này thì bạn sẽ đánh vào là (3) rất đơn giản phải không :D Ví dụ cho bạn chút nhá : setup_adc(adc_clock_internal); // chọn xung lấy mẫu ADC = xung nội setup_adc_ports(all_analogs); //sử dụng tất cả các chân ADC và vef=VDD While(true){ // vòng lặp chính while(true){ set_adc_channel(0); // chọn chân lấy mẫu là ANO delay_ms(10); // tạo trễ để lấy mẫu ADC chuẩn xác adc0=read_ADC(); // nạp giá trị đọc đuợc vào biến adc0 set_adc_channel(1); // chọn chân lấy mẫu là AN1 delay_ms(10); adc1=read_ADC(); } sau đó bạn muốn làm gì đó với các giá trị thu đuợc thì làm OK ;) } To dvnccbmacbt @ : Proteus hỗ trợ luôn cho nguời dùng tiện ích là Ares (thần nam tính theo ngữ hi lạp cổ :D), mình có thể dùng để vẽ mạch khá tốt, đồ hoạ khá bắt mắt (có hỗ trợ cả chức năng mô phỏng mạch 3D), giải thuật giải đẩy khi đi mạch của nó cũng khá thông minh (hơn cả Orcad tất nhiên là theo mình thui), nhưng nó có một điểm cực yếu là khi đi vào cấy hình chi tiết các thông số cho mạch in thì nó không có đủ :( , nên nếu là các mạch dơn giản thì Proteus là một trong những lựa chọn hàng đầu của mình, Orcad điểm mạnh là các thông số OK (quá chi tiết), trình nhiều nguời dùng nên có thể giao lưu học hỏi qua lại, phần help dễ nắm bắt..v.v... tuy nhiên điểm yếu của nó là cực kỳ dễ nhầm lẫn trong thiết kế (chỉ cần phần nguyên lý bạn không cẩn thận chồng dây hay gì đó là sinh chuyện rồi :mad:), đồ hoạ thì xấu hoắc, thuật đi mạch thì ngốc hết biết (thường thấy mấy anh dùng toàn vẽ tay :D),... Nên lựa chọn hàng đầu của mình hiện giờ là Protel hoàn hảo hết tất cả những gì mình muốn ,khuyên bạn nên dùng Protel nếu như cảm thấy mình có khả năng tự tiếp thu tốt (do tài liệu hiện rất ít và chẳng đầy đủ) và chọn Orcad khi muốn học hỏi lớp nguời đi trước ;), Còn về vẽ Bus trong Proteus thì quá đơn giản rùi bạn chọn cái tool nào có hình giống như "sợi bus" vậy là xong, sau đó nối các đường dây từ linh kiện vào dùng tiếp tool net_label đặt nhãn cho từng đường để bus còn biết đâu là các đầu dây của cùng một dây :o , nếu vẫn chưa hiểu rõ về bus thì bạn phải tìm về một ví dụ nào đó rồi xem tại sao lại nối như vậy Chú ý nếu bạn vẫn chưa rõ thì hãy rê chuột lên trên các tool chờ 1 lát trình sẽ hiện lên tên của từng tool (cái này giúp ích bạn rất nhiều khi mò mẫm một phần mềm nào đấy ;) ) |
Tui có cuốn sách này về CCS. hi vọng có thể giúp cho cho 1 số bạn :
http://d3.myfreefilehosting.com/d1/C...update%20I.pdf |
Trích:
Thân, |
Chương trình ngắt đây
1 Attachment(s)
Các bạn coi gium` mình có sai chỗ nào không mà mình delay không được
Mình muốn khi đóng RB4 thì LED sẽ nháp nháy với delay 50ms chẳng hạn. Phần ngắt chuyển chế độ thì mình làm được nhưng delay trong mỗi chế độ thì potay. Code:
#include <16F877A.h> |
Trích:
Code:
#include <16F877A.h> |
Mình đã sữa lại thành 1000ms và đã chạy mô phỏng được,có điều khi chuyển chế độ (nhấn button tới 2 lần và mối làn nhấn phải giữ một thời gian) thì mới chuyển được .
Mình muốn nhấn button (1 lần) thì chế đọ 1 chạy,nhấn button 2 thi chế độ 2 chạy,vạy thôi.Mình hi vọng các bạn có thể sửa giùm mình thêm đoạn code đó nha. #include <16F877A.h> #fuses NOWDT,PUT,XT,NOPROTECT #use delay(clock=4000000) #use fast_io(b) #byte portb=0x06 #byte intcon=0x000B #bit RB4=portb.4 #bit RB5=portb.5 #bit RBIF=intcon.0 //dinh nghia co ngat RB #bit RBIE=intcon.3 //dinh nghia bit cho phep ngat RB // Chuong trinh ngat #int_RB void ngat_RB() { if((RBIF)&&(RBIE)) { //Kiem tra sw1 { if(RB4==0) while(RB5==1) { portb=0b00000001; delay_ms(1000); portb=0b00001111; delay_ms(1000); } } //Kiem tra sw2 { if(RB5==0) while(RB4==1) { portb=0b00001000; delay_ms(1000); portb=0b00001111; delay_ms(1000); } } RBIF=0; //Xoa co ngat RB } } // Chuong trinh chinh main() { set_tris_b(0b11110000); portb=0b11110000; enable_interrupts(global); enable_interrupts(int_RB); ext_int_edge(H_to_L); while(true) { } } |
BẠN SỪA LẠI #fuses NOWDT,PUT,XT,NOPROTECT THÀNH
#fuses NOWDT,PUT,HS,NOPROTECT LÀ CHƯƠNG TRÌNH ỔN RỒI |
Lúc Bạn Viết Chương Trình Ngắt Thì Trong Chương Trình Này Phải Cấm Ngắt Toàn Cục Xử Lí Xong Mới Cho Phép Ngắt Lại
Vài điều Trao đổi Cùng Bạn! |
thx bạn nhiều.Mình chạy được rồi,ah,mà bạn giải thích mình thay "Xt" trong dòng đó bằng "HS" la sao hả bạn.
|
bài này:
Code:
/*----------------------------------------------------------------------------- mong mọi người chỉ dùm.thank! |
Trích:
Thân, |
mọi ngừoi ơi! xem hộ mã này với
không bít có sai gì ko ,nó không báo lỗi nhưng nó không hiển thị chữ Code:
#include "16F877A.h" namqn: bạn xem lại tôi sửa như thế nào để hiển thị code, sau đó bạn làm như vậy khi post code. Tôi không thể sửa cho mọi post có code được. |
kiểm tra lại hóa ra chẳng có lỗi gì cả.
|
Múi giờ GMT. Hiện tại là 02:54 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam