led 7 thanh từ 0-9
Collapse
X
-
giờ bác tạo một hàm ngắt timer 0 chẳng hạn ! 100us ngắt 1 lần sau khi vào hàm ngắt bác kiểm tra xem phím nào được nhấn thì gán 1 giá trị cụ thể ! rồi trong chương trình chính bác cho chạy chương trình con tương ứng với giá trị đó thôi .bác làm đi nếu không được commen lại tôi sẽ giúp !Email :
Phone : 0902 5777 39
Branch: LẬP TRÌNH CÁC DÒNG CHIP NXP, ST, ATMEL
Comment
-
- Chào anh, thành thật mà nói là em ráng ráng ráng cố gắng đọc tài liệu về VDK C (đọc về phần ngắt) lắm nhưng mà em cũng chẳng thể hiểu nổi, hồi trước học VDK ngôn ngữ ASM học về ngắt mặc dù cố gắng lắm nhưng em cũng chẳng tài nào hiểu nổi nó ngắt như thế nào (mà hầu như ko phải có mình em mà trong lớp đa số cũng chẳng ai hiểu) em cũng cố gắng làm theo lời anh nhưng nói thật với anh là em cũng chẳng biết bắt đầu từ đâu.Nguyên văn bởi daily84 Xem bài viếtgiờ bác tạo một hàm ngắt timer 0 chẳng hạn ! 100us ngắt 1 lần sau khi vào hàm ngắt bác kiểm tra xem phím nào được nhấn thì gán 1 giá trị cụ thể ! rồi trong chương trình chính bác cho chạy chương trình con tương ứng với giá trị đó thôi .bác làm đi nếu không được commen lại tôi sẽ giúp !
Comment
-
Sau 1 ngày mày mày mò mò, tìm tòi chịu khó + thêm có người gợi ý cũng làm được nhưng vẫn chưa hoàn thiện lắm
/*viet ct cai dat so dem tu 0-9
- nhan nut up tang len 1 so
- nhan down giam dj 1 so
- nhan nut start dem len tu dong
- nhan stop dung, dung start lai
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
#include <regx51.h>
unsigned char code ma[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0}; // code luu trong rom, ko co thi no tu luu vao ram
sbit start=P1^0;
sbit stop=P1^1;
sbit up=P1^2;
sbit down=P1^3;
int n=0 ;m=0;i=0;
void delay(long time) //ham delay
{
while(time--);
}
void main()
{
while(1)
{
if (up==0 && down==1 && n<9)
{
while (!up);
n=n+1;
}
if (up==1 && down==0 && n>0)
{
while (!down);
n=n-1;
}
P2=ma[n];
if (start ==0 && stop ==1)
{
m=n;
i=1;
}
if (start ==1 && stop ==0)
{
i=0;
}
if (m==10)
{
m=n;
}
if(i==1)
{
P2=ma[m];delay (2500);
m=m+1;
}
}
}
Comment
-
[C0DE]#include <REGX52.H>Nguyên văn bởi bienhoacc Xem bài viết- Cám ơn bạn đã góp ý, nhưng mình chỉ mới học về lập trình C, hàm ngắt bên ASM mình có học rồi (nhưng ko hiểu lắm)
- Mình có làm 1 bài như này
- Viết chương trình cài đặt số đếm từ 0-9
- Nhấn nút up thì tăng lên 1 số
- Nhấn nút down thì giảm xuống 1 số ( VD nhấn up tăng len đến số 8, nhấn down sẽ giảm xuống số 7 nhấn tiếp thì giảm tiếp cho đến khi về 0)
- Nhấn nút start thì đếm lên tự động (vd: đang nhấn up đếm lên được số 2 rồi mình nhấn start nó sẽ tự động tăng lên tiếp số 3 cho đến số 9 rồi lại về 0 tiếp tục đếm đến 9, cứ như vậy)
- Nhấn stop thì dừng ( dừng cho nó về 0 hoặc là led không sáng nữa, rồi lại tiếp tục nhấn up nhấn down, nhấn start tùy ý )
Đây là code của mình
/*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
#include <regx51.h>
unsigned char code ma[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0};
sbit start=P1^0;
sbit stop=P1^1;
sbit up=P1^2;
sbit down=P1^3;
int n=0 ;
void delay(long time) //ham delay
{
while(time--);
}
void main()
{
while(1)
{
if (up==0 && down==1 && n<9)
{
while (!up);
n=n+1;
}
if (up==1 && down==0 && n>0)
{
while (!down);
n=n-1;
}
P2=ma[n];
}
}
/*Mình chỉ viết được nhấn up với nhấn down còn nhấn start với stop thì chịu thua, các bạn có thể giúp mình được ko, sử dụng hàm ngắt cũng được mình cũng có thể tham kháo thêm, xin cám ơn*/
Đây là fire mô phỏng của mình
con day la fire mo phong cua minh.rar
unsigned char code ma[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0};
sbit start=P1^0;
sbit stop=P1^1;
sbit up=P1^2;
sbit down=P1^3;
int n=0 ;
void delay(long time) //ham delay
{
while(time--);
}
void main()
{
while(1)
{
if (up==0 && down==1 && n<9)
{
while (!up);
n=n+1;
}
if (up==1 && down==0 && n>0)
{
while (!down);
n=n-1;
}
if(start==0)
{ start=0;
n++;
delay(2000);
if(n==10)
n=0;
}
if(stop==0)
{start=1;
}
P2=ma[n];
}
}[/CODE]
Không být có đúng với ý bạn koNguyễn Huy Biên - 01649 802 694
gmail :
Comment
-
Comment
-
nhầm luồng bạn ơiNguyên văn bởi maibatam Xem bài viếthttp://www.dientuvietnam.net/forums/...767foto005.jpg
giúp mình giải thích nguyen lý này với mấy A.Nguyễn Huy Biên - 01649 802 694
gmail :
Comment
Bài viết mới nhất
Collapse
-
bởi domar123Sự kết hợp giữa vi xử lý siêu cấp AMD Ryzen Threadripper 9960X / 9970X cùng card đồ họa Radeon RX 9060 XT / RX 9070 XT 16GB mang lại một cỗ máy "all-in-one" đúng nghĩa. Đây là cấu hình đáp ứng trọn vẹn cho những người dùng cần một hệ...
-
Channel: Đánh giá sản phẩm DTVN
27-08-2026, 11:43 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Nhân mùa Vu Lan báo hiếu, giới thiệu bài hát về mẹ:
TRỌN GÁNH THƯƠNG YÊU
Sáng tác: Hoàng Đình Thường
Hòa âm & hát: AI, ngày 04/05/2026
[Verse 1]
Ơn sâu nghĩa nặng ngập tràn
Cả đời mẹ đã nhọc nhằn gian...-
Channel: Tâm tình dân kỹ thuật
24-08-2026, 14:58 -
-
bởi domar123Trong môi trường vận hành kinh doanh và công việc văn phòng hằng ngày, tính ổn định, độ bền bỉ và chi phí đầu tư luôn là những ưu tiên hàng đầu. Bộ vi xử lý AMD Athlon 3000G cùng phiên bản Athlon 3000G MPK mang lại giải pháp máy tính phổ...
-
Channel: Đánh giá sản phẩm DTVN
21-08-2026, 10:53 -
-
bởi ittcCác bác ơi, có người bày em là nên đăng ký học qua thầy, thầy sẽ nhiệt tình hơn rồi thầy quen biết trong giới thi dễ đậu hơn bla bla, nhưng đã có nhiều vụ thầy nhận tiền xong trốn luôn, hoặc giữa thầy và trung tâm không đồng nhất...-
Channel: Tâm tình dân kỹ thuật
20-08-2026, 19:27 -
-


Comment