1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Các hàm xử lý số, xử lý bit, delay trong CCS

6 307 1

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 424,91 KB

Nội dung

Thích Bài trước: +Hướng dẫn lập trình cho PIC bằng CCS ver3.242 +[Lập trình PIC] Sử dụng Biến và Hàm, Cấu trúc lệnh, Chỉ thị tiền xử lý trong CCS Bài sau: +[Lập trình PIC] Bộ Chuyển Đổi

Trang 1

25/11/2013 [Lập trình PIC] Các Hàm Xử Lý Số, Xử Lý Bit, Delay trong CCS | Nhận Thiết Kế Mạch Điện Tử Theo Yêu Cầu!

Home Vi Xử Lý PIC [Lập trình PIC] Các Hàm Xử Lý Số, Xử Lý Bit, Delay trong CCS

Chủ nhật, ngày 26 tháng hai năm 2012

[Lập trình PIC] Các Hàm Xử Lý Số, Xử Lý Bit, Delay trong CCS

Hãy là người đầu tiên trong số bạn bè của bạn

thích nội dung này

Thích

Bài trước:

+Hướng dẫn lập trình cho PIC bằng CCS ver3.242

+[Lập trình PIC] Sử dụng Biến và Hàm, Cấu trúc lệnh, Chỉ thị tiền xử lý trong CCS

Bài sau:

+[Lập trình PIC] Bộ Chuyển Đổi ADC - Các Hàm I/O

Các Hàm Xử Lý Số, Xử Lý Bit, Delay trong CCS

I / CÁC HÀM XỬ LÝ SỐ :

+ Bao gồm các hàm:

Sin() cos() tan() Asin() acos() atan()

Abs() : lấy trị tuyệt đối

Ceil( ) :làm tròn theo hướng tăng

Floor ( ) : làm tròn theo hướng giảm

Exp ( ) : tính e^x

Log ( ) :tính log

TÌM KIẾM TẠI ĐÂY

Tìm kiếm Kiem tien qua mang | truyen tinh yeu | du lich han quoc hap dan | tintuconline | thiet ke noi that chung cu | doc truyen ma | docbao |

tintuctrongngay | dang nhap facebook | Máy lọc nước RO rẻ | may loc nuoc | kiếm tiền online uy tín | kiếm tiền trên mạng ở Việt Nam | Kiếm Tiền Online | cach kiem tien | An cung ngưu hoàng | tin tuc moi nhat | quảng cáo hiển thị

XEM NHIỀU

code mẫu cho 8051 - Nháy LED tạo hiệu ứng đơn giản

Chương trình mô phỏng trên ISIS -Proteus: mô phỏng Nháy LED trên ISIS

- Proteus Mã nguồn C:

#include<at89x52.h> unsigned char nhayled

code mẫu cho 8051 - Quét LED 7 đoạn

Chương trình quét LED 7 đoạn để hiển thị các số từ 00 đến 99 Mã nguồn C: #include<at89x51.h> #define c P2_0 #define d P2_1 unsigned c

Code mẫu cho PIC - Đo nhiệt độ, Hiển thị lên LCD 16x2

Bộ chuyển đổi từ tương tự sang số là một khối mạch điện tử quan trọng, có

Trang 2

25/11/2013 [Lập trình PIC] Các Hàm Xử Lý Số, Xử Lý Bit, Delay trong CCS | Nhận Thiết Kế Mạch Điện Tử Theo Yêu Cầu!

Log10 ( ) : log10

Pow ( ) : tính luỹ thừa

Sqrt ( ) :căn thức

+ Các hàm này chạy rất chậm trên các VDK không có bộ nhân phần cứng ( PIC 14 ,12 ) vì chủ yếu tính toán với số thực

và trả về cũng số thực ( 32 bit ) và bằng phần mềm VD: hàm sin mất 3.5 ms ( thạch anh = 20Mhz )để cho KQ Do đó

nếu không đòi hỏi tốc độ thì dùng các hàm này cho đơn giản , như là dùng hàm sin thì khỏi phải lập bảng tra

+ Xem chi tiết trên HELP CCS

II / CÁC HÀM XỬ LÝ BIT VÀ CÁC PHÉP TOÁN :

+ Bao gồm các hàmsau :

Shift_right() shift_left()

Rotate_right() rotate_left()

Bit_clear() bit_set() bit_test() Swap()

Make8() make16() make32()

1 / Shift_right ( address , byte , value )

Shift_left ( address , byte , value )

+ Dịch phải (trái ) 1 bit vào 1 mảng hay 1 cấu trúc Địa chỉ có thể là địa chỉ mảng hay địa chỉ trỏ tới

cấu trúc ( kiểu như &data) Bit 0 byte thấp nhất là LSB

2 / Rotate_right () , rotate_left ()

+ Nói chung 4 hàm này ít sử dụng

3 / Bit_clear ( var , bit )

it_set ( var , bit )

+ Bit_clear ( ) dùng xóa ( set = 0 ) bit được chỉ định bởi vị trí bit trong biến var

+ Bit_set ( ) dùng set=1 bit được chỉ định bởi vị trí bit trong biến var

+ var : biến 8 , 16 , 32 bit bất kỳ

+ bit : vị trí clear ( set ) : từ 0-7 ( biến 8 bit) , 0-15 ( biến 16 bit ) , 0-31 (biến 32 bit )

+ Hàm không trả về trị

mặt trong rất nhiều thiết kế điện tử Các bộ ADC thực

tế được đóng

Code mẫu cho PIC - Sử dụng Ngắt trong PIC

Trong Vi điều khiển PIC có nhiều nguồn ngắt Để biết cụ thể ta có thể vào mục View >> Valid Interrupts Khi đó một của sổ sẽ hiện ra

Code mẫu cho PIC - Giao tiếp SPI song công giữa 2 VĐK PIC

Giao tiếp SPI song công giữa 2 PIC: PIC Master ở trên truyền dữ liệu từ PortB (công tắc trên) qua PIC Slave ở dưới để hiển thị ra PortD (LED

Code mẫu cho PIC - Kết hợp: ADC đo nhiệt độ, điện áp, hiển thị LCD và giao tiếp với máy tính

Chương trình thực hiện đo nhiệt độ, điện áp, hiển thị kết quả lên màn hình LCD 16x2, và truyền giá trị lên máy tính Mô phỏng trên Proteus:

code mẫu cho 8051 - Đo nhiệt độ, hiển thị lên LCD 16x2

Chương trình thực hiện đo nhiện độ và hiển thị kết quả lên LCD 16x2, các bước khởi tạo LCD, khởi tạo bộ ADC trong 8051 Mã nguồn C: #include

Hướng dẫn sử dụng Keil-C lập trình cho 8051

Xem hình: B1: B2 B3: B4: B5: B6: B7: B8: B9: B10: B11: B12: B13: B14: B15:

Code mẫu cho PIC - Nháy LED đơn

Nhấp nháy LED có thể coi là một chương trình “Kinh điển” Mỗi người khi

Trang 3

25/11/2013 [Lập trình PIC] Các Hàm Xử Lý Số, Xử Lý Bit, Delay trong CCS | Nhận Thiết Kế Mạch Điện Tử Theo Yêu Cầu!

VD :

Int x;

X=11 ; //x=1011

Bit_clear ( x ,1 ) ; // x= 1001b = 9

4 / Bit_test ( var , bit ) :

+ Dùng kiểm tra vị trí bit trong biến var

+ Hàm trả về 0 hay 1 là giá trị bit đó trong var

+ var : biến 8, 16 ,32 bit

+ bit : vị trí bit trong var

+ Giả sử bạn có biến x 32 bit đếm từ 0 lên và muốn kiểm tra xem nó có lớn hơn 4096 không ( 4096= 2^12

=1000000000000b) :

If ( x >= 4096) // phép kiểm tra này mất ~5 us

Trong 1 vòng lặp , việc kiểm tra thường xuyên như vậy sẽ làm mất 1 thời gian đáng kể Để tối ưu , chỉ cần dùng : if (

bit_test ( x, 12 ) Ỉ chỉ mất ~ 0.4 us ( 20 Mhz thạch anh )

+ Kiểm tra đếm lên tới những giá trị đặc biệt ( 2^ i) thì dùng hàm này rất tiện lợi

5 / Swap ( var ) :

+ var : biến 1 byte

+ Hàm này tráo vị trí 4 bit trên với 4 bit dưới của var , tương đương var =( var>>4 ) | ( var << 4 )

+ Hàm không trả về trị

VD :

X= 5 ; //x=00000101b

Swap ( x) ; //x = 01010000b = 80

6 / make8 ( var , offset ) :

+Hàm này trích 1 byte từ biến var

+ var : biến 8,16,32 bit offset là vị trí của byte cần trích ( 0,1,2,3)

+ Hàm trả về giá trị byte cần trích

VD :

Int16 x = 1453 ; // x=0x5AD

Y = Make(x, 1) ; //Y= 5 = 0x05

7 / make16 ( varhigh , varlow ) :

+Trả về giá trị 16 bit kết hợp từ 2 biến 8 bit varhigh và varlow Byte cao là varhigh , thấp là varlow

bắt tay vào học VĐK thì bài học đầu tiên

là làm nhấp nháy một hay và

code mẫu cho 8051 - Đo nhiệt độ, hiển thị LCD, truyền dữ liệu qua RS232

Chương trình thực hiện kết hợp đo nhiệt độ, hiển thị lên LCD, và truyền dữ liệu lên máy tính qua giao tiếp RS232

Mô phỏng trên ISIS - Prote

Trang 4

25/11/2013 [Lập trình PIC] Các Hàm Xử Lý Số, Xử Lý Bit, Delay trong CCS | Nhận Thiết Kế Mạch Điện Tử Theo Yêu Cầu!

8 / make32 ( var1 , var2 , var3 , var4 ) :

+ Trả về giá trị 32 bit kết hợp từ các giá trị 8 bit hay 16 bit từ var1 tới var4 Trong đó var2 đến var4 có thể có hoặc không

Giá trị var1 sẽ là MSB , kế tiếp là var2 , Nếu tổng số bit kết hợp ít hơn 32 bit thì 0 được thêm vào MSB cho đủ 32 bit

VD:

Int a=0x01 , b=0x02 , c=0x03 , d=0x04 ; // các giá trị hex

Int32 e ;

e = make32 ( a , b , c , d ); // e = 0x01020304

e = make32 ( a , b , c , 5 ) ; // e = 0x01020305

e = make32 ( a, b, 8 ); // e = 0x00010208

e = make32 ( a ,0x1237 ) ; // e = 0x00011237

III / CÁC HÀM DELAY :

+ Để sử dụng các hàm delay , cần có khai báo tiền xử lý ở đầu file , VD : sử dụng OSC 20 Mhz , bạn cần khai báo : #use

delay ( clock = 20000000 )

+ Hàm delay không sử dụng bất kỳ timer nào Chúng thực ra là 1 nhóm lệnh ASM để khi thực thi từ đầu tới cuối thì xong

khoảng thời gian mà bạn quy định Tuỳ thời gian delay yêu cầu dài ngắn mà CCS sinh mã phù hợp có khi là vài lệnh

NOP cho thời gian rất nhỏ Hay 1 vòng lặp NOP Hoặc gọi tới 1 hàm phức tạp trong trường hợp delay dài Các lệnh nói

chung là vớ vẩn sao cho đủ thời gian quy định là được Nếu trong trong thời gian delay lại xảy ra ngắt thì thời gian thực

thi ngắt không tính vào thời gian delay , xong ngắt nó quay về chạy tiếp các dòng mã cho tới khi xong hàm delay Do đó

thời gian delay sẽ không đúng

+ Có 3 hàm phục vụ :

1 / delay_cycles (count )

+ Count : hằng số từ 0 – 255 , là số chu kỳ lệnh 1 chu kỳ lệnh bằng 4 chu kỳ máy

+ Hàm không trả về trị Hàm dùng delay 1 số chu kỳ lệnh cho trước

VD : delay_cycles ( 25 ) ; // với OSC = 20 Mhz , hàm này delay 5 us

2 / delay_us ( time )

+ Time : là biến số thì = 0 – 255 , time là 1 hằng số thì = 0 -65535

+ Hàm không trả về trị

Trang 5

25/11/2013 [Lập trình PIC] Các Hàm Xử Lý Số, Xử Lý Bit, Delay trong CCS | Nhận Thiết Kế Mạch Điện Tử Theo Yêu Cầu!

Bài viết liên quan: Vi Xử Lý PIC

1 [Lập trình PIC] Bộ Chuyển Đổi ADC - Các Hàm Vào/Ra

trong CCS

2 [Lập trình PIC] Các Hàm Xử Lý Số, Xử Lý Bit, Delay trong

CCS

3 [Lập trình PIC] Sử dụng Biến và Hàm, Cấu trúc lệnh, Chỉ

thị tiền xử lý trong CCS

4 Nghiên cứu ứng dụng PIC

5 [Code PIC] Mạch đo điện dung

6 Code mẫu PIC - Giao Tiếp I2C Với IC Thời gian thực

DS1307

7 Lập Trình RoBot Tự Động Đơn Giản Với VĐK

PIC16F877A

8 [Lập trình PIC] Các Ngắt Trong PIC

+ Hàm này cho phép delay khoảng thời gian dài hơn theo đơn vị us

+ Quan sát trong C / asm list bạn sẽ thấy với time dài ngắn khác nhau , CSS sinh mã khác nhau

3 / delay_ms (time )

+ Time = 0-255 nếu là biến số hay = 0-65535 nếu là hằng số

+ Hàm không trả về trị

+ Hàm này cho phép delay dài hơn nữa

VD :

Int a = 215;

Delay_us ( a ) ; // delay 215 us

Delay_us ( 4356 ) ; // delay 4356 us

Delay_ms ( 2500 ) ; // delay 2 5 s

(Nguồn: TRẦN XUÂN TRƯỜNG)

Trang 6

25/11/2013 [Lập trình PIC] Các Hàm Xử Lý Số, Xử Lý Bit, Delay trong CCS | Nhận Thiết Kế Mạch Điện Tử Theo Yêu Cầu!

9 [Lập trình PIC] Giao Tiếp SPI

10 [Lập trình PIC] Truyền Thông Nối Tiếp RS232 - Xử Lý

Chuỗi Trong CCS

‹ [Lập trình PIC] Bộ Chuyển Đổi ADC - Các Hàm

Vào/Ra trong CCS

Module GSM - SIM548C ›

Người đăng : Newbie1 Vào lúc: 07:42 Chủ đề: Vi Xử Lý PIC

vào lúc 07:42

0 nhận xét:

Đăng nhận xét

Nhập nhận xét của bạn

Nhận xét với tên: Tài khoản Google

Xuất bản Xem trước

Beranda Tentang Iklan Privacy Policy Facebook Twitter Disclaimer Email Pho Thong | Truong chuyen | On Thi Dai Hoc | Kiếm Tiền Trên Mạng | Kiếm Tiền Online | Thủ Thuật | Tim Viec Lam Them | Lam Giau | Doc Bao | Tin tuc online | Download IDM Full | Phim Hay Nhat | Thông Tin Giáo Dục | Việc Làm Trên Mạng | Linh Kiện Điện Tử | Việc làm online | Máy lọc nước RO | Du lich

Mui Ne | Du lich Hong Kong | Du lich Trung Quoc | Du lich gia re | Nghe nhạc

Ngày đăng: 28/09/2019, 10:58

TỪ KHÓA LIÊN QUAN

w