Đề thi, bài tập môn vi điều khiển
Trang 1Câu 1:
Vẽ sơ đồ tổng quát của hệ vi xử lý, nêu chức năng của CPU và quá trình thực hiện chức năng đó.
Chức năng CPU:
Trong mỗi hệ vi xử lý CPU là thành phần quan trọng
nhất, nó quản lý tất cả các hoạt động của hệ vi xử lý và thực hiện các thao tác trên dữ liệu Hầu hết các CPU chỉbao gồm một tập các mạch logic thực hiện liên tục 2
thao tác: tìm nạp lệnh và thực thi lệnh CPU có khả nănghiểu và thực thi các lệnh dựa trên một tập các mã nhị phân, trong đó mỗi một mã thực hiện một thao tác nào đó
Quá trình thực hiện chức năng:
Trang 2- Nạp lệnh:
Nội dung của PC được gửi lên kênh địa chỉ
Tín hiệu điều khiển READ được xác lập
Dữ liệu được đọc từ RAM và gửi đi trên kênh dữ liệu
Nội dung của PC được tăng lên để chuẩn bị tìm nạp lệnh kế tiếp từ bộ nhớ
- thực thi lệnh:
giai đoạn thực thi lệnh bao gồm việc giải mã các mã lệnh và tạo ra các tín hiệu để diều khiển việc xuất nhập giữa các thanh ghi nội với ALU, đồng thời
thông báo để ALU thực hiện thao tác đã được xác định
Trang 3Câu2: Vẽ sơ đồ chân của vi điều khiển AT89C51 và nêu chức năng của từng chân.
Trang 4Chức năng của chân tín hiệu
P0.0 đến P0.7 là chân của cổng 0 (tương tự cácchân còn lại)
Trang 5RXD: Nhận tín hiệu kiểu nối tiếp.
TXD: Truyền tín hiệu kiển nối tiếp
/INT0: Ngắt ngoài 0
/INT1 Ngắt ngoài 1
T0 Chân vào 0 của bộ timer/Counter 0
T1: Chân vào 1 của bộ timer/Counter 1
Wr: Ghi dữ liệu vào bộ nhớ ngoài
RD: đọc dữ liệu bộ nhớ ngoài
RST: Chân vào RESET, tích cực ở mức logic caotrong khoảng 2 chu kỳ máy
XTAL1 Chân vào mạch khuếch đại dao động
XTAL2 Chân từ mạch khuyeeechs đại dao động
/PSEN Chân cho phép đọc bộ nhớ từ chương trìnhngoài
ALE: Chân tín hiệu cho phép chốt địa chỉ để truycập bộ nhớ ngoài
/EA: cho phép truy cập bộ nhớ chương trình ngoàikhi EA=0 Khi EA=1 thì làm việc với chương trìnhnội chú
Trang 6Câu 3: Vi điều khiển AT89C51 có bao nhiêu cổng vào ra? Nêu đặc điểm các cổng Cổng P2 có gì khác so với các cổng còn lại.
Bài làm
Vi điều khiển AT89C51 có 4 cổng vào ra: P0,P1,P2,P3Cổng P0:
Cổng P0 chiếm tất cả 8 chân (từ chân 32 đến 39) Nó có
thể được dùng như cổng đầu ra, để sử dụng các chân
của cổng P0 vừa làm đầu ra, vừa làm đầu vào thì mỗi
chân phải được nối tới một điện trở kéo bên ngoài
10kW Điều này là do một thực tế là cổngP0 là một
máng mở khác với các cổng P1, P2 và P3
Trong bất kỳ hệ thống nào sử dụng 89C51 ta thường nối
cổngP0 tới các điện trở kéo bằng cách này ta có thể sử dụng được cổng P0 cho cả 2 trường hợp đầu ra và đầu
vào Với những điện trở kéo ngoài được nối, khi Reset
cổng P0 được cấu hình như một cổng đầu ra.
Cổng P0 là đầu vào: Với các điện trở được nối tới
cổng P0 nhằm để tạo nó thành cổng đầu vào thì nó phải được lập trình bằng cách ghi 1 tới tất cả các bit của P0.
Cổng P1:
Cổng P1 cũng chiếm tất cả 8 chân (từ chân 1 đến chân 8) nó có thể được sử dụng như đầu vào hoặc đầu ra Sovới cổng P0 thì cổng này không cần đến điện trở kéo vì
nó đã có các điện trở kéo bên trong Trong quá trình
Reset thì cổng P1 được cấu hình như một cổng đầu ra.Cổng P1 là đầu vào: Tương tự P0, để biến cổng P1
thành đầu vào thì nó phải được lập trình bằng cách ghi 1đến tất cả các bit của nó
Trang 7Cổng P2:
Cổng P2 cũng chiếm 8 chân (các chân từ 21 đến 28)
Nó có thể được sử dụng như đầu vào hoặc đầu ra,
giống như cổng P1, cổng P2 cũng không cần điện trở kéo vì nó đã có các điện trở kéo bên trong Khi Reset, thì cổng P2 được cấu hình như một cổng đầu ra
Cổng P2 là đầu vào: Để tạo cổng P2 như đầu vào thì nó phải được lập trình bằng cách ghi các số 1 tới tất cả các chân của nó
Cổng P3:
Cổng P3 chiếm tổng cộng là 8 chân từ chân 10 đến
chân 17 Nó có thể được sử dụng như đầu vào hoặc đầu ra Cống P3 không cần các điện trở kéo cũng như P1 và P2 Mặc dù cổng P3 được cấu hình như một cốngđầu ra khi Reset, nhưng đây không phải là cách nó
được sử dụng phổ biến nhất
Trang 8Câu 4:Vi điều khiển AT89C51 có những thanh ghi đặc biệt nào? Nêu đặc điểm các thanh ghi đặc biệt đó.
Bài làmSFR đảm nhiệm các chức năng khác nhau trong onchip.Chúng nằm ở Ram bên trong On-chip, chiếm vùngkhông gian nhớ 128 Byte được định dịa chỉ từ 80h đếnFFh
- Thanh ghi ACC: Là thanh ghi có độ dài 8bit gọ là
thanh ghi tích lũy Dùng để lưu trữ các toán hạng vàkết quả của phép tính
- Thanh ghi B: Thanh ghi này được dùng khi thực
hiện các phép toán nhân và chia Đối với các lệnh khác
nó có thể xem như là thanh ghi đệm tạm thời Thanhghi B dài 8 bít Nó thuwowngd được dùng chung vớithanh ghi A trong các phép toán nhân hoặc chia
- Thanh ghi SP: Là thanh ghi con tror ngăn xếp dài 8
bit SP chứa dữ liệu hiện đang ở đỉnh của ngăn xếp.Giá trị của nó được tự động tăng lên khi thực hiện lệnhPUSH trước khi dữ liệu lưu trữ ngăn xếp và sẽ tựđộng giảm khi thực hiện lệnh POP Con trỏ ngăn xếpmặc định khởi đầu từ giá trị 07H
- Thanh ghi DPTR: Là thanh ghi con trỏ dữ liệu 16
bits bao gồm 1 thanh ghi byte cao (DPH-8bits) và 1thanh ghi byte thấp (DPL-8bits); DPTR có thể đượcdùng như thanh ghi 16 bits hay 2 thanh ghi độc lập 8bits Nó được dùng để truy cập RAM
- Các cổng P0…P3: Là các chốt của các cổng
0,1,2,3 tương ứng Mỗi chốt gồm 8bits Khi ghi mức
Trang 9logic 1 vào một bits của chốt thì chân ra tương ứng củacổng ở mức logic cao và ngược lại.
- Thanh ghi SBUF: đệm dữ liệu nối tiếp gồm 2 thanh
ghi riêng biệt một thanh ghi đệm phát cà một thanh ghiđệm thu Khi dữ liệu được chuyển tới SBUF nó sẽ đivào bộ đệm phát và được giữ ở đấy để chế biến thànhdạng truyền tin nối tiếp Khi dữ liệu được truyền di từSBUF nõ sẽ đi ra từ bộ đệm thu
- Thanh ghi timer: Các đôi thanh ghi (TH0,TL0),
(TH1,TL1) là các thanh ghi đếm 16 bits tương ứng các
bộ timer/ Counter 0 và 1
- Thanh ghi điều khiểm: Các thanh ghi chức năng
đặc biệt IP, IE, TMOD, TCON, SCON và PCON baogồm các bits trangjt hái và điều khiển đối với hệ thốngngắt các bộ timer/Counter và cổng nối tiếp
- Thanh ghi PSW: Là thanh ghi có độ dài 8 bits gọi là
thanh ghi trang thái chương trình Mỗi bits đảm nhiệm 1chức năng cụ thể
CY: Cờ nhớ, Trong các phép toán số học nếu cónhớ từ phép cộng bít 7 hoặc có số mượn mang đến bits
7 thì CY được đặt bằng 1
AC: Cờ nhớ phụ Khi cộng các giá trị BCD nếu cómột số được tạo ra từ bits 3 chuyển sang bit 4 thì ACđược dặt là 1
F0: Cờ 0: (Có hiệu lực với các mục đích sử dụngchung của người dùng)
Trang 10RS1: Bít 1 điều khiển chọn băng thanh ghi
RS0: Bít 0 điều khiển chọn băng thanh ghi
OV: Cờ tràn: Khi thực hiện các phép toán cộng haytrừ mà xuất hiện tràn số học thì OV được đặt băng 1
P: Cờ chẵn lẻ: được tự động đặt/ Xóa bằng phầncứng trong mỗi chu trình lệnh đẻ chỉ thì số chẵn lẻ hayccuar bít 1 trong thanh ghi tích lũy
- Thanh ghi PCON: thanh ghi điều khiển nguồn
SMOD: bít tạo tốc độ Baud gấp đôi Nếu timer 1được sử dụng đểtạo tốc độ Baud và Smod=1 thì tốc độBaud được tăng lên gấp đôi khi cổng truyền tin nối tiếpđược dùng bởi các kiểu 1,2 hoặc 3
-: Không sử dụng, các bit này có thể dùng ở các bộVXL trong tương lai Người sử dụng không thể dịnhnghĩa cho các bit này
GF0,GF1: cờ dùng cho các mục đích chung
PD: bit nguồn giảm Đặt bit này ở mức tích cực đểvận hành chế độ nguồn giảm, chỉ có thể ra khỏi chế độbằng Reset
IDL: bit chọn chế độ nghỉ Đặt bit này ở mức tíchcực để vận hành kiểu Idle
- Thanh ghi IE: thanh ghi cho phép ngắt.
Trang 11EA: Nếu EA=0 không cho phép ngắt nào hoạt động.Nếu EA=1 mỗi nguồn ngắt riêng biệt được được phéphoặc không được phép hoạt động.
-: không dùng, người sử dụng không nên định nghĩacho bit này
ET2: bit này cho phép hoặc không cho phép ngắt bộtimer
ES: bit này cho phép hoặc không cho phép ngắtcổng nối tiếp
ET1: bit này cho phép hoặc không cho phép ngắttràn bộ timer1
EX1: bit này cho phép hoặc không cho phép ngắtngoài 1
ET0: bit này cho phép hoặc không cho phép ngắttràn bộ timer 0
EX0: bit này cho phép hoặc không cho phép ngắtngoài 0
- Thanh ghi IP: thanh ghi ưu tiên ngắt
-: không dùng, người sử dụng không nên ghi 1 vàocác bit này
PT2: xác định mức ưu tiên của ngắt timer2
PS:định nghĩa mức ưu tiên của ngắt cổng nối tiếp.PT1: định nghĩa mức ưu tiên của ngắt timer 1
PX1: định nghĩa mức ưu tiên của ngắt ngoài 1
PT0: định nghĩa mức ưu tiên của ngắt timer 0
PX0: định nghĩa mức ưu tiên của ngắt timer 0
Trang 12- Thanh ghi TCON: Thanh ghi điều khiển bộ
Timer/Counter
TF1: Cờ tràn Timer1: được đặt bởi phần cứng khitimer 1 tràn Được xóa bở phần cứng khi bộ vi xử lýhướng tới chương trình con phục vụ cho ngắt
TR1: Bít diều khiển bộ timer 1 hoạt động được đặt/Xóa bởi phần mềm để điều khiển bộ timer1
TF0: Cờ tràn Timer0: được đặt bời phần cứng khi bộtimer 0 tràn được xóa bởi phần cứng khi bộ vi xử lýhướng tới chương trình con phục vụ ngắt
TR0: bít điều khiển bọt imer 0 hoạt động được đặt/xóa bở phần mềm để điều khiển bộ timer 0
IE1: Cờ ngắt ngoài 1: được đặt bởi phần cứng khisường xuống của ngắt ngoài 1 được phát hiện đượcxóa bởi phần cứng khi ngắt được xử lý
IT1: bít điều khiển ngắt 1 để tạo ra ngắt ngoài Đượcđắt./ xóa bở phần mềm
IE0: Cờ ngắt ngoài 0: được đặt bởi phần cứng khisường xuống của ngắt ngoài 1 được phát hiện đượcxóa bởi phần cứng khi ngắt được xử lý
IT0: bít điều khiển ngắt 0 để tạo ra ngắt ngoài Đượcđắt./ xóa bở phần mềm
- Thanh ghi TMOD: Thanh ghi điều khiển kiểu
timer/ Counter
Trang 13GATE: khi TRx được thiết lập và GATE=1 bộtimer/counter x hoạt động chỉ khi chân INTx ở mực vao.Khi GATE=0 Timer/Counter x sẽ hoạt đọng chỉ khi TRx
=1
C/(/T) bít này cho phép chọn chức năng là timer haycounter Bít này được xóa để thực hiện chức năng timer.Được đặt để thực hiện chức năng Counter
M0,M1 bít chọn Mode để xác định trang thái và kiểutimer/Counter
M1=0,M0=0: chọn kiểu timer 13 5bits)
bit.(THx-8bits,TLx-M1=0,M0=1: chọn kiểu timer 16 bit.(THx và TLx dài
là bộ timer 8 bit được diều khiển timer 1
- Thanh ghi SCON:
Là thanh ghi trạng thái và điều khiển cổng nối tiếp.
Nó không những chứa các bit chọn chế độ mà còn chứa
Trang 14bit dữ liệu thứ 9 dành cho việc truyền và nhận tín vàchứa các bit ngắt cổng nối tiếp.
SM0,SM1: cho phép chọn chế độ cho cổng truyềnnối tiếp
SM2: Cho phép truyền in đa xử lý thể hiện ở Mode 2
và 3
REN: cho phép nhận nối tiếp được đặt hoặc xóa bởiphần mềm để cho phép hoặc không cho phép nhậnTB8: là bits dữ liệu thứ 9 mà sẽ được truyền ở mode
2 và 3 được đặt/ xóa bởi phần mềm
RB8 là bit dữ liệu thứ 9 đã được nhận ở mode 2 và
3 Ở mode 0 thì RB8 không sử dụng
TI: Cờ ngắt truyền: được đặt bởi phần cứng tại cuốithời điểm của bit thứ 8 trong mode0 ở bắt kỳ quátrình truyền nối tiếp nào thì nó cũng phải xóa bằngphần mềm
RI: cờ ngắt nhận Được đặt bởi phần cứng tại cuốithời điểm của bit thứ 8 trong mode 0 Hoặc ở giữa thờiđiểm của bit dừng trong các mode khác
Trang 15Câu 5: Bộ Timer/Counter của VĐK AT89C51 có mấy chế độ hoạt động? Kể tên các chế độ đó và cơ chế hoạt động của chế độ 0.
Chế độ 1:hoạt động như chế độ 0 nưng ở 16 bít
Chế độ 2: hoạt động vai trò như bộ đếm và tự động nạplại
Chế độ 3: TL0 và TH0 đều được đếm và timer được sửdụng như 2 timer trong đó TL) được điều khiển bởGATE 0 và TH) được ánh xạ sang
Cơ chế hoạt động của chế độ 0:
Trang 16Cả 2 bộ Timer0 và 1 ở chế độ 0 có cấu hình như mộtthanh ghi 13bit bao gồm 8 bit của thanh ghi THx và 5 bitthấp của TLx 3 bit cao của TLx làm ngơ Khi thanh ghiđược xóa về 0 thì cờ ngắt thời gian TFx được thiết lập.
Bộ timer/counter hoạt động khi bit điều khiển TRx đượcthiết lập (TRx=1) hoặc gate trog TMOD bằng 0 hoặc/INTx=1 Nếu đặt GATE =1 thì cho phép điều khiểnTimer/Counter bằng đường vào ngoài /INTx, để dễ dàngxác định độ rộng xung
Khi hoạt động ở chức năng thời gian thì xung nhịp bộdao động nội qua bộ chia tần cho ra tần số f được đưavào để đém trong thanh ghi Timer/Counter Khi hoạtđộng ở chức năng bộ đếm thì bit C/(/T)=1 lúc đó xungnhịp ngoài đưa vào sẽ được đếm
Trang 17Câu 6:Trong VĐK AT89C51 có bao nhiêu loại ngắt? Hãy kể tên các loại ngắt đó Theo bạn Reset có được coi là ngắt trong VĐK không?
Bài làmTrong VĐK AT89C51 có 5 loại ngắt: 2 ngắt ngoài ( INT0
và /INT1), 2 ngắt của khối thời gian ( Timer 0,1) và ngắt cổng truyền tin nối tiếp
Câu 7: Sơ đồ khối vi điều khiển 89C51
Trang 18Bộ VĐK AT89C51 hoạt động ở tần số 12 MHz, với
bộ nhớ ROM 4kbyte, bộ nhớ RAM 128 byte cư chú bêntrong và có thể mở rộng bộ nhớ ra ngoài Bộ VĐK có 4cổng 8 bít (P0…P3) vào ra 2 chiều để giao tiếp với thiết
bị ngoại vi Ngoài ra còn có
2 bộ định thời 16 bít (timer0 và timer 1)
Mạch giao tiếp nối tiếp
Trang 19Câu 8:
A Cấu tạo của vi xử lý:
- Các thanh ghi nội( registers): có nhiệm vụ lưu trữtạm thời các thong tin, dữ liệu
- Đơn vị số học logic( Arithmetic Logic Unit – ALU):thực hiện các thao tác trên các thông tin hay dữliệu đã được lưu trữ tạm thời trong thanh ghi nội
- Đơn vị điều khiển( Control Unit –Cu): Có nhiệm vụgiải mã lệnh và điều khiển việc thực hiện các thaotác, đồng thời thiết lập các hoạt động cần thiết đểthực hiện các thao tác đó
- Thanh ghi lệnh( Instruction Register – IR) Lưu trữ
mã nhị phân của lệnh để thực thi
Trang 20- Bộ đếm chương trình( Program Counter –PC):Lưu trữ địa chỉ của lệnh kế tiếp trong bộ nhớ cầnđược thực thi.
1.Bộ nhớ chỉ đọc( read only memory –Rom)
ROM dung để lưu chữ chương trình điều
hành( Monitor) của VXL Chương trình sẽ quy
định mọi hoạt động của hệ VXL VXL thực hiệnmột cách trung thực thuật toán mà người thiết
kế phần mềm đã xây dựng và cài đặt vào ROMcủa hệ
Rom được quả lý theo phương thức ma trận
điểm nó có nhiều chủng loại khác nhau: ROM,
PROM, EPROM, EEPROM
1.1.3 EEPROM có khả năng lập trình và
xóa được bằng điện 2.Bộ nhớ truy cập ngẫu nhiên( Random Acess Memory – RAM)
Ram là bộ nhớ có thể ghi và đọc được, thông tintrên Ram sẽ bị mất khi mất nguồn cung cấp
Có hai loại Ram:
Trang 21Ram tĩnh: có thể lưu trữ thông tin lâu tùy ý khi vẫn
còn được cung cấp điện năng – tất cả các loạiphần tử nhớ bằng trigơ đều thuộc loại này
Ram động: chỉ lưu được thông tin trong khoảng
thời gian nhất định
Trang 23Câu 10: khác nhau vi xử lý và vi điều khiển
Trang 25Câu 1: 1
Vẽ sơ đồ tổng quát của hệ vi xử lý, nêu chức năng của CPU và quá trình thực hiện chức năng đó 1
Câu2: Vẽ sơ đồ chân của vi điều khiển AT89C51 và nêu chức năng của từng chân 3
Câu 3: Vi điều khiển AT89C51 có bao nhiêu cổng vào ra? Nêu đặc điểm các cổng Cổng P2 có gì khác so với các cổng còn lại 5
Câu 4:Vi điều khiển AT89C51 có những thanh ghi đặc biệt nào? Nêu đặc điểm các thanh ghi đặc biệt đó 7
Câu 5: Bộ Timer/Counter của VĐK AT89C51 có mấy chế độ hoạt động? Kể tên các chế độ đó và cơ chế hoạt động của chế độ 0 14
Câu 6:Trong VĐK AT89C51 có bao nhiêu loại ngắt? Hãy kể tên các loại ngắt đó Theo bạn Reset có được coi là ngắt trong VĐK không? 16
Câu 8: 18
A Cấu tạo của vi xử lý: 18
B Bộ nhớ của vi xử lý 19
Câu 10: khác nhau vi xử lý và vi điều khiển 22