LỜI NÓI ĐẦU: Ngày nay,các bộ vi điều khiển đang có ứng dụng ngày càng rộng rãi và thâm nhập ngày càng nhiều trong các lĩnh vực kĩ thuật và đời sống xã hội.Hầu hết các thiết bị kĩ thuật từ phức tạp cho đến đơn giản như thiết bị điều khiển tự động,thiết bị văn phòng cho đến các thiết bị trong gia đình đều có dùng các bộ vi điều khiển.Và một số ứng dụng đơn giản nhất cho các hệ thống nhúng là điều khiển đèn nhấp nháy,đếm số người vào/ra,hiển thị dòng thông báo trên matrix led hay điều khiển ON_OF của động cơ
Và với những kiến thức cơ bản nhất về vi điều khiển và kĩ thuật lập trình nhóm chúng em xin trình bầy một trong những ứng dụng đơn giản của bộ vi điều khiển.Đó là lập trình cho vi điều khiển 89C51 điều khiển dòng chữ chạy “ĐTVT-K7A” được xếp bởi các led đơn với nhiều hiệu ứng khác nhau.
Mặc dù đã cố gắng rất nhiều trong thời gian thực hiên bài tập lớn nhưng chúng em cũng không thể tránh khỏi những sai sót do kiến thức cũng như kinh nghiệm còn hạn chế.Chúng em rất mong nhận được sự đóng góp của thầy giáo và các bạn để bài tập lớn của chúng em được hoàn thiện hơn.
YÊU CẦU: Lập trình cho vi điều khiển 8051 bằng ngôn ngữ ASM hoặc ngôn ngữ C NỘI DUNG: Xếp led thành dòng chữ DTVTK-7A ghép lối với vi điều 8051.Điều khiển cho chạy với nhiều hiệu ứng khác nhau.
24 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2633 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Xếp led thành dòng chữ dtvt-K7a ghép lối với vi điều khiển 8051, viết chương trình điều khiển cho chạy từng chữ từ trái sang phải, từ phải sang trái,sang đồng thời nhấp nháy, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
KHOA CÔNG NGHỆ THÔNG TIN
ĐẠI HỌC THÁI NGUYÊN
………….…O….…………….
BÀI TẬP LỚN
BÀI TẬP 6:
Xếp led thành dòng chữ DTVT-K7A ghép lối với vi điều khiển 8051. Viết chương trình điều khiển cho chạy từng chữ từ trái sang phải, từ phải sang trái,sang đồng thời nhấp nháy,...
Giáo viên hướng dẫn: Th.S PHẠM QUỐC THỊNH
Lớp: Kỹ thuật nhúng N01.TL1
Sinh viên trình bày:
1. Dương Vũ Kiên
2. Vũ Thúy Hằng
3. Nguyễn Văn Hiển
4. Phùng Thị Bích Liên
5. Phạm Thanh Thông
6. Nông Lệ Thủy
Thái Nguyên, tháng 05 năm 2010
LỜI NÓI ĐẦU:
Ngày nay,các bộ vi điều khiển đang có ứng dụng ngày càng rộng rãi và thâm nhập ngày càng nhiều trong các lĩnh vực kĩ thuật và đời sống xã hội.Hầu hết các thiết bị kĩ thuật từ phức tạp cho đến đơn giản như thiết bị điều khiển tự động,thiết bị văn phòng cho đến các thiết bị trong gia đình đều có dùng các bộ vi điều khiển.Và một số ứng dụng đơn giản nhất cho các hệ thống nhúng là điều khiển đèn nhấp nháy,đếm số người vào/ra,hiển thị dòng thông báo trên matrix led hay điều khiển ON_OF của động cơ……………
Và với những kiến thức cơ bản nhất về vi điều khiển và kĩ thuật lập trình nhóm chúng em xin trình bầy một trong những ứng dụng đơn giản của bộ vi điều khiển.Đó là lập trình cho vi điều khiển 89C51 điều khiển dòng chữ chạy “ĐTVT-K7A” được xếp bởi các led đơn với nhiều hiệu ứng khác nhau.
Mặc dù đã cố gắng rất nhiều trong thời gian thực hiên bài tập lớn nhưng chúng em cũng không thể tránh khỏi những sai sót do kiến thức cũng như kinh nghiệm còn hạn chế.Chúng em rất mong nhận được sự đóng góp của thầy giáo và các bạn để bài tập lớn của chúng em được hoàn thiện hơn.
YÊU CẦU:
Lập trình cho vi điều khiển 8051 bằng ngôn ngữ ASM hoặc ngôn ngữ C
NỘI DUNG:
Xếp led thành dòng chữ DTVTK-7A ghép lối với vi điều 8051.Điều khiển cho chạy với nhiều hiệu ứng khác nhau.
Phần I: Sơ lược cấu trúc vi điều khiển 8051
Hiện nay có rất nhiều họ Vi điều khiển trên thị trường với nhiều ứng dụng khác nhau, trong đó họ Vi điều khiển họ MCS-51 được sử dụng rất rộng rãi trên thế giới và ở Việt nam.
Vào năm 1980 Intel công bố chíp 8051(80C51), bộ vi điều khiển đầu tiên của họ vi điều khiển MCS-51. Tiếp theo sau đó là sự ra đời của chip 8052, 8053, 8055 với nhiều tính năng được cải tiến.
Hiện nay Intel không còn cung cấp các loại Vi điều khiển họ MCS-51 nữa, thay vào đó các nhà sản xuất khác như Atmel, Philips/signetics, AMD, Siemens, Matra & Dallas, Semiconductors được cấp phép làm nhà cung cấp thứ hai cho các chip của họ MSC-51. Chip vi điều khiển được sử dụng rộng rãi trên thế giới cũng như ở Việt Nam hiện nay là vi điều khiển của hãng Atmel với nhiều chủng loại vi điều khiển khác nhau.
Hãng Atmel có các chip vi điều khiển có tính năng tương tự như chip vi điều khiển MCS-51 của Intel, các mã số chip được thay đổi chút ít khi được Atmel sản xuất. Mã số 80 chuyển thành 89, chẳng hạn 80C52 của Intel khi sản xuất ở Atmel mã số thành 89C52 (Mã số đầy đủ: AT89C52) với tính năng chương trình tương tự như nhau. Tương tự 8051, 8053, 8055 có mã số tương đương ở Atmel là 89C51, 89C53, 89C55.Vi điều khiển Atmel sau này ngày càng được cải tiến và được bổ sung thêm nhiều chức năng tiện lợi hơn cho người dùng.
Các đặc điểm của 89C51 được tóm tắt như sau :
4 KB EPROM bên trong.
128 Byte RAM nội.
4 Port xuất /nhập I/O 8 bít.
Giao tiếp nối tiếp.
64 KB vùng nhớ mã ngoài
64 KB vùng nhớ dữ liệu ngoại.
Xử lí Boolean (hoạt động trên bít đơn).
210 vị trí nhớ có thể định vị bít.
4 μs cho hoạt động nhân hoặc chia.
89C51 của Atmel 8051 của Intel
Sơ đồ khối của 89C51
Sơ đồ các chân của 89C51:
Phần II: Sơ đồ và các linh kiện trong mạch
Các linh kiện sử dụng:
AT89S52
LED
Thạch Anh 12MHz
Tụ gốm 33pF
Tụ hóa 10μF
Trở 10KΩ, 4,7KΩ, 220Ω
Transistor H1061 (NPN)
Hình ảnh và chức năng của các linh kiện:
AT89S52
Chức năng: Là vi điều khiển chính của mạch.
8 KB EPROM bên trong.
256 Byte RAM nội.
4 Port xuất /nhập I/O 8 bít.
3 bộ định thời 16 bit
Watch dog timer
Các đặc điểm khác giống AT89C51
LED
Các loại LED thực tế Cấu tạo và kí hiệu
Thạch anh 12 MHz
Chức năng: Là nguồn tạo xung nhịp dao động clock ổn định (12 MHz) cho dao động của 8051. Thạch anh sẽ được gắn vào chân XTAL1 và XTAL2 (Chân số 18 và 19) của 8051.
Tụ gốm 33pF
Chức năng: Lọc nhiễu cho dao động thạch anh. 2 tụ gốm 33pF sẽ được nối một đầu với chân của thạch anh, đầu còn lại đấu ra Mass.
Tụ hóa 10μF
Chức năng: Tụ hóa 10μF được gắn đầu âm vào chân reset, đầu dương lên nguồn. Khi cấp điện cho mạch, tụ sẽ phóng điện khiến chân reset bật lên mức cao, khi đó toàn bộ hệ thống sẽ được nạp lại từ đầu. Khi đang vận hành thì tụ hóa ngăn dòng đi vào chân reset.
Transistor H1061
Là loại transistor công suất lớn. Có công dụng như một khóa. Với 1 là cực B, 2 là cực C và 3 là cực E. H1061 có tần số hoạt động tầm 10MHz, β = 60-200 (Tùy thuộc vào dòng điện vào cực C).
Điện trở
Có tác dụng hạn chế dòng điện và phân cực cho transistor.
Phần III – Nguyên lý hoạt động của mạch
Mạch điện được thiết kế gôm 1 IC điều khiển chính 89S52 đhiều khiển toàn bộ hoạt động của mạch, chương trình code được nạp vào IC (code được dịch ra file .hex rồi đưa vào IC qua bộ nạp nối cổng LPT bằng chương trình nạp Aec_isp.exe). Code lập trình cho cổng P2 của IC 89S52, điều khiển đèn LED sáng ở mức 1.
Mỗi chân từ P2.0 đến P2.7 sẽ được nối với cực B của transistor H1061 loại NPN thông qua 1 trở 4,7KΩ để phân cực. Transistor ở đây mang nhiệm vự như 1 khóa. Cực C của H1061 nối với nguồn +5V, cực E sẽ ra LED. Khi tín hiệu điều khiển của IC ra mức 1, transistor sẽ được phân cực thuận, khóa sẽ đóng cho phép dòng điện từ cực C đi đến cực E. Khi tín hiệu điều khiển ở mức 0, khóa mở, dòng điện sẽ bị cắt.
Đèn LED được ghép thành các chữ D T V T - K 7 A. Mỗi chữ được ghép từ 9 đến 11 LED song song. Đầu Kathode của tất cả các LED được nối chung xuống Mass. Các chữ được nối thêm một trở 220Ω để hạn chế dòng điện đi vào LED (Mỗi LED chịu được dòng tối đa là 10mA).
Mạch sau khi hoàn thành:
Phần IV – Chương trình Asembler lập trình cho mạch
ORG 0000H
START:
ACALL NHAYTIEN
ACALL NHAYLUI
ACALL NHAY3
ACALL NHAYCACHQUANG1
ACALL NHAYCACHQUANG2
ACALL NHAYCACHQUANG1
ACALL NHAYCACHQUANG2
ACALL NHAYDANXEN
ACALL NHAYHIEN
ACALL NHAYHIEN1
ACALL NHAYHIEN2
ACALL NHAYHIEN2
ACALL NHAYHIEN1
ACALL NHAY3
ACALL NHAYCHURIENG
ACALL NHAY2
ACALL NHAY1
ACALL NHAY2BENNGOAI
ACALL NHAY2BEN1
ACALL NHAY2BENTRONG
ACALL NHAY2BEN2
ACALL NHAY3
ACALL NHAY2
ACALL XEPCHUMOT
ACALL XEPCHUHAI
ACALL NHAYXEP3
ACALL NHAYXEP4
ACALL NHAYXEP5
ACALL NHAYXEP6
ACALL NHAY3
SJMP START
;
DELAY:
MOV R1, #2
L1: MOV R2, #200
L2: MOV R3, #200
L3 : DJNZ R3, L3
DJNZ R2, L2
DJNZ R1, L1
RET
;
NHAYTIEN:
MOV P2, #00000001B
ACALL DELAY
MOV P2, #00000011B
ACALL DELAY
MOV P2, #00000111B
ACALL DELAY
MOV P2, #00001111B
ACALL DELAY
MOV P2, #00011111B
ACALL DELAY
MOV P2, #00111111B
ACALL DELAY
MOV P2, #01111111B
ACALL DELAY
MOV P2, #11111111B
ACALL DELAY
RET
;
NHAYLUI:
MOV P2, #10000000B
ACALL DELAY
MOV P2, #11000000B
ACALL DELAY
MOV P2, #11100000B
ACALL DELAY
MOV P2, #11110000B
ACALL DELAY
MOV P2, #11111000B
ACALL DELAY
MOV P2, #11111100B
ACALL DELAY
MOV P2, #11111110B
ACALL DELAY
MOV P2, #11111111B
ACALL DELAY
RET
;
NHAYCACHQUANG1:
MOV P2, #00000000B
ACALL DELAY
MOV P2, #00000001B
ACALL DELAY
MOV P2, #00000010B
ACALL DELAY
MOV P2, #00000101B
ACALL DELAY
MOV P2, #00001010B
ACALL DELAY
MOV P2, #00010101B
ACALL DELAY
MOV P2, #00101010B
ACALL DELAY
MOV P2, #01010101B
ACALL DELAY
MOV P2, #10101010B
ACALL DELAY
RET
;
NHAYCACHQUANG2:
MOV P2, #00000000B
ACALL DELAY
MOV P2, #10000000B
ACALL DELAY
MOV P2, #01000000B
ACALL DELAY
MOV P2, #10100000B
ACALL DELAY
MOV P2, #01010000B
ACALL DELAY
MOV P2, #10101000B
ACALL DELAY
MOV P2, #01010100B
ACALL DELAY
MOV P2, #10101010B
ACALL DELAY
MOV P2, #01010101B
ACALL DELAY
RET
;
NHAYDANXEN:
MOV R5, #4
HG1: MOV P2, #01010101B
ACALL DELAY
MOV P2, #10101010B
ACALL DELAY
DJNZ R5, HG1
RET
;
NHAY1:
MOV P2, #10000000B
ACALL DELAY
MOV P2, #01000000B
ACALL DELAY
MOV P2, #00100000B
ACALL DELAY
MOV P2, #00010000B
ACALL DELAY
MOV P2, #00001000B
ACALL DELAY
MOV P2, #00000100B
ACALL DELAY
MOV P2, #00000010B
ACALL DELAY
MOV P2, #00000001B
ACALL DELAY
RET
;
NHAY2:
MOV P2, #00000001B
ACALL DELAY
MOV P2, #00000010B
ACALL DELAY
MOV P2, #00000100B
ACALL DELAY
MOV P2, #00001000B
ACALL DELAY
MOV P2, #00010000B
ACALL DELAY
MOV P2, #00100000B
ACALL DELAY
MOV P2, #01000000B
ACALL DELAY
MOV P2, #10000000B
ACALL DELAY
RET
;
NHAY3:
MOV R6, #4
HG: MOV P2, #00000000B
ACALL DELAY1
MOV P2, #11111111B
ACALL DELAY1
DJNZ R6, HG
RET
;
DELAY1:
MOV R1, #255
TN1: MOV R2, #250
TN2: DJNZ R2, TN2
DJNZ R1, TN1
RET
;
NHAY2BENNGOAI:
MOV P2, #00000000B
ACALL DELAY
MOV P2, #10000001B
ACALL DELAY
MOV P2, #01000010B
ACALL DELAY
MOV P2, #00100100B
ACALL DELAY
MOV P2, #00011000B
ACALL DELAY
RET
;
NHAY2BEN1:
MOV P2, #00000000B
ACALL DELAY
MOV P2, #10000001B
ACALL DELAY
MOV P2, #11000011B
ACALL DELAY
MOV P2, #11100111B
ACALL DELAY
MOV P2, #11111111B
ACALL DELAY
RET
;
NHAY2BENTRONG:
MOV P2, #00000000B
ACALL DELAY
MOV P2, #00011000B
ACALL DELAY
MOV P2, #00100100B
ACALL DELAY
MOV P2, #01000010B
ACALL DELAY
MOV P2, #10000001B
ACALL DELAY
RET
;
NHAY2BEN2:
MOV P2, #00000000B
ACALL DELAY
MOV P2, #00011000B
ACALL DELAY
MOV P2, #00111100B
ACALL DELAY
MOV P2, #01111110B
ACALL DELAY
MOV P2, #11111111B
ACALL DELAY
RET
;
NHAYCHURIENG:
MOV P2, #00000000B
ACALL DELAY
ACALL DELAY
MOV P2, #00001111B
ACALL DELAY
ACALL DELAY
MOV P2, #00010000B
ACALL DELAY
ACALL DELAY
MOV P2, #11100000B
ACALL DELAY
ACALL DELAY
MOV P2, #11111111B
ACALL DELAY
ACALL DELAY
MOV P2, #11111111B
ACALL DELAY
ACALL DELAY
RET
;
XEPCHUMOT:
ACALL DELAY
MOV P2, #10000000B
ACALL DELAY
MOV P2, #10000001B
ACALL DELAY
MOV P2, #10000010B
ACALL DELAY
MOV P2, #10000100B
ACALL DELAY
MOV P2, #10001000B
ACALL DELAY
MOV P2, #10010000B
ACALL DELAY
MOV P2, #10100000B
ACALL DELAY
RET
;
XEPCHUHAI:
ACALL DELAY
MOV P2, #11000000B
ACALL DELAY
MOV P2, #11000001B
ACALL DELAY
MOV P2, #11000010B
ACALL DELAY
MOV P2, #11000100B
ACALL DELAY
MOV P2, #11001000B
ACALL DELAY
MOV P2, #11010000B
ACALL DELAY
MOV P2, #11100000B
ACALL DELAY
RET
;
NHAYHIEN:
MOV P2, #00000011B
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV P2, #00001100B
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV P2, #00010000B
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV P2, #11100000B
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV P2, #00000000B
ACALL DELAY
MOV P2, #11101111B
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV P2, #11111111B
ACALL DELAY
ACALL DELAY
ACALL DELAY
RET
;
NHAYHIEN1:
ACALL DELAY
MOV P2, #11111110B
ACALL DELAY
MOV P2, #11111101B
ACALL DELAY
MOV P2, #11111011B
ACALL DELAY
MOV P2, #11110111B
ACALL DELAY
MOV P2, #11101111B
ACALL DELAY
MOV P2, #11011111B
ACALL DELAY
MOV P2, #10111111B
ACALL DELAY
MOV P2, #01111111B
ACALL DELAY
MOV P2, #11111111B
ACALL DELAY
RET
;
NHAYHIEN2:
ACALL DELAY
MOV P2, #11111111B
ACALL DELAY
MOV P2, #01111111B
ACALL DELAY
MOV P2, #10111111B
ACALL DELAY
MOV P2, #11011111B
ACALL DELAY
MOV P2, #11101111B
ACALL DELAY
MOV P2, #11110111B
ACALL DELAY
MOV P2, #11111011B
ACALL DELAY
MOV P2, #11111101B
ACALL DELAY
MOV P2, #11111110B
ACALL DELAY
RET
;
NHAYXEP3:
ACALL DELAY
MOV P2, #11100000B
ACALL DELAY
MOV P2, #11100001B
ACALL DELAY
MOV P2, #11100010B
ACALL DELAY
MOV P2, #11100100B
ACALL DELAY
MOV P2, #11101000B
ACALL DELAY
MOV P2, #11110000B
ACALL DELAY
RET
;
NHAYXEP4:
ACALL DELAY
MOV P2, #11110000B
ACALL DELAY
MOV P2, #11110001B
ACALL DELAY
MOV P2, #11110010B
ACALL DELAY
MOV P2, #11110100B
ACALL DELAY
MOV P2, #11111000B
ACALL DELAY
RET
;
NHAYXEP5:
ACALL DELAY
MOV P2, #11111000B
ACALL DELAY
MOV P2, #11111001B
ACALL DELAY
MOV P2, #11111010B
ACALL DELAY
MOV P2, #11111100B
ACALL DELAY
RET
;
NHAYXEP6:
ACALL DELAY
MOV P2, #11111100B
ACALL DELAY
MOV P2, #11111101B
ACALL DELAY
MOV P2, #11111110B
ACALL DELAY
MOV P2, #11111111B
ACALL DELAY
MOV P2, #11111110B
ACALL DELAY
MOV P2, #11111111B
ACALL DELAY
RET
;
END
Nhận xét của giảng viên
Các file đính kèm theo tài liệu này:
- BAI TAP LON NHUNG.doc
- 80674_Xếp led thành dòng chữ _.rar