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 24-07-2011, 06:30 PM   #1
tuananh.bkhn
Đệ tử 1 túi
 
Tham gia ngày: Mar 2010
Bài gửi: 11
:
Nút bấm trong CCS

Chào mọi người. Mình mới học lập trình PIC bằng CCS nên có một số vấn đề không hiểu lắm mong mọi người giúp đỡ. Mình đang lập trình về nút bấm và hiển thị ra LED 7 thanh. Mình đã lập trình và thấy mô phỏng trên proteus thì chạy rồi nhưng hình như là mạch của mình sai thì phải:
Đây là mạch của mình:


Và đây là code cho mạch trên(ĐÃ CHẠY).

Code:
#include <16f877a.h>
#include <def_877a.h>   
#device *=16 ADC=8
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT           
#use delay(clock=20000000)  
        
                                                                                                                                 
             
void main()                    
{
   unsigned char font[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};      
   TRISB = 0x00;
   PORTB = 0xFF; 
   TRISC = 0xFF;                                                                                                                   
   unsigned char count = 3;                                      
   while(1)                                                  
   {                                    
      if(input(PIN_C7)==1)  
      count--;          
      while(input(PIN_C7));
      delay_ms(10); 
      
      if(input(PIN_C6)==1)
      count++;
      while(input(PIN_C6));
      delay_ms(10);
      PORTB = font[count];                
                       
   }                                          
                                  
}
Nhưng có lẽ không ai làm mạch nút bấm kiểu đó.

Với mạch như thế này thì mình ko biết viết code ra sao:



Mong các bạn giúp đỡ mình. Xin cảm ơn.
tuananh.bkhn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-07-2011, 10:44 PM   #2
shakespeare_a18
Đệ tử 1 túi
 
Tham gia ngày: Aug 2010
Nơi Cư Ngụ: TP HCM
Bài gửi: 22
:
với mạch sau khi ấn nút, áp tại chân C6,C7 là 0. Code đổi thành
if(input(PIN_C7)==0)
shakespeare_a18 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-07-2011, 10:25 AM   #3
pstin
Đệ tử 7 túi
 
Tham gia ngày: Jul 2010
Nơi Cư Ngụ: TP HCM
Bài gửi: 190
:
Mạch trên sửa lại chút ít: Nối điện trở 10k xuống mass, trước khi vào chân vdk thêm điện trở 4.7k nữa là ok, sẽ thành nút nhấn kích Vcc, không cần thêm tụ, nếu thêm tụ thì lâu ngày tụ nạp xả nhiều lần sẽ làm "chai" nút nhấn.
pstin vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-07-2011, 06:02 PM   #4
tuananh.bkhn
Đệ tử 1 túi
 
Tham gia ngày: Mar 2010
Bài gửi: 11
:
Cảm ơn mọi người nhé. Mới học nên cũng hơi bỡ ngỡ. Giờ thì mình cũng đã c0de xong rồi. Thanks again.
tuananh.bkhn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-07-2011, 01:50 AM   #5
haneishun
Đệ tử 1 túi
 
Tham gia ngày: Jun 2009
Bài gửi: 24
:
void lcd_put_int(int16 num){
int16 temp;
unsigned char i = 0, c[5];????
temp = num;
if (temp != 0) {
while(temp){
c[i++] = temp%10; ????
temp /= 10;??????
}
while(i) lcd_putc(c[--i] + '0');??????
}
else lcd_putc('0');??????
}
va lam the nao de hien thi so thap phan 123,4 len LCD ???
ai co the giai thick tung cho em danh dau ???? dc ko a.em moi hoc len chua hieu ro cho nay lam
haneishun 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à 01:13 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