Professional Documents
Culture Documents
25 11 2013 LP Trinh PIC Cac Ham X Ly S PDF
25 11 2013 LP Trinh PIC Cac Ham X Ly S PDF
ý Bit, Delay trong CCS | Nhận Thiết Kế Mạch Điện Tử Theo Yêu Cầu!
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
[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 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...
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
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!
+ Để 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
trong CCS
CCS
3. [Lập trình PIC] Sử dụng Biến và Hàm, Cấu trúc lệnh, Chỉ
6. Code mẫu PIC - Giao Tiếp I2C Với IC Thời gian thực
DS1307
PIC16F877A
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!
0 nhận xét:
‹ [Lập trình PIC] Bộ Chuyển Đổi ADC - Các Hàm Module GSM - SIM548C ›
hangkhuyenmaivn.blogspot.com/2012/02/lap-trinh-pic-cac-ham-xu-ly-so-xu-ly.html 6/6