PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

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

Ðề tài đã khoá
 
Ðiều Chỉnh Xếp Bài
Old 09-09-2006, 05:18 PM   #1
vtt
Đệ tử 2 túi
 
Tham gia ngày: Mar 2006
Bài gửi: 44
:
Cảm ơn linhnc308!
Tôi thực sự thấy mình ngu dốt, tôi có về thử lại nhưng vẫn không được, bực quá tôi viết thử lại môt chương trình test đơn giản khác để thử mà vẫn không được. Tôi gửi một số hex vào thì nhận được mốt số hex khác và toàn là số 0 (0x00h), chân RXT trên Serial Input/output monitor sáng liên tục. Bác có thể chỉ giùm tôi cái lỗi của tôi được không?
Dưới đây là đoạn chương trình mà tôi viết lại.
#include <16F877A.h>
#include <DEFS_16F877A.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#define RunningLed RD2
int8 ch;

void main(void) {

Output_high(PIN_D2);
//RunningLed = 1;
while(!true){
ch = getc();
if ((ch >= 0x30)&(ch <= 0x7A)){
putc(ch);
}
}
}
Bác nào đã test giao tiếp PIC với PC rồi xin chỉ giáo để tử ngu dốt này với!
vtt vẫn chưa có mặt trong diễn đàn  
Old 10-09-2006, 09:39 AM   #2
nevergoback1001
Nhập môn đệ tử
 
