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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 08-03-2009, 12:06 AM   #1
winstarvn
Nhập môn đệ tử
 
Tham gia ngày: Oct 2006
Bài gửi: 5
:
help: giải thuật PIC và led 7 đoạn

mình mới bắt đầu tìm hiểu vè PIC và chọn pic 16f để bắt đầu.

và đang gặp khó khăn với led7 đoạn vì truớc học 8051 thì có lệnh nhân và chia nhưng chuyển qua pic thì không còn nữa.

ví dụ với 8051: có một số bất kỳ từ 0-99, đuợc lưu trong ô nhớ, và có 2 led 7 đoạn để hiển thị số này, ta sẽ có một ô nhớ để chứa giá trị hàng chục và một ô nhớ chứa giá trị hàng đơn vị.

lấy giá trị ô nhớ con số chia cho 10 và kết quả đuợc lưu trong 2 ô nhớ hàng chục và hàng đơn vị, dùng phuơng pháp tra bảng ta sẽ hiển thị đuợc con số mong muốn.

đó là đối với tập lệnh của 8051, còn của pic16f thì sẽ làm như thế nào?

search trên diễn đàn thì không thấy topic nói về giải thuật để hiển thị.

mong nhận đuợc sự giúp đỡ của mọi người. và quan trọng nữa là mình muốn giải thuật viết bằng assembler nha

thanks all.
winstarvn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-03-2009, 03:01 AM   #2
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 winstarvn View Post
mình mới bắt đầu tìm hiểu vè PIC và chọn pic 16f để bắt đầu.

và đang gặp khó khăn với led7 đoạn vì truớc học 8051 thì có lệnh nhân và chia nhưng chuyển qua pic thì không còn nữa.

ví dụ với 8051: có một số bất kỳ từ 0-99, đuợc lưu trong ô nhớ, và có 2 led 7 đoạn để hiển thị số này, ta sẽ có một ô nhớ để chứa giá trị hàng chục và một ô nhớ chứa giá trị hàng đơn vị.

lấy giá trị ô nhớ con số chia cho 10 và kết quả đuợc lưu trong 2 ô nhớ hàng chục và hàng đơn vị, dùng phuơng pháp tra bảng ta sẽ hiển thị đuợc con số mong muốn.

đó là đối với tập lệnh của 8051, còn của pic16f thì sẽ làm như thế nào?

search trên diễn đàn thì không thấy topic nói về giải thuật để hiển thị.

mong nhận đuợc sự giúp đỡ của mọi người. và quan trọng nữa là mình muốn giải thuật viết bằng assembler nha

thanks all.
Thực ra việc bạn muốn thực hiện là tách giá trị nhị phân 0 - 99 trong 1 byte thành 2 byte riêng biệt, mỗi byte là một số BCD dạng unpacked (mỗi byte chỉ dùng để chứa một số BCD).

Tại PIClist đã có nhiều chương trình mẫu liên quan đến vấn đề này, bạn tham khảo ở đây:
http://www.piclist.com/techref/micro...adix/index.htm

Cụ thể thì bạn có thể xem các chương trình mẫu chuyển số 8-bit sang BCD half-packed, và có thể đơn giản hóa để dùng cho 7-bit (vì các giá trị 0-99 chỉ cần dùng 7 bit để thể hiện).

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   Trả Lời Với Trích Dẫn
Old 08-03-2009, 10:52 AM   #3
nguyenluong
Đệ tử 2 túi
 
Tham gia ngày: Oct 2008
Bài gửi: 27
:
Theo mình bạn đừng có nhân chia cho 10 mệt lắm. Có cách này ne:
Bạn lưu giá trị ĐV, CHỤC, TRĂM... vào một ô nhớ riêng. Mỗi giây tăng ô nhớ ĐV lên 1, so sánh với sôa 1, nếu = 10 thì xóa ô nhớ ĐV, tăng CHỤC, cứ thế mà làm. Cho ban code ne
DONVI EQU 0X20
CHUC EQU 0X21
TRAM EQU 0X22
;;;;;;;;;;;;;;;;;;;;;;;;;;
; BAN DÙNG NGẮT TIMER CHU KO NÊN DÙNG DELAY NHA;
CHUONG TRINH NGẮT TIMER
TỚI ĐÂY BẠN TWJ VIẾT NHA
CHÀO BAN, CHÚC VUI
nguyenluong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-03-2009, 12:21 PM   #4
winstarvn
Nhập môn đệ tử
 
Tham gia ngày: Oct 2006
Bài gửi: 5
:
Trích:
Nguyên văn bởi nguyenluong View Post
Theo mình bạn đừng có nhân chia cho 10 mệt lắm. Có cách này ne:
Bạn lưu giá trị ĐV, CHỤC, TRĂM... vào một ô nhớ riêng. Mỗi giây tăng ô nhớ ĐV lên 1, so sánh với sôa 1, nếu = 10 thì xóa ô nhớ ĐV, tăng CHỤC, cứ thế mà làm. Cho ban code ne
DONVI EQU 0X20
CHUC EQU 0X21
TRAM EQU 0X22
;;;;;;;;;;;;;;;;;;;;;;;;;;
; BAN DÙNG NGẮT TIMER CHU KO NÊN DÙNG DELAY NHA;
CHUONG TRINH NGẮT TIMER
TỚI ĐÂY BẠN TWJ VIẾT NHA
CHÀO BAN, CHÚC VUI
theo như mình hiểu thì cách của bạn dùng để làm bộ đếm hay thời gian thôi, nếu như nhập 1 số ngẫu nhiên thì sao nhỉ ??


to namqn: thanks bạn đã cho link, để nghiên cứu và làm thử xem sao.
winstarvn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-03-2009, 08:13 PM   #5
nguyenluong
Đệ tử 2 túi
 
Tham gia ngày: Oct 2008
Bài gửi: 27
:
Trích:
Nguyên văn bởi winstarvn View Post
theo như mình hiểu thì cách của bạn dùng để làm bộ đếm hay thời gian thôi, nếu như nhập 1 số ngẫu nhiên thì sao nhỉ ??


to namqn: thanks bạn đã cho link, để nghiên cứu và làm thử xem sao.
//====================================
Nếu bạn nhập một số ngẫu nhiên thì cung vậy thôi. Nó load giá trị đó vào và hiển thị ra LED theo ý mún của mình. Còn bạn mún đếm hay không là do chương trình bạn viết thôi. Bên 89 tôi cũng viết như vậy thôi
nguyenluong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-06-2010, 12:37 PM   #6
satphong
Nhập môn đệ tử
 
Tham gia ngày: Jun 2010
Bài gửi: 1
:
bạn nào có sơ đồ kết nối giữa pic và 8 con led 7 đoạn & các bài tập vế nó(file hex hoặc asm)
không postlên giúp mình với.minh phải nghiên cứu nó mà tìm không được!bạn tận tinh chỉ giúp mong gửi vế địa chỉ email:theminhcddt@gmail.com.Mong các bạn sớm hồi âm
satphong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lờ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


Múi giờ GMT. Hiện tại là 12:50 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