Thông báo
Collapse
No announcement yet.
Cần giúp đỡ viết code 89c51 + 74hc595
Collapse
This topic is closed.
X
X
-
Mình chỉ biết viết bằng C thui.Nguyên văn bởi jqk1234 Xem bài viếtmọi người cho mình hỏi mình có mạch như hình vẽ ( sử dụng 89c51 ghép nối với 2 con 74hc595 điều khiển 16 led đơn) sáng dần dưới lên và sáng đuổi dưới lên. Viết bằng Assembly?
mọi người giúp mình nhé.
<bấm vào hình để phóng to>
[ATTACH=CONFIG]52554[/ATTACH]
Comment
-
được con voi, đòi thêm cô tiênNguyên văn bởi jqk1234 Xem bài viếtCó thể dịch sang ASM đc không bạn?(^_^) hoangnv.3i@gmail.com
Comment
-
Code C cho bạn tham khảo nhé ! Sơ đồ mạch như của chủ thớt.Nguyên văn bởi quangkien11 Xem bài viếtbạn có thể Up code C lên đc ko bạn
PHP Code:/*/==========================================BO TIEN XU LI============================================/*/
#include <reg52.h> //Dinh kem file thu vien
/*======================================KHAI BAO BIEN TOAN CUC=========================================*/
sbit SCK = P2^0;
sbit DATA = P2^1;
sbit SCL = P2^2;
unsigned int a,j;
/*===========================================KHAI BAO HAM==============================================*/
/*--------------------------------------------HAM DELAY------------------------------------------------*/
void delay(unsigned long time8us)
{
while(time8us--);
}
/*-----------------------------------------GHI DICH 595------------------------------------------------*/
void nap_1_bit()
{
SCK = 1;
SCK = 0;
}
void xuatdata595()
{
SCL = 1;
SCL = 0;
}
void ghidich595(unsigned int dat)
{
unsigned char i;
for (i = 0; i < 16; i++)
{
DATA = dat&0x8000;
dat = dat << 1;
nap_1_bit();
}
xuatdata595();
}
/*----------------------------CHUONG TRINH CON SANG DAN TU DUOI LEN----------------------------------*/
void sangdan()
{
a = 0x8000;
ghidich595(0x0000); //clear buffer 595
delay(8000);
for (j=0;j<16;j++)
{
ghidich595(a);
delay(8000);
a = a|(a>>1);
}
}
/*----------------------------CHUONG TRINH CON SANG NHAY TU DUOI LEN-----------------------------------*/
void sangnhay()
{
a = 0x8000;
ghidich595(0x0000); //clear buffer 595
delay(8000);
for (j=0;j<16;j++)
{
ghidich595(a);
delay(8000);
a = a>>1;
}
}
/*--------------------------------------CHUONG TRINH CHINH---------------------------------------------*/
void main()
{
while(1)
{
sangdan();
sangnhay();
}
}
Comment
-
Chân 13 của 74HC595 là chân OE cho ra, ban co thể tận dụng chân nàyNguyên văn bởi Ng. Tu Quyet Xem bài viếtBạn cho mk hỏi thêm tí là chẳng hạn mk có 4 con 595 chép với nhau mà mk muốn cho nó độc lập với nhau, giả dụ lúc thì từng con hoạt động, lúc thì 2 con...thì làm sao hả bạn. Chỉ giùm mk với, Thank!
Comment
-
Có thể đó bạn, tự tìm trong tùy chọn biên dịch của keilC sẽ có chỗ nó dịch từ code C sang code ASM nhưng đảm bảo code đó bạn sẽ không đọc đượcNguyên văn bởi jqk1234 Xem bài viếtCó thể dịch sang ASM đc không bạn?
. Bạn đang học thì phải tự làm chứ, hỏi người ta chỉ cho hướng làm là tốt quá rồi, còn muốn đòi thêm nữa thì ai mới là người đang học????
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Vấn đề về tốc độ quaybởi nguyendinhvanSử dụng động cơ servor, hoặc lắp thêm một cái encoder vào động cơ bước. Encoder sẽ kiểm soát động cơ có quay hoặc đứng im.
-
Channel: Điện tử truyền hình
14-12-2025, 19:50 -
-
bởi Andrea14Chào mọi người,
Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...-
Channel: Điện tử truyền hình
12-12-2025, 12:42 -
-
Trả lời cho Đấu tắt điện cho máy tính bảngbởi bqvietBqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
-
Channel: Thiết bị điện tử cá nhân
06-12-2025, 17:17 -

Comment