1. Trang chủ
  2. » Luận Văn - Báo Cáo

BÀI GIẢNG MÔN KỸ THUẬT VI ĐIỀU KHIỂN

245 427 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Kỹ Thuật Vi Điều Khiển
Người hướng dẫn GV: Lê Trọng Luân
Trường học Trường Đại Học Kinh Tế Kỹ Thuật Công Nghiệp
Chuyên ngành Kỹ Thuật Vi Điều Khiển
Thể loại Bài Giảng
Năm xuất bản 2012
Thành phố Hà Nội
Định dạng
Số trang 245
Dung lượng 13,08 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chương 1: Introduction to 89S52Chế độ địa chỉ giỏn tiếp thanh ghi Vớ dụ: Hãy viết chơng trình để sao chép một khối 10 byte dữ liệu từ vị trí ngăn nhớ RAM bắt đầu từ 35H vào các vị trí n

Trang 1

KỸ THUẬT VI ĐIỀU KHIỂN

GV: LÊ TRỌNG LUÂN

0937351983 Khoa Điện – Điện Tử Trường Đại Học Kinh Tế Kỹ Thuật Công Nghiệp

Trang 2

KỸ THUẬT VI ĐIỀU KHIỂN

NỘI DUNG CHƯƠNG TRÌNH

Chương 1: Introduction to 89S52

Chương 2: AT89S52 Assembly Programming

Chương 3:Data Structures and Subroutine Calls

Chương 4: Operation Modes and Memory Expansion

Chương 5: Interrupts and Resets

Chương 6: Parallel I/O Ports

Chương 7: Timer/Counter Functions

Chương 8: Serial Communication Interface

Chương 9: LCD,ADC and SENSOR Interface

Trang 3

Chương 1:

Introduction to 89S52

Trang 4

Arithmetic logic unit

common bus

memory

output input

Trang 5

The processor (bộ xử lý)

- Registers: bộ nhớ trong của Processcor

- Arithmetic logic unit (ALU)

- Control unit (CU)

PC- thanh ghi bộ đếm chương trình sẽ luôn lưu giữ địa chỉ của lệnh tiếp theo sẽ được thực hiện

The Microprocessor (bộ vi xử lý)

A processor implemented on a very large scale integration (VLSI) chip.

Peripheral chips are needed to construct a product

The Microcontroller (bộ vi điều khiển)

The processor and peripheral functions implemented on one VLSI chip

Trang 6

Chương 1: Introduction to 89S52

Features of the AT89S52 microcontroller

8K Bytes of In-System Programmable (ISP) Flash Memory

– Endurance: 1000 Write/Erase Cycles

4.0V to 5.5V Operating Range

Fully Static Operation: 0 Hz to 33 MHz

Three-level Program Memory Lock

256 x 8-bit Internal RAM

32 Programmable I/O Lines

Three 16-bit Timer/Counters

Eight Interrupt Sources

Full Duplex UART Serial Channel

Low-power Idle and Power-down Modes

Interrupt Recovery from Power-down Mode

Watchdog Timer

Dual Data Pointer

Microcontroller AT89S52

Trang 8

Máy Fax

Lò vi sóng Máy sao chụp Máy in lazer Máy in màu Máy nhắn tin

Máy tính hành trìnhĐiều khiển động cơ

Túi đệm khíThiết bị ABS

Đo lờng

Hệ thống bảo mậtĐiều khiển truyền tinGiải trí

Điều hoà nhiệt độ

Mở cửa không cần chỡakhoá

Trang 9

Semiconductor memory

Random-access memory (RAM)

Read-only memory (ROM):

Trang 12

Chương 1: Introduction to 89S52

High-level language

Cần có chương trình dịch từ ngôn ngữ cấp cao về ngôn ngữ máy.

Trang 13

The AT89S52 Registers

PC PSW Parity Non Over Lựa chọ băng thanh ghi RS1:RS0

Trang 14

Chương 1: Introduction to 89S52

Khi RESET

Microcontroller AT89S52

Trang 15

Memory Addressing

Bộ nhớ bao gồm các ô nhớ Mỗi ô nhớ có địa chỉ xác định

Trang 16

#

@

B

D or nothingH

‘xxx’

