Nguyên văn bởi hanhkt1993
Thông báo
Collapse
No announcement yet.
[Share-code] Mỗi ngày một bài tập về AT89S52
Collapse
X
-
tt là viết tắt của trạng thái, khi nhấn vào nút thì sẽ lật trạng thái, và trong chương trình chính sẽ xử lí các trạng thái này. Ví dụ: nút start/stop , nhấn lần 1 chạy, lần 2 ngừng, chu kì lặp lại thì dùng cách này nhé!Nguyên văn bởi tanvp1992 Xem bài viếtbạn ơi cho mình hỏi ý nghĩa của câu lệnh này tt=~tt; và tại sao bạn lại cho nó vào phần chống rung cho phím nhấn
Comment
-
-
Bài tập 30
Giao tiếp AT89S52 với máy tính chuẩn RS232. AT89S52 kết nối với bàn phím ma trận 4x4 và LCD hiển thị. Trên máy tính có chương trình để điều khiển VDK hiển thị chuỗi.
Việc giao tiếp thực hiện theo 2 chiều, VDK gửi chuỗi lên máy tính, máy tính gửi chuỗi xuống VDK.
Yêu cầu:
-C# 2010
-Proteus 7.8
-Keil C 4
- Virtual Serial Port Driver 6.9
TẢI CODE VÀ FILE MÔ PHỎNG:
NGUYENTHANHHAI-GIAOTIEPRS232.rar
Comment
-
các pro xem giúp chương trình của e hiển thị led từ 00-99 mà sao mô phỏng trên proteus chẳng lên chỉ hiện 2 số 0 to đùng...mong các pro chỉgiùm lỗi.e mới học nên còn gà lắm có gì k phải mong các pro chỉ bảo..thanks all
#include <REGX52.H>
sbit led_1=P3^0;
sbit led_2=P3^1;
unsigned int i,j;
unsigned char dem,chuc,donvi;
unsigned char led7[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0};
// ham tre
void delay(unsigned char time)
{
for(i=0;i<time;i++)
for(j=0;j<125;j++);
}
void main()
{
while(1)
{ dem=0;
donvi=dem/10;
chuc=(dem%100)/10;
for(i=0;i<20;i++)
{
{
led_1=1;
P2=led7[donvi];
delay(10);
led_1=0;
P2=0xff;
led_2=1;
P2=led7[chuc];
delay(10);
led_2=0;
P2=0xff;
}
dem=dem+1;
if(dem==99)dem=0;
}
}
}
Comment
-
trong hàm delay dùng biến i,và vòng lặp for cũng dùng biến i.Nguyên văn bởi anhommatroi Xem bài viếtcác pro xem giúp chương trình của e hiển thị led từ 00-99 mà sao mô phỏng trên proteus chẳng lên chỉ hiện 2 số 0 to đùng...mong các pro chỉgiùm lỗi.e mới học nên còn gà lắm có gì k phải mong các pro chỉ bảo..thanks all
#include <REGX52.H>
sbit led_1=P3^0;
sbit led_2=P3^1;
unsigned int i,j;
unsigned char dem,chuc,donvi;
unsigned char led7[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0};
// ham tre
void delay(unsigned char time)
{
for(i=0;i<time;i++)
for(j=0;j<125;j++);
}
void main()
{
while(1)
{ dem=0;
donvi=dem/10;
chuc=(dem%100)/10;
for(i=0;i<20;i++)
{
{
led_1=1;
P2=led7[donvi];
delay(10);
led_1=0;
P2=0xff;
led_2=1;
P2=led7[chuc];
delay(10);
led_2=0;
P2=0xff;
}
dem=dem+1;
if(dem==99)dem=0;
}
}
}
và một số chỗ cần sửa lại.
Code:#include <REGX52.H> sbit led_1=P3^0; sbit led_2=P3^1; unsigned int i,j,t; unsigned char dem,chuc,donvi; unsigned char led7[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; // ham tre void delay(unsigned char time) { for(i=0;i<time;i++) for(j=0;j<125;j++); } void main() { dem=0; while(1) { for(t=0;t<20;t++){ chuc=dem/10; donvi=dem%10; led_1=1; P2=led7[donvi]; delay(10); led_1=0; P2=0xff; led_2=1; P2=led7[chuc]; delay(10); led_2=0; P2=0xff; } dem=dem+1; if(dem==99)dem=0; } }|
Comment
-
trong topic này có đó bạn, chịu khó "đào mộ " lại nha!Nguyên văn bởi anhommatroi Xem bài viếtbạn có thể cho mình 1 ví dụ đơn giản dùng timer quét led 7 đc không...thanks nhiu
Comment
-
ủng hộ bạn 1 code cơ bản về RTX-Tiny (hệ điều hành thời gian thực)để các bạn tham khảo
Code:#include <REGX51.H> #include <rtx51tny.h> sbit Led1 = P2^0; sbit Led2 = P2^1; #define Led_Statut P2_7 //sbit Led3 = P2^2; //sbit Led4 = P2^3; unsigned char maled[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char count; unsigned char i; void quetled(unsigned char so) { Led1 = 1; P3 = maled[so/10]; os_wait (K_TMO, 5, 0); Led1 = 0; P3 = 0xff; Led2 = 1; P3 = maled[so%10]; os_wait (K_TMO, 5, 0); Led2 = 0; P3 = 0xff; } job1() _task_ 0 { os_create_task (1); os_create_task (2); os_create_task (3); while(1) { quetled(count); } } job2() _task_ 1 { while(1) { count ++; os_wait (K_TMO, 100, 0); if(count == 100) count = 0; } } job3() _task_ 2 { while(1) { Led_Statut = ! Led_Statut; os_wait (K_TMO, 50, 0); } } job4() _task_ 3 { while(1) { P1 = 0xfe; os_wait (K_TMO, 100, 0); for(i=0;i<7;i++) { P1 = P1 << 1; os_wait (K_TMO, 100, 0); } P1 = 0xff; os_wait (K_TMO, 100, 0); } }Nguyễn Huy Biên - 01649 802 694
gmail :
Comment
-
Rất cám ơn bạn đã chia sẽ, hy vọng bạn sẽ đóng góp cho topic này nhiều bài hay nữa, để mọi người cùng học tập. À. Nếu có file mô phỏng thì cho mình xin luôn nha.Nguyên văn bởi bienhou Xem bài viếtủng hộ bạn 1 code cơ bản về RTX-Tiny (hệ điều hành thời gian thực)để các bạn tham khảo
Code:#include <REGX51.H> #include <rtx51tny.h> sbit Led1 = P2^0; sbit Led2 = P2^1; #define Led_Statut P2_7 //sbit Led3 = P2^2; //sbit Led4 = P2^3; unsigned char maled[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char count; unsigned char i; void quetled(unsigned char so) { Led1 = 1; P3 = maled[so/10]; os_wait (K_TMO, 5, 0); Led1 = 0; P3 = 0xff; Led2 = 1; P3 = maled[so%10]; os_wait (K_TMO, 5, 0); Led2 = 0; P3 = 0xff; } job1() _task_ 0 { os_create_task (1); os_create_task (2); os_create_task (3); while(1) { quetled(count); } } job2() _task_ 1 { while(1) { count ++; os_wait (K_TMO, 100, 0); if(count == 100) count = 0; } } job3() _task_ 2 { while(1) { Led_Statut = ! Led_Statut; os_wait (K_TMO, 50, 0); } } job4() _task_ 3 { while(1) { P1 = 0xfe; os_wait (K_TMO, 100, 0); for(i=0;i<7;i++) { P1 = P1 << 1; os_wait (K_TMO, 100, 0); } P1 = 0xff; os_wait (K_TMO, 100, 0); } }
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Cấu hình chiến game "quốc dân" cho nền tảng AM5: Lựa chọn tối ưu ngân sách với Ryzen 5 7500Fbởi kumarbrMình đồng ý với hướng build AM5 bằng 7500F, nhưng nếu có thể cố thêm ngân sách thì nên lên RX 7600 ngay từ đầu. 4GB VRAM của RX 6500 XT bắt đầu khá chật với nhiều game mới, còn RX 7600 sẽ dùng thoải mái hơn trong vài năm tới.
-
Channel: Đánh giá sản phẩm DTVN
16-06-2026, 15:49 -
-
bởi theidiotcatTrong thời buổi vật giá leo thang, việc sắm một bộ máy tính chơi game đáp ứng đủ tiêu chí "ngon, bổ, rẻ" là ưu tiên hàng đầu của nhiều bạn trẻ. Lúc này, combo sử dụng vi xử lý AMD Ryzen 5 7500F kết hợp cùng card màn hình Radeon...
-
Channel: Đánh giá sản phẩm DTVN
16-06-2026, 10:16 -
-
bởi theidiotcatAMD Ryzen 9 9950X3D không chỉ là một bộ vi xử lý đơn thuần; nó là lời khẳng định về sức mạnh của kiến trúc Zen 5 kết hợp cùng công nghệ 3D V-Cache đột phá. Trong bối cảnh thị trường linh kiện PC cạnh tranh khốc liệt, đây được xem...
-
Channel: Đánh giá sản phẩm DTVN
15-06-2026, 09:21 -
-
bởi theidiotcatBộ đôi Ryzen 9 9950X3D2 và Radeon RX 9070 XT 16GB là sự kết hợp phần cứng cao cấp nhất của AMD hiện nay. Đây không chỉ là một dàn máy tính để giải trí thông thường, mà là công cụ làm việc mạnh mẽ dành cho những ai có nhu cầu xử lý cường...
-
Channel: Đánh giá sản phẩm DTVN
15-06-2026, 09:09 -
-
bởi theidiotcatKhi ráp một bộ máy tính cấu hình cao, việc cân đối ngân sách cho từng linh kiện là rất quan trọng. Sự kết hợp giữa vi xử lý AMD Ryzen thế hệ mới có công nghệ 3D V-Cache và card đồ họa Radeon RX 9070 XT đang là lựa chọn rất đáng tiền....
-
Channel: Đánh giá sản phẩm DTVN
11-06-2026, 10:43 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Giới thiệu bản nhạc đệm mới nhộn nhịp tươi vui, nghe là muốn... xuất gia đi tu liền!!!!😁...
-
Channel: Tâm tình dân kỹ thuật
11-06-2026, 09:51 -

Comment