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 15-07-2011, 12:13 AM   #1
pucapuca123
Đệ tử 5 túi
 
Tham gia ngày: Aug 2010
Bài gửi: 116
:
kỹ thuật bảng dùng ngôn ngữ C

chào các bạn!
các bạn cho mình hỏi chút về kỹ thuật lập bảng dùng ngôn ngữ C với.
giả sử mình có 5 giá trị.(100,102,105,106,110)
giờ mình muốn cho tất cả các giá trị đó vào 1 cái mảng aray[] chẳng hạn.
sau đó mình sẽ đọc giá trị ở 1 chân VDk và so sánh với cái bảng trên
nếu có giá trị 100 thì sẽ hiện chữ A lên LCD.
nếu có giá trị 102 thì sẽ hiện chữ B lên LCD
nếu có giá trị 105 thì sẽ hiện chữ c lên LCD.
nếu có giá trị 106 thì sẽ hiện chữ D lên LCD
nếu có giá trị 110 thì sẽ hiện chữ E lên LCD.
.....
cứ như vậy đến hết thì thui.

vậy mình sẽ phải lập trình như thế nào? các bạn cho mình cái thuật toán với
có code vd thì càng tốt.
P/S: nếu mình đọc giá trị 107 ko có trong bảng nhưng nó gần với giá trị 106 nhất thì sẽ vẫn hiển thị chữ D như giá trị 106 thì mình phải làm như thế nào?
mong các bạn góp ý!
cám ơn nhiều!
pucapuca123 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-07-2011, 01:06 PM   #2
dinhnambkhn
Đệ tử 2 túi
 
Tham gia ngày: Feb 2011
Bài gửi: 45
:
cai nay khoi tao mang de hien thi A,B....tuong ung.
ban khoi tao mang vd:int mang[5]={..........cac gia tri tuong ung A,B....};
vd neu co gia tri 100 thi portA=mang[1];
gia tri 102 thi portA=mang[2]..
ban down vai code co san ve led 7 thanh ve lam thu vai cai la hieu thoi!than!
dinhnambkhn 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:51 AM   #3
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
Old 26-07-2011, 11:38 PM   #4
pstin
Đệ tử 7 túi
 
Tham gia ngày: Jul 2010
Nơi Cư Ngụ: TP HCM
Bài gửi: 190
:
#include <16F877A.h>
#include <DEFS_16F877A.h>
#device *=16 ADC=10
#include <stdlib.h>
#include <ctLCD.c>
#include <ds1307_16F877A.c>
#fuses HS,NOWDT,NOPROTECT,NOLVP,NODEBUG
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=8)

//=========================functions use========================================

const unsigned char aray[5]={100,102,105,106,110};
int16 adc1,ad1,ad2;

//======================================functions use===========================

//********************* Ham main *************************

void main()
{
set_tris_B(0xf9);
set_tris_D(0);
set_tris_E(0);
set_tris_A(0xff);
lcd_init();
setup_ADC(ADC_CLOCK_INTERNAL);
set_ADC_channel(0);
delay_us(10);

While(true)
{
adc1=read_ADC(ADC_START_AND_READ);
delay_us(10);
ad1=adc1/100;
ad2=adc1%100;
lcd_gotoxy(1,2);
lcd_putc(ad1/10+0x30);
lcd_gotoxy(2,2);
lcd_putc(ad1%10+0x30);
lcd_gotoxy(3,2);
lcd_putc(ad2/10+0x30);
lcd_gotoxy(4,2);
lcd_putc(ad2%10+0x30);

if((adc1>=aray[0])&&(adc1<((aray[0]+aray[1])/2)))
{
lcd_gotoxy(1,1);
lcd_putc("A");
}
else if((adc1>=((aray[0]+aray[1])/2))&&(adc1<((aray[1]+aray[2])/2)))
{
lcd_gotoxy(1,1);
lcd_putc("B");
}
else if((adc1>=((aray[1]+aray[2])/2))&&(adc1<((aray[2]+aray[3])/2)))
{
lcd_gotoxy(1,1);
lcd_putc("C");
}
else if((adc1>=((aray[2]+aray[3])/2))&&(adc1<((aray[3]+aray[4])/2)))
{
lcd_gotoxy(1,1);
lcd_putc("D");
}
else if((adc1>=((aray[3]+aray[4])/2))&&(adc1<=aray[4]))
{
lcd_gotoxy(1,1);
lcd_putc("E");
}
else
{
lcd_gotoxy(1,1);
lcd_putc("?");
}

}
}
pstin vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-08-2011, 11:49 PM   #5
king0205
Đệ tử 1 túi
 
Tham gia ngày: Dec 2008
Bài gửi: 12
:
bạn viết tới đây mà không cho thư viện. Chứ anh em mới nhập môn chép giống bạn rồi dịch ra--> không biết tại sao báo lỗi. Giúp thi giúp cho trót. Thanks!
king0205 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-08-2011, 10:51 AM   #6
pstin
Đệ tử 7 túi
 
Tham gia ngày: Jul 2010
Nơi Cư Ngụ: TP HCM
Bài gửi: 190
:
Hì, có gì đâu!!!!!. Mấy cái file đó cơ bản mà!!!!!!!.
File Kèm Theo
File Type: rar TRA MANG.rar (74.7 KB, 32 lần tải)
pstin 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à 06:03 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