Xin chào các bác !
Tình hình là như thế này, em đang làm một cái đồng hồ với 32 led đơn được nối dạng trái tim bên trong lè led đươn được gép thành led đoạn để làm hiển thị cho đồng hồ mọi việc đã xong phần cứng rồi nhưng bấy giờ mới bắtddaaud đã gặp sự cố mà không hiểu nguyên nhân gì cả mong được các bác có kinh nghiệm làm qua chỉ em nguyên nhân .
Em dùng 595 để đẩy dữ liệu ra led đơn em điều khiển 32 led đơn nên dùng 4 con 595, các chân đã kết nối đùng như datashee, mô phỏng đã chạy ngon lành nhưng khi nạp vào mô hinhg thực tế thì tất cả các led đều sáng (các led đơn của em một đầu kto được nối mat một đầu nối với 1 em điện trở 330 ôm ).Nếu về lí thuyết khi chưa gọi chương trình để điều khiển xuất dữ liệu ra các chân của hc595 thì tất cả các chân của nó phải mang giá trị 0 V thì tất cả các led phải tắt đường này em cứ nguồn vào là các led đều sáng rồi, nên không hiểu nguyên nhân tại sao. Em đưa chương trình mà mạch nguyên lí lên ai đã từng làm qua xin cho em ti kinh nghiệm.
mo phong.rar
Tình hình là như thế này, em đang làm một cái đồng hồ với 32 led đơn được nối dạng trái tim bên trong lè led đươn được gép thành led đoạn để làm hiển thị cho đồng hồ mọi việc đã xong phần cứng rồi nhưng bấy giờ mới bắtddaaud đã gặp sự cố mà không hiểu nguyên nhân gì cả mong được các bác có kinh nghiệm làm qua chỉ em nguyên nhân .
Em dùng 595 để đẩy dữ liệu ra led đơn em điều khiển 32 led đơn nên dùng 4 con 595, các chân đã kết nối đùng như datashee, mô phỏng đã chạy ngon lành nhưng khi nạp vào mô hinhg thực tế thì tất cả các led đều sáng (các led đơn của em một đầu kto được nối mat một đầu nối với 1 em điện trở 330 ôm ).Nếu về lí thuyết khi chưa gọi chương trình để điều khiển xuất dữ liệu ra các chân của hc595 thì tất cả các chân của nó phải mang giá trị 0 V thì tất cả các led phải tắt đường này em cứ nguồn vào là các led đều sáng rồi, nên không hiểu nguyên nhân tại sao. Em đưa chương trình mà mạch nguyên lí lên ai đã từng làm qua xin cho em ti kinh nghiệm.
Code:
#include <REGX52.H> sbit SCK=P2^0; sbit DATA=P2^1; sbit LACH=P2^2; unsigned char ma[]={ 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80, }; void delay(unsigned char t) {unsigned int i,j; for(i=0;i<=t;i++) {for (j=0;j<=200;j++) {;} }} void hienthi(unsigned long x) { unsigned long temp; unsigned int i; for(i=0;i<32;i++) { temp=x; temp=temp%2; if(temp==1) DATA=1; else DATA=0; x=x>>1; SCK=0; SCK=1; } } void nhay1() { int i;unsigned long t=0xFFFFFFFF; for (i=0;i<32;i++) { hienthi(t); t=t<<1; LACH=0; LACH=1; delay(10); } t=0xFFFFFFFF; for (i=0;i<32;i++) { hienthi(t); t=t>>1; LACH=0; LACH=1; delay(10); } t=1; for (i=0;i<32;i++) { hienthi(t); t=t<<1; LACH=0; LACH=1; delay(10); } t=0x80000000; for (i=0;i<32;i++) { hienthi(t); t=t>>1; LACH=0; LACH=1; delay(10); } t=3; for (i=0;i<32;i++) { hienthi(t); t=t<<1; LACH=0; LACH=1; delay(50); } t=0xC0000000; for (i=0;i<32;i++) { hienthi(t); t=t>>1; LACH=0; LACH=1; delay(30); } t=5; for (i=0;i<32;i++) { hienthi(t); t=t<<1; LACH=0; LACH=1; delay(20); } t=0xB0000000; for (i=0;i<32;i++) { hienthi(t); t=t>>1; LACH=0; LACH=1; delay(20); } } void main() { delay(500); while(1) { nhay1(); while(1); }}
Comment