Kết quả 1 đến 7 của 7
Chủ đề: Giúp e hiểu cái lệnh Sbit với !
-
06-16-2015, 11:42 PM #1
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Giúp e hiểu cái lệnh Sbit với !
e thì mới học con 8051 ,code bằng ngôn ngữ C nên nhiều cái chưa đc hiểu sâu lắm
e có mò trong cái AT89X51.H thì thấy lệnh này
Sbit P0_0 =0x80 // theo e hiểu thì là mình định nghĩa P0_0 bằng 0x80
và khi mình viết trong hàm main thì lại viết
P0_0 =1
Vậy có phải là nó tương đương với 0x80=1 không ạ (e thấy nó khó hiểu chỗ này )
Thanks mọi người trước nhé :'(View more random threads:
- Nên mua Đất Lô dự án hoặc đất thổ cư?
- m.n giúp với !!!
- Xin giúp đỡ robot 2 bánh tự cân bằng.
- Để trẻ yên tâm sáng tạo trong môi trường an toàn mùa dịch
- Hỏi về Thanh Trượt CNC
- Chuyển động trục theo phương ngang kết nối thành chuyển động quay tròn làm sao?
- Xin phần mềm giả lập kit
- Giao tiếp lcd với PIC16F877A thực tế không chạy
- Timer/Counter trong Arduino UNO (AVR 328)
- Vén màn bí mật 3 tuyệt chiêu chơi Tiến Lên Miền Nam đếm lá
-
06-17-2015, 02:01 AM #2
Silver member
- Ngày tham gia
- Mar 2016
- Bài viết
- 0
sbit la định nghĩa kiểu bít. viết như trên thì bít P0_0 bằng giá trị bít 0 của số 0x80 tức là bắng 0.
P0_0 = 1; gán bít p0_0 bằng 1 chứ không phải 0x80 = 1
-
06-17-2015, 02:38 AM #3
Junior Member
- Ngày tham gia
- Jun 2016
- Bài viết
- 0
tại sao lại biết nó bằng giá trị của bit 0 hả anh ,sao không phải là bit 1,2 . Em nghĩ là cái tên P0_0 là do họ đặt cho dễ nhớ thôi , cho em hỏi thêm là cái số 0x80 trong khai báo đó còn có ý nghĩa gì khác ko ạ ,em thấy họ khai báo từ P0.0 tới P0.7 là 0x80 ->0x87 , các chân khác cũng vậy ,hình như nó có liên quan đến cấu trúc của vđk
-
06-17-2015, 02:52 AM #4
Junior Member
- Ngày tham gia
- Jun 2016
- Bài viết
- 0
bít thì chỉ nhận 0 hoặc 1 thôi. gán thế này P0_0 = 0x80 thì vị trí tương ứng với bít 0 có giá trị nào thì bít p0_0 nhận giá trị đó
-
06-17-2015, 02:58 AM #5
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi huunho
-
06-17-2015, 03:35 AM #6
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
thì nó ở vị trí bít 0 nên nó lấy giá trị bít 0. có phải số 0x80 viết dưới dạng nhị phân là 10000000
tức là nó có 8 bít ,
bit 0 là 0,
bít 1 là 0
bít 2 là 0
....
bít 7 là 1
còn P0_0 chỉ có mỗi 1 bít nên vị trị của nó là bít 0 và và nhận giá trị tương ứng với bít 0 trong số 0x80
-
06-17-2015, 11:56 AM #7
Silver member
- Ngày tham gia
- Feb 2016
- Bài viết
- 0
Do cấu trúc của dòng vdk 8051 ngoài việc các byte được định địa chỉ thì một số bit cũng được định địa chỉ. Port 0 được định danh là P0 có địa chỉ là 0x80 (địa chỉ byte) còn các bit của nó từ P0_0 đến P0_7 có dia chỉ 0x80 đến 0x87 (địa chỉ bit). Khi ta viết lệnh tác động lên byte thì nó là địa chỉ byte, còn viết lệnh tác động lên bit thì nó là địa chỉ bit. Trong file .h có câu lệnh "sbit P0_0 = 0x80" định nghĩa P0_0 là bit có địa chi 0x80, bit này nối với chân 39 của vdk. Còn câu lệnh "P0_0 = 1" nghĩa là bật bit 0x80 lên mức điện áp cao (5v), tương ứng chân 39 của vdk lên 5v. Các cách viết này do trình biên dịch quy định. Nó không phải là các biểu thức toán học với suy luận logic kiểu tam đoạn luận...
Locked In Pee – Có gì bên trong...
Hôm qua, 09:18 PM in Rao vặt tổng hợp