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 #1Junior 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:
- Nhờ m.n giúp lập trình Matlab vẽ đồ thị bài toán cơ học?
- Sóc Trăng các tiềm lực phát triển ánh sáng tái tạo nên
- Cần giúp fix lỗi altium "Access violation at address 158182AE in..."
- Help PIC 16F887 bị treo
- thực hành thiết kế mạch nguồn điện một chiều( 4 điốt, 3 tụ, ,biến áp, cuộn cảm, IC 7818)
- Thiết kế máy Khắc Board mạch điện tử
- 3 Nguyên Nhân chính nhằm mua Bất Động Sản dịp cận Tết
- Em có thể thay thế con thyrisitor này bằng con thyristor nào ạ?
- Lỗi nạp firmware cho esp8266
- broad short
-
06-17-2015, 02:01 AM #2Silver 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 #3Junior 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 #4Junior 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 #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi huunho
-
06-17-2015, 03:35 AM #6Junior 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 #7Silver 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...
Đồ chơi sáng tạo - Người bạn nhỏ...
Hôm nay, 10:32 AM in Rao vặt tổng hợp