PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   Pic16f877a TỪ DỄ TỚi KhÓ (http://www.picvietnam.com/forum/showthread.php?t=238)

dvnccbmacbt 30-05-2007 09:19 PM

Chào mọi người! Em mới học về pic một ít thôi. Trước đây có học về 8051. Cho em hỏi một tí. Các nguyên tắc hoạt động của bộ định thời, các ngắt của PIC có giống với 8051 không? Ý em muốn hỏi về nguyên tắc hoạt động thôi. Mong các bác giúp đỡ! Em cảm ơn nhiều.

namqn 30-05-2007 11:38 PM

Trích:

Nguyên văn bởi dvnccbmacbt (Post 9026)
Chào mọi người! Em mới học về pic một ít thôi. Trước đây có học về 8051. Cho em hỏi một tí. Các nguyên tắc hoạt động của bộ định thời, các ngắt của PIC có giống với 8051 không? Ý em muốn hỏi về nguyên tắc hoạt động thôi. Mong các bác giúp đỡ! Em cảm ơn nhiều.

Về nguyên tắc thì PIC và 8051 đều là các vi điều khiển, do đó các khối chức năng (module) sẽ có nguyên tắc hoạt động giống nhau. Chẳng hạn, bộ định thời sẽ đếm xung với tần số đã biết, do đó sẽ tạo được khoảng thời gian cần thiết. Tuy nhiên, bộ định thời trong PIC có thể sử dụng khá nhiều nguồn xung khác nhau, do đó linh hoạt hơn so với 8051. Đa số module ngoại vi của PIC là tiện lợi hơn hay là không hề có trong 8051.

Thân,

dvnccbmacbt 31-05-2007 09:41 AM

Trích:

Nguyên văn bởi tranvanthuong (Post 8555)
và còn nhiều tài liệu nữa nếu anh em cần thì cứ đặt câu hỏi lên diễn đàn nhé mình sẽ cố gắng giúp cho!

Anh cho em hỏi có tài liệu nào về Các IC giải mã địa chỉ hàng và cột kô? Em chưa hiểu rõ chỗ này lắm. Cảm ơn anh nhiều.

dvnccbmacbt 31-05-2007 03:14 PM

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!

namqn 01-06-2007 12:14 AM

Trích:

Nguyên văn bởi dvnccbmacbt (Post 9051)
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,

rosanhdieu 01-06-2007 07:01 PM

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 03-06-2007 12:03 AM

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

namqn 03-06-2007 01:55 AM

Trích:

Nguyên văn bởi rosanhdieu (Post 9094)
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,

cachua 03-06-2007 03:16 PM

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é

rosanhdieu 03-06-2007 06:46 PM

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 đỡ

david 27-07-2007 09:42 PM

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!

namqn 27-07-2007 11:27 PM

Trích:

Nguyên văn bởi david (Post 10369)
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,

david 28-07-2007 12:39 AM

Bây giờ thì em down được rồi a.

david 04-08-2007 10:50 PM

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

namqn 04-08-2007 11:43 PM

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,


Múi giờ GMT. Hiện tại là 02:30 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam