PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT 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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 03-01-2010, 08:27 PM   #91
nguyenhuytuong
Nhập môn đệ tử
 
Tham gia ngày: Dec 2009
Bài gửi: 10
:
Mình đang viết chương trình hiển thị trên LCD, mình thấy rất khó khăn để hiểu các chương trình trên diễn đàn nếu không hiểu rõ về bộ điều khiển HD44780U của LCD của Hitachi. Nếu bạn nào cũng đang làm về LCD thì nên đọc datasheet của con này.
nguyenhuytuong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-01-2010, 07:52 AM   #92
chang kho
Nhập môn đệ tử
 
Tham gia ngày: Jan 2010
Bài gửi: 1
:
#INCLUDE<16F877A.H>
#INCLUDE<def_877a.h>
#FUSES XT,NOWDT,NOPROTECT
#USE DELAY(CLOCK=20000000)
#DEFINE RS RE2
#DEFINE RW RE1
#DEFINE E RE0
#DEFINE LCD PORTB
CONST UNSIGNED CHAR LINE1[]={'D','O','','A','N','','T','O','T','','N','G','H' ,'I','E','P','#'};
CONST UNSIGNED CHAR LINE2[]={'K','I','T','','T','H','U','C','','T','A','P','' ,'P','I','C','','1','6','F','8','7','7','A','','', '#'};
CONST UNSIGNED CHAR LINE3[]={'','','K','H','O','A','','D','T','','-','','T','H','#'}
CONST UNSIGNED CHAR LINE4[]={
'','','G','V','H','D',':','P','H','U','N','G','',' B','A','O','','C','H','A','U',
'','','S','V','T','H',':','H','U','Y','N','H','',' V','A','N','','T','R','U','N','G'
,'','&','','N','G','U','Y','E','N','','T','U','A', 'N','','V','U','','','#'}
doan code nay hok bt sao ma em chay no hok dc
em bt no sai o cho defs_16f877a.
phai chen file def_877a nhu the nao
may anh cho file va chi dum nhe
chang kho vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-01-2010, 10:54 PM   #93
lednghethuat
Nhập môn đệ tử
 
Tham gia ngày: Nov 2009
Bài gửi: 3
:
Chào các bạn. Mình học tin mới chuyển sang nghiên cứu pic. Hôm nay tìm trên diễn đàn mãi không được cái hàm trả về chiều dài của mảng. bạn nào biết chỉ mình với. thank nhiều:

Mảng A={1,2,3,4,5} muốn xác định chiều dài của nó thì dùng hàm nao?
lednghethuat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-06-2010, 06:46 PM   #94
manhdktd
Đệ tử 3 túi
 
manhdktd's Avatar
 
Tham gia ngày: Jun 2010
Bài gửi: 57
:
Trích:
Nguyên văn bởi anhquangngai View Post
anh namqn cho em hỏi luôn cái chương trình này:
Code:
//Chuong trinh led sang don o PORTB
/*ket qua o PORTB là:00000001,00000010,00000100,00001000,00010000,00100000,01000000,10000000,10000001,10000010,10000100,10001000,.....cuoi cung thi PORTB=0xFF */
#include<16F877A.h>
#include<def_16f877a.h>
#fuses NOWDT,PUT,HS,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use fast_io(b)
int8 sck,slx,bienxoay,bienluu,giatri;
main()
   {
      trisb=0;
    while(true){
      sck=8;
      portb=0;
      delay_ms(100);
      while(sck<1)
         {
            bienxoay=0;
            slx=sck;
           while(slx<1)
               {
               bienxoay=bienxoay<<1;
               giatri=bienluu|bienxoay;
               portb=giatri;
               delay_ms(100);
               slx--;
               }
           bienluu=giatri;
           sck--;
         }
      }
   }
chương trình em viết như thế nhưng sao nó ko chạy và ban đầu em gán cho biến sck=8 thì trong dk while nó có chạy hay ko?
Cảm ơn anh trước!
Em mới học nên ko hiểu!
làm sao chạy được khi giá trị ban đầu của sck=8 ma trong khi bạn kiểm tra vòng lặp while(sck<1)?????
manhdktd vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-06-2010, 06:49 PM   #95
manhdktd
Đệ tử 3 túi
 
manhdktd's Avatar
 
Tham gia ngày: Jun 2010
Bài gửi: 57
:
Trích:
Nguyên văn bởi tiendungkct View Post
bạn cũng có thể viết như sau:
while(1)// vong lap luôn đúng
{
for(a=0;a=8;a++)
..................
}
for(a=0;a<8;a++)
bạn viết sai
manhdktd vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-06-2010, 09:45 PM   #96
manhdktd
Đệ tử 3 túi
 
manhdktd's Avatar
 
Tham gia ngày: Jun 2010
Bài gửi: 57
:
Trích:
Nguyên văn bởi hopeman View Post
cả hai lệnh này đều là lệnh gọi hàm thôi bạn ơi
vd lcd_init() tức là gọi hàm void lcd_init(void){...} đây có lẽ là hàm khởi tạo cho lcd, còn hàm còn lại là hàm đẩy 1 ký tự (char) đi thôi.
cld_putc('\f')
là lệnh xóa màn hình
manhdktd vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-11-2010, 09:00 AM   #97
thanhphuc15
Nhập môn đệ tử
 
Tham gia ngày: Sep 2010
Bài gửi: 6
:
may a oi cho e hoi trong ccs thi thoi gian mac dinh la s , ms hay la us vay...
vi e lap trinh de giai ma remote tv sony nhung khi e get_timer xong roi e ho biet la phai so sanh cai timer nay voi s, ms hay la us nua..
mong cac anh chi giup
thanhphuc15 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-12-2010, 09:06 AM   #98
haitaccr113
Nhập môn đệ tử
 
Tham gia ngày: Nov 2010
Bài gửi: 2
:
Chào mọi người. E mới chân ướt chân ráo tìm hiểu pic mong mấy huynh chỉ giáo. E có câu hỏi này tuy ngớ ngẩn "Khi vẽ mạch orcad thì làm sao biết gắn các tụ bao nhiêu với chân nguồn ?
haitaccr113 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-04-2011, 02:20 PM   #99
phamquocgia
Nhập môn đệ tử
 
Tham gia ngày: Jan 2010
Bài gửi: 8
:
Send a message via Yahoo to phamquocgia
bạn dùng tụ 104
phamquocgia vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-05-2011, 02:22 AM   #100
alycuong
Đệ tử 1 túi
 
Tham gia ngày: Apr 2010
Bài gửi: 16
:
Hỏi code.

#include <16F877a.h>
#define LED1 PIN_B4 //HANG NGHIN
#define LED2 PIN_B5 //HANG TRAM
#define LED3 PIN_B6 //HANG CHUC
#define LED4 PIN_B7 //HANG DON VI
#fuses hs, nowdt, put, nolvp, brownout
#use delay(clock=20000000)
int16 a,b,i,j,dv,chuc,tram,nghin,n;


void led7()
{
nghin=a/1000;
a=a%1000;
tram=a/100;
a=a%100;
chuc=a/10;
dv=a%10;
output_b(dv|0b10000000); //hien hang don vi
delay_us(1000);
output_b(chuc|0b01000000);//hien hang chuc
delay_us(1000);
output_b(tram|0b00100000);//hien hang tram
delay_us(500);
output_b(nghin|0b00010000);//hien hang nghin
delay_us(500);
}
void main()
{
set_tris_b(0x00);//chon port b lam port dau ra
set_tris_d(0x00);//chon port b lam port dau ra
while(1)
{
n++;
a=n;
led7();
}
}



e có down trên diễn đàn về đoạn code về led 7 doan. Cho e hỏi trong phần code trên:

output_b(dv|0b10000000); có nghĩa là gì. xuất ra portb (dv|0b10000000) là như thế nào ah.
alycuong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-05-2011, 10:40 PM   #101
alycuong
Đệ tử 1 túi
 
Tham gia ngày: Apr 2010
Bài gửi: 16
:
Trích:
Nguyên văn bởi alycuong View Post
#include <16F877a.h>
#define LED1 PIN_B4 //HANG NGHIN
#define LED2 PIN_B5 //HANG TRAM
#define LED3 PIN_B6 //HANG CHUC
#define LED4 PIN_B7 //HANG DON VI
#fuses hs, nowdt, put, nolvp, brownout
#use delay(clock=20000000)
int16 a,b,i,j,dv,chuc,tram,nghin,n;


void led7()
{
nghin=a/1000;
a=a%1000;
tram=a/100;
a=a%100;
chuc=a/10;
dv=a%10;
output_b(dv|0b10000000); //hien hang don vi
delay_us(1000);
output_b(chuc|0b01000000);//hien hang chuc
delay_us(1000);
output_b(tram|0b00100000);//hien hang tram
delay_us(500);
output_b(nghin|0b00010000);//hien hang nghin
delay_us(500);
}
void main()
{
set_tris_b(0x00);//chon port b lam port dau ra
set_tris_d(0x00);//chon port b lam port dau ra
while(1)
{
n++;
a=n;
led7();
}
}



e có down trên diễn đàn về đoạn code về led 7 doan. Cho e hỏi trong phần code trên:

output_b(dv|0b10000000); có nghĩa là gì. xuất ra portb (dv|0b10000000) là như thế nào ah.
k có ai giúp e ah.
alycuong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-06-2011, 09:15 AM   #102
qiuyinffy
Nhập môn đệ tử
 
Tham gia ngày: Jun 2011
Bài gửi: 3
:
phía dưới bên trái có bảng mô phỏng
qiuyinffy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-12-2011, 05:46 PM   #103
bbld
Nhập môn đệ tử
 
Tham gia ngày: Jun 2010
Bài gửi: 5
:
Trích:
Nguyên văn bởi FFGmember View Post
LCD cùng với led đơn và led 7 thanh là một trong những phương thức để hiển thị các kết quả các thông số. Thông thường tôi luôn chọn LCD vì lập trình đơn giản và đông thời có thể thể hiện được các giá trị mà mình mong muốn.

Có rất rất nhiều source code cho việc viết LCD 4 bit. Và một trong số đó là file lcd_lib_4bit.c đã đươc linhnc308 giới thiệu trong tập tutorial của mình

Lại thực thi các bước như ở trên, với đoạn code dưới đây.

PHP 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)
#include <lcd_lib_4bit.c> // Thu vien ham cho LCD

void main()
{
trisa 0xFF;
trisb 0x01;
trisd 0x00;
LCD_init();
Printf(LCD_putchar," PICVIETNAM tut");
LCD_putcmd(0xC3);
Printf(LCD_putchar," LCD 4bit ");


[/LIST]
mọi người cho mình hỏi 1 điều là LCD mình mới mua(chưa dùng đựoc lần nào).trong lcd_lib_4bit.c của anh linh có những hàm khởi tạo lcd đúng như nhà sx yêu cầu.vậy sao mình kết nối lcd dùng đoạn code trên thì ko chạy,chỉ hiện 1 dòng đen
mình đã define port rồi,RS=D0,EN=D2,D4-D7,vậy lỗi này có thể do LCD hỏng hay là do khởi tạo chưa đúng?
bbld vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-01-2012, 03:18 AM   #104
ngdnhanbk
Đệ tử 2 túi
 
Tham gia ngày: Nov 2010
Bài gửi: 38
:
Buồn quá! Học PIC qua tutorial mà chỉ được 1 cái tutorial. hix
ngdnhanbk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-12-2014, 10:40 PM   #105
teemo
Nhập môn đệ tử
 
Tham gia ngày: Nov 2014
Bài gửi: 9
:
anh ơi, làm sao khắc phục lỗi này vậy anh:
*** Error 18 "def_877a.h.c" Line 1(9,20): File can not be opened
Not in "E:\Program Files\PICC\devices\16F877A.h"
Not in "E:\Program Files\PICC\dr\16F877A.h"
Not in project "C:\Users\NhokPro1234\Documents\pi\project1\16F877 A.h"
*** Error 128 "def_877a.h.c" Line 3(1,12): A #DEVICE required before this line
2 Errors, 0 Warnings.
teemo 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
dsPIC Tutorial 3-Đọc ngõ vào và giao tiếp LCD namqn dsPIC - Bộ điều khiển tín hiệu số 16-bit 92 19-02-2017 11:15 PM
dsPIC Tutorial 2-Các kỹ thuật cơ bản namqn dsPIC - Bộ điều khiển tín hiệu số 16-bit 33 17-10-2013 11:09 PM
dsPIC Tutorial 4-Module UART và I2C namqn dsPIC - Bộ điều khiển tín hiệu số 16-bit 76 09-05-2012 10:55 AM
Tutorial LCD cua Nigel??????? spirit Cơ bản về vi điều khiển và PIC 16 16-03-2009 05:32 PM
tutorial hay cho newbie FUD84 Cơ bản về vi điều khiển và PIC 2 04-12-2005 02:29 AM


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