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 Mạch 3s bị giảm điện áp đầu rabởi minhtri0405chả biết bạn xử lý được chưa , kích sạc hoặc điện áp > điện áp khối pin vào 2 chân P - P+ , nhiều mạch phải yêu cầu có kích lần đầu sau đó mới chạy...
-
Channel: Điện tử dành cho người mới bắt đầu
hôm nay, 10:01 -
-
bởi minhtri0405đây có phải là 1 cách để test mosfet xịn hay dỏm khi mua đồ tàu không nhỉ , vì ko thể đập ra để coi lõi rồi trả hàng được....
-
Channel: Tâm tình dân kỹ thuật
hôm nay, 09:57 -
-
Trả lời cho Giúp mình vẽ sơ đồ và phân tích nguyên lý làm việc của khảo sát các mạch nguồn ổn áp vớibởi Tuyenvc345
-
Channel: Hỗ trợ học tập
16-03-2026, 18:05 -
-
Trả lời cho Giúp mình vẽ sơ đồ và phân tích nguyên lý làm việc của khảo sát các mạch nguồn ổn áp vớibởi Tuyenvc345
-
Channel: Hỗ trợ học tập
16-03-2026, 18:04 -
-
bởi bqvietDiễn đàn vốn vắng, muốn vào viết bài trả lời chút nhưng cứ thấy luồng nào thành viên này mở thì cũng đồng thời xuất hiện ở Otofun, thế là chùn tay ... Thôi thì dientuvietnam không thể so sánh được về độ phổ cập, biết thân biết phận vậy.
-
Channel: Tâm tình dân kỹ thuật
16-03-2026, 17:49 -
-
bởi chinhnguyen9So sánh sóng 2 mạch nguồn Push-pull
· Sóng vuông giửa 2 cực D của mạch Pushpull trong module inverter 24-220V sine giả của TQ. Mạh điện này khá đặc biêt ở chổ, không thấy mạch snubber mà hiêu quả triêt sóng hài quá tốt dù hoạt...-
Channel: Nguồn!
16-03-2026, 14:27 -
-
bởi chinhnguyen9Mạch điên bếp tù gộm 2 khối:
Khối điêu khiển:
-Thiết lập công suất nấu
-Thiết lập thời gian nấu
-Kiểm tra có đặt nồi hay không, đúng loại hay không?
-Có quá nhiệt không?
Khối công suất:
- Nắn+ lọc điên AC ra 310VDC +loọc nhiểu...-
Channel: Hướng dẫn sử dụng diễn đàn
16-03-2026, 14:05 -

Comment