PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > RTOS và Thuật toán với 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

RTOS và Thuật toán với PIC RTOS và Các thuật toán dùng cho PIC/dsPIC/PIC32
Mod: phamminhtuan

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 12-01-2007, 07:46 PM   #1
nhh
Đệ tử 9 túi
 
nhh's Avatar
 
Tham gia ngày: Feb 2006
Bài gửi: 174
:
Send a message via Yahoo to nhh


Nhấn INC tăng 1 đơn vị trên led.DEC giảm 1 đơn vị
Code:
#include <16F877A.h>
#include <DEFS_16F877A.h>
#fuses   NOWDT,PUT,HS,NOPROTECT,NOLVP
#use     delay(clock = 10000000)
#define  LED_PORT   PORTD
#define  led_1      0b00001110
#define  led_2      0b00001101
#define  led_3      0b00001011
/*---------------------------------------------------------------------------------------------
Khai bao cac bien toan cuc
---------------------------------------------------------------------------------------------*/
const unsigned int digit[] = {0b00000000,0b00010000,0b00100000,0b00110000,0b01000000,
                              0b01010000,0b01100000,0b01110000,0b10000000,0b10010000};
int number,led_donvi_number,led_chuc_number,led_tram_number;
/*---------------------------------------------------------------------------------------------
Khai bao nguyen mau cac ham su dung
---------------------------------------------------------------------------------------------*/
void number_to_led_number(void);
void display(int led_i,int led_number);
void led_sweep(void);
/*---------------------------------------------------------------------------------------------
 Chuong trinh chinh
---------------------------------------------------------------------------------------------*/
void main(void)
{
   set_tris_B(0x03);                  // RB0 & RB1 la input
   set_tris_D(0x00);
   PORTD = 0x00;
   while(true)
   {
        if(!bit_test(PORTB,0))
        {
           led_sweep();               // ~12ms
           while(!bit_test(PORTB,0))
           {
             led_sweep();
           }
           led_sweep();               // ~12ms
           number++;
           number_to_led_number();
        }
        if(!bit_test(PORTB,1))
        {
           led_sweep();               // ~12ms
           while(!bit_test(PORTB,1))
           {
             led_sweep();
           }
           led_sweep();               // ~12ms
           number--;
           number_to_led_number();
        }
        led_sweep();
   }
}
/*---------------------------------------------------------------------------------------------
Ham chuyen tu number sang cac so tuong ung tren led
---------------------------------------------------------------------------------------------*/
void number_to_led_number(void)
{
  led_donvi_number = number % 10;
  led_chuc_number  = (number / 10) % 10;
  led_tram_number  = number / 100;
}
/*---------------------------------------------------------------------------------------------
Ham hien thi so "number" len ledi
---------------------------------------------------------------------------------------------*/
void display(int led_i,int led_number)
{
   LED_PORT = led_i|digit[led_number];
}
/*---------------------------------------------------------------------------------------------
Ham quet led
---------------------------------------------------------------------------------------------*/
void led_sweep(void)
{
 int loop;
 for(loop = 0;loop <= 3;loop ++)
   {
       display(led_1,led_tram_number);
       delay_ms(1);
       display(led_2,led_chuc_number);
       delay_ms(1);
       display(led_3,led_donvi_number);
       delay_ms(1);
   }
 }
File Kèm Theo
File Type: rar Key_debounce.rar (24.9 KB, 473 lần tải)
__________________
Ngày mai bắt đầu từ ngày hôm nay

Bạn có thắc mắc, bạn cần sự hỗ trợ của các thành viên. Hãy đọc luồng này:
http://www.picvietnam.com/forum//showthread.php?t=1263
nhh 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

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
Góp ý: Kỹ thuật và trình bày falleaf Đóng góp ý kiến 6 03-03-2008 09:36 PM
Hỏi về kỹ thuật bảng mechanics Cơ bản về vi điều khiển và PIC 1 05-10-2006 10:58 AM
Thuật toán với PIC falleaf dsPIC - Bộ điều khiển tín hiệu số 16-bit 3 16-02-2006 09:22 AM
Diễn đàn nhìn luộm thuộm quá noisePIC Đóng góp ý kiến 2 13-07-2005 11:58 PM
Kỹ thuật bảng falleaf Cơ bản về vi điều khiển và PIC 0 06-07-2005 05:49 PM


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


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