Dưới đây sẽ trình bày ứng dụng nhỏ của vi điều khiển, thiết kế đồng hồthời gian thực hiển thị trên LCD Để đề tài được hoàn thành theo đúng thời gian qui định đồng thời đạt được kếtquả đề
Trang 1LỜI CAM ĐOAN
Đề tài: Đồng hồ số hiển thị thời gian thực bằng LCD , có ứng dụng trong thực
tế, vì vậy em chọn đề tài này để làm đồ án cho mình
Trong quá trình thực hiện đề tài, có thể còn nhiều thiếu sót do kiến thức hạnchế nhưng những nội dung trình bày trong quyển báo cáo này là những hiểu biết và
thành quả của em đạt được dưới sự giúp đỡ của giảng viên hướng dẫn là Thầy Trần Hữu Danh
Em xin cam đoan rằng: những nội dung trình bày trong quyển báo cáo đồ ánnày không phải là bản sao chép từ bất kỳ công trình đã có trước nào Nếu không đúng
sự thật, em xin chịu mọi trách nhiệm trước nhà trường
Cần Thơ, ngày 8 tháng 12 năm 2011
Sinh viên thực hiện
Lê Thái Ngọc
Lư Hùng Cường
Trịnh Minh Hiếu
Trang 2LỜI NÓI ĐẦU
Bộ vi xử lý ngày càng phát triển và được sử dụng trong hầu hết các hệ thốngđiều khiển trong công nghiệp cũng như các thiết bị dân dụng Chính nhờ vai trò vàchức năng của vi điều khiển đã đem lại nhiều ưu điểm và các tính năng đặc biệt chocác hệ thống điều khiển.Trong thực tế, các ứng dụng của vi điều khiển rất đa dạng vàphong phú Dưới đây sẽ trình bày ứng dụng nhỏ của vi điều khiển, thiết kế đồng hồthời gian thực hiển thị trên LCD
Để đề tài được hoàn thành theo đúng thời gian qui định đồng thời đạt được kếtquả đề ra không chỉ là sự nỗ lực của bản thân người thực hiện đề tài mà còn có sựgiúp đỡ, sự chỉ bảo của thầy và chia sẻ kinh nghiệm từ các bạn sinh viên
Người thực hiện đề tài xin chân thành cảm ơn :
Sự chỉ dẫn và góp ý chân thành của thầy Trần Hữu Danh Cám ơn thầy đã nhiệt
tình cung cấp thông tin hướng dẫn và hỗ trợ kiểm tra, khắc phục các thông tin chưachính xác
Các bạn sinh viên trong lớp đã giúp đỡ rất nhiều về mặt phương tiện, ý kiến
Trong quá trình thực hiện đề tài này, mặc dù nhóm thực hiện đề tài đã rất cốgắng, xong sẽ không tránh khỏi thiếu xót Rất mong nhận được sự góp ý, phê bình, chỉdẫn của quý thầy và các bạn sinh viên
Trang 3
PHỤ LỤC
LỜI CAM ĐOAN 1
GIỚI THIỆU SƠ LƯỢC 4
CHƯƠNG I : LÝ THUYẾT TỔNG QUAN 5
Yêu cầu và giới hạn đề tài 5
1.3 Phân tích từng khối 5
1.3.1 Khối xử l trung tâm-MSP430G2152 5
1.3.2Khối thời gian IC DS1307 8
1.3.3 Bộ phận hiển thị (LCD) 14
1.4 Sơ đồ nguyên ly tổng quát 17
CHƯƠNG 2 : THIẾT KẾ VÀ THI CÔNG 19
2.1 Lưu đồ giải thuật 19
2.1.1 Chương trình chính 19
2.1 2Chương trình giao tiếp với LCD 19
2.2.3Sơ đồ mạch in: 20
2.3 Các linh kiện sử dụng trong mạch: 21
CHƯƠNG 3 : KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 21
3.1 Thành công của đề tài: 21
3.2 Hạn chế của đề tài: 21
3.3 Hướng phát triển của đề tài: 21
CHƯƠNG TRÌNH VÀ TÀI LIỆU THAM KHẢO 22
Chương trình C: 22
TÀI LIỆU THAM KHẢO 37
Trang 4GIỚI THIỆU SƠ LƯỢC
Đây là một ứng dụng sử dụng vi điều khiển MSP430 để thiết kế đồng hồ thời gianthức hiển thị LCD:
Trang 5CHƯƠNG I : LÝ THUYẾT TỔNG QUAN
Yêu cầu và giới hạn đề tài
1.1.1 Yêu cầu:
Hiển thị thời gian giờ, phút, giây trên LCD với dữ liệu được truy xuất từ IC thời gian thực DS1307
1.1.2 Giới hạn đề tài:
1.2 Sơ đồ khối của mạch
Hình 1.1: Sơ đồ khối mạch đồng hồ thời gian thực
Trang 6Chức năng của các chân:
Và một số địa chỉ port cần lưu y:
Trang 7 Kiến trúc nguồn điện cực thấp để mở rộng tuổi thọ của Pin
- 1uA duy trì RAM
- Điện thế nguồn thấp 1.8V đến 3.6V
- 0.8uA chế độ xung thời gian thực
- 250uA/MIPS tích cực ở 1Mhz, 2.2V
Xử l tín hiệu tương tụ hiệu suất cao
16 bit RISC CPU cho phép đươc nhiều ứng dụng, thể hiện ở phần code lập trình
Trong lập trình cho bộ nhớ Flash cho phép thay đổi Code một cáchlinh hoạt, phạm vi rộng, bộ nhớ Flash có thể lưu lại dược nhật k của dữ liệu
Những modul giao tiếp ngoại vi được sắp xếp vào không gian địa chỉ, không gian địa chỉ từ 0100h tới 01FFh được giành riêng cho modul ngoại
vi 16 bit Những modul này có thể đượ truy cập với những từ chỉ dẫn (lệnh) Không gian địa chỉ từ 0FFh được giành riêng cho module giao tiếp ngoại vi 8 bit
Những thanh ghi chức năng đặc biệt(SFR): một vài chức năng ngoại vi dược cấu hình trong thanh ghi chức năng đặc biệt, các thanh ghi dặc biệt nằm trong 16 byte thấ của không gian địa chỉ Những SFR phải được truy cập bằng việc sử dụng câu lệnh byte
Truy cập bộ nhớ: Những byte được nằm tại địa chỉ chẳn hay lẽ Những từ chỉ nằm tại địa chỉ chẳn được biểu diễn như trong hình Khi sử dụng chỉ dẫn, chỉ những địa chỉ chẵn có thể được sử dụng Những bute thâpf của một từ luôn là địa chỉ chẳn Byte cao ở tại địa chỉ lẻ tiếp theo
RAM: có địa chỉ bắt đầu tại 0200h Địa chỉ kết thúc của RAM phụ thuộc vào số lượng RAM có và thay đổi tùy thuộc vào từng dòng vi điều khiển RAM có thể được sử dụng cho cả mã và dữ liệu
Trang 81.3.2Khối thời gian IC DS1307
Giới thiệu chung về DS1307
IC thời gian thực là họ vi điều khiển của hãng dalat DS1307 có một số đặc trưng cơ bản sau:
- DS1307 là IC thời gian thực với nguồn cung cấp nhỏ dùng để cập nhật thời gian
và ngày tháng
- SRAM :56bytes
- Địa chỉ và dữ liệu được truyền nối tiệp qua 2 đường bus 2 chiều
- DS1307 có môt mạch cảm biến điện áp dùng để dò các điện áp lỗi và tự động đóng ngắt với nguồn pin cung cấp 3V:
+ DS1307 có 7 byte dữ liệu nằm từ địa chỉ 0x00 tới 0x06, 1 byte điểu khiển,
và 56 byte lưu trữ ( dành cho người sủ dụng )
+ Khi xử lý dữ liệu từ DS1307, họ đã tự chuyển cho ta về dạng số BCD, ví dụnhư ta đọc được dữ liệu từ địa chỉ 0x04 (tưong ứng với Day- ngày trong tháng) và tại 0x05 (tháng) là 0x15, 0x11
+ Lưu ý đến vai trò của chân SQW/OUT Đây là chân cho xung ra của
DS1307 có 4 chế độ 1Hz, 4.096HZ, 8.192Hz, 32.768Hz các chế độ này đuợc quy định bởi các bít của thanh ghi Control Register (địa chỉ 0x07 )
+ Địa chỉ của DS1307 là 0xD0
Cơ chế hoạt động : DS1307 hoạt động với vai trò slave trên đường bus nối tiếp.Việctruy cập được thi hành với chỉ thị start và một mã thiết bị nhất định được cung cấp bởiđịa chỉ các thanh ghi Tiếp theo đó các thanh ghi sẽ được truy cập liên tục đến khi chỉthị stop đươc thực thi
1.3.2.1 Cơ chế hoạt động và chức năng của DS1307
Hinh 1.11: Sơ đồ nguyên lí mạch IC DS1307
Vcc: nối với nguồn
X1,X2: nối với thạch anh 32,768 kHz
Vbat: đầu vào pin 3V
GND: đất
Trang 9SCL: dãy xung clock
SQW/OUT: xung vuông/đầu ra driver
DS1307 là một IC thời gian thực với nguồn cung cấp nhỏ, dùng để cập nhật thờigian và ngày tháng với 56 bytes SRAM Địa chỉ và dữ liệu được truyền nối tiếpqua 2 đường bus 2 chiều Nó cung cấp thông tin về giờ,phút,giây ,thứ,ngày ,tháng,năm.Ngày cuối tháng sẽ tự động được điều chỉnh với các tháng nhỏ hơn 31ngày,bao gồm cả việc tự động nhảy năm Đồng hồ có thể hoạt động ở dạng 24hhoặc 12h với chỉ thị AM/PM DS1307 có một mạch cảm biến điện áp dùng để dòcác điện áp lỗi và tự động đóng ngắt với nguồn pin cung cấp
DS 1307 hoạt động với vai trò slave trên đường bus nối tiếp Việc truy cập đượcthi hành với chỉ thị START và một mã thiết bị nhất định được cung cấp bởi địa chỉcác thanh ghi Tiếp theo đó các thanh ghi sẽ được truy cập liên tục đến khi chỉ thịSTOP được thực thi
Sơ đồ khối của DS1307:
Hinh 1.12: Sơ đồ khối của DS1307 1.3.2.2 Mô tả hoạt động của các chân
• Vcc,GND: nguồn một chiều được cung cấp tới các chân này Vcc là đầu vào 5V Khi 5V được cung cấp thì thiết bị có thể truy cập hoàn chỉnh và dữ liệu có thể đọc và viết Khi pin 3 V được nối tới thiết bị này và Vcc nhỏ hơn 1,25Vbat thì quá trình đọc và viết không được thực thi,tuy nhiên chức năng timekeeping không
bị ảnh hưởng bởi điện áp vào thấp Khi Vcc nhỏ hơn Vbat thì RAM và timekeeper
sẽ được ngắt tới nguồn cung cấp trong (thường là nguồn 1 chiều 3V)
• Vbat: Đầu vào pin cho bất kỳ một chuẩn pin 3V Điện áp pin phải được giữ trong
Trang 10khoảng từ 2,5 đến 3V để đảm bảo cho sự hoạt động của thiết bị
• SCL(serial clock input): SCL được sử dụng để đồng bộ sự chuyển dữ liệu trên đường dây nối tiếp
• SDA(serial data input/out): là chân vào ra cho 2 đường dây nối tiếp Chân SDA thiết kế theo kiểu cực máng hở , đòi hỏi phải có một điện trở kéo trong khi hoạt động
• SQW/OUT(square wave/output driver)- khi được kích hoạt thì bit SQWE được thiết lập 1 chân SQW/OUT phát đi 1 trong 4 tần số (1Hz,4kHz,8kHz,32kHz) Chân này cũng được thiết kế theo kiểu cực máng hở vì vậy nó cũng cần có một điện trở kéo trong Chân nàysẽ hoạt động khi cả Vcc và Vbat được cấp
• X1,X2: được nối với một thạch anh tần số 32,768kHz Là một mạch tạo dao động ngoài, để hoạt động ổn định thì phải nối thêm 2 tụ 33pF
• Cũng có DS1307 với bộ tạo dao động trong tần số 32,768kHz, với cấu hình này thì chân X1 sẽ được nối vào tín hiệu dao động trong còn chân X2 thì để hở
1.3.2.3 Sơ đồ địa chỉ RAM và RTC
Hinh1.13: Sơ đồ địa chỉ RAM và RTC
• Thông tin về thời gian và ngày tháng được lấy ra bằng cách đọc các byte thanh ghi thích hợp thời gian và ngày tháng được thiết lập cũng thông qua các byte thanh ghi này bằng cách viết vào đó những giá trị thích hợp nội dung của các thanh ghi dưới dạng mã BCD(binary coded decreaseimal) Bit 7 của thanh ghi seconds là bit clock halt(CH),khi bit này được thiết lập 1 thì dao động disable, khi
nó được xoá về 0 thì dao động được enable
Chú ý: enable dao động trong suốt quá trình cấu hình thiết lập (CH=0).Thanh ghi thời gian thực được mô tả như sau:
Trang 11Hình 1.14: Thanh ghi thời gian thực
• DS1307 có thể chạy ở chế độ 24h cũng như 12h Bit thứ 6 của thanh ghi hours là bitchọn chế độ 24h hoặc 12h khi bit này ở mức cao thì chế độ 12h được chọn ở chế độ 12h thì bit 5 là bit AM/PM với mức cao là là PM ở chế độ 24h thì bit 5 là
bitchỉ20h(từ20hđến 23h)
• Trong quá trình truy cập dữ liệu, khi chỉ thị START được thực thi thì dòng thời gian được truyền tới một thanh ghi thứ 2,thông tin thời gian sẽ được đọc từ thanh ghi thứ cấp này,trong khi đó đồng hồ vẫn tiếp tục chạy Trong DS1307 có một thanh ghi điều khiển để điều khiển hoạt động của chân SQW/OUT :
• OUT(output control): bit này điều khiển mức ra của chân SQW/OUT khi đầu raxung vuông là disable Nếu SQWE = 0 thì mức logic ở chân SQW/OUT sẽ là 1 nếuOUT=1 và OUT = 0 nếu OUT = 0
• SQWE(square wave enable): bit này được thiết lập 1 sẽ enable đầu ra của bộ tạodao động Tần số của đầu ra sóng vuông phụ thuộc vào giá trị của RS1 và RS0
DS1307 hỗ trợ bus 2 dây 2 chiều và giao thức truyền dữ liệu thiết bị gửi dữ liệu
Trang 12lên bus được gọi là bộ phát và thiết bị nhận gọi là bộ thu thiết bị điều khiển quá trìnhnày gọi là master thiết bị nhận sự điều khiển của master gọi là slave Các bus nhận sựđiều khiển của master,là thiết bị phát ra chuỗi xung clock(SCL),master sẽ điều khiển
sự truy cập bus,tạo ra các chỉ thị START và STOP
a) Sự truyền nhận dữ liệu trên chuỗi bus 2 dây :
Tuỳ thuộc vào bit R/ w mà 2 loại truyền dữ liệu sẽ được thực thi:
• Truyền dữ liệu từ master truyền và slave nhận: Master sẽ truyền byte đầu tiên là địa chỉ của slave Tiếp sau đó là các byte dữ liệu slave sẽ gửi lại bit thông báo đã nhận được (bit acknowledge) sau mỗi byte dữ liệu nhận được dữ liệu sẽ truyền từ bit
có giá trị nhất (MSB)
• Truyền dữ liệu từ slave và master nhận: byte đầu tiên (địa chỉ của slave) được truyền tới slave bởi master Sau đó slave sẽ gửi lại master bit acknowledge tiếp theo
đó slave sẽ gửi các byte dữ liệu tới master Master sẽ gửi cho slave các bit
acknowledge sau mỗi byte nhận được trừ byte cuối cùng,sau khi nhận được byte cuối cùng thì bit acknowledge sẽ không được gửi
Master phát ra tất cả các chuỗi xung clock và các chỉ thị START và STOP sự truyền sẽ kết thúc với chỉ thị STOP hoặc chỉ thị quay vòng START Khi chỉ thị START quay vòng thì sự truyền chuỗi dữ liệu tiếp theo được thực thi và các bus vẫn chưa được giải phóng Dữ liệu truyền luôn bắt đầu bằng bit MSB
nó bằng 0 sau khi nhận và giải mã byte địa chỉ thì thiết bị sẽ phát đi 1 tín hiệu acknowledge lên đường SDA Sau khi DS1307 nhận dạng được địa chỉ và bit ghi thì master sẽ gửi một địa chỉ thanh ghi tới DS1307 , tạo ra một con trỏ thanh ghi trên DS1307 và master sẽ truyền từng byte dữ liệu cho DS1307 sau mỗi bit
acknowledge nhận được sau đó master sẽ truyền điều kiện STOP khi việc ghi hoàn thành
Trang 13• Chế độ slave phát ( chế độ DS1307 đọc): byte đầu tiên slave nhận được tương tự như chế độ slave ghi Tuy nhiên trong chế độ này thì bit chiều lại chỉ chiều truyền ngược lại Chuỗi dữ liệu được phát đi trên SDA bởi DS 1307 trong khi chuỗi xung clock vào chân SCL Các điều kiện START và STOP được nhận dạng khi bắt đầu hoặc kết thúc truyền một chuỗi byte địa chỉ nhận được đầu tiên khi master phát đi điều kiện START Byte địa chỉ chứa 7 bit địa chỉ của slave và 1 bit chiều cho phép đọc là 1 Sau khi nhận và giải mã byte địa chỉ thì thiết bị sẽ nhận 1 bit acknowledge trên đường SDA Sau đó DS1307 bắt đầu gửi dữ liệu tới địa chỉ con trỏ thanh ghi thông qua con trỏ thanh ghi.Nếu con trỏ thanh ghi không được viết vào trước khi chế
độ đọc được thiết lập thì địa chỉ đầu tiên được đọc sẽ là địa chỉ cuối cùng chứa trong con trỏ thanh ghi DS1307 sẽ nhận được một tín hiệu Not Acknowledge khi kết thúc quá trình đọc Đọc dữ liệu-chế độ slave phát
• Thời gian thực hiện việc đọc,ghi dữ liệu của DS1307: sơ đồ đồng bộ:
Hinh 1.15: Sơ đồ đồng bộ
Trang 14Hinh 1.16: Đặc tính và thời gian thực hiện 1.3.3 Bộ phận hiển thị (LCD)
1.3.3.1 Chức năng các chân LCD
Trang 15Chân Tên Chức năng
1 Vss Chân nối đất cho LCD, khi thiết kế mạch nối chân này với
GND của mạch điều khiển
2 Vdd Chân cấp nguồn cho LCD, khi thiết kế mạch nối chân này
với Vcc= 5V
3 Chân này dùng để điều chỉnh độ tương phản của LCD
4 RS Chân chọn thanh ghi(Register select) Nối chân RS với
logic “0”(GND) hoặc “1” (Vcc) để chọn thanh ghi
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (write) hoặc với bộ đếm địa chỉ (read)
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu
DR bên trong LCD
5 R/W Chân chọn chế độ đọc/ghi Nối chân này với logic “0” để
LCD ghi, hoặc nối với logic “1” để đọc
6 E Chân cho phép(Enable) Sau khi các tín hiệu được đặt lên
bus DB0-DB7, các lệnh chỉ được chấp nhân khi có 1 xungcho phép của chân E
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào thanh ghi bên trong nó khi phát hiện một xung cho phép của chân E
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên của chân E và được LCD giữ ở bus cho đến khi nào chân E xuống mức thấp
Trang 16-Cl trung tâm-MSP430G2152ear Displ trung tâm-MSP430G2152ay(xóa LCD): lệnh này xóa toàn bộ nội dung DDRAM và vì thế xóa
toàn bộ hiển thị trên LCD Vì đây là một lệnh thanh ghi nên chân RS phải được reset
ve 0 trước khi ghi lệnh nay lên LCD
-Cursor home: đưa con trỏ về vị trí đầu dòng ,dòng đầu tiên của bộ nhớ DDRAM,vì
thế nếu sau một lệnh này mmootj biến được ghi vào DDRAM thì biến này sẽ nằm ở vịtrí đầu tiên(1;1).RS cũng phải bằng 0 trước khi ghi lệnh
-Set DDRAM address: định vị trí con trỏ cho DDRAM ,di chuyển con trỏ đến vị trí
tùy ý trong DDRAM,để thực hiện lệnh này thì RS phải bằng 0,bit MSB của mã lệnh ( D7) phải bằng 1,7 bit còn lại của mã lệnh chính là địa chỉ cần trỏ đến
-Write to CGRAM or DDRAM: ghi dữ liệu vào CGRAM or DDRAM vì đây không
phải là lệnh ghi mà là một lệnh dữ liệu nên chân RS phải set lên 1 trước khi ghi lệnh vào LCD
-Entry mode set: xác lập các hiển thi liên tiếp cho LCD.
-Displ trung tâm-MSP430G2152ay on/off control trung tâm-MSP430G2152 :xác lập cách hiển thi cho LCD.
-Function set :xác lập chứ năng cho LCD ,đây là lệnh thiết lập phương thức giao tiếp
LCD ,RS cũng phải bằng 0 khi sử dụng lệnh này
Trang 17Mode up down
P1.2/TA1 15P1.1/TA0 14P1.0/TACLK 13
P1.3/TA2 16P1.4/SMCLK/TCK 17
P1.7/TA2/TDO/TDI 20P1.6/TA1/TDI/TCLK 19P1.5/TA0/TMS 18
4 Giảm con trỏ(dịch con trỏ sang trái)
5 Tăng con trỏ(dịch con trỏ sang phải)
6 Dịch hiển thị sang phải
7 Dịch hiển thị sang trái
8 Tăng con trỏ, tắt hiển thị
A Tắt hiển thị, bật con trỏ
C Bật hiển thị, tắt con trỏ
E Bật hiển thị, nhấp nháy con trỏ
F Tắt con trỏ, nhấp nháy con trỏ
10 Dịch vị trí con trỏ sang trái
14 Dịch con trỏ sang phải
18 Dịch toàn bộ hiển thị sang trái1C Dịch toàn bộ hiển thị sang phải
80 Ép con trỏ về đầu dòng thứ nhấtC0 Ép con trỏ về đầu dòng thứ hai
38 Hiển thị LCD 2 dòng và ma trận 5x7
1.3.3.3 Giao tiếp 4 bit
LCD cho phép giao tiếp với bộ điều khiển ngoài theo chế độ 4 bit.Trong chế độ
này các chân D1,D2,D3 của LCD không được sử dụng ,chỉ có chân D4-D7 kết nối với bộ điều khiển ngoài Vì vậy ,dữ liệu 8 bit sẽ được đọc và ghi được chia thành 2 phần : được gọi là các Nibbles ,mỗi Nibbles gồm 4 bit được giao tiếp từ D7-
D4,Nibbles cao được xử lý trước và Nibbles thấp được xử lý sau.Ưu điểm lớn nhất của phương pháp này là tối ưu được số đường dùng cho giao tiếp LCD.Tuy nhiên việc đọc và ghi Nibbles tương đối khó khăn hơn đọc và ghi dữ liệu 8 bit
1.4 Sơ đồ nguyên ly tổng quát