Trực tiếpĐịa chỉ gián tiếp

Trang 17

Chế độ địa chỉ thanh ghi

MOV A, RO ; Sao nội dung thanh ghi RO vào thanh ghi A

MOV R2, A ; Sao nội dung thanh ghi A vào thanh ghi R2

ADD A; R5 ; Cộng nội dung thanh ghi R5 vào

Chế độ địa chỉ trực tiếp

1 Các ngăn nhớ từ 00 đến 1FH đợc gán cho các băng thanh ghi và ngăn xếp

2 Các ngăn nhớ từ 20H đến 2FH đợc dành cho không gian đánh địa chỉ theo bit

để lu các dữ liệu 1 bit

3 Các ngăn nhớ từ 30H đến 7FH là không gian để lu dữ liệu có kích thớc 1byte.MOV R0, 40H ; Lu nội dung của ngăn nhớ 40H của RAM vào R0

MOV 56H, A ; Lu nội dung thanh ghi A vào ngăn nhớ 56H của RAM

MOV R4, 7FH ; Chuyển nôi dung ngănnhớ 7FH của RAM vào R4

Trang 18

Chương 1: Introduction to 89S52

Chế độ địa chỉ giỏn tiếp thanh ghi

Vớ dụ: Hãy viết chơng trình để sao chép một khối 10 byte dữ liệu từ vị trí ngăn nhớ RAM bắt đầu

từ 35H vào các vị trí ngăn nhớ RAM bắt đầu từ 60H

DJNZ R3, BACK ; Lặp lại cho đến khi sao chép hết 10 byte

Lưu ý: Chỉ thanh ghi R0, R1, DPTR dựng được trong chế độ

Microcontroller AT89S52

Trang 19

MOV P1, A ; §Æt cæng P1 lµ ®Çu vµo

BACK: MOV A, P1 ; LÊy gi¸ trÞ X tõ P1

MOVC A, @A + DPTR ; LÊy gi¸ trÞ X tõ b¶ng XSDQ-TABLE

Trang 20

Chương 1: Introduction to 89S52

89S52 Instructions

Microcontroller AT89S52

Trang 23

89S52 Instructions

Trang 26

KỸ THUẬT VI ĐIỀU KHIỂN

Chương 2 AT89S52 Assembly

Programming

Trang 27

trình (do các mạch điện riêng biệt thực hiện).

Bộ nhớ ROM được tích hợp trong chip Vi điều khiển với dung lượng tùy vào chủng loại cần dùng, chẳng hạn đối với 89S52 là 8KByte, với 89S53 là 12KByte

Bộ nhớ bên trong Vi điều khiển 89Sxx là bộ nhớ Flash ROM cho

phép xóa bộ nhớ ROM bằng điện và nạp vào chương trình mới cũng bằng điện và có thể nạp xóa nhiều lần

Bộ nhớ ROM được định địa chỉ theo từng Byte, bắt đầu từ địa chỉ

0000H, khi viết chương trình cần chú ý đến địa chỉ lớn nhất trên

ROM, chương trình được lưu sẽ bị mất khi địa chỉ lưu vượt qua vùng này Ví dụ: AT89S52 có 8KByte bộ nhớ ROM nội, địa chỉ lớn nhất là

1FFFH, nếu chương trình viết ra có dung lượng lớn hơn 8KByte các

byte trong các địa chỉ lớn hơn 1FFFH sẽ bị mất

Ngoài ra Vi điều khiển còn có khả năng mở rộng bộ nhớ ROM với việc giao tiếp với bộ nhớ ROM bên ngoài lên đến 64KByte(địa chỉ từ 0000H

Trang 28

Chương 2: AT89S52 Assembly Programming

RAM

Microcontroller AT89S52

Trang 29

RAM

Trang 31

Bộ nhớ RAM dùng làm môi trường xử lý thông tin, lưu trữ các kết quả trung gian và kết quả cuối cùng của các phép toán, xử lí thông tin Nó cũng dùng để tổ chức các vùng đệm dữ liệu, trong các thao tác thu phát, chuyển đổi dữ liệu

RAM nội trong Vi điều khiển được tổ chức như sau: Các vị trí trên RAM được định địa chỉ theo từng Byte bằng các số thập lục phân (số Hex)

Các bank thanh ghi có địa chỉ 00H đến 1FH

210 vị trí được định địa chỉ bit các vị trí RAM bình thường Các thanh ghi có chức năng đặc biệt có địa chỉ từ 80H đến FFH

Các byte RAM 8 bit của vi điều khiển được gọi là "ô

nhớ", nếu các ô nhớ có chức năng đặc biệt thường

được gọi là "thanh ghi", nếu là bit thì được gọi là "bit nhớ".

Trang 32

Chương 2: AT89S52 Assembly Programming

RAM

Các bank thanh ghi

Các bank thanh ghi có địa chỉ byte từ 00H đến 1FH, có 8 thanh ghi trong mỗi bank, các thanh ghi được đặt tên từ R0-R7, các thanh ghi này được đặt mặc định trong bank 1 Có 4 bank thanh ghi và tại mỗi thời

điểm chỉ có một bank thanh ghi được truy xuất với các thanh ghi từ R0 đến R7, để thay đổi việc truy xuất các thanh ghi trên các bank thanh ghi, người dùng phải thay đổi giá trị các bit chọn bank trong thanh ghi trạng thái PSW bằng các câu lệnh trong chương trình

Các lệnh dùng các thanh ghi từ R0 đến R7 mất khoảng không gian lưu trữ ít hơn và thời gian thực hiện nhanh hơn so với các lệnh dùng các ô nhớ RAM khác, ngoài ra các thanh ghi này còn có thêm một số chức năng đặc biệt khác, vì lí do này các dữ liệu sử dụng thường

thường được người viết chương trình đưa vào lưu trong các thanh ghi này

Ngoài ra, có thể truy xuất thanh ghi trên các bank thanh ghi như với các ô nhớ bình thường khác Ví dụ: nguời dùng có thể truy xuất đến

thanh ghi R7 bằng ô nhớ 07H

Microcontroller AT89S52

Trang 33

Vùng RAM truy xuất từng bit

Trên RAM nội có 210 ô nhớ bit được định địa chỉ và có thể truy xuất đến từng bit, các bit nhớ này cũng được định địa chỉ bằng các số thập lục phân- số Hex Trong đó có 128 bit nằm trong các ô nhớ có địa chỉ byte từ 20H đến 2FH,

các bit nhớ còn lại chứa trong nhóm thanh ghi có chức năng đặc biệt

Mặc dù các bit nhớ và ô nhớ (byte) cùng được định bằng số Hex, tuy nhiên chúng sẽ được nhận dạng là địa chỉ bit hay địa chỉ byte thông qua các câu lệnh tương ứng dành cho các bit nhớ hoặc các ô nhớ này.

Ví dụ:

mov 05H,#10111111B ;>>> lệnh này thiết lập

giá trị cho ô nhớ có địa chỉ là 05H

JB 05H,nhan01 ;>>> lệnh này liên quan

Trang 34

Chương 2: AT89S52 Assembly Programming

RAM

+ Vùng RAM bình thường

Vùng RAM này có địa chỉ byte từ 30H đến 7FH, dùng để lưu trữ dữ liệu, được truy xuất theo từng byte.

+ Các thanh ghi có chức năng đặc biệt

Các thanh ghi này được định địa chỉ byte, một số được định thêm địa chỉ bit, có

địa chỉ của các thanh ghi này nằm trong

khoảng 80H đến FFH Các thanh ghi đặc biệt

Microcontroller AT89S52

Trang 35

Các thanh ghi có địa chỉ 80H, 90H, A0H, B0H:

Đây là các thanh ghi kiểm tra và điều khiển mức logic của các Port, có thể truy xuất và xác lập các thanh ghi này với địa chỉ byte hoặc tên riêng lần lượt là P0, P1, P2, P3 tương ứng với các Port xuất Chẳng hạn để tất cả các chân của Port 0 lên mức logic 1, cần làm cho các bit của thanh ghi có địa chỉ 80H lên mức 1.

Con trỏ ngăn xếp SP: địa chỉ 81H

Con trỏ ngăn xếp SP là một thanh ghi có địa chỉ 81H, giá trị của nó được tăng,giảm tự động khi thực hiện các lệnh PUSH, CALL,POP con trỏ SP dùng quản lí và xử lí các nhóm

dữ liệu liên tục.Giá trị mặc định của SP là 07H.

Con trỏ dữ liệu DPTR.

Con trỏ dữ liệu DPTR là thanh ghi 16 bit duy nhất của Vi điều khiển được tạo thành từ hai thanh ghi DPL (byte thấp-địa chỉ byte 82H) và DPH (byte cao-địa chỉ byte 83H) Hai thanh ghi DPL và DPH có thể truy xuất độc lập bởi người sử dụng Con trỏ dữ liệu DPTR

thường được sử dụng khi truy xuất dữ liệu từ bộ nhớ ROM hoặc bộ nhớ từ bên ngoài.

Trang 36

Chương 2: AT89S52 Assembly Programming

Thanh ghi trạng thái chương trình PSW (địa chỉ

PSW.4 D4H RS1 Bit lựa chọn dãy thanh ghi

PSW.3 D3H RS0 Bit lựa chọn dãy thanh ghi

PSW.2 D2H 0V Cờ tràn với phép tính liên quan đến số nhị

phân có dấu

Trang 37

Assembly Program Structure

/* The handler for External interrupt 0, which uses somefunction() */

void external0_int (void) interrupt 0

{

somefunction(0);

}

/* the main program function, which also calls somefunction() */

void main (void)

Trang 38

Chương 2: AT89S52 Assembly Programming

; chuong trinh viet o day Jmp Start

;=================================

; Cac chuong trinh con viet o day

;=================================

end.

Trang 39

;nhảy đến nhã loop khi R0<>0

Label operation operand ; comment

Trang 40

Chương 2: AT89S52 Assembly Programming

Assembler Directives a sample

Trang 41

Subroutine A

B

A yes

no On-page

connector

Off-page connector

Trang 42

Chương 2: AT89S52 Assembly Programming

ASSEMBLER PRAGRAM

LINKER PRAGRAM

OH

myfile.asm

myfile.lst myfile.obj

other obj file

myfile.abs

Trang 43

Ví dụ 1: Viết chương trình tính 1+2+…+20 kết quả cất vào 45H

Start

i = 0 sum = 0

i = i + 1 sum = sum + i

i = 20 ? no

yes

Giải:

Mov A,#0 Mov R0,#0 Again:

INC R0 ADD A,R0 CJNE R0,#20,Again Mov 45H,A

Trang 44

Chương 2: AT89S52 Assembly Programming

array max < array [i] ?

i  i + 1 array max  array [i]

yes no

Trang 46

Chương 2: AT89S52 Assembly Programming

Ví dụ 3: Viết chương trình tính tổng các số

lẻ 8bit nằm ở địa chỉ 45h đến 58h, sau đó lưu kết quả byte cao ở 61h và byte thấp ở 60h

Microcontroller AT89S52

Start

sum 0 ptr  45 bit 0 of mem[ptr] = 0?

sum  sum + [mem[ptr]]

no

Trang 48

KỸ THUẬT VI ĐIỀU KHIỂN

Trang 49

SP low address

high address

top element

bottom

.

Sp là thanh ghi 8bit Truy cập các ô nhớ từ 08h-FFh

Nguyên tắc LIFO (Last In First Out)

Vào bằng lệnh PUSH => SP=SP+1

Ra bằng lệnh POP => SP=SP-1

Trang 50

Chương 3: Data Structures and Subroutine Calls

Vớ dụ 3.1 Hãy biểu diễn ngăn xếp và con trỏ ngăn xếp đối với đoạn chơng trình sau đây Giả thiết vùng ngăn xếp là mặc định

MOV R6, #25HMOV R1, #12HMOV R4, #0F3HPUSH 6

PUSH 1PUSH 4

Trang 51

Ví dụ 3.2: Kh¶o s¸t ng¨n xÕp vµ h·y tr×nh bµy néi dung cña c¸c thanh ghi vµ SP sau khi thùc hiÖn ®o¹n ch¬ng tr×nh sau ®©y:

POP 3 ; LÊy ng¨n xÕp trë l¹i R3 POP 5 ; LÊy ng¨n xÕp trë l¹i R5 POP 2 ; LÊy ng¨n xÕp trë l¹i R2

Trang 52

Chương 3: Data Structures and Subroutine Calls

Giới hạn trên của ngăn xếp:

- Ngăn xếp giới hạn trong khoảng 08h-1Fh

Và từ 30H đến 7Fh

- Từ 20H-2FH dùng dự phòng cho bộ nhớ

đánh địa chỉ được theo bit

- Chuyển địa chỉ sang 30h – 7Fh bằng cách: MOV SP, #XX

Microcontroller AT89S52

Trang 53

53 12/21/2012 kỹ thuật vi điều khiển

Phân bố không gian nhớ trong RAM

Trang 54

Chương 3: Data Structures and Subroutine Calls

Xung đột ngăn xếp và băng thanh ghi 1

Xảy ra khi chương trình muốn sử dụng các băng thanh ghi số 1 lúc đó cả băng thanh ghi và ngăn xếp đều sử dụng chung một

không gian nhớ RAM

Lúc đó ta phải thay địa chỉ sử dụng của

RAM bằng cách “MOV SP,#xx”

Microcontroller AT89S52

Trang 55

; Nội dung chương trình

; Trả lại trạng thái chương trình

ret

Trang 56

Chương 3: Data Structures and Subroutine Calls

ACall gọi tuyệt đối 2 byte

LCall gọi 3 byte

Microcontroller AT89S52

Trang 57

Vai trò của ngăn xếp trong lệnh Call

incoming parameters

return address saved registers local variables

SP

Với lệnh RET thao tac giống lệnh POP đối với các đối tượng

Trang 58

Chương 3: Data Structures and Subroutine Calls

Vớ dụ 3.3 Phõn tớch đoạn chương trỡnh sau

ORG 0

MOV A, #55H ; Nạp Avới giá trị 55H

BACK:

MOV P1, A ; Xuất giá trị trong A ra cổng P1

ACALL DELAY ; Giữ chậm

CPL A ; Bù thành ghi A

SJMP BACK ; Tiếp tục thực hiện vô hạn

; - Đây là chơng trình con giữ chậm DELAY

DELAY:

MOV R5, #0FFH ; Nạp R5 = 255 (hay FFH) làm cho bộ đếm

AGAIN: DJNZ R5, AGAIN ; Dừng ở đây cho đến khi R5 = 0

RET ; Trở về

Microcontroller AT89S52

Trang 59

Cấu trúc sử dụng lệnh gọi call

; MAIN program calling subroutines

MAIN: LCALL SUBR-1

LCALL SUBR-2 LCALL SUBR-3 HERE: SJMP MAIN

Trang 60

Chương 3: Data Structures and Subroutine Calls

Ví dụ 3.4 H·y ph©n tÝch néi dung cña ng¨n xÕp sau khi thùc hiÖn lÖnh LCALL

®Çu tiªn díi ®©y

001 0000 ORG

002 0000 7455 BACK: MOV A, #55H ; N¹p A víi gi¸ trÞ 55H

003 0002 F590 MOV P1, A ; Göi 55H tíi cæng P1

004 0004 120300 LCALL DELAY ; T¹o trÔ thêi gian

005 0007 74AA MOV A, #0AAH ; N¹p A víi gi¸ trÞ AAH

006 0009 F590 MOV P1, A ; Göi AAH tíi cæng P1

007 000B 120300 LCALL DELAY ; T¹o trÔ thêi gian

008 000E 80F0 SJMP BACK ; TiÕp tôc thùc hiÖn

Trang 61

Tạo và tính toán thời gian giữ chậm

Thời gian trễ chủ yếu ở vòng lặp

Trang 62

Chương 3: Data Structures and Subroutine Calls

Vớ dụ 3.5: Hãy tìm kích thớc của thời gian giữ chậm

trong chơng trình sau, nếu tần số giao động thach anh

là 11.0592MHz.

MOV A, #55H AGAIN: MOV P1, A

ACALL DELAY CPL A

Trang 63

hồ liên quan với các lệnh ở ngoài vòng lặp.

Trong ví dụ 3.5 giá trị lớn nhất mà R3 có thể chứa

là 255, do vậy một cách tăng độ trễ là sử dụng lệnh

NOP (không làm gì) trong vòng lặp để tiêu tốn thời

gian một cách đơn giản

Trang 64

Chương 3: Data Structures and Subroutine Calls

Vớ dụ 3.6:Hãy tìm độ trễ thời gian cho chơng trình con sau Giả thiết tần số

Microcontroller AT89S52

Trang 65

Vớ dụ 3.7: Đối với một chu kỳ máy 1.085s hãy tính thời gian giữ chậm trong chơng trình con sau:

Đối với vòng lặp HERE ta có (4  250)  1.085s = 1085s.

Vòng lặp AGAIN lặp vòng lặp HERE 200 lần, do vậy thời gian trễ là 200

 1085s 217000s, nên ta không tính tổng phí Tuy nhiên, các lệnh “MOV

R3, #250” và “DJNZ R2, AGAIN” ở đầu và cuối vòng lặp AGAIN cộng (3

 200  1.085s) = 651s vào thời gian trễ và kết quả ta có 217000 + 651 =

217651s = 217.651 miligiây cho tổng thời gian trễ liên quan đến chơng trình con giữ chậm DELAY nói trên

Trang 66

KỸ THUẬT VI ĐIỀU KHIỂN

Trang 67

Bộ nhớ bán dẫn:

RAM

SRAM DRAM ROM

ROM PROM EPROM EEPROM FLASH

Trang 68

Chương 4: Operation Modes and Memory Expansion

A N-1

O 0

O 1

O 2 .

O m-1

Các đường tín hiệu địa chỉ

Các đường tín hiệu dữ liệu

WE

Trang 69

Một số bộ nhớ EPROM thông dụng

A0-A10: Tín hiệu địa chỉ

OE: Cho phép đưa dữ liệu ra

Trang 70

Chương 4: Operation Modes and Memory Expansion

Trang 71

Ví dụ 4.1 Cần sử dụng bao nhiêu IC để xây dựng

bộ nhớ EPROM 512KB cho bộ VĐK có 16 chân địa chỉ 16 chân dữ liệu.

Trang 72

Chương 4: Operation Modes and Memory Expansion

Trang 73

Khả năng mở rộng bộ nhớ ROM của 89S52

4567

8000h-9FFFhA000h-BFFFhC000h-DFFFhE000h-FFFFh

Trang 74

Chương 4: Operation Modes and Memory Expansion

O0 O1 O2 O3 O4 O5 O6

74138

1Y0 1Y1 1Y2 1Y3 2Y0 2Y1 2Y2

E1 A1 A0 E2 74139

Trang 75

Ví dụ 4.2 Xây dựng mạch giải mã để chọn các bộ nhớ sau:

The highest three address bits

for each component are:

A2 A1

O0 O1 O2 O3 O4 O5 O6

SRAM1_CS ROM1_CS

E2PROM_CS

SRAM2_CS ROM2_CS

E

A15 A14

Trang 76

Chương 4: Operation Modes and Memory Expansion

Giản đồ thời gian ghi đọc

Microcontroller AT89S52

Trang 77

Giản đồ thời gian ghi đọc

Trang 78

Chương 4: Operation Modes and Memory Expansion

Giản đồ thời gian ghi đọc

Microcontroller AT89S52

Ngày đăng: 01/07/2014, 21:05

HÌNH ẢNH LIÊN QUAN

Sơ đồ chừn - BÀI GIẢNG  MÔN KỸ THUẬT VI ĐIỀU KHIỂN
Sơ đồ ch ừn (Trang 72)
BẢNG VECTOR NGẮT - BÀI GIẢNG  MÔN KỸ THUẬT VI ĐIỀU KHIỂN
BẢNG VECTOR NGẮT (Trang 104)
Sơ đồ chừn - BÀI GIẢNG  MÔN KỸ THUẬT VI ĐIỀU KHIỂN
Sơ đồ ch ừn (Trang 109)
Sơ đồ khối Timer/Counter trong cỏc hệ VĐK - BÀI GIẢNG  MÔN KỸ THUẬT VI ĐIỀU KHIỂN
Sơ đồ kh ối Timer/Counter trong cỏc hệ VĐK (Trang 126)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w