em đang làm 1 cái giống với đồng hồ(để phát triển lên đồng hồ ấy mà), phần lập trình em tự nghĩ lấy, em mô phỏng trên proteus thấy nó chạy cứ giật giật, em post cả mạch với code các bác sửa giúp em với nhá, chỉ cần chỉ ra chỗ nào thôi, để em tự sửa. thnks
Thông báo
Collapse
No announcement yet.
các bác sửa giúp em cái code
Collapse
X
-
không hiểu sao em ko up được file lên, đây là code, chắc đọc là các bác biết phần cứng liền
#include <REGX51.H>
#define Q0 P1_0
#define Q1 P1_1
#define Q2 P1_2
#define Q3 P1_3
#define led1 P1_4
#define led2 P1_5
#define led3 P1_6
#define led4 P1_7
#define clock P0_0
int dem=0;
int giay1=0;
int phut=0;
int gio=0;
int giay2=0;
//P2_0 dieu khien A1015 mo cho LED1
//P2_1 dieu khien A1015 mo cho LED2
//************************************************** ******
void delay(unsigned int ms)
{
unsigned int i,j;
for (i=0;i<ms;i++)
for (j=0;j<120;j++)
{}
}
//************************************************** *******
void display(unsigned char number_dis)
{
switch (number_dis)
{
case 0:
Q0=Q1=Q2=Q3=0;
break;
case 1:
Q1=Q2=Q3=0;
Q0=1;
break;
case 2:
Q1=1;
Q0=Q2=Q3=0;
break;
case 3:
Q0=Q1=1;
Q2=Q3=0;
break;
case 4:
Q0=Q1=Q3=0;
Q2=1;
break;
case 5:
Q1=Q3=0;
Q2=Q0=1;
break;
case 6:
Q3=Q0=0;
Q2=Q1=1;
break;
case 7:
Q3=0;
Q0=Q1=Q2=1;
break;
case 8:
Q3=1;
Q0=Q1=Q2=0;
break;
case 9:
Q3=Q0=1;
Q1=Q2=0;
break;
default:Q0=Q1=Q2=Q3=0;break;
}
}
//************************************************** *******
void display_led(unsigned char led,number_dis)
//'led' cho hien thi tren led nao?led1 hay led2
//'number'so can hien thi tren led do
{
if (led==1)//cho hien thi led thu nhat(led1)
{led1=1;led2=led3=0;}
else if (led==2) //cho hien thi led2
{led1=led3=0;led2=1;}
else if (led==3) //cho hien thi led2
{led2=led1=0;led3=1;}
display(number_dis);
}
//*****************************************
void phim_an(void) // ham test phim
{
if(clock==0)
{
delay(10);// chong dung phim
if(clock==0)// cho nha contac
delay(10); // chong dung phim
dem++;
}
}
main()
{
clock=0;
while(1)
{ phim_an();
giay1= dem % 10;
giay2= (dem / 10) % 10;
phut= (dem / 60) % 10;
gio= dem / 3600;
/* c= num % 10;
e= (num / 10) % 10; //if(e=6) {e=0;}
d= (num / 60) % 10;
b= ((num / 60) / 10) % 10;//if(b=6) {b=0;}
a= num / 3600; //if(a=12) {a=0;}
f= num / 3600 % 10; */
display_led(1,giay1);//hi?n th? s? 1 trên led 1
delay(10); //trong th?i gian là 1s
display_led(2,giay2);//hi?n th? s? 2 trên led 2
delay(10); //trong th?i gian là 1s
display_led(3,phut);
delay(10);
}
}
-
//*****************************************
void phim_an(void) // ham test phim
{
if(clock==0)
{
delay(10);// chong dung phim
if(clock==0)// cho nha contac
delay(10); // chong dung phim
dem++;
}
}
Code này không hiệu quả. Nếu phím không được bấm, hàm này cũng chạy và delay tổng cộng 20, dem sẽ tăng thêm 1 đơn vị.
Nếu bạn muốn bắt đầu đếm sau khi phím được bấm thì phải sửa hàm này.
Comment
-
Em phải tự hỏi mục đích của phím ấn là gì ? Để kiểm soát khi nào cho đồng hồ chạy ? Nếu là như vậy, thì em phải đưa hàm phim_an ra ngoài while(1):
main()
{
clock = 0;
phim_an();
while(1)
{
... code cho đồng hồ đếm
}
}
Nếu em muốn đồng hồ đếm liền thì không cần hàm phim_an. Chỉ cần có delay đúng cho (thí dụ một giây đồng hồ) là đủ. Nếu làm cho chính xác thì phải dùng timer để tính đúng 1 giây. Nếu không cần chính xác thì có thể thí nghiệm xem delay bao lâu là đủ.
Comment
-
ý của em là khi ấn nút một lần thì trong led 7 thanh hiện lên số 1, khi ấn n lần thì hiện lên n lần. bác cat52 có thể hướng dẫn timer cho em ko ạ? thêm cả ngắt trong ngắt ngoài nữa, em dốt E lắm. cho em hỏi thêm cả phần hiển thị nữa, em thấy nó cứ giật cục nó không hiển thị liên tục mà cứ nháy nháy, em đã để delay(10); mà vẫn ko đc?
Comment
-
Nguyên văn bởi hoasua_2005 Xem bài viếtý của em là khi ấn nút một lần thì trong led 7 thanh hiện lên số 1, khi ấn n lần thì hiện lên n lần. bác cat52 có thể hướng dẫn timer cho em ko ạ? thêm cả ngắt trong ngắt ngoài nữa, em dốt E lắm. cho em hỏi thêm cả phần hiển thị nữa, em thấy nó cứ giật cục nó không hiển thị liên tục mà cứ nháy nháy, em đã để delay(10); mà vẫn ko đc?
Comment
-
Nguyên văn bởi hoasua_2005 Xem bài viếtý của em là khi ấn nút một lần thì trong led 7 thanh hiện lên số 1, khi ấn n lần thì hiện lên n lần. bác cat52 có thể hướng dẫn timer cho em ko ạ? thêm cả ngắt trong ngắt ngoài nữa, em dốt E lắm. cho em hỏi thêm cả phần hiển thị nữa, em thấy nó cứ giật cục nó không hiển thị liên tục mà cứ nháy nháy, em đã để delay(10); mà vẫn ko đc?Attached Files
Comment
-
Nguyên văn bởi hoasua_2005 Xem bài viếtbác lacduong ơi, file *.DSN máy em ko đọc đuợc, bác dùng proteus bản mấy đấy? em dùng bản 6
BAc vào trang này load về đi. Của trang 4shared.com nhiều đồ chơi lắm. nếu bản này Ko được thì search lại bản khác nha, vì minh ko chắc lắm, chỉ biết mình lấy từ đây.
http://www.4shared.com/file/82133133...Patch.html?s=1
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Khác nhau giữa mạch cân bằng chủ động toàn dãy và mạch cân bằng chủ động kiểu so áp 2 string liền kề.bởi louisnkCụ đã lên design chi tiết cho mạch để test chưa?
-
Channel: Điện tử dành cho người mới bắt đầu
19-09-2024, 08:12 -
-
bởi Manh.n.trMọi người cho em hỏi có bác nào làm project mạch đo độ mặn chưa ạ. Cho em hỏi có bác nào mô phỏng được trên Proteus không ạ? Em sinh viên đầu năm 3 tay mơ chưa biết nhiều mong mọi người giúp đỡ ạ
-
Channel: Các mạch điện ứng dụng
17-09-2024, 13:54 -
-
Trả lời cho Xin hỏi về mạch khuếch đạibởi yname11Ko đc bác ạ, mạch nó tự ngắt. Thôi đành dùng 1 kênh vậy, thanks bác nhé....
-
Channel: Điện thanh
15-09-2024, 10:44 -
-
bởi nguyendinhvanTôi thì không học về MCU, không giỏi về VXL , cũng mờ tịt về công nghiệp thực phẩm, nhưng cũng cố gắng tự làm được cái này.
Đồ ở chợ mua về cứ đặt ở sân, rồi xếp cái máy này lên trên, rồi đi chơi.
Một lúc sau quay...-
Channel: Tâm tình dân kỹ thuật
15-09-2024, 02:36 -
-
Trả lời cho Thép hàn cube led ???bởi nguyendinhvanRa chợ kim khí mua, có nhiều loại to nhỏ. Họ bán cho thợ xây dựng buộc khung đúc bê tông.
Về cắt thành đoạn.
Nhưng làm cho các đoạn dây thép đó thẳng tưng như cái gói mì Ý, thì cũng đòi hỏi công nghệ khéo tay.-
Channel: Điện tử dành cho người mới bắt đầu
15-09-2024, 02:03 -
-
Trả lời cho Thép hàn cube led ???bởi bqvietThép nào cũng hàn thiếc được : thép các-bon, thép không gỉ ... miễn là có chất trợ dung phù hợp. Dùng nhựa thông bình thường thì khó hàn, nhưng trên thị trường bán nhiều loại chất trợ dung đủ kiểu. Đơn giản nhất là dung dịch kẽm clorua ZnCl2.
-
Channel: Điện tử dành cho người mới bắt đầu
15-09-2024, 00:34 -
-
bởi tuyenda1985Các bác cho em hỏi.
Định làm cube led chơi chơi, nhưng vụ que thép để cho nó cứng
Mà chưa biết mua ntn, vì đang alwn tăn, loại này là loại nào (như hình em úp) mà có thể dùng thiếc hàn ??
Cảm ơn...-
Channel: Điện tử dành cho người mới bắt đầu
14-09-2024, 22:05 -
-
Trả lời cho Xin hỏi về mạch khuếch đạibởi thetungPhương án của bạn có thể được ,nhưng có thể rủi ro . Mặt khác bạn muốn tăng công suất thì phải giảm trở kháng của loa ( thí dụ dùng loa 2 ohm )...
-
Channel: Điện thanh
14-09-2024, 11:46 -
-
Trả lời cho Xin hỏi về mạch khuếch đạibởi yname11chập 2 đầu r+, l+ vào làm 1, 2 đầu r-, l- vào làm 1 . rồi đấu vào loa...
-
Channel: Điện thanh
14-09-2024, 07:40 -
-
Trả lời cho Em là người mới . Xin các bác chỉ giáo cách mod điều chỉnh điện áp trên nguồn DELTA esr 48/56abởi nguyendinhvanTheo tôi ấy, mấy cái hệ delta powerone ấy. Cứ để in như thế bán lấy tiền ăn phở.
Có chất bổ vào người, đầu sẽ thông minh ra, sau đó tự nghiên cứu chế tạo một cái nguồn theo ý mình.
Thế là vừa được thông minh, vừa được...-
Channel: Điện tử dành cho người mới bắt đầu
14-09-2024, 01:33 -
Comment