PDA

View Full Version : Nút bấm trong CCS


tuananh.bkhn
24-07-2011, 06:30 PM
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:
https://lh5.googleusercontent.com/-6h7C4VMjVfo/Tivwvio_i3I/AAAAAAAAAns/LSKvAwI8QF4/s800/mach_1.png

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


#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,0x9 0};
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:

https://lh4.googleusercontent.com/-Wv0vALDpxWQ/TivyRKGkdxI/AAAAAAAAAnw/0XWWlu26sRY/s800/mach_2.png

Mong các bạn giúp đỡ mình. Xin cảm ơn.

shakespeare_a18
24-07-2011, 10:44 PM
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)

pstin
25-07-2011, 10:25 AM
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.

tuananh.bkhn
25-07-2011, 06:02 PM
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.

haneishun
26-07-2011, 01:50 AM
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