16-06-2011, 09:58 PM
|
#5
|
Đệ tử 7 túi
Tham gia ngày: May 2005
Bài gửi: 258
:
|
Trích:
Nguyên văn bởi pstin
- Chiêu 1: Là khi nhấn phím thì phải chờ cho nó nhả rồi mới thực hiện lệnh. Đoạn dưới là khi phím mode được nhấn thì set thời gian cho DS1307, sau đó qua tiếp trang 3.
If (mode==1)
{
while(mode==1)
{output_high(PIN_B1);
delay_ms(10);
}
output_low(PIN_B1);
ds1307_set_date_time(day,mth,year,dow,hr,min,sec);
delay_us(10);
lcd_refresh();
ttmode=3;
count=0;
}
- Chiêu 2: Là khi phím nhấn đang được nhấn thì tăng hay giảm giá trị liên tục. Thời gian 250ms là tương đối chuẩn. Đoạn dưới là khi phím "len" được nhấn thì tăng giá trị của giờ hoặc phút. Nhấn rồi thả thì tăng 1 đơn vị, nhấn luôn thì tăng liên tục.
Biến count là để đêm thời gian thực hiện ngắt timer để thoát khỏi trang hiện tại khi không có ai nhấn phím. Nếu không thì vđk cứ ở hoài trang chỉnh thì "trớt wớt"!!!!!!!!
if(len==1)
{
while(len==1)
{ output_high(PIN_B1);
count=0;
if(vitrichinh==0)
{
min=min+1;
if(min==60) min=0;
delay_ms(250);
lcd_gotoxy(10,2);
lcd_putc(min/10+0x30);
lcd_gotoxy(11,2);
lcd_putc(min%10+0x30);
lcd_gotoxy(11,2);
lcd_send_byte(0,0x0f);
}
if(vitrichinh==1)
{
hr=hr+1;
if(hr==24) hr=0;
delay_ms(250);
lcd_gotoxy(7,2);
lcd_putc(hr/10+0x30);
lcd_gotoxy(8,2);
lcd_putc(hr%10+0x30);
lcd_gotoxy(8,2);
lcd_send_byte(0,0x0f);
}
}
output_low(PIN_B1);
}
Nói chung là còn "dấu nghề" do cái bịnh của xứ VN ta từ xưa tới nay, anh em chịu khó thui. Cái chuyện phím nhấn này làm được nhiều thứ đó.
|
code trên là của 'halinh12sinh' nếu bạn muốn giúp thì hãy sửa thẳng trên code của bạn ấy, để người mới học có cái nhìn trực quan hơn.
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề.
|
|
|