![]() |
|
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 |
![]() |
#166 |
Trưởng lão PIC bang
|
Ở luồng này có người gặp lỗi hệt như bạn:
http://www.picvietnam.com/forum//showthread.php?t=636 Như tôi đã nói, bạn kiểm tra lại cách dịch chương trình của bạn. Cách tạo project cho các chương trình hợp ngữ trong MPLAB tôi đã post ở đây: http://picvietnam.com/forum/showthread.php?t=354 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 thay đổi nội dung bởi: namqn, 27-09-2006 lúc 11:51 PM. |
![]() |
![]() |
#167 |
Đệ tử 1 túi
Tham gia ngày: Apr 2006
Bài gửi: 23
: |
Thừa mà thiếu các bác ạ.
Em thiết kế một mạch dùng PIC6F877A, hiển thị LCD (song song 8 bit), ADC (cũng song song 8 bit), kết nối PC. Vấn đề là khi kết nối PC: mất 2 chân RC6 và RC7, LCD và ADC mất hai cổng song song 8 bit còn lại là port B và portD, như vậy, em không còn chân nào khác phục vụ ngắt dùng cho bàn phím. Trong khi cũng không muốn giảm số chân kết nối của LCD hay ADC để giải phóng cổng B.
Bác nào có phương án hay giúp hộ em cái, em xin chân thành cảm ơn. Em xin viết lại yêu cầu: + Kết nối PC + Hiển thị LCD dùng đường dữ liệu 8 bit + Kết nối ADC ngoài dùng bus 8 bit + Dùng 4 phím bấm Giúp em nhé các bác ơi............................................... |
![]() |
![]() |
#168 |
Đệ tử 1 túi
Tham gia ngày: Oct 2006
Bài gửi: 17
: |
trước tiên xin gửi lời chào đến các cao thủ PIC
mình mới vừa bít trang web này và cũng vừa đăng ký thành viê thôi. minh chưa bit gì về pic hết mình chỉ biét về At89 thôi. minh thấy hàng loạt bài viết của bác NTC dăng trên diển dàn nên mạng phép down về và tham khảo. mình nghe nói PIC có rất nhiều cái hay lắm nên cũng muốn học hỏi để biết thêm. vậy mong các bác giúp đỡ cho mình với nhé chân thành cảm ơn. tiện thể cho mình hỏi thăm ở Hà Nội có mở lớp PIC vậy ở thành phố có mở chưa. nếu chưa vậy các cao thủ ở Hà Nội có tài liệu hãy pót lên cho mình tham khảo và còn chĩ bảo thêm cho diển dàn ngày càng lớn mạnh. |
![]() |
![]() |
#169 | |
Trưởng lão PIC bang
|
Trích:
http://www.microchip.com/stellent/id...pnote=en012090 http://www.microchip.com/stellent/id...pnote=en011019 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 |
|
![]() |
![]() |
#170 |
Nhập môn đệ tử
Tham gia ngày: Oct 2006
Bài gửi: 1
: |
|
![]() |
![]() |
#171 |
Đệ tử 3 túi
Tham gia ngày: Aug 2006
Bài gửi: 55
: |
Xin chào!
Sao không thấy ai bàn về cách viết chương trình xuất ra led 7 đoạn bằng ASM nhỉ? Em vừa mới tìm được cách chuyển đổi từ mã nhị phân 8bit sang mã bcd để xuất ra led 7 doan, nhưng em không biết cách để chuyển mã nhị phân 16bit sang mã bcd, mong được các bác chỉ giáo. Đây là cách chuyển mã nhị phân 8bit sang mã bcd ;*********************************************** tram movwf tam clrf tg tram_loop movlw .100 incf tg,f subwf tam,f btfsc STATUS,C goto tram_loop decf tg,w return ;************************************************* chuc movwf tam clrf tg chuc_loop movlw .10 incf tg,f subwf tam,f btfsc STATUS,C goto chuc_loop decf tg,w goto chuc1 chuc1 movwf tg movlw .10 chuc1_loop subwf tg,f btfsc STATUS,C goto chuc1_loop addwf tg,w return ;************************************************* DONVID MOVWF tg DV MOVLW .10 SUBWF tg,F BTFSC STATUS,C GOTO DV MOVLW .10 ADDWF tg,W RETURN ;************************************************* ** các kết quả nằm trong W cám ơn nhiều! |
![]() |
![]() |
#172 |
Trưởng lão PIC bang
|
Thuật toán trực quan:
Ví dụ với số 8-bit, giá trị tối đa là 255, do đó số BCD có 3 chữ số. Tính từ hàng trăm đến hàng đơn vị, lấy số cần chuyển trừ cho 1 đơn vị của hàng trăm (tức là 100) đến khi có kết quả âm thì không trừ nữa, coi như đã chuyển xong hàng trăm, lấy phần dư thực hiện tiếp cho hàng chục, sau đó đến hàng đơn vị. Với số 16-bit, giá trị tối đa là 65535, do đó số BCD có 5 chữ số. Cũng có thể làm theo cách tương tự, nhưng vấn đề ở đây là vi xử lý 8 bit không thể trừ hai số 16-bit với nhau một cách trực tiếp. Do đó cần phải có một số chương trình con để thực hiện các phép toán giữa các số 16-bit. Nếu không muốn đau đầu thì người dùng thường chọn ngôn ngữ cấp cao. Nếu vẫn muốn đau đầu thì tìm trên mạng hay tự viết các chương trình con hợp ngữ cho 16-bit. 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 |
![]() |
![]() |
#173 |
Nhập môn đệ tử
Tham gia ngày: Jun 2006
Bài gửi: 4
: |
cho em hỏi đã có ai sử dụng pascal để viết chương trình cho pic chưa vậy
|
![]() |
![]() |
#174 | |
Trưởng lão PIC bang
|
Trích:
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 |
|
![]() |
![]() |
#175 | |
Đệ tử 5 túi
Tham gia ngày: Sep 2006
Bài gửi: 100
: |
Đổi mã nhị phân 16bit sang 5 byte bcd unpacked
Trích:
Code:
; Đổi mã nhị phân 16bit sang 5byte BCD unpacked ;**************************** ;Binary 16 bit to BCD unpacked 5 digit ;**************************** ; Input : hex number in Hi, Lo (16bit binary) ; Output : TenK:Thou:Hun:Ten:Ones bin16tobcdup5: swapf Hi,w andlw 0x0F addlw 0xF0 movwf Thou addwf Thou,f addlw .226 movwf Hun addlw .50 movwf Ones movf Hi,w andlw 0x0F addwf Hun,f addwf Hun,f addwf Ones,f addlw .233 movwf Ten addwf Ten,f addwf Ten,f swapf Lo,w andlw 0x0F addwf Ten,f addwf Ones,f rlf Ten,f rlf Ones,f comf Ones,f rlf Ones,f movf Lo,w andlw 0x0F addwf Ones,f rlf Thou,f movlw 0x07 movwf TenK movlw .10 Lb1: addwf Ones,f decf Ten,f btfss 3,0 goto Lb1 Lb2: addwf Ten,f decf Hun,f btfss 3,0 goto Lb2 Lb3: addwf Hun,f decf Thou,f btfss 3,0 goto Lb3 Lb4: addwf Thou,f decf TenK,f btfss 3,0 goto Lb4 retlw 0 ; Phần khai báo đầu chương trình thêm vào khai báo RAM: CBLOCK 0x20 TenK Thou Hun Ten Ones Hi Lo ENDC ; gọi thử chương trình đổi mã nhị phân 16bit sang 5 byte bcd unpacked movlw 0xff movwf Hi movlw 0xff movwf Lo call bin16tobcdup5 Notes: Nhờ các Mod edit lại phần code sao cho dễ nhìn hộ em, em chẳng biết làm thế nào!!!Thanks namqn: Chọn phần code cần định dạng, chọn nút có hình dấu '#' trên thanh công cụ (ở trong khung soạn thảo lớn nhé). Cách khác là đặt mã [ code] trước phần code cần định dạng, và mã [ /code] ngay sau phần cần định dạng (nhớ là không có khoảng trắng bên trong các tag [] nhé, tôi phải để khoảng trắng thì các tag mới hiển thị được). thay đổi nội dung bởi: namqn, 03-12-2006 lúc 07:12 PM. |
|
![]() |
![]() |
#176 |
Đệ tử 1 túi
Tham gia ngày: Oct 2005
Bài gửi: 21
: |
Giải đáp thắc mắc của bạn vtt:
bạn gán biến RunningLed = RD2 (#define RunningLed RD2), bạn muốn đưa chân này lên mức cao tức là dùng lệnh RunningLed = 1; tuy nhiên chương trình của bạn ko chạy được, lý do rất đơn giản là bạn chưa thiết lập chế độ I/O cho cổng D. Trước đó bạn phải dùng lệnh set_tris_d(0); để cổng D làm cổng ra rồi mới thực hiện lệnh RunningLed = 1; Còn lệnh output_high(PIN_D2) ; thì nó đã tự thiết lập cho chân RD2 làm chân ra rồi. Bạn thư lại xem sao nhé!
__________________
============================= ________ ![]() ![]() E-mail:leo_xbs1408@yahoo.com "Đi một ngày đàng học một sàng khôn" |
![]() |
![]() |
#177 |
Đệ tử 1 túi
Tham gia ngày: Jan 2006
Bài gửi: 17
: |
sao không thấy hướng dẫn bằng C các bác nhỉ
__________________
TRUNG TÂM ĐÀO TẠO ĐIỆN TỬ VÀ TỰ ĐỘNG HOÁ MTC MTC khai giảng khóa mới http://blog.360.yahoo.com/blog-kHh38....lgCr0J4220m40 |
![]() |
![]() |
#178 |
Nhập môn đệ tử
Tham gia ngày: Dec 2005
Bài gửi: 10
: |
Mình đã dịch file bật tắt led 1s của NHH bằng MPLABIDEv7.51 nhưng không được. Chương trình báo lỗi:
Clean: Deleting intermediary and output files. Clean: Done. Executing: "F:\Program Files\Microchip\MPASM Suite\MPAsmWin.exe" /q /p18F452 "onoffled1s.asm" /l"onoffled1s.lst" /e"onoffled1s.err" Warning[215] F:\DOCUMENTS AND SETTINGS\PHAM GIA QUANG\DESKTOP\ONOFFLED1S.ASM 8 : Processor superseded by command line. Verify processor symbol. Message[301] F:\PROGRAM FILES\MICROCHIP\MPASM SUITE\P16F877A.INC 37 : MESSAGE: (Processor-header file mismatch. Verify selected processor.) Warning[230] F:\DOCUMENTS AND SETTINGS\PHAM GIA QUANG\DESKTOP\ONOFFLED1S.ASM 10 : __CONFIG has been deprecated for PIC18 devices. Use directive CONFIG. Error[126] F:\DOCUMENTS AND SETTINGS\PHAM GIA QUANG\DESKTOP\ONOFFLED1S.ASM 10 : Argument out of range (not a valid config register address) Warning[207] F:\DOCUMENTS AND SETTINGS\PHAM GIA QUANG\DESKTOP\ONOFFLED1S.ASM 12 : Found label after column 1. (COUNT1) Warning[207] F:\DOCUMENTS AND SETTINGS\PHAM GIA QUANG\DESKTOP\ONOFFLED1S.ASM 13 : Found label after column 1. (COUNT2) Warning[207] F:\DOCUMENTS AND SETTINGS\PHAM GIA QUANG\DESKTOP\ONOFFLED1S.ASM 14 : Found label after column 1. (COUNT3) Error[173] F:\DOCUMENTS AND SETTINGS\PHAM GIA QUANG\DESKTOP\ONOFFLED1S.ASM 53 : Source file path exceeds 62 characters (F:\DOCUMENTS AND SETTINGS\PHAM GIA QUANG\DESKTOP\ONOFFLED1S.ASM) Halting build on first failure as requested. BUILD FAILED: Thu Jan 11 16:17:17 2007 Mình cũng đã dịch file mạch test led 1 của bác F nhưng cũng bị lỗi. Không biết tại sao. |
![]() |
![]() |
#179 | |
Trưởng lão PIC bang
|
Trích:
Các Warning[207] cho thấy format của tập tin nguồn của bạn không chuẩn. Tất cả các nhãn (label) phải nằm ở cột 1 của các dòng mã nguồn. Error[173] chính là rắc rối, tên đường dẫn đến tập tin nguồn của bạn quá dài (dài hơn chiều dài tối đa là 62 ký tự). Bạn đặt mã nguồn trong một thư mục nào đó ở gần thư mục gốc, đặt tên thư mục sao cho đường dẫn tương đối ngắn thôi. 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 |
|
![]() |
![]() |
#180 | |
Trưởng lão PIC bang
|
Trích:
Về nguyên tắc thì có nhiều trang đã đề cập, vào google với từ khóa 'led matrix' thôi. Cách hay nhất theo nhiều người đã từng làm là dùng vi mạch dịch/chốt 74HC595 cùng với các vi mạch source/sink dòng như UDN2981/ULN2803. 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 |
|
![]() |
![]() |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
TUT về USART trong PIC16F877A | mafd_47a | MPASM | 16 | 19-02-2025 05:32 AM |
TUT ve I2C ( pic16f877a ) | mafd_47a | MPASM | 28 | 28-01-2025 10:45 PM |
Lập nhóm PIC16F877A | nhh | Cơ bản về vi điều khiển và PIC | 285 | 08-03-2017 11:08 PM |
Bộ so sánh và PWM cho PIC16F877A | anhquangngai | Cơ bản về vi điều khiển và PIC | 24 | 08-09-2012 09:00 AM |
CCS C for PIC16F877A | nhh | Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) | 405 | 24-04-2008 12:00 PM |