Nguyên văn bởi tranvanan
Xem bài viết
Thông báo
Collapse
No announcement yet.
Cách giao tiếp DS1877 và PIC6F877A
Collapse
X
-
^^ DD3N điên nặng gấp 3 lần người thường ^^
-
@008: ok, theo ý bạn vậy, mình đang viết C với Mikro C. đã làm thử mấy bài cơ bảng với led đơn rồi,
còn lcd thì mới viết hôm qua nhưng chỉ hiển thị được tên mình lên lcd thôi, chứ chưa có gì đặc biệt hết, mình giao tiếp lcd theo dạng 4 bit, mình sẽ làm thử với ds1307.
có gì bạn giúp mình với nhé, Nhưng mình sợ để không con ds12c887,,,nó hết pin thì toi, mình không có ở VN nên ,,linh kiện mua khó lắm,,hic, cảm ơn bạn.mình sẽ còn nhờ vả bạn nhiều đó,
Comment
-
Nguyên văn bởi tranvanan Xem bài viết@008: ok, theo ý bạn vậy, mình đang viết C với Mikro C. đã làm thử mấy bài cơ bảng với led đơn rồi,
còn lcd thì mới viết hôm qua nhưng chỉ hiển thị được tên mình lên lcd thôi, chứ chưa có gì đặc biệt hết, mình giao tiếp lcd theo dạng 4 bit, mình sẽ làm thử với ds1307.
có gì bạn giúp mình với nhé, Nhưng mình sợ để không con ds12c887,,,nó hết pin thì toi, mình không có ở VN nên ,,linh kiện mua khó lắm,,hic, cảm ơn bạn.mình sẽ còn nhờ vả bạn nhiều đó,^^ DD3N điên nặng gấp 3 lần người thường ^^
Comment
-
@008: mình đang ở Nhật Bản, mình thì đi làm suốt nên không có nhiều thời gian để làm mạch, nhưng mà thích quá nên gần đây mới đạt mua ở Vn mang sang để làm,,để mình làm thử, có gì ko biết thì nhờ bạn giúp vậy,
À ,còn cái này ,,,bạn có thể nói cho mình biết cách thức xử lý nhiệt độ đo được từ ds1820 sau khi dung lệnh 44h(lệnh convert) để hiển thị lên led7 đoạn được không.Cái này ngoài luồng nhưng mong 008 giúp đở.hihi
Comment
-
Nguyên văn bởi tranvanan Xem bài viết@008: mình đang ở Nhật Bản, mình thì đi làm suốt nên không có nhiều thời gian để làm mạch, nhưng mà thích quá nên gần đây mới đạt mua ở Vn mang sang để làm,,để mình làm thử, có gì ko biết thì nhờ bạn giúp vậy,
À ,còn cái này ,,,bạn có thể nói cho mình biết cách thức xử lý nhiệt độ đo được từ ds1820 sau khi dung lệnh 44h(lệnh convert) để hiển thị lên led7 đoạn được không.Cái này ngoài luồng nhưng mong 008 giúp đở.hihi^^ DD3N điên nặng gấp 3 lần người thường ^^
Comment
-
Nguyên văn bởi 008 Xem bài viếthihi vấn đề mình giải quyết rùi, Thực tế là làm theo turial của bên picvn ghi la thanh ghi A có địa chỉ 10h còn B có địa chỉ 11h. Nhưng coi kĩ lại datasheet phát hiện ra thanh ghi A la 0Ah, thanh ghi B la 0Bh. Bạn coi thử lại coi, chỉ cần set 010 cho đúng là nó chạy rồi không cần làm gì khác hết.
Chúc may mắn! Tết rùi mà vẫn quyết chiến nhỉ
Comment
-
Bác tò mò sớm làm gì, bệnh đó em không giải thích được, nhưng phải làm thế mới chạy, bác cứ tìm hiểu, rùi tự tìm ra mới zui, chứ em nói ngay mất hứng , không ra thì em sửa cho.
Bác dùng con PIC nào cũng được, em làm với 877A chạy tốt, không sao cả.
chào bạn ! Mình đang làm project sử dụng 2 kit pic16F887 kết nối dùng SPI protocol, chế độ Master- slave để 1 kít Đo nhiệt Độ rôi gửi cho kit còn lại hiện thi lên LCD.
pro giúp mình các bước làm với !!!!! nêu có gì gửi cho mình xin liên hệ. mong pro giúp cho.
mail của minh là :xuananitiu@gmail.com
Comment
-
Nguyên văn bởi phamthaihoa Xem bài viết
Giao tiếp giữa DS12887 với PIC bị một bệnh rất mất dạy, mà không bị khi làm với 8051. Bác viết code lên em sửa cho, chứ code nguồn của em thì em không share
Mà bác nào dám đập thử con DS12887 ra xem trong đó có gì chưa ?
có phải bệnh mất dạy là chuyển port từ output sang input khiến port bị dis phải ko bác?
bác chỉ em xử lý giúp ạ, zalo em 0382361069.
đây đoạn code của em:
int DATA_W,ADDRESS_W,DATA_R ;
#define AS RD0_bit
#define RW RD1_bit
#define DS RD2_bit
#define CS RD3_bit
#define RE_SET RD4_bit
#define DATAPORT PORTB
void read_12C887(void);//khai bao chuong trinh con
void write_12C887(void);//khai bao chuong trinh con
//**********write_12C887***************
void write_12C887(unsigned char address_w, unsigned char data_write)
{
TRISB=0X00;
AS=0;
DS=1;
RW=1;
;
AS=1;
CS=0;
DATAPORT=ADDRESS_W;
;
AS=0;
;
RW=0;
DATAPORT=data_write;
;
RW=1;
CS=1;
AS=1;
}
void read_12C887(char ADDRESS_R, char DATA_READ)
{
STATUS.B5=1;
TRISB=0X00;
STATUS.B5=0;
DATAPORT=ADDRESS_R;
DS=1;
RW=1;
;
AS=1;
;
AS=0;
;
CS=0;
;
DS=0;
;
STATUS.B5=1;
TRISB=0xff;
STATUS.B5=0;
DATA_READ=DATAPORT;
DS=1;
CS=1;
AS=1;
delay_ms(50);
}
void disTime()
{
ByteToStrWithZeros(gio,giotxt);
ByteToStrWithZeros(phut,phuttxt);
ByteToStrWithZeros(giay,giaytxt);
Dtime[0] = giotxt[1];
Dtime[1] = giotxt[2] ;
Dtime[3] = phuttxt[1];
Dtime[4] = phuttxt[2];
Dtime[6] = giaytxt[1];
Dtime[7] = giaytxt[2];
}
void setTime(char sgio,char sphut,char sgiay)
{
write_12C887(0x0A,0x2F);
write_12C887(0x0B,0xDE);
write_12C887(0x04,sgio);
gio = sgio;
write_12C887(0x02,sphut);
phut = sphut;
write_12C887(0x00,sgiay);
giay = sgiay;
write_12C887(0x0B,0x5E);
}
void main(void)
{
ANSEL = 0; // Configure AN pins as digital I/O
ANSELH = 0;
C1ON_bit = 0; // Disable comparators
C2ON_bit = 0;
RCIE_bit = 1; // enable interrupt on UART1 receive
TXIE_bit = 0; // disable interrupt on UART1 transmit
PEIE_bit = 1; // enable peripheral interrupts
GIE_bit = 1; // cho phep ngat
// config timer 0
/*PSA_bit = 0;// chon bo chia truoc cho timer 0
PS2_bit = 0;
PS1_bit = 1;
PS0_bit = 0;// chon bo chia truoc 8
T0CS_bit = 0;// chon nguon xung clock noi
T0IE_bit = 1; // cho phep ngat timer 0
T0IF_bit = 0; // ghi gia tri co ngat = 0
TMR0 = 56;*/
TRISE = 0;
PORTE = 0;
TRISB=0x00;
TRISD = 0X00;
ADCON1=0x06;
RE_SET=1;
CS =1;
delay_ms(500);
write_12C887(0x0A,0x2F); //b'00101111' dua gia tri vao thanh ghi "register A" BIT 5=1 THOI GIAN THUC BIT 0...3=1 TAO F=2HZ TAI CHAN SQW
write_12C887(0x0B, 0x5A); //'01011110' ; dua gia tri vao thanh ghi "register B" //BIT 3=1 CHO PHEP TAO SONG VUONG TAI CHAN SQW // BIT 1=1 dang du lieu 24 gio //BIT 2=1 dang du lieu Binary
I2C1_Init(100000); // initialize I2C communication
LCD_Begin(0x7E); // initialize LCD module with I2C address = 0x4E
LCD_cmd_(LCD_CURSOR_OFF);
LCD_Goto(1, 1);
LCD_Print("HELLO");
delay_ms(1000);
LCD_cmd_(LCD_CLEAR);
delay_ms(100);
setTime(23,59,58);
disTime();
LCD_Goto(1, 1);
LCD_Print(Dtime);
delay_ms(1000);
LCD_cmd_(LCD_CLEAR);
while (1)
{
read_12C887(0X0A,DATA_R);
if (((DATA_R>>7)&0x01)==1)//
//while(DATA_R,7==1)
{
read_12C887(0X0A,DATA_R);
}
if (((DATA_R>>7)&0x01)==0)
{
read_12C887(0X00,GIAY);
read_12C887(0X02,PHUT);
read_12C887(0X04,GIO);
}
disTime();
LCD_Goto(1, 1);
LCD_Print(Dtime);
delay_ms(50);
}
}
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho tìm mua đồng hồ vạn năngbởi mèomướpDạ chú mua cái kẹp dòng ấy ạ. Chị hàng xóm nhà cháu có 1 cái thấy lâu lâu rùi chưa hỏng ạ. Ví dụ như mẫu này trên shoppee đầy ạ...
https://vn.shp.ee/dWYVgq7-
Channel: Điện tử dành cho người mới bắt đầu
21-01-2025, 12:48 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi vi van phamBác Đinh Vặn sai rồi,bây giờ con nít mẫu giáo đã giải phương trình 2 ẩn số rồi.
Tôi chứng minh bác lên youtube đầy video đơn giản tựa rất hot, chỉ 1 transistor hay 1 con diode và hướng dẩn cách làm, tác giả không vẽ sơ đồ mạch điện...-
Channel: Điện tử công suất
21-01-2025, 11:55 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi nguyendinhvanBây giờ mới có tháng giêng, bao giờ mới đến tháng mười ?
Các cháu mẫu giáo mới lên lớp 1 được có 4 tháng. Nên đừng lấy lý do chúng nó đã đi học rồi để bắt nó viết một bài luận văn, hay là giải bài toán hàm. Phải kiên nhẫn...-
Channel: Điện tử công suất
21-01-2025, 00:47 -
-
Trả lời cho tìm mua đồng hồ vạn năngbởi nguyendinhvanKhông có loại nào đủ một vạn chức năng đâu. Nó chỉ được 2345678 , hoặc khủng lắm thì được 10 chức năng.
-
Channel: Điện tử dành cho người mới bắt đầu
21-01-2025, 00:16 -
-
bởi since0501Cảm ơn bác đã chia sẻ!...
-
Channel: Điện tử dành cho người mới bắt đầu
19-01-2025, 19:00 -
-
bởi Lê Gia TứMình muốn tìm mua đồng hồ vạn năng giá khoảng 200k có đo tần số cao khoảng 0~1mhz mọi người tư vấn giúp mình với
-
Channel: Điện tử dành cho người mới bắt đầu
19-01-2025, 15:47 -
-
Trả lời cho Mạch tự động bật nguồnbởi davidcopyChỉ cần dùng R C mắc vô phím power là ok....
-
Channel: Điện tử gia dụng
18-01-2025, 20:47 -
-
Trả lời cho Hỏi cách điều chế xungbởi davidcopydùng mach khuếch opamp...
-
Channel: Kỹ thuật điện tử tương tự
18-01-2025, 20:42 -
-
Trả lời cho Thắc mắc về hạ áp cho adapter laptopbởi davidcopy
-
Channel: Điện tử dành cho người mới bắt đầu
18-01-2025, 18:56 -
-
bởi bqvietĐấy gọi là cái "điểm gãy" trong đồ thị điện áp - dung lượng còn lại. Dùng điện áp hở cực để xác định sắp hết hoặc gần đầy thì vẫn tạm ổn. Dùng để đo SOC/DOD thì đừng. Ngay cả số km đã đi cũng chả xác định được...
-
Channel: Điện tử dành cho người mới bắt đầu
17-01-2025, 21:36 -
Comment