PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > PIC - Thiết kế và Ứng dụng

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

PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 10-11-2009, 03:49 PM   #2
Delfy_Coltech
Đệ tử 4 túi
 
Delfy_Coltech's Avatar
 
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Hanoi, Vietnam
Bài gửi: 78
:
Thumbs up Góp ý cho bạn

Chào bạn!
Mình vừa tải File mô phỏng của bạn về chạy thử.
Nó vẫn chạy bình thường theo như ý bạn viết trong code mà.

Tuy nhiên, mình đã sửa lại đôi chút để số đếm hàng đơn vị không bị xóa sau mỗi lần bấm nút.
Ở đây dùng PIC6F877A thì nên để clock là 20MHz.

Bạn thử lại với code sau xem:

Code:
#include <16f877a.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#byte portb=0x06
#byte portd=0x08
unsigned int16 dem=0, hang_chuc, hang_dvi;
const unsigned char digital[]={0b00111111, 0b00000110, 0b01011011, 0b01001111, 0b01100110,\
0b01101101, 0b01111101, 0b00000111, 0b01111111, 0b01101111};

#int_ext
void dem_xung()
{
   dem++;
   if(dem<=30)
      {
         hang_dvi= dem%10;
         hang_chuc= dem/10;
   
         output_a(0);
         portd=digital[hang_chuc];
         delay_ms(100);
   
         output_a(1);
         portd=digital[hang_dvi];
         delay_ms(10);
      }
   if(dem>30)
      {
         dem=0; // Reset bien dem neu lon hon 30
      }
 }
void main()
{
   while(true)
   {
      set_tris_B(0b00000001);
      set_tris_d(0);
      set_tris_a(0);
      enable_interrupts(global);
      enable_interrupts(int_ext);
      ext_int_edge(H_to_L);
   }
}

Mình cũng mới ngâm cứu về Pic nên còn gà mờ lắm.
Theo như sơ đồ nguyên lý của bạn thì 2 LED 7 thanh của bạn nối chung với PORTD của Pic.
Do vậy, để hiển thị được cả hai LED thì phải dùng phương pháp quét (đánh lừa đôi mắt!). (Hình như là dùng ngắt timer để quét).

Bác nào có thể trợ giúp tiếp không ạ?

- Làm thế nào để khi LED hàng đơn vị đếm. LED hàng chục vẫn hiển thị?
__________________
Mechatronics Department
University of Engineering and Technology, VNUH.

thay đổi nội dung bởi: Delfy_Coltech, 10-11-2009 lúc 08:01 PM. Lý do: Thay đổi nội dung
Delfy_Coltech vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 

Ð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


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