![]() |
Trích:
|
1 Attachment(s)
Trích:
|
Trích:
Nhân tiện hỏi luôn, bác biết chỉ giùm em các file .h cũng tự sửa được phải không và nếu sửa thì khi làm cũng chỉ cần làm theo cái mình đã sửa. Ví dụ file 16F887.h của em thấy khai báo #define sAN0 1 // A0, nếu dùng theo các ví dụ AN0 thì lại báo lỗi => sửa thành #define AN0 1 // A0 sau dùng AN0 thôi vẫn được chứ |
su dung port nào thi khai báo ,
|
Mình đã hiểu rồi khi có khai báo
#use fast_io(b) thì không dùng :#include <def_877a.h> được mà buộc phải khai báo địa chỉ của portB cu thể là #byte portb=0x06 // phải khai báo địa chỉ port B nếu dùng fast_io(b) |
Trích:
|
để xuất ra từng bit trong CCS thì dùng lênh output_low(), output_high(), tuy nhien trong wa trình viêt em không muốn ghi tên các bit ( vi dụ output_high(pin_b0)) mà em muốn dạt ten nó thì phải làm sao???
|
Trích:
|
Trích:
và các chân khác cũng tương tự như RB0 đến RB7, RA0-RA7 và các port C, D và E. còn nếu không sử dụng file def_xxx thì bạn phải định nghĩa chân cho nó bằng hàm #bit tenbien=port.x (x này là vị trí chân) chẳng hạn là #bit RB3=portb.3 thì có nghĩa là bạn định nghĩa chân RB3 là portb3 |
#include <16F877A.h>
#include <def_16f877a.h> #fuses NOWDT,HS,NOPUT,NOPROTECT,NODEBUG,NOBROWNOUT,NOLVP, NOCPD,NOWRT #use delay(clock=12000000) #USE FAST_IO(A) #USE FAST_IO(B) #byte portb=0x05 #byte portb=0x06 unsigned char macot[]={255, 255, 255, 255, 255, 255, 254, 224, 254, 255, 255, 224, 251, 251, 224, 255, 224, 255, 255, 255, 255, 255, 255, 224, 234, 238, 255, 224, 252, 251, 247, 224, 255, 255, 255, 255, 255, 255, 255, 255, }; int8 i,m,k,j; //**************************chuong trinh chinh********************************** void main() { //ADC_OFF; set_tris_b(0); set_tris_a(0); delay_ms(100); enable_interrupts(int_timer0); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2); enable_interrupts(global); set_timer0(6);// T_dinhthi = 2*(256 - 6)*1us = 500us j=0x01; while(true) { //********************************PHUT************** ***************** for(m=0;m<35;m++) { for(k=0;k<90;k++) { j=0x01; for(i=0;i<5;i++) { portb=macot[i+m]; delay_ms(1); porta=(j&(0x3f)); //porta=01 0000 0011 1111 j=j<1; } porta=0; } } } } code của em như thế này mà nó cứ báo là chưa khai bào porta là sao các bác? mong các bác chỉ giúp. |
#byte portb=0x05
#byte portb=0x06 kiểu này mà ko lỗi mới lạ |
Múi giờ GMT. Hiện tại là 12:07 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam