Download as pdf or txt
Download as pdf or txt
You are on page 1of 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

ý Bit, Delay trong CCS | Nhận Thiết Kế Mạch Điện Tử Theo Yêu Cầu!

Home Contact advertise Điện tử...

Trang Chủ Nhận làm đồ án điện tử Làm biển quảng cáo Thiết kế mạch điện tử Hợp Tác

Home Vi Xử Lý PIC [Lập trình PIC] Các Hàm Xử Lý Số, Xử Lý Bit, Delay trong CCS
TÌM KIẾM TẠI ĐÂY

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

[Lập trình PIC] Các Hàm Xử Lý Số, Xử Lý Bit, Delay trong CCS Kiem tien qua mang | truyen tinh yeu | du lich
han quoc hap dan | tintuconline | thiet ke noi
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. 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
Bài trước:
Nam | Kiếm Tiền Online | cach kiem tien | An
cung ngưu hoàng | tin tuc moi nhat | quảng
+Hướng dẫn lập trình cho PIC bằng CCS ver3.242 cáo hiển thị
+[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
XEM NHIỀU
Bài sau:
+[Lập trình PIC] Bộ Chuyển Đổi ADC - Các Hàm I/O 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 -
Các Hàm Xử Lý Số, Xử Lý Bit, Delay trong CCS Proteus: mô phỏng Nháy LED trên ISIS
- Proteus Mã nguồn C:
#include<at89x52.h> 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<at89x51.h> #define c
Sin() cos() tan() Asin() acos() atan()
P2_0 #define d P2_1 unsigned c...
Abs() : lấy trị tuyệt đối
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
Bộ chuyển đổi từ tương tự sang số là
Log ( ) :tính log
một khối mạch điện tử quan trọng, có

hangkhuyenmaivn.blogspot.com/2012/02/lap-trinh-pic-cac-ham-xu-ly-so-xu-ly.html 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. View >> Valid Interrupts . Khi đó một
+ Xem chi tiết trên HELP CCS. 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 :
PortB (công tắc trên) qua PIC Slave ở
Shift_right() shift_left()
dưới để hiển thị ra PortD (LED...
Rotate_right() rotate_left()
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 )
điện áp, hiển thị kết quả lên màn hình
Shift_left ( address , byte , value )
LCD 16x2, và truyền giá trị lên máy tính. Mô phỏng trên
+ 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
Proteus: ...
cấu trúc ( kiểu như &data) . Bit 0 byte thấp nhất là LSB .

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


cho 8051
3 / Bit_clear ( var , bit )
it_set ( var , bit ) Xem hình: B1: B2 B3: B4: B5: B6: B7:
+ Bit_clear ( ) dùng xóa ( set = 0 ) bit được chỉ định bởi vị trí bit trong biến var . B8: B9: B10: B11: B12: B13: B14: B15:
+ Bit_set ( ) dùng set=1 bit được chỉ định bởi vị trí bit trong biến var .
Code mẫu cho PIC - Nháy LED đơn
+ 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 ) . 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 : bắt tay vào học VĐK thì bài học đầu tiên
Int x; 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 ) : nhiệt độ, hiển thị lên LCD, và truyền dữ
+ Dùng kiểm tra vị trí bit trong biến var . liệu lên máy tính qua giao tiếp RS232.
+ Hàm trả về 0 hay 1 là giá trị bit đó trong var . 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 [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

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

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

You might also like