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 Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Dạ, cảm ơn bác đã nghe qua và có lời khích lệ cháu ạ.
Thật lòng cháu không dám nhận hai danh hiệu Kỹ sư và Nhạc sĩ đâu ạ, vì phải thật hiểu sâu nắm vững cơ, chứ thực lực cháu đây chỉ là biết chút ít thôi à. Về phần...-
Channel: Tâm tình dân kỹ thuật
29-01-2026, 11:58 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi bqvietĐơn giản thì có trải nghiệm này
http://www.dientuvietnam.net/forums/...ch%C3%AA%CC%81
Chỉ phần cứng,...-
Channel: Điện tử công suất
27-01-2026, 21:32 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi Nexus 6Pphức tạp quá, nếu mà có mạch làm sẵn thì ngon, e dùng 2 tấm pv loại 18v 55w thôi bác
-
Channel: Điện tử công suất
26-01-2026, 08:52 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi Nexus 6Pcảm ơn bác nhiều nha, để e nghiên cứu
-
Channel: Điện tử công suất
26-01-2026, 07:38 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi vi van phamkỹ sư nhạc sĩ dinhthuong dạo này lên tay nghề khá quá.
-
Channel: Tâm tình dân kỹ thuật
25-01-2026, 21:29 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Hát Mừng Sinh Nhật, sáng tác: HĐT, hòa âm-thể hiện: AI
-
Channel: Tâm tình dân kỹ thuật
24-01-2026, 22:13 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Chào bác, gần Tết công việc bác bận lắm phải không?
Vâng mọi người đều thế cả.
Em mới trả phí cho nó 1 tháng, nhờ nó hát thử ấy ạ. Tiếc vì em đã dốt nhạc lí lại lười học nên sáng tác thì vụng về mà hát demo...-
Channel: Tâm tình dân kỹ thuật
24-01-2026, 21:53 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi bqvietCảm thấy cứng tay thì làm theo hướng dẫn khá chi tiết ở trang sau
https://www.instructables.com/DIY-1k...ge-Controller/-
Channel: Điện tử công suất
23-01-2026, 16:50 -
-
bởi Nexus 6PNhư tiêu đề, các bác giới thiệu e mạch sạc nlmt mppt có chức năng chỉnh dòng với, tấm PV của em 18V 55W, dùng để sạc cho khối pin sắt 3.2V 45A (sắp tới sẽ thay bằng ắc quy 12V)
e cảm ơn-
Channel: Điện tử công suất
23-01-2026, 11:23 -

Comment