Tình hình là thế này , em năm nay mới bắt đầu học môn AVR ( dùng ngôn ngữ C ) , mới học đến chương LCD thì được thầy giáo giao một bài tập là LCD hiển thị thời gian có các nút điều chỉnh sử dụng ATEMEGA32 . Hix em còn gà lắm nên mong các bác hướng dẫn em làm bài này với về cả thuật toán và Code . Em mới nhập môn mới học đến LCD thôi ạ nên các bác làm ơn đơn giản dùm ạ , chứ em có tìm được vài bài trên diễn đàn về hiển thị thời gian trên LCD nhưng nhiều linh kiên quá , nhìn mà rối tung lên . Mong các bác giúp đỡ ạ !
Thông báo
Collapse
No announcement yet.
Newbie xin được các cao thủ chỉ giáo
Collapse
X
-
em dùng ngắt timer để đếm thời gian , ví dụ cho timer 50ms ngắt 1 lần thì sau 20 lần ngắt tăng biến giây 1 lần , tuơng tự cho giờ phút. Trong chuơng trình chính em chỉ điều khiển LCD thôi. Đó là thuật toán còn code thì anh ko rành lắm tại chưa viết cho avr.
còn lcd em xem trong link đưa kèm có hướng dẫn giao tiếp đầy đủ với LCD.
Link : http://vagam.dieukhien.net//user_upl.../LCD-VAGAM.rar
Comment
-
Giúp em với các anh ơi , chả hiểu sao cái con số hiển thị giây nó không chạy nữa , chỉ phần giờ thôi các anh ạ , phần ngày tháng em đang nghĩ dở
HTML Code:***************************************************** This program was produced by the CodeWizardAVR V2.03.9 Standard Automatic Program Generator © Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Version : Date : 3/7/2012 Author : Tita Titon Company : Comments: Chip type : ATmega32 Program type : Application AVR Core Clock frequency: 8.000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 512 *****************************************************/ #include <mega32.h> #include <delay.h> // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x12 ;PORTD #endasm #include <lcd.h> // Declare your global variables here #define UPG PINA.0 #define UPP PINA.1 #define UPS PINA.2 #define UPD PINA.3 #define UPM PINA.4 #define UPY PINA.5 unsigned char gio=0,phut=0,giay=0,ngay=1,thang=1,nam=10; unsigned int dinhthoi; interrupt [TIM0_OVF] void timer0_ovf_isr(void) { #asm("cli") dinhthoi++; if(dinhthoi == 100) { dinhthoi=0; giay++; { if(giay==100) { giay=0; phut++; { if(phut==60) { phut=0; gio++; { if(gio==24) { gio=0; ngay++; { if(ngay==31) { ngay=1; thang++; { if(thang==12) { thang=1; nam++; } } } } } } } } } } } TCNT0=6; #asm("sei") } void hienthi (void) { lcd_gotoxy(0,0); lcd_putsf("TIME: "); lcd_gotoxy(6,0); lcd_putchar(48+gio/10); lcd_gotoxy(7,0); lcd_putchar(48+gio%10); lcd_gotoxy(8,0); lcd_putsf(":"); lcd_gotoxy(9,0); lcd_putchar(48+phut/10); lcd_gotoxy(10,0); lcd_putchar(48+phut%10); lcd_gotoxy(11,0); lcd_putsf(":"); lcd_gotoxy(12,0); lcd_putchar(48+giay/10); lcd_gotoxy(13,0); lcd_putchar(48+giay%10); lcd_gotoxy(0,1); lcd_putsf("DATE:"); lcd_gotoxy(5,1); lcd_putchar(48+ngay/10); lcd_gotoxy(6,1); lcd_putchar(48+ngay%10); lcd_gotoxy(7,1); lcd_putsf("-"); lcd_gotoxy(8,1); lcd_putchar(48+thang/10); lcd_gotoxy(9,1); lcd_putchar(48+thang%10); lcd_gotoxy(10,1); lcd_putsf("-"); lcd_gotoxy(11,1); lcd_putsf("2"); lcd_gotoxy(12,1); lcd_putsf("0"); lcd_gotoxy(13,1); lcd_putchar(48+nam/10); lcd_gotoxy(14,1); lcd_putchar(48+nam%10); } void main(void) { // Declare your local variables here // Input/Output Ports initialization // Port A initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0xFF; DDRA=0x00; // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00; DDRB=0x00; // Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00; DDRC=0x00; // Port D initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTD=0x00; DDRD=0xFF; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 1000.000 kHz // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x03; TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x01; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // LCD module initialization lcd_init(16); #asm("sei") while (1) { // Place your code here hienthi(); if(!UPG) {delay_ms(50); gio++; if(gio>23) gio=0; } if(!UPP) {delay_ms(50); phut++; if(phut>59) phut=0; } if(!UPS) {delay_ms(50); giay++; if(giay>59) giay=0; } if(!UPD) {delay_ms(50); ngay++; if(ngay>31) ngay=1; } if(!UPM) {delay_ms(50); thang++; if(thang>12) thang=1; } if(!UPY) {delay_ms(50); nam++; if(nam>99) nam=0; }; } }
Last edited by quyenmovic; 08-03-2012, 03:58.
Comment
Bài viết mới nhất
Collapse
-
bởi lct1610E có adapter laptop cũ hiệu asus chạy tốt ,có đầu ra ổn định ở 19,4v dòng 3,42A ( công suất 60w). E định là hạ nó xuống 12v để cấp nguồn cho đầu camera. Và e đã thử bằng cách can thiệp vào phần hồi tiếp (sử dụng ic DAS001 hay TSM103W) thông...
-
Channel: Điện tử dành cho người mới bắt đầu
hôm nay, 18:44 -
-
bởi nguyendinhvanỞ đây thì cũng chỉ có mấy cái máy tập gym là cùng, vào Nhà máy thì không đủ tuổi, mà bài thực hành thì không đủ cơm trưa.
Mà mấy cái máy gym thì cần giải pháp đồng bộ tốt hơn là biện pháp chắp vá....-
Channel: Đặt hàng
26-12-2024, 23:12 -
-
Trả lời cho Mạch tự động bật nguồnbởi nguyendinhvanMấy cái hệ thống Minh Thông đó là tôi tránh xa.
Vì một ngày mình bấm nút La- bô mấy lần, bấm vào những giờ nào nó cũng lưu vào datalog.
Dễ lộ bảo mật.
...-
Channel: Điện tử gia dụng
26-12-2024, 23:00 -
-
Trả lời cho Mạch tự động bật nguồnbởi vi van phamĐinh Vặn và Nhà Thùng ngồi uống bia thì cúp điện. Đinh Vặn vào trạng thái stanby, cầm ly bia mà không uống được. Đến khi có điện, cảm biến của Đinh Vặn phát huy chức năng, cầm chai bia tu 1 hơi.
Nhà Thùng vào trạng thái stanby,...-
Channel: Điện tử gia dụng
26-12-2024, 07:47 -
-
Trả lời cho Mạch tự động bật nguồnbởi nhathung1101Lão hôm nay uốn mấy lọ? Làm tôi đọc bài của lão toát cả mồ hôi, mãi khi nhìn sơ đồ mới hiểu....
Aiza... Lão lại đi về thời 0.4 rồi! Giờ cảm biến và trợ lý và thiết bị có đầy...
Tôi về đến Pháp Vân, gọi...-
Channel: Điện tử gia dụng
25-12-2024, 23:30 -
-
bởi nguyendinhvanĐa số các đồ điện là cứ có điện là sẽ hoạt động.
Nhưng ngày nay, nhiều thiết bị điện có điều khiển không tự hoạt động khi có điện nguồn. Máy chỉ ở chế độ stanby, tới khi người sử dụng nhấn phím power.
Ví dụ...-
Channel: Điện tử gia dụng
25-12-2024, 21:02 -
-
bởi nhathung1101Muốn đặt gì thì cũng phải có thông tin cơ bản. Việc nhỏ thế này mà phải dấu giếm thì người lớn không thèm làm đâu.
Cho bạn 3 ngày, không là sẽ xóa.-
Channel: Đặt hàng
22-12-2024, 22:02 -
-
Trả lời cho Hỏi cách điều chế xungbởi nhathung1101Schmit Trigger là chuẩn với điều kiện rise > 0,8V.
Bí thì dùng vi với tích gì đó, miễn đừng nói phân kẻo chó ở đây lại sủa nhặng.-
Channel: Kỹ thuật điện tử tương tự
22-12-2024, 21:57 -
-
bởi trungautMình cần đặt hàng thiết kế chế tạo mạch nghịch lưu 3 pha để cài đặt các thuật toán điều khiển động cơ FOC, DTC, ... Xin liên hệ trungaut@gmail.com để bàn chi tiết. Xin cảm ơn diễn dàn đăng tin!
-
Channel: Đặt hàng
22-12-2024, 14:27 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi tuyennhanCách ly dây điện vào , bộ nguồn và đèn khỏi khung xe thì có rò thật cũng không lo bị giật .
-
Channel: Điện tử dành cho người mới bắt đầu
21-12-2024, 08:56 -
Comment