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 Bài Trong Ngày 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 01-06-2007, 12:14 AM   #1
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 dvnccbmacbt View Post
Các bác cho em hỏi thêm câu nữa! Ví dụ như ở 8051 ta có timer hoạt động như sau: đầu tiên chọn chế độ hoạt động cho timer ( vi dụ như chế độ tự động nạp lại), sau đó nạp giá trị bắt đầu đếm, rồi cho phép timer. Thế còn ở Pic chúng ta có làm tương tự như vậy không? tức là cũng sử dụng các cờ và các bit để điều khiển và chọn chế độ cho timer tương tự như 8051 hay không? Em muốn tìm một sự tương tự giữa Pic và 8051 để có thể hiểu PIc nhanh hơn. Cảm ơn các bác nhiều!
Về nguyên tắc thì các vi điều khiển hoạt động giống nhau, nhưng về mạch hiện thực thì có nhiều công nghệ khác nhau. Nếu bạn học AVR rồi và muốn tìm sự tương đồng giữa AVR và PIC để học nhanh hơn thì tôi cho là hợp lý, vì chúng cùng sử dụng kiến trúc RISC. Nhưng nếu bạn học 8051 rồi và định tìm sự tương đồng giữa 8051 và PIC (dưới cái nhìn của một người thiết kế) thì tôi cho là không có nhiều lợi ích cho bạn, vì 8051 dùng kiến trúc CICS.

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 01-06-2007, 07:01 PM   #2
rosanhdieu
Nhập môn đệ tử
 
