Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
797,62 KB
Nội dung
Báo Cáo Vi Điều Khiển Mạch Đồng Hồ Bài Tập Kết Thúc Học Phần Môn: VI ĐIỀU KHIỂN Đề tài: Đồng Hồ Số GVHD: Nguyễn Khắc Nguyên LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ I-MỤC TIÊU ĐỀ TÀI - Nêu vấn đề: Cùng với phát triển khoa học công nghệ, thiết bị điện tử đã, tiếp tục ứng dụng ngày rộng rãi mang lại hiệu hầu hết lĩnh vực khoa học kỹ thuật đời sống xã hội Việc gia cơng, xử lý tín hiệu điện-điện tử đại dựa sở nguyên lý số Vì thiết bị làm việc dựa sở nguyên lý số có ưu điểm hẳn so với thiết bị làm việc dưạ sở nguyên lý tương tự, đặc biệt kỹ thuật tính tốn Sự phát triển mạnh mẽ công nghệ điện tử cho đời nhiều vi mạch số cỡ lớn với giá thành rẻ khả lập trình cao mang lại thay đổi lớn ngành điện tử Mạch số mức độ khác thâm nhập lĩnh vực điện tử thông dụng chuyên nghiệp cách nhanh chóng Tuy nhiên bên cạnh ngày chíp vi xử lý ứng dụng rộng rãi nhiều lãnh vực, họ 89XXX loại IC thích hợp cho sinh viên bắt đầu tìm hiểu vi xử lý Các IC họ 89XXX ứng dụng nhiều mạch điện tử với nhiều chức Một mạch thơng dụng có sử dụng IC họ 89XXX mạch đồng hồ Đề tài đồng hồ đa dạng với nhiều chức khác tùy vào khả lập trình kiến thức mạch số người chế tạo Mục tiêu nhóm sau : -Phần cứng: thiết kế mạch điện hồn chỉnh giờphút led đoạn -Phần mềm: Sử dụng hợp ngữ để lập trình cho đồng hồ hiển thị, ứng dụng ngắt timer, ngắt Sau lập trình hồn chỉnh thời gian chạy xác mong muốn Giới hạn đề tài phạm vi hiển thị giờ, phút Khơng có hiển thị giây ngày, tháng, năm GVHD: Nguyễn Khắc Nguyên LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ II-GIẢI QUYẾT VẤN ĐỀ Phần cứng - Sơ đồ khối hệ thống: KHỐI HIỂN THỊ BỘ ĐIỀU KHIỂN VẬT LÝ (NÚT ẤN) CPU KHỐI XỬ LÝ VÀ ĐIỀU KHIỂN TRUNG TÂM - Hoạt động chung hệ thống Bộ điều khiển vật lý gồm có nút ấn start stop Khi ta ấn start khối CPU cho đồng hồ hoạt động hiển led đoạn Khi ta ấn nút Stop đồng hồ ngưng hoạt động, ta ấn Start đồng hồ hoạt động lại 0000 - Sơ đồ nguyên lý chi tiết GVHD: Nguyễn Khắc Nguyên LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ - Thiết kế chi tiết: * Khối hiển thị Gồm Led đoạn – Anode chung – (LED7SEG) gắn thành cặp hiển thị theo dạng HH:MM (Giờ:Phút), ngăn hai cặp HH MM Led đơn (SEC) Bốn Led đoạn: Có nhiệm vụ hiển thị phút Kiểu hiển thị dùng kiểu quét Led với tần số cố định nên độ sáng Led trước sau Các chân điều khiển nhận tín hiệu từ Vi điều khiển (4 chân Port0 – P0.3, P0.2, P0.1, P0.0 ứng với HH MM) tác động mức cao Các chân a,b,…,g (ở không dùng đến dp nên không đề cập đến đoạn dp) nhận tín hiệu BCD từ Port1 Vi điều khiển, tác động mức thấp Khi khởi động bốn Led hiển thị số Khi ấn Start đồng hồ bắt đầu đếm Led đầu hiển thị giờ, Led sau hiển thị phút Khi ấn Stop đồng hồ ngừng đếm, số phút chốt lại hiển thị Led theo thứ tự HH MM (giờ phút) Khi muốn đồng hồ đếm lại cần ấn Start, số phút trờ bắt đầu đếm cũ Nếu sau ấn Start mà lại ấn Start khơng có tác dụng nhằm tránh trường hợp lỡ ấn hai lần vào nút Start làm đồng hồ bắt đầu không mong muốn Sau đồng hồ chạy dừng ấn nút Stop mà ta ấn Stop khơng có tác dụng, số đồng hồ reset ấn nút Start Hai Led đơn (SEC) có tần số sáng tắt theo Giây (tần số 1Hz) Ngoài chức cho biết số Giây, hai Led đơn cho ta biết đồng hồ đếm đồng hồ ngừng đếm Cụ thể ta ấn Start hai Led chớp tắt với tần số trên, ấn Stop đồng hồ ngừng đếm hai Led tắt không chớp GVHD: Nguyễn Khắc Nguyên LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ * Khối CPU – Khối xử lý điều khiển trung tâm Để nhận, xuất, xử lý hiển thị ta cần điều khiển trung tâm (CPU) Nhận tín hiệu điều khiển từ điều khiển vật lý: vi điêu khiển nhận tín hiệu từ nút ấn hai chân P3.0 P3.1 Port3 tương ứng với nút Start nút Stop Tín hiệu hai chân lúc khơng ấn nút mức cao, ấn mức thấp Xử lý tín hiệu: Sau nhận tín hiệu từ nút ấn, vi điều khiển xem xét đưa kết tùy thuộc vào nút ấn nút mà cho đồng hồ ngừng chạy hay chạy, reset Xuất tín hiệu: vi điều khiển ta lập trình dùng bảng liệu mã BCD cho Led đoạn kiểu Cathod để điều khiển hiển thị Led đoạn Nguyên nhân dùng mã đoạn kiểu Cathod bảng mã lập sẵn, ta không cần tốn công lập lại bảng mã kiểu Anode mà cần lấy đảo tín hiệu mã đoạn kiểu Cathod kết mã đoạn kiểu Anode Bốn chân điều khiển tác động mức cao điều khiển Port0 MSC51 giải pháp tốt nhằm phù hợp với yêu cầu đề tài Cụ thể AT89C52 – loại vi điều khiển thuộc họ MSC51 hãng Atmel AT89C52 chức phần cứng phần mềm đáp ứng yêu cầu đề tài Việc lập trình thực lắp mạch nguyên lý ta dùng AT89C52 không khác so với loại vi điều khiển khác dòng MSC51 Nguyên nhân dẫn đến lựa chọn đáp ứng tốt khả xuất nhập Port (có Port) nhớ lưu trữ ROM 8K byte RAM 256 byte Bên cạnh chênh lệch giá thành AT89C52 với loại vi điều khiển 8051 (như AT89C51) khơng bao Do lựa chọn sử dụng AT89C52 thiết thực GVHD: Nguyễn Khắc Nguyên LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ * Khối Điều khiển vật lý: Để điều khiển việc hoạt động đồng hồ ta dùng hai nút ấn thường hở tần tiếp điểm Để nhận tín hiệu từ nút ấn ta dùng điện trở 330 kéo dương nút ấn chân vi điều khiển nối với nút ấn sơ đồ nguyên lý Phía cịn lại nút ta nối xuống MASS Như trạng thái bình thường – khơng ấn – tín hiệu vi điều khiển đọc mức cao, ấn nút tín hiệu mức thấp Nút Start: Có nhiệm vụ sau ấn phát tín hiệu cho vi điều khiển biết để chạy đồng hồ Khi ấn, thời gian lưu trữ giờ, phút, giây… reset ban đầu Nút Stop: Có nhiệm vụ sau ấn phát tín hiệu cho vi điều khiển biết để ngừng đồng hồ, đồng hồ đếm Bên cạnh nút Stop cịn nút phép nút Start có tác dụng sau ấn Start Cụ thể: Sau ấn Start nút Start bị vơ hiệu hóa tác dụng, ấn Stop nút Start trở lại cũ có tác dụng ban đầu * Chú ý: Ngồi khối kể cịn số phần khối khác ta không nhắc đến lắp vào mạch là: o Khối Reset cho vi điều khiển o Khối tạo xung cho vi điều khiển o Khối tạo nguồn 5V GVHD: Nguyễn Khắc Nguyên LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ Phần mềm SƠ ĐỒ KHỐI: T=5000 CM BEGIN SP Buff SCANLED isStart Khởi Động HH,MM,SS,MSS TMOD,IE ISR_SCANLED SCANBUTTON T0,T1 T=10000 CM TR0,TR1 VAR… CLOCK MAIN ISR_CLOCK INT0 INT1 IsStart=1; IsStart=1; Reset HH,MM,SS,MSS Reset HH,MM,SS,MSS STARTCLOCK STOPCLOCK Sơ đồ khối chương trình GVHD: Nguyễn Khắc Nguyên LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ CHƯƠNG TRÌNH CHÍNH MAIN: BEGIN SP Buff isStart Khởi Động HH,MM,SS,MSS TMOD,IE SCANBUTTON T0,T1 TR0,TR1 VAR… MAIN Sau cấp nguồn reset mạch reset, vi điều khiển nhảy tới thực lệnh Main, lệnh chương trình Sau nhảy tới Main bước khởi động, sau tiến trình kiểm tra phím ấn Sau thực xong việc kiểm tra phím ấn quay lại tiếp tục kiểm tra phím ấn Cịn việc khác thực ngắt cài đặt phần sau Khởi động gồm: o Khởi động trỏ Stack o Khởi động vùng đệm hiển thị Buff Gồm bốn byte reset o Biến nhớ điều khiển việc chạy/ngừng đồng hồ IsStart đưa o Khởi động biến nhớ thời gian đếm HH, MM, SS, MSS là: giờ, phút, giây MSS=SS/100 (phần trăm giây) Tất reset o Khởi động hai biến nhớ phục vụ tối ưu hóa ấn phím ckStart ckStop Được reset o Reset chân SecTic (P3.4) chân chớp tắt hai led có nhiệm vụ thể dao động số giây o Khởi động ColLed VarCol Port0 - xuất tín hiệu điều khiển Led bảy đoạn - biến nhớ tương ứng ColLed ánh xạ VarCol Việc xoay Port0 để hiển thị Led đoạn kiểu quét thực VarCol sau xuất ColLed Nguyên nhân việc dùng xoay trực tiếp ColLed sau hiển thị tín hiệu mức cao đưa Led bị kéo GVHD: Nguyễn Khắc Nguyên LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ xuống mức thấp sụt áp Led đoạn tiêu thụ dịng làm tín hiệu (chứng minh thực nghiệm) Nếu ta tiếp tục xoay Port0 (ColLed) tồn tín hiệu mức thấp, khơng thể điều khiển led sáng o Cài đặt TMOD để sử dụng Timer dùng cho ngắt Timer o Cài đặt khởi trị Timer o Cài đặt IE, cho phép ngắt Timer ngắt o Bắt đầu khởi động Timer GVHD: Nguyễn Khắc Nguyên LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ Code lập trình cho khởi động: Mov Sp,#255-32 Mov Buff+0,#0 Mov Buff+1,#0 Mov Buff+2,#0 Mov Buff+3,#0 Mov HH,#0 Mov MM,#0 Mov SS,#0 Mov MSS,#0 Clr IsStart Clr CkStart Clr CkStop Clr SecTic Mov ColLed,#10H Mov VarCol,#10H Mov Col,#4 Mov TMOD,#11H Mov TL0,#03CH Mov TH0,#0F6H Mov TL1,#0F0H Mov TH1,#0D8H ;Tran sau 10000 CM Mov IE,#8FH ;Cho phep ngat ngat ngoai va timer SetB TR0 ;Bat Timer0 SetB TR1 ;Bat Timer1 GVHD: Nguyễn Khắc Nguyên ;00010000 ;Setup Timer0 va Timer1 o Mode ;Tran sau 2500 CM 10 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ HAI NGẮT NGỒI INT0, INT1 VÀ HAI CHƯƠNG TRÌNH PHỤC VỤ NGẮT NGOÀI STARTCLOCK VÀ STOPCLOCK: INT0 INT1 IsStart=1; IsStart=0; Reset HH,MM,SS,MSS STARTCLOCK STOPCLOCK Như ta đề cập trên, hai chương trình phục vụ ngắt ngồi STARTCLOCK STOPCLOCK kích hoạt từ việc kiểm tra nút ấn Start Stop Việc sử dụng ngắt lược bỏ ta hồn tồn đặt dịng lệnh hai ngắt chương trình SCANBUTTON Nhưng nhằm phục vụ cho việc học tập, nghiên cứu nên ta sử dụng ngắt ngồi để kiểm chứng ta học lý thuyết STARTCLOCK: Đơn giản Set bit IsStart để kích hoạt đồng hồ chạy, reset biến thời gian HH, MM, SS, MSS vùng đệm hiển thị STOPCLOCK: Clear bit IsStart để ngưng đồng hồ GVHD: Nguyễn Khắc Nguyên 14 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ Code chương trình STARTCLOCK STOPCLOCK StartClock: SetB IsStart Mov Buff+0,#0 Mov Buff+1,#0 Mov Buff+2,#0 Mov Buff+3,#0 Mov HH,#0 Mov MM,#0 Mov SS,#0 Mov MSS,#0 Reti StopClock: Clr IsStart Reti GVHD: Nguyễn Khắc Nguyên 15 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ NGẮT TIMER0 VÀ CHƯƠNG TRÌNH PHỤC VỤ NGẮT ISR_SCANLED: T=5000 CM SCANLED ISR_SCANLED Để phục vụ cho việc hiển thị Led đoạn theo kiểu quét, ta dùng ngắt Timer (Timer0) Khi thực lệnh ngắt, chương trình SCANLED gọi hiển thị Led đoạn Led đoạn Trước gọi lệnh SCANLED việc cài đặt lại Timer0 thiếu Chu kỳ tính cho vịng qt Led (Chu kỳ để ngắt Timer0 hoạt động) 5000 chu kỳ máy (CM) Nghĩa là: Sau 5000x4=20000 CM = 0.02s Led đoạn sáng trở lại Điều tương đương với tần số sáng f=1/T=1/0.02=50Hz, đủ để mắt người khơng phát có thay đổi sáng tắt 20000CM Led0 5000CM Led1 Led2 Led3 Biểu đồ xung cấp cho led đoạn GVHD: Nguyễn Khắc Nguyên 16 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ Code chương trình phục vụ ngắt Timer0 ISR_SCANLED: ISR_ScanLed: Clr TR0 Mov TL0,#078H+10 ;Tru di 10 Chu ky may di nhay vao lenh ngat Mov TH0,#0ECH SetB TR0 Call ScanLed ;Tran sau 5000 CM ;Bat Timer0 Reti Việc ta lại cộng thêm 10 vào TL0 việc lại nói trừ 10 Chu ký máy… nhắc phần ngắt Timer1 CHƯƠNG TRÌNH CON SCANLED: Chương trình SCANLED gọi nhờ lệnh chương trình phục vụ ngắt Timer0 IRS_SCANLED Nhiệm vụ chương trình ScanLed hiển thị giá trị thời gian đếm đồng hồ led đoạn, việc chớp tắt led đơn SEC Lệnh gọi sau 5000CM để hiển thị gọi led đoạn cho sáng GVHD: Nguyễn Khắc Nguyên 17 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ Code chương trình SCANLED: ScanLed: Mov A,VarCol RR A Mov VarCol,A Mov ColLed,A Jnb Col7,Col7_Not0 Mov VarCol,#08H Col7_Not0: Mov DPTR,#DB7SEG Mov A,#Buff Dec Col Add A,Col Mov R0,A Mov A,@R0 MovC A,@A+DPTR CPL A Mov RowLed,A Mov A,Col Cjne A,#0,Col_Not0 Mov Col,#4 Col_Not0: Ret ; -DB7SEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H ;BANG DU LIEU "CODE LED DOAN" GVHD: Nguyễn Khắc Nguyên 18 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ NGẮT TIMER1 ISR_CLOCK: VÀ CHƯƠNG TRÌNH PHỤC VỤ NGẮT Chương trình ngắt Timer1 phần nói thiết yếu đề tài này, để định độ xác cho đồng hồ tùy thuộc phần lớn vào việc ta xử lý ngắt Ở ta dùng ngắt Timer1 chương trình phục vụ ngắt ISR_CLOCK Ngắt Timer1 hoạt động sau 10000CM Lý ta con số 10000CM đơn giản hóa việc tính tốn, giúp cho việc tính tốn xác Vì đề tài cần có đồng hồ có thời gian thực, nên chương trình gọi ngắt Timer1 CLOCK phải kết hợp nhuần nhuyễn với ngắt Timer1 để tính tốn số xác Trong chương trình phục vụ ngắt Timer1 ISR_CLOCK đơn giản việc cài đặt lại Timer1 gọi chương trình CLOCK Code chương trình phục vụ ngắt Timer1 ISR_CLOCK: ISR_Clock: Clr Mov ngat Mov SetB Call TR1 TL1,#0F0H+10 ;Tru di 10 Chu ky may di nhay vao lenh TH1,#0D8H TR1 ;Tran sau 10000 CM ;Bat Timer0 Clock Reti Cũng chương trình phục vụ ngắt Timer0, chương trình phục vụ ngắt Timer1, biến TL1 cộng thêm 10 ghi trừ 10 chu kỳ máy nảy vào lệnh ngắt Lý là: đồng hồ hoạt động cách xác nhất, việc hiển thị cách đặn nhất, ngắt Timer phải gọi cách đặn Bằng thực nghiệm mô với phần mềm KeilC, ta biết được, kể từ ngắt Timer (Timer0 Timer1) gọi ngắt (tràn) hoạt động trở lại ta cần thêm 10 CM gồm lệnh nhảy vào ngắt cài đặt lại khởi trị cho Timer Vì ta thêm 10 vào byte TL Timer đồng nghĩa với giảm 10 CM cho Timer Cho nên qua ta chứng minh rằng, đồng hồ dùng code lập trình chạy cách xác nói khơng có vấn đề khác xảy sai số Tuy nhiên, Timer0 Timer1 tràn lúc, lệnh ngắt gọi lúc điều không thể, điều dẫn tới sai số cho đồng hồ Để khắc phục điều này, ban đầu qua chương trình khởi động, ta cho khởi động Timer cách khoảng định, cụ thể là: GVHD: Nguyễn Khắc Nguyên 19 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ Timer0 tràn lần sau 2500CM, Timer1 tràn lần sau 10000CM Ở Timer1 không thay đổi tràn sau 10000CM lần tràn tiếp Nhưng sau lần tràn đầu Timer0 cài tràn sau 5000CM Việc làm cho Timer tràn thời gian khác nhau, khơng có việc Timer tràn lúc, đảm bảo cho tính xác đồng hồ GVHD: Nguyễn Khắc Nguyên 20 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ CHƯƠNG TRÌNH CON CLOCK: INC(MSS) MSS=100? No INC(SS) SS=60? INC(MM) MM=60? INC(HH) CLOCK GVHD: Nguyễn Khắc Nguyên 21 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ Để tính tốn thời gian cho đồng hồ, ta sử dụng biến nhớ HH, MM, SS, MSS tương ứng với giờ, phút, giây, phần trăm giây MSS=SS/100 Như lần gọi gọi lệnh CLOCK ta cộng thêm vào MSS Nếu sau cộng vào MSS mà MSS 100 ta cộng thêm vào SS gán MSS Lệnh lặp lại SS 60 (60 giây) cộng thêm vào MM (phút) gán SS Và làm tương tự HH (Giờ) Cuối HH 99 ta ngừng đồng hồ cách Clear IsStart Code chương trình CLOCK: GVHD: Nguyễn Khắc Nguyên 22 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ Clock: Jnb IsStart,Clock_exit Clock_Start: Mov A,MSS INC A Mov MSS,A Cjne A,#50,Next_0 CPL SecTic Next_0: Cjne A,#100,Next_1 CPL SecTic Next_1: Jc Clock_Exit Mov MSS,#0 Mov A,SS INC A Mov SS,A ; -Phuc vu toi uu hoa phim an Start Stop Jnb Stop,Clock_Next2 Clr CkStop Clock_Next2: ; -Ket thuc {Phuc vu toi uu hoa phim an Start Stop} Cjne A,#60,Next_2 Next_2: Jc Clock_Exit Mov SS,#0 Mov A,MM INC A Mov MM,A Cjne A,#60,Next_3 Next_3: Jc Clock_Exit Mov MM,#0 Mov A,HH INC A Mov HH,A GVHD: Nguyễn Khắc Nguyên 23 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Cjne Mạch Đồng Hồ A,#99,Next_4 Next_4: Jc Clock_Exit Clr IsStart Clock_Exit: Mov A,HH Mov B,#10 Div AB Mov Buff+0,A Mov Buff+1,B Mov A,MM Mov B,#10 Div AB Mov Buff+2,A Mov Buff+3,B Ret CODE ĐẦY ĐỦ: ;Khai bao port vao RowLed Data ColLed Data P0 Col7 Bit Start Bit Stop Bit SecTic Bit ;Khai bao doan du lieu Bseg at IsStart: Dbit CkStart: Dbit CkStop : Dbit IsTimer: Dbit Dseg at Buff: DS HH: MM: SS: MSS: DS Col: DS VarCol: DS Var1: DS LA: HH2: DS MM2: DS Button: DS P1 P0.7 P3.0 P3.1 P3.4 20h 1 1 30h DS GVHD: Nguyễn Khắc Nguyên DS DS 1 1 DS 1 1 1 ;Khai bao doan chuong trinh Cseg at 0h Org 0H Jmp Main Org 0BH Jmp ISR_ScanLed Org 01BH 24 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ Jmp ISR_Clock 03H Jmp StartClock Org 13H Jmp StopClock Org 030H ;Dinh nghia chuong trinh chinh Jb CkStart,CheckStop Jb Start,CheckStop SetB CkStart Clr P3.2 SetB P3.2 CheckStop: Jb CkStop,ScanButton_Exit Jb Stop,ScanButton_Exit SetB CkStop Clr CkStart Clr SecTic Clr P3.3 SetB P3.3 ScanButton_Exit: Ret ; -StartClock: SetB IsStart Mov Buff+0,#0 Mov Buff+1,#0 Mov Buff+2,#0 Mov Buff+3,#0 Mov HH,#0 Mov MM,#0 Mov SS,#0 Mov MSS,#0 Reti ; -StopClock: Clr IsStart Reti ; -ISR_Clock: Clr TR1 Mov TL1,#0F0H+10 ;Tru di 10 Chu ky may di nhay vao lenh ngat Mov TH1,#0D8H ;Tran sau 10000 CM SetB TR1 ;Bat Timer0 Call Clock Reti ; -ISR_ScanLed: Clr TR0 Org Main: Mov Mov Mov Mov Mov Mov Mov Mov Mov Mov Mov Clr Clr Clr Clr Clr Mov Mov Sp,#255-32 Buff+0,#0 Buff+1,#0 Buff+2,#0 Buff+3,#0 HH,#0 MM,#0 SS,#0 MSS,#0 HH2,#0 MM2,#0 IsTimer IsStart CkStart CkStop SecTic ColLed,#10H VarCol,#10H ;00010000 Mov Col,#4 Mov TMOD,#11H ;Setup Timer0 va Timer1 o Mode Mov TL0,#03CH Mov TH0,#0F6H ;Tran sau 2500 CM Mov TL1,#0F0H Mov TH1,#0D8H ;Tran sau 10000 CM Mov IE,#8FH ;Cho phep ngat ngat ngoai va timer SetB TR0 ;Bat Timer0 SetB TR1 ;Bat Timer1 Main_Loop: Call ScanButton Jmp Main_loop ; -ScanButton: GVHD: Nguyễn Khắc Nguyên 25 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ Mov TL0,#078H+10 ;Tru di 10 Chu ky may di nhay vao lenh ngat Mov TH0,#0ECH ;Tran sau 5000 CM SetB TR0 ;Bat Timer0 Call ScanLed Reti ; -Clock: Jnb IsStart,Clock_exit Clock_Start: Mov A,MSS INC A Mov MSS,A Cjne A,#50,Next_0 CPL SecTic Next_0: Cjne A,#100,Next_1 CPL SecTic Next_1: Jc Clock_Exit Mov MSS,#0 Mov A,SS INC A Mov SS,A ; -Phuc vu toi uu hoa phim an Start Stop Jnb Stop,Clock_Next2 Clr CkStop Clock_Next2: ; -Ket thuc {Phuc vu toi uu hoa phim an Start Stop} Cjne A,#60,Next_2 Next_2: Jc Clock_Exit Mov SS,#0 Mov A,MM INC A Mov MM,A Cjne A,#60,Next_3 Next_3: Jc Clock_Exit Mov MM,#0 Mov A,HH INC A Mov HH,A Cjne A,#99,Next_4 GVHD: Nguyễn Khắc Nguyên Next_4: Jc Clr Clock_Exit: Mov Mov Div Mov Mov Mov Mov Div Mov Mov Clock_Exit IsStart A,MM B,#10 AB Buff+0,A Buff+1,B A,SS B,#10 AB Buff+2,A Buff+3,B Ret ; -ScanLed: Mov A,VarCol RR A Mov VarCol,A Mov ColLed,A Jnb Col7,Col7_Not0 Mov VarCol,#08H Col7_Not0: Mov DPTR,#DB7SEG Mov A,#Buff Dec Col Add A,Col Mov R0,A Mov A,@R0 MovC A,@A+DPTR CPL A Mov RowLed,A Mov A,Col Cjne A,#0,Col_Not0 Mov Col,#4 Col_Not0: Ret ; -DB7SEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,0 7H,7FH,6FH,40H ;BANG DU LIEU "CODE LED DOAN" ; -End 26 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ III KẾT LUẬN Ưu điểm: Qua Kết thực tế ta thấy đồng hồ hoạt động tốt, cách sử dụng đơn giản, xác với yêu cầu thiết kế ban đầu : + Khi ấn Start Thì đồng hồ bắt đầu điếm từ + Khi ấn Stop đồng hồ ngưng => đồng hồ hoạt động với mức sai số không đáng kể Nhược điểm: Do lâp trình vi xử lý nên khơng thể đạt độ xác tối đa sau thời gian có số lổi làm cho hệ thống khơng xác lúc đầu (sai số qua trình tính tốn sai số linh kiện) Hướng phát triển: Bằng việc ứng dụng kỹ thuật vi xử lý, thiết kế hệ thống khơng hiển thị giờ-phút mà cịn hiển thị lun giây, ngày, tháng, năm… cịn phát triển nhiều loại đơng hồ kiểu khác đồng hồ hẹn hay loại động hồ đa khác, tính thời gian… Muốn phát triển trước tiên ta cần phải có kiến thức đủ rộng có hiểu biết sâu mạch số, lập trình… Lời kết: Mạch đồng hồ số đề tài thiết thực gần gũi với sống Đây đề tài nhỏ đề tài mà chúng em tự tìm hiểu thi cơng, qua giúp chúng em ứng dụng kiến thức mà học Vì lần đầu thực mạch thực tế hoàn chỉnh dựa vào kiến thức học nên nhiều sai sót hạn chế nên chưa ý muốn Mong đóng góp ý kiến Thầy bạn GVHD: Nguyễn Khắc Nguyên 27 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Báo Cáo Vi Điều Khiển Mạch Đồng Hồ Mục Lục I - MỤC TIÊU ĐỀ TÀI Trang II - GIẢI QUYẾT VẤN ĐỀ Trang Phần cứng Trang Phần mền Trang III - KẾT LUẬN Trang 24 Ưu điểm Trang 24 Nhược điểm Trang 24 Hướng phát triển Trang 25 Lời kết Trang 25 GVHD: Nguyễn Khắc Nguyên 28 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... Cáo Vi Điều Khiển Mạch Đồng Hồ * Khối CPU – Khối xử lý điều khiển trung tâm Để nhận, xuất, xử lý hiển thị ta cần điều khiển trung tâm (CPU) Nhận tín hiệu điều khiển từ điều khiển vật lý: vi. .. cho vi điều khiển biết để chạy đồng hồ Khi ấn, thời gian lưu trữ giờ, phút, giây… reset ban đầu Nút Stop: Có nhiệm vụ sau ấn phát tín hiệu cho vi điều khiển biết để ngừng đồng hồ, đồng hồ đếm... Báo Cáo Vi Điều Khiển Mạch Đồng Hồ III KẾT LUẬN Ưu điểm: Qua Kết thực tế ta thấy đồng hồ hoạt động tốt, cách sử dụng đơn giản, xác với yêu cầu thiết kế ban đầu : + Khi ấn Start Thì đồng hồ bắt