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)
-   -   Làm sao hiển thị số thập phân ra LED 7 đoạn? (http://www.picvietnam.com/forum/showthread.php?t=2890)

delux 06-10-2008 01:33 PM

Làm sao hiển thị số thập phân ra LED 7 đoạn?
 
Như chúng ta đã biết PIC16 ko hỗ trợ lệnh nhân và chia như 8951,do đó ko thể sd phương pháp chia lấy nguyên và lấy dư được.
Điều đó dẫn đến khó khăn cho việc hiển thị ra LED 7 đoạn của 1 số thập phân có 2 chữ số trở lên...

Vậy sư huynh nào đã nghiên cứu qua ,làm ơn gợi ý cho em với (pp đơn giản, dễ hiểu nhất)
Đang làm đề tài,tới đây thì bí....

Many thanks

namqn 06-10-2008 06:39 PM

Trích:

Nguyên văn bởi delux (Post 19364)
Như chúng ta đã biết PIC16 ko hỗ trợ lệnh nhân và chia như 8951,do đó ko thể sd phương pháp chia lấy nguyên và lấy dư được.
Điều đó dẫn đến khó khăn cho việc hiển thị ra LED 7 đoạn của 1 số thập phân có 2 chữ số trở lên...

Vậy sư huynh nào đã nghiên cứu qua ,làm ơn gợi ý cho em với (pp đơn giản, dễ hiểu nhất)
Đang làm đề tài,tới đây thì bí....

Many thanks

Tùy thuộc vào ngôn ngữ lập trình mà bạn đang dùng, sẽ có cách hiện thực yêu cầu của bạn khác nhau. Theo như bạn mô tả, tôi đoán là bạn đang dùng hợp ngữ, vì các ngôn ngữ lập trình cấp cao cho PIC đều hiện thực những phép toán mà bạn đã nêu.

Với hợp ngữ, piclist có một thư viện các hàm toán học đã được cộng đồng xây dựng sẵn, link ở đây: http://www.piclist.com/techref/microchip/math/basic.htm. Tùy theo yêu cầu cụ thể của bạn mà bộ thư viện này có thể được vận dụng một cách thích hợp.

Thân,

vinhteo 06-10-2008 06:42 PM

ban cu dung con 7447 la co the goi truc tiep so thap phan ra led 7 doan ma ko can nhan chia gi het! ok.

delux 07-10-2008 09:27 AM

Trích:

Nguyên văn bởi vinhteo (Post 19378)
ban cu dung con 7447 la co the goi truc tiep so thap phan ra led 7 doan ma ko can nhan chia gi het! ok.

Bạn nhầm rồi.
Con IC 7447 là IC chuyển từ mã BCD ra mã hex của LED 7 đoạn chừ ko phải chuyền trực tiếp từ mả hex (or decimal) của thanh ghi (or data) ra LED 7 đoạn
Do đó muốn sd IC 7447 bạn phải có thao tác chuyển mã hex của thanh ghi (data đầu vào) sang mã BCD.Muốn vậy cũng phải thực hiện phép chia nguyên và chia dư....
Thực chất của IC 7447 là một chương trình thay thế cho việc tra bảng thôi....
Bạn hiểu ý mình chứ?

Nhưng dù sao cũng cảm ơn bạn đã đưa ra 1 hướng giải quyết

Many thanks

delux 07-10-2008 09:47 AM

Trích:

Nguyên văn bởi namqn (Post 19376)
Tùy thuộc vào ngôn ngữ lập trình mà bạn đang dùng, sẽ có cách hiện thực yêu cầu của bạn khác nhau. Theo như bạn mô tả, tôi đoán là bạn đang dùng hợp ngữ, vì các ngôn ngữ lập trình cấp cao cho PIC đều hiện thực những phép toán mà bạn đã nêu.

Với hợp ngữ, piclist có một thư viện các hàm toán học đã được cộng đồng xây dựng sẵn, link ở đây: http://www.piclist.com/techref/microchip/math/basic.htm. Tùy theo yêu cầu cụ thể của bạn mà bộ thư viện này có thể được vận dụng một cách thích hợp.

Thân,

Anh Nam có thể giúp đở e nhiều hơn được ko?
Thanks so much

picpen 07-10-2008 01:51 PM

Mình đã làm cái này rùi ! lúc đầu tưởng rễ nhưng loay hoay mãi mới song
Tuy nhiên để giả quyết bài toán này mình phải dùng ngôn ngữ C để lập trình ( CCS )
Với hợp ngữ thì sẽ khó hơn nhiều và mình cũng chưa viết được bằng hợp ngữ
Nếu bạn dùng C thì PM cho mình .ok

delux 07-10-2008 02:50 PM

Mình viết bằng hợp ngữ : ASM trong MPLAB

Xin mọi người giúp đỡ !

delux 07-10-2008 06:31 PM

Haha...
Cảm ơn anh Nam,cảm ơn mọi người...
Tôi đã làm được rồi....Viết bằng ASM...
Yeaahhh.....

namqn 07-10-2008 06:56 PM

Trích:

Nguyên văn bởi delux (Post 19415)
Haha...
Cảm ơn anh Nam,cảm ơn mọi người...
Tôi đã làm được rồi....Viết bằng ASM...
Yeaahhh.....

Sẽ tốt hơn nữa nếu bạn chia sẻ những gì đã học hỏi được với cộng đồng.

Thân,

love_ac 07-10-2008 08:56 PM

Thực ra bạn có thể chia sẻ cho các bạn đi sau thì hay.Việc hiển thị ra led7 thanh chỉ chú ý ba đặc điểm:(sử dụng kiểu tra bảng)
-Thanh ghi PC(program counter)
-Lệnh addwf để add giá trị w-register đến PC
-Lện retlw giúp trả về giá trị mã (số hiển thị ra led)
ví dụ :
Code:

nhanma:
                    addwf    PC,f;                    cong gia tri w vao pc
                    retlw      0x2f;                code cho so 0
                  ...
                  retlw      0x5f;                code cho so 9
và khi nhận mã thì
                movlw          0x03;        muon xuat ra led7 so 4
                call              nhanma
                movwf        portd        ;dua ra post

[p]
mã trên chỉ là mình ví dụ thôi nhé

stargreen1001 17-11-2009 10:44 PM

hic, mình cũng đang gặp vấn đề này, mình làm hiển thị ra 5 led 7 đoạn, giá trị được lấy từ timer1 trong hai thanh ghi tmr1l va tmr1h, có vẻ như rất dài, mình viết bằng asm

special_one 18-11-2009 10:22 PM

Trích:

Nguyên văn bởi picpen (Post 19406)
Mình đã làm cái này rùi ! lúc đầu tưởng rễ nhưng loay hoay mãi mới song
Tuy nhiên để giả quyết bài toán này mình phải dùng ngôn ngữ C để lập trình ( CCS )
Với hợp ngữ thì sẽ khó hơn nhiều và mình cũng chưa viết được bằng hợp ngữ
Nếu bạn dùng C thì PM cho mình .ok

chào bạn!minh cũng mới chuyển wa pic nên còn hơi gà.bn co thể gửi cho minh vài ví dụ xuất led7 đoạn k, cảm ơn bạn trước ah dùng CCS nha!


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