Tham gia ngày: Mar 2007
Bài gửi: 3
:
Các sư huynh ntc,nnh pót bai` hay wa',sao ko tiep tuc viet cac chu~ de` con lai di,minh rta mong cho`.Khi doc bai cac anh viet,em hoc rat de~ hieu~,mong cac anh giup do~
rosanhdieu vẫn chưa có mặt trong diễn đàn  
Old 03-06-2007, 12:03 AM   #3
rosanhdieu
Nhập môn đệ tử
 
Tham gia ngày: Mar 2007
Bài gửi: 3
:
Em Ko Biet Ve Cach Dat Bien Nhu :cuont1 Equ 0x20??
Ox20 La Gi`,tai Sao Ta Phai Dat No' Nhu Vay.
Em Thay Moi~ Pic Thi Cach Dat Baien Do Cung Khac Nhau,cac Bac Tra~ Loi` Giu`m Em Nhe
rosanhdieu vẫn chưa có mặt trong diễn đàn  
Old 03-06-2007, 01:55 AM   #4
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 rosanhdieu View Post
Em Ko Biet Ve Cach Dat Bien Nhu :cuont1 Equ 0x20??
Ox20 La Gi`,tai Sao Ta Phai Dat No' Nhu Vay.
Em Thay Moi~ Pic Thi Cach Dat Baien Do Cung Khac Nhau,cac Bac Tra~ Loi` Giu`m Em Nhe
Khai 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,
__________________
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 17-04-2009, 11:47 AM   #5
namlong782004
Nhập môn đệ tử
 
Tham gia ngày: Sep 2008
Bài gửi: 6
:
Thắc mắc

Trích:
Nguyên văn bởi namqn View Post
Khai 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,
Xin 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.
namlong782004 vẫn chưa có mặt trong diễn đàn  
Old 17-04-2009, 05:35 PM   #6
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 namlong782004 View Post
Xin 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.
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).

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 03-06-2007, 03:16 PM   #7
cachua
Nhập môn đệ tử
 
Tham gia ngày: May 2007
Bài gửi: 4
:
bác Chính oi còn bài nào bac post nên cho anh em học với các bài của bác hay lắm em chờ mãi mà khong thấy bài mới có bài nào vể ngắt không em đang muốn học về nó cám ơn bác nhé
cachua vẫn chưa có mặt trong diễn đàn  
Old 03-06-2007, 06:46 PM   #8
rosanhdieu
Nhập môn đệ tử
 
Tham gia ngày: Mar 2007
Bài gửi: 3
:
Cảm ơn bác namqn nhiều.Bây giờ em đã hiểu em cần đọc lại phần cứng PIC rồi.Mong các bác sau này pót càng nhiều bài nha.
Ah.em đang cần tài liệu về cách hiển thị giờ.Ví dụ như:đèn giao thong,em đã biết cách delay nhưng ko biết cách nào để hiển thị trên bảng hiện thị.Mong các bác giúp đỡ
rosanhdieu vẫn chưa có mặt trong diễn đàn  
Old 27-07-2007, 09:42 PM   #9
david
Đệ tử 4 túi
 
david's Avatar
 
Tham gia ngày: Aug 2006
Bài gửi: 81
:
Application Notes

Bác nào chỉ cho em cách download mấy cái Application Notes trên Microchip.com cái.Em đang học về Pic6f877a,nếu bác nào down rồi thì post đây cho em xin với.Xin cảm ơn!
david vẫn chưa có mặt trong diễn đàn  
Old 27-07-2007, 11:27 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
Trích:
Nguyên văn bởi david View Post
Bác nào chỉ cho em cách download mấy cái Application Notes trên Microchip.com cái.Em đang học về Pic6f877a,nếu bác nào down rồi thì post đây cho em xin với.Xin cảm ơn!
Tôi không hiểu lắm câu hỏi của bạn, các application note của Microchip có một link nằm ngay trang chính của Microchip (www.microchip.com). Bạn có thể dùng chức năng tìm kiếm, hay có thể duyệt toàn bộ danh sách như link dưới đây:

http://www.microchip.com/stellent/id...GE&nodeId=2048

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 28-07-2007, 12:39 AM   #11
david
Đệ tử 4 túi
 
david's Avatar
 
Tham gia ngày: Aug 2006
Bài gửi: 81
:
Bây giờ thì em down được rồi a.
david vẫn chưa có mặt trong diễn đàn  
Old 04-08-2007, 10:50 PM   #12
david
Đệ tử 4 túi
 
david's Avatar
 
Tham gia ngày: Aug 2006
Bài gửi: 81
:
Angry Chương trình này sai ở đâu ạ?

em chỉ viết một chương trình đơn giản là cho môt led sáng chạy từ portc sang portd thôi,nhưng mà mô phỏng bằng Proteus thì led chỉ chạy ở portc thôi,còn portd thì sáng loạn lên,bác nào chỉ hộ cho em với!
Hic! chỉ một cái đơn giản mà viết không xong!
Code:
;========================================================
				TITLE		"Ledchay"
				PROCESSOR	P16F877A
				INCLUDE		<P16F877A.inc>
				__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_ON & _CPD_OFF & _LVP_OFF
				
;==========================================================
;Khai bao bien		:
			count1		equ		0x20
			counta		equ		0x21
			countb		equ		0x22
			DEM			EQU		0x23	
			

;============================================================
;Chuong trinh chinh:
;============================================================
			ORG 0x0000
			GOTO MAIN	
			ORG 0x0005
MAIN
			BANKSEL		TRISC
			CLRF		TRISC
			CLRF		TRISD
			BANKSEL		PORTC
			CLRF		DEM
LOOP
			MOVLW		B'1000000'
			MOVWF		PORTC
			CALL		delay_200ms
			RLF			PORTC,1
			CALL		delay_200ms
			INCF		DEM,1
			MOVLW		DEM
			XORLW		D'7'
			BTFSS		STATUS,Z
			GOTO		$-6
			CLRF		DEM
			CLRF		PORTC
			MOVLW		B'1000000'
			MOVWF		PORTD
			CALL		delay_200ms
			RLF			PORTD,1
			CALL		delay_200ms
			INCF		DEM,1
			MOVLW		DEM
			XORLW		D'7'
			BTFSS		STATUS,Z
			GOTO		$-6
			CLRF		DEM
			GOTO		LOOP			
;================================================================
;Chuong trinh con			
;================================================================
;Delay 200ms
;-----------------------------------------------------------------
delay_200ms ; label bat dau chuong trinh con
		MOVLW d'200' ; doan code cho chuong trinh con delay 100 ms
		MOVWF count1
d1
		MOVLW d'199'
		MOVWF counta
		MOVLW d'1'
		MOVWF countb
delay_0
		DECFSZ counta,1
		GOTO $+2
		DECFSZ countb,1
		GOTO delay_0
		DECFSZ count1,1
		GOTO d1
		RETURN ;ket thuc chuong trinh con, tro ve chuong trinh chinh
END
Mà dạo này không ai hoc Pic6f877a nữa à?Để mình em solo vậy
david vẫn chưa có mặt trong diễn đàn  
Old 04-08-2007, 11:43 PM   #13
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
Nếu bạn mô phỏng bằng MPLAB SIM thì có chạy đúng không?

Bạn nên thao tác trên ô nhớ và xuất kết quả ra port I/O (để tránh các hiệu ứng của hoạt động read-modify-write). Lấy ví dụ phần code của bạn, có thể dùng thêm 1 biến để chứa giá trị hiện thời của thanh ghi port, thực hiện lệnh xoay dữ liệu trên biến đó và xuất giá trị mới ra thanh ghi port.

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 05-08-2007, 12:17 AM   #14
david
Đệ tử 4 túi
 
david's Avatar
 
Tham gia ngày: Aug 2006
Bài gửi: 81
:
Không cần đâu bác Nam ah,em làm cách này với 1 Port chạy vẫn đúng.Nhưng mà thôi,em ngán thằng Proteus lắm rồi,lần này quyết làm xong cái mạch nạp rồi viết gì thì viết
Cảm ơn bác đã quan tâm.Mà sao dạo này chỉ thầy mình bác reply vậy?Picvietnam nhiều cao thủ lắm mà.
david vẫn chưa có mặt trong diễn đàn  
Old 02-09-2007, 09:14 PM   #15
vinhteo
Nhập môn đệ tử
 
Tham gia ngày: Sep 2007
Bài gửi: 5
:
cam on bac NTC vi su phat trien dien tu cua nuoc nha
vinhteo vẫn chưa có mặt trong diễn đàn  
Ðề tài đã khoá


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à 02:29 AM.


Đượ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