Tham gia ngày: Aug 2006
Bài gửi: 4
:
Tôi không thấy đoạn code của bác bị gì cả! Copy- past vào CCS C là chạy bình thường trừ 1 lỗi: bỏ dấu "!" trước true trong vòng lặp while, vì not true nghĩa là false mà false thì biết bao giờ nó mới thực thi! (He he he)
Nếu sửa lại mà vẫn ko chạy thì bác xem lại modul giao tiếp với PC ( hổng biết có mắc lộn chân Tx với Rx hay ko?
nevergoback1001 vẫn chưa có mặt trong diễn đàn  
Old 10-09-2006, 11:36 PM   #3
vtt
Đệ tử 2 túi
 
Tham gia ngày: Mar 2006
Bài gửi: 44
:
Cám ơn bạn
Tôi đã sử lý tạm thời được rồi, nhưng không hiểu tại sao tôi chỉ truyền một ký tự mà nó đáp lại hàng đống ký tự. (khoảng chục ký tự thì nó mới dừng lại).
vtt vẫn chưa có mặt trong diễn đàn  
Old 11-09-2006, 01:20 AM   #4
nevergoback1001
Nhập môn đệ tử
 
Tham gia ngày: Aug 2006
Bài gửi: 4
:
Talking

Tối viết tạm 1 chương trình đơn giản mà bạn có thể test được!
Chương trình trên PC viết bằng VB, còn chương trình trên PIC thì bạn có thể lấy ngay đoạn code của bạn đã viết đó ( Tôi đã thử rồi nếu như ko có gì trục trặc thì OK hết, nếu có gì trục trặc thì tôi bó tay. He he!). Bạn nhập số hay kí tự vào ô text2, thì PIC sẽ trả kết quả vào ô text1 sau khi nhấn command1. VD: bạn nhập vào đó chữ 'A' hay số '80' thì sau khi nhấn command1 ô text1 sẽ hiện chữ 'A' hoặc '80'.
Việc nhập số hay kí tự thì bạn tự tìm hiểu thêm về việc truyền thông nối tiếp vậy, vì không phải nhập cái gì cũng được đâu, nó sẽ báo lỗi tè lè đấy, bạn có thể phân tích kĩ đoạn code tôi viết để hiểu thêm ( rất đơn giản!)
Good luck!!
nevergoback1001 vẫn chưa có mặt trong diễn đàn  
Old 11-09-2006, 01:23 AM   #5
nevergoback1001
Nhập môn đệ tử
 
Tham gia ngày: Aug 2006
Bài gửi: 4
:
Ý quên tôi chưa up code lên sorry nhé!
Giờ mới up nè!
File Kèm Theo
File Type: rar New Folder.rar (1.6 KB, 579 lần tải)
nevergoback1001 vẫn chưa có mặt trong diễn đàn  
Old 14-09-2006, 08:47 PM   #6
vtt
Đệ tử 2 túi
 
Tham gia ngày: Mar 2006
Bài gửi: 44
:
Cảm ơn Nevergoback1001!
Tôi sẽ về thử, có gì xin sự chỉ giúp của bạn!
Thank!
vtt vẫn chưa có mặt trong diễn đàn  
Old 15-09-2006, 12:32 PM   #7
ngulapphuong
Nhập môn đệ tử
 
Tham gia ngày: Jun 2006
Bài gửi: 9
:
các cao thủ có tài liệu và code, sơ đồ nguyên lý về giao tiếp pic với SPI EPROM cho em share với
ngulapphuong vẫn chưa có mặt trong diễn đàn  
Old 26-09-2006, 06:28 AM   #8
briantk_1988
Đệ tử 2 túi
 
Tham gia ngày: May 2006
Nơi Cư Ngụ: Princeton University, NJ, US
Bài gửi: 42
:
Send a message via Yahoo to briantk_1988
Chào bác ntc,

Sao cháu không thấy bác post phần RS232 cho Pic16f877a? Mặc dù cháu biết viết RS232 bằng CCS C nhưng ASm thi chịu. Mong bác giúp đỡ.

Thnx

B
briantk_1988 vẫn chưa có mặt trong diễn đàn  
Old 27-09-2006, 10:23 PM   #9
huunam
Nhập môn đệ tử
 
Tham gia ngày: Jul 2006
Bài gửi: 6
:
trong bai test cho portB cua pic16f877a, em viết code giống hệt nhu bác ntc nhưng vẫn 'build failed' , va báo lỗi sau:

Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:\Program Files\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F877A "f877atemp.asm" /l"f877atemp.lst" /e"f877atemp.err" /o"f877atemp.o"
Message[302] C:\PROGRAM FILES\MICROCHIP\MPASM SUITE\TEMPLATE\CODE\F877ATEMP.ASM 27 : Register in operand not in bank 0. Ensure that bank bits are correct.
Executing: "C:\Program Files\Microchip\MPASM Suite\MPLink.exe" "C:\Program Files\Microchip\MPASM Suite\LKR\16f877a.lkr" "C:\Program Files\Microchip\MPASM Suite\Template\Code\f877atemp.o" /o"NAM.cof" /M"NAM.map"
MPLINK 4.05, Linker
Copyright (c) 2006 Microchip Technology Inc.
Error - section '.org_0' can not fit the absolute section. Section '.org_0' start=0x00000000, length=0x00000012
Errors : 1

BUILD FAILED: Wed Sep 27 21:12:59 2006

em không hiểu lỗi gì , mong cac bác chỉ giúp.
Đây là code của em :


;************************************************* *********************
;
; Filename: testportb.asm
; Date: 25/9/2006
; File Version: 1
;
; Nguoi thuc hien : huunam
;************************************************* *************************** *


list p=16f877A ; khai bao thiet bi
#include <p16f877A.inc> ;file header dinh kem

__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC& _WRT_OFF & _LVP_ON & _CPD_OFF

;khai bao configuration bit

;************************************************* *********************
; chuong trinh bat dau tai day
ORG 0x000 ;
GOTO start
start
BCF STATUS,RP1
BSF STATUS,RP0 ;chon bank1

CLRF TRISB ;khoi tao portb la cong xuat du lieu

BCF STATUS,RP1 ; chon bank0
BCF STATUS,RP0
MOVLW b'10001111' ;ghi gia tri can xuat ra portb
MOVWF PORTB ;PORTB<8Fh
loop
GOTO loop ; vong lap vo han

END ;ket thuc chuong trinh
huunam vẫn chưa có mặt trong diễn đàn  
Old 27-09-2006, 11:40 PM   #10
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Ở 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.
namqn vẫn chưa có mặt trong diễn đàn  
Old 12-10-2006, 04:13 PM   #11
chuchinh
Đệ 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...............................................
chuchinh vẫn chưa có mặt trong diễn đàn  
Old 12-10-2006, 08:13 PM   #12
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi chuchinh View Post
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...............................................
Tham khảo các app. note sau:

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
namqn vẫn chưa có mặt trong diễn đàn  
Old 12-10-2006, 07:02 PM   #13
hieulongan039
Đệ 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.
hieulongan039 vẫn chưa có mặt trong diễn đàn  
Old 08-11-2006, 08:32 PM   #14
hanspkt
Đệ 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!
hanspkt vẫn chưa có mặt trong diễn đàn  
Old 08-11-2006, 09:06 PM   #15
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
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
namqn vẫn chưa có mặt trong diễn đàn  
Ðề tài đã khoá

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến

Similar Threads
Ðề 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


Múi giờ GMT. Hiện tại là 10:01 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam