Tải bản đầy đủ

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

25/11/2013
Home

[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!
Contact

Trang Chủ
Home

advertise

Nhận làm đồ án điện tử

Vi Xử Lý PIC

Điện tử...

Làm biển quảng cáo

Thiết kế mạch điện tử


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

Hợp Tác

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

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
Thích Hãy là người đầu tiên trong số bạn bè của bạn
thích nội dung này.

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

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

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

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 unsigned char nhayled...

I / CÁC HÀM XỬ LÝ SỐ :
+ Bao gồm các hàm:

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 #define c

Sin() cos() tan() Asin() acos() atan()
Abs() : lấy trị tuyệt đối

P2_0 #define d P2_1 unsigned c...

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

Code mẫu cho PIC - Đo nhiệt độ, Hiển

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

thị lên LCD 16x2

Exp ( ) : tính e^x
Log ( ) :tính log
hangkhuyenmaivn.blogspot.com/2012/02/lap-trinh-pic-cac-ham-xu-ly-so-xu-ly.html

Bộ chuyển đổi từ tương tự sang số là
một khối mạch điện tử quan trọng, có
1/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!

Log10 ( ) : log10

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

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

tế được đóng...

Sqrt ( ) :căn thức
Code mẫu cho PIC - Sử dụng Ngắt
trong PIC
+ 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

Trong Vi điều khiển PIC có nhiều nguồn

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 đó

ngắt. Để biết cụ thể ta có thể vào mục

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.

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:



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

PIC Master ở trên truyền dữ liệu từ

+ Bao gồm các hàmsau :
Shift_right() shift_left()
Rotate_right() rotate_left()

PortB (công tắc trên) qua PIC Slave ở
dưới để hiển thị ra PortD (LED...

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

Code mẫu cho PIC - Kết hợp: ADC đo

Make8() make16() make32()

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 độ,

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 .

đ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ả

2 / Rotate_right () , rotate_left ()

lên LCD 16x2, các bước khởi tạo LCD, khởi tạo bộ

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

ADC trong 8051. Mã nguồn C: #include...
Hướng dẫn sử dụng Keil-C lập trình

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ỳ .

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

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

Nhấp nháy LED có thể coi là một

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

chương trình “Kinh điển”. Mỗi người khi

hangkhuyenmaivn.blogspot.com/2012/02/lap-trinh-pic-cac-ham-xu-ly-so-xu-ly.html

2/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!

VD :
Int x;

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à...

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

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

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 .

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...

+ 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 .

hangkhuyenmaivn.blogspot.com/2012/02/lap-trinh-pic-cac-ham-xu-ly-so-xu-ly.html

3/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!

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ị .
hangkhuyenmaivn.blogspot.com/2012/02/lap-trinh-pic-cac-ham-xu-ly-so-xu-ly.html

4/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!

+ 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)

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

hangkhuyenmaivn.blogspot.com/2012/02/lap-trinh-pic-cac-ham-xu-ly-so-xu-ly.html

5/6


25/11/2013

9.
10.

[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!

[Lập trình PIC] Giao Tiếp SPI
[Lập trình PIC] Truyền Thông Nối Tiếp RS232 - Xử Lý
Chuỗi Trong CCS
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:

Xuất bản

Tài khoản Google

Xem trước

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

Module GSM - SIM548C ›

Vào/Ra trong CCS

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

hangkhuyenmaivn.blogspot.com/2012/02/lap-trinh-pic-cac-ham-xu-ly-so-xu-ly.html

6/6



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×

×