Thứ Tư, 2 tháng 1, 2013

[Download] CCS 4.104 FULL - Trình biên dịch vi điều khiển PIC
1/02/2013 05:54:00 SA
4.104, CCS, Download, Full, Phần Mềm, Trình Biên Dịch, vi điều khiển PIC
No comments
Thứ Ba, 4 tháng 9, 2012

Bit - Byte
Bit
Lý thuyết phát biểu rằng
“bit” là đơn vị cơ bản của thông tin ... Hãy tạm thời quên định nghĩa khô khan này, và
nhìn vào thực tế. Câu trả lời không có gì đặc biệt, rằng đây là một chữ số nhị
phân. Tương tự như hệ thống số thập phân, trong đó cùng 1 chữ số trong 1 số
không có cùng giá trị (ví dụ chữ số 4 trong số 444 là như nhau, nhưng có giá trị
khác nhau), "ý nghĩa" của bit cũng phụ thuộc vào vị trí của nó trong
số nhị phân, bằng cách đánh số các bit: bit 0 (bit ngoài cùng bên phải), bit 1
(bit thứ 2 từ bên phải), bit 2 ... Ngoài ra, vì hệ thống số nhị phân sử dụng 2
chữ số (0 và 1), do đó giá trị của 1 bit cũng có thể là 0 hoặc 1.
Đừng nhầm lẫn nếu bạn
thấy 1 bit có giá trị là 4, là 16 hoặc 64. Nó chỉ đơn giản là chúng ta đã quy đổi
giá trị của bit đó từ hệ nhị phân ra hệ thập phân. Ví dụ: "giá trị của bit
thứ 6 trong số nhị phân tương đương với 64 trong hệ thập phân".
Byte
Một byte bao gồm 8 bit
nhóm lại với nhau. Nếu một bit là một chữ số, ta có thể coi byte là một số. Tất
cả các phép tính toán học có thể được thực hiện trên đó, như trên số thập phân
bình thường. Cũng như các hệ thống số khác, các chữ số trong 1 byte không có
cùng giá trị. Giá trị lớn nhất là bit ngoài cùng bên trái, được gọi là bit có trọng số cao nhất (MSB-the most significant bit), bit ngoài cùng bên phải có giá trị bé
nhất và do đó được gọi là bit có trọng số thấp nhất (LSB-the least significant bit).
Giống như hệ thống số nhị phân, 8 chữ số có thể đại diện cho 256 giá trị, do vậy
số thập phân lớn nhất mà 1 byte có thể đại diện là 255 (vì có 1 giá trị dành để
đại diện cho số 0).
Nibble
Nibble là một nửa byte.
Tùy thuộc vào một nửa byte bên trái hoặc bên phải, mà ta gọi là " Nibble cao"
hay " Nibble thấp". Hoặc đơn giản ta có thể gọi là “nửa byte cao” hay
“nửa byte thấp”.

Thế giới của những Con số
9/04/2012 12:53:00 SA
Binary, chuyển đổi, Decimal, Hexadecimal, Hệ Hexa, Hệ Nhị Phân, Hệ Thập Lục Phân, Hệ Thập Phân
No comments
Các
khái niệm cơ bản
Bạn có biết rằng tất cả
mọi người trong chúng ta có thể được xếp vào 1 trong 10 nhóm: nhóm 1 là những
người đã quen thuộc với hệ thống số nhị phân, và nhóm 10 là những người không
quen thuộc với nó. Có thể bạn không hiểu tại sao tôi lại nói là “1 trong 10
nhóm”? J
Điều đó có nghĩa rằng bạn vẫn còn thuộc nhóm phía sau. Đừng lo lắng, nếu bạn muốn
thuộc vào nhóm đầu tiên, để hiểu được “ngôn ngữ của máy tính”, hãy đọc tiếp các
phần tiếp theo, chúng ta sẽ mô tả một cách vắn tắt về các khái niệm cơ bản (chỉ
để chắc chắn rằng chúng ta có thể hiểu được nhau), các khái niệm này được sử dụng
rất nhiều trong lĩnh vực điện tử máy tính. Còn nếu bạn đã nắm rõ, chúng ta cũng
có thể coi đây như một cơ hội củng cố thêm kiến thức.
Thế
giới của những con số
Toán học là một ngành khoa
học cơ bản! Tạo hóa sinh ra vạn vật rất hợp lý và logic. Toàn thể vũ trụ có thể
được con người mô tả chỉ với 10 chữ số. Tuy nhiên, điều này có thực sự đúng?
Chúng ta có thực sự cần chính xác đến 10 chữ số? Tất nhiên là không, đây chỉ là
một vấn đề của thói quen mà thôi. Hãy nhớ lại các bài học từ thời tiểu học.
Ví dụ, số 764 có nghĩa là:
4 đơn vị, 6 hàng chục
và 7 hàng trăm.
Rất đơn giản!
Và nó có thể được mô tả một cách phức tạp
hơn:
4 + 60 + 700.
Thậm chí còn phức tạp hơn nữa:
4 * 1 + 6 * 10 + 7 *
100.
Có thể nhìn nhận các con số này một cách
khoa học hơn không? Câu trả lời là có:
4 * 10 ^ 0 + 6 * 10 ^ 1
+ 7 * 10 ^ 2.
Điều này có ý nghĩa gì? Tại sao chúng ta
có thể hiểu và sử dụng chính xác ngay lập tức với những con số như: 100, 101 và
102? Tại sao các con số này lại liên quan mật thiết với số 10? Đó là bởi vì
chúng ta sử dụng 10 chữ số khác nhau (0, 1, 2, ... 8, 9) để biểu diễn mọi thứ.
Nói cách khác, bởi vì chúng ta sử dụng cơ số 10, tức là hệ thống số thập phân.
Và qua thời gian sử dụng lâu dài, chúng ta đã quen, đến mức không cần thiết phải
biểu diễn lại theo các cách “phức tạp” như trên mà ta vẫn dễ dàng hiểu được
chúng.
Thứ Hai, 3 tháng 9, 2012

Sự khác biệt giữa một Vi điều khiển và một Vi xử lý
Vi điều khiển và vi xử
lý có rất nhiều điểm khác nhau. Sự khác biệt đầu tiên và quan trọng nhất chính là
chức năng của nó. Để bộ vi xử lý có thể hoạt động được, các thành phần ngoại vi
khác như bộ nhớ phải được thêm vào nó. Mặc dù các bộ vi xử lý được coi là những
bộ máy tính toán mạnh mẽ, nhưng điểm yếu của chúng là chúng không được thiết kế
để giao tiếp trực tiếp với các thiết bị ngoại vi.
Để giao tiếp với môi
trường ngoại vi, bộ vi xử lý phải cần thêm các bo mạch đặc biệt khác bên ngoài.
Bộ vi xử lý được ví như trái tim thuần khiết của các máy tính, và nó không thể
hoạt động một mình được. Đây là đặc trưng của các bộ vi xử lý, và điều này vẫn
giữ nguyên cho đến ngày hôm nay.

Lịch sử ra đời của Vi xử lý/Vi điều khiển
Giới thiệu
Sự phát triển mạnh mẽ của
vi điều khiển như ngày hôm nay là nhờ công nghệ mạch tích hợp. Công nghệ này đã
cho phép chúng ta lưu trữ hàng trăm nghìn bóng bán dẫn vào một con chip, mở đầu
cho việc sản xuất các bộ vi xử lý. Các máy tính đầu tiên được tạo ra bằng cách kết
hợp các thiết bị ngoại vi bên ngoài vào bộ vi xử lý chính như bộ nhớ, các bus
vào ra, các bộ định thời … Theo thời gian, việc tăng thêm mật độ tích hợp đã tạo
ra các loại chip đầu tiên, có chứa cả bộ xử lý, các thiết bị ngoại vi, mà chúng
ta quen gọi là vi điều khiển. Vậy mọi thứ đã bắt đầu phát triển từ đâu?
Trở
về quá khứ…
Tại Châu Á, vào năm 1969, một nhóm
các kỹ sư Nhật Bản từ BUSICOM đã
đến
Mỹ để đặt hàng một vài vi
mạch
tích hợp cần thiết cho các
máy
tính được thiết kế theo
dự
án của họ. Yêu cầu này được gửi đến INTEL, và Marcian Hoff là
người phụ trách của dự án
đó. Là người có kinh nghiệm trong
lĩnh vực điện tử máy tính, ông đề
xuất một ý tưởng mới, thay vì ý tưởng thiết kế được đưa ra trước đó. Giải pháp này là
thiết kế các vi mạch hoạt động đúng theo chương trình được lưu trữ trong chính
bản thân nó. Điều này có nghĩa là cấu
hình vi mạch sẽ đơn giản hơn,
nhưng nó sẽ đòi hỏi nhiều không
gian bộ nhớ hơn so với giải pháp được đề xuất bởi
các kỹ sư Nhật Bản. Sau một thời gian, trong
khi
các kỹ sư Nhật Bản vẫn cố gắng tìm một giải
pháp dễ dàng hơn, thì ý tưởng của Marcian
đã được hiện thực và bộ vi xử lý đầu
tiên đã ra đời. Một cộng
sự lớn
của Marcian,
góp phần
biến ý tưởng trở thành sản phẩm đó
là
Federico Faggin. Chín tháng sau khi thuê anh ta, Intel đã thành công trong việc
phát triển một sản phẩm từ ý tưởng ban đầu đó. Năm 1971, Intel
có được quyền bán mạch tích hợp này. Trước đó, Intel đã mua lại bản quyền từ
BUSICOM, trở thành kho báu của Intel. Trong năm đó, một bộ vi xử lý được gọi là
4004 xuất hiện trên thị trường. Đó là bộ vi xử lý 4-bit đầu tiên với tốc độ 108KHz,
số lượng bóng bán dẫn là 2.300.

Chào mừng bạn đến với Thế giới của Vi điều khiển
Mở
Đầu
Nội dung trong loạt bài này sẽ giới thiệu
đến các bạn những kiến thức cơ bản nhất, mong góp phần dẫn đường cho các bạn đến
với thế giới của vi điều khiển.
Thứ tự các bài đã được sắp xếp từ trên xuống dưới, từ đơn giản đến phức tạp. Do vậy bạn nên đọc theo thứ tự đó.
Hoan nghênh góp ý của các bạn!
Thứ Sáu, 31 tháng 8, 2012

Cách hàn linh kiện dán (SMD)
8/31/2012 01:43:00 SA
Cách hàn linh kiện dán, Điện tử cơ bản, Hàn linh kiện dán, Phương pháp hàn linh kiện dán, SMD
No comments
Chuẩn bị: mỏ hàn tốt, thiếc sợi nhỏ, thiếc lỏng, nhựa thông nước, dây hút thiếc, các dụng cụ lau chùi ...
Thứ Hai, 30 tháng 7, 2012

Mũi điện tử giúp chẩn đoán sớm căn bệnh ung thư
Trung tâm nghiên cứu công nghệ nano thuộc Học viện công trình hóa học, Đại học công nghệ Haifa (Israel) vừa tuyên bố đã nghiên cứu thành công mũi điện tử bionic chẩn đoán sớm bệnh ưng thư.
Ảnh minh hoa. Nguồn: Internet
Thiết bị trên có thể chẩn đoán nhanh, chính xác các bệnh ung thư và vị trí ung thư như ung thư phổi, ung thư tuyến vú, ung thư tuyến tiền liệt và ung thư ruột kết.
|
Thứ Tư, 25 tháng 7, 2012

Thấu kính áp tròng tích hợp màn hình Led
7/25/2012 10:34:00 CH
Bản tin, Bản tin Thiết Bị Số, Thấu kính áp tròng tích hợp màn hình Led
No comments
Thấu kính áp tròng tích hợp màn hình Led, có thể hiển thị nhiều thông tin kiểu đồ họa, đang bước dần từ phim ảnh viễn tưởng ra cuộc sống thật nhờ công trình nghiên cứu của các nhà khoa học.
Nắm bắt xu thế ngày càng nhỏ gọn của các thiết bị hiển thị hình ảnh di động, nhà nghiên cứu Babak Parviz tại ĐH Washington, Seattle, Mỹ, đã đưa ra ý tưởng tích hợp những thiết bị này với một thấu kính áp tròng. Để thực hiện điều này, Parviz đã tìm cách nhúng những vi mạch điện tử trong chất nền như giấy hoặc nhựa. Những mạch điện và đi-ôt phát quang đã được bọc trong vật liệu tương hợp sinh học và sau đó đặt vào những đường nứt khắc vào ống kính. |

Ghép thành công vi mạch điện tử cho người mù
7/25/2012 09:59:00 CH
Bản tin, Bản tin Thiết Bị Số, Ghép thành công vi mạch điện tử cho người mù
No comments
Vi mạch điện tử kích thước 3 x 3mm, được cấy vào nhãn cầu mắt của người mù.
TPO - “Lần đầu tiên tôi thấy ánh sáng sau 20 năm sống trong bóng tối”. Người đàn ông mù người Anh đã hồi phục được khả năng thị giác sau khi phẫu thuật thành công vi mạch điện tử vào nhãn cầu mắt.
Thứ Năm, 19 tháng 7, 2012

[Học lập trình 8051] Bài 7: Ngắt trong 8051
7/19/2012 12:34:00 CH
8051, Giới thiệu 8051, Học Lập Trình 8051, Interrupt, lập trình 8051, Ngắt, Vi Điều Khiển, Vi Xử Lý
17 comments
Ngắt trong 8051
Mục tiêu
Kết thúc bài học này, bạn có thể:
Ø Phân biệt cơ chế ngắt với hỏi vòng
Ø Nắm rõ các loại ngắt trong 8051
·
Ngắt timer/counter
·
Ngắt ngoài
·
Ngắt truyền thông nối tiếp
Ø Lập trình các ngắt
·
Trình phục vụ ngắt là gì?
·
Cho phép ngắt và cấm ngắt
·
Thiết lập mức ưu tiên của các ngắt
Giới thiệu
Ngắt (Interrupt) - như tên của nó, là một số sự kiện khẩn cấp bên trong
hoặc bên ngoài bộ vi điều khiển xảy ra, buộc vi điều khiển tạm dừng thực hiện
chương trình hiện tại, phục vụ ngay lập tức nhiệm vụ mà ngắt yêu cầu – nhiệm vụ
này gọi là trình phục vụ ngắt (ISR: Interrupt
Service Routine).
Trong
bài này ta tìm hiểu khái niệm ngắt và lập trình các ngắt trong bộ vi điều khiển
8051.
1. Các ngắt của 8051
1.1 Phân biệt
cơ chế ngắt với hỏi vòng
Lấy ví dụ: Bộ vi điều khiển đóng vai trò như một vị bác sĩ, các thiết
bị kiểm soát bởi vi điều khiển được coi như các bệnh nhân cần được bác sĩ phục
vụ.
Bình
thường, vị bác sĩ sẽ hỏi thăm lần lượt từng bệnh nhân, đến lượt bệnh nhân nào
được hỏi thăm nếu có bệnh thì sẽ được bác sĩ phục vụ, xong lại đến lượt bệnh
nhân khác, và tiếp tục đến hết. Điều này tương đương với phương pháp thăm dò - hỏi vòng (Polling) trong
vi điều khiển.
Cứ
như thế, nếu chúng ta có 10 bệnh nhân, thì bệnh nhân thứ 10 dù muốn hay không
cũng phải xếp hàng chờ đợi 09 bệnh nhân trước đó. Giả sử trường hợp bệnh nhân
thứ 10 cần cấp cứu thì sao? Anh ta sẽ gặp nguy cấp trước khi đến lượt hỏi thăm
của bác sĩ mất! L
Nhưng, nếu anh ta sử dụng phương pháp “ngắt” thì mọi chuyện sẽ ổn ngay. Lúc đó
vị bác sĩ sẽ ngừng mọi công việc hiện tại của mình, và tiến hành phục vụ trường
hợp khẩn cấp này ngay lập tức, xong việc bác sĩ lại trở về tiếp tục công việc
đang dở. Điều này tương đương với phương pháp ngắt (Interrupts) trong
vi điều khiển.
Trở
lại với bộ vi điều khiển của chúng ta: 1 bộ vi điều khiển có thể phục vụ cho nhiều
thiết bị, có 2 cách để thực hiện điều này đó là sử dụng các ngắt (Interrupts) và thăm dò (polling):
Ø Trong
phương pháp sử dụng ngắt: mỗi khi
có một thiết bị bất kỳ cần được phục vụ thì nó báo cho bộ vi điều khiển bằng
cách gửi một tín hiệu ngắt. Khi nhận
được tín hiệu ngắt thì bộ vi điều
khiển ngừng tất cả những gì nó đang thực hiện để chuyển sang phục vụ thiết bị
gọi ngắt. Chương trình ngắt được gọi là trình phục vụ ngắt ISR (Interrupt Service Routine) hay còn gọi là trình quản lý ngắt
(Interrupt handler). Sau khi phục vụ ngắt xong, bộ vi xử lý lại quay trở lại
điểm bị ngắt trước đó và tiếp tục thực hiện công việc.
Ø Trong
phương pháp thăm dò: bộ vi điều khiển kiểm tra liên tục
tình trạng của tất cả các thiết bị, nếu thiết bị nào có yêu cầu thì nó dừng lại
phục vụ thiết bị đó. Sau đó nó tiếp tục kiểm tra tình trạng của thiết bị kế
tiếp cho đến hết. Phương pháp thăm dò rất đơn giản, nhưng nó lại rất lãng phí
thời gian để kiểm tra các thiết bị kể cả
khi thiết bị đó không cần phục vụ. Trong trường hợp có quá nhiều thiết bị
thì phương án thăm dò tỏ ra không hiệu quả, gây ra chậm trễ cho các thiết bị
cần phục vụ.
Điểm mạnh của phương pháp ngắt là:
Ø Bộ vi điều khiển có thể phục vụ được rất nhiều thiết bị (tất nhiên là không tại
cùng một thời điểm). Mỗi thiết bị có thể nhận được sự chú ý của bộ vi điều
khiển dựa trên mức ưu tiên được gán
cho nó. Đối với phương pháp thăm dò thì không thể gán mức ưu tiên cho các thiết
bị vì nó kiểm tra tất cả mọi thiết bị theo kiểu hỏi vòng.
Ø Quan trọng hơn, trong phương pháp ngắt thì bộ vi điều khiển
còn có thể che (làm lơ) một yêu cầu phục
vụ của thiết bị. Điều này lại một lần nữa không thể thực hiện được trong phương
pháp thăm dò.
Ø Lý do quan trọng nhất mà phương pháp ngắt được ưu chuộng là
vì nó không lãng phí thời gian cho các thiết bị không cần phục vụ. Còn phương
pháp thăm dò làm lãng phí thời gian của bộ vi điều khiển bằng cách hỏi dò từng
thiết bị kể cả khi chúng không cần phục vụ.
Ví
dụ trong các bộ định thời được bàn đến ở các bài trước ta đã dùng một vòng lặp
kiểm tra và đợi cho đến khi bộ định thời quay trở về 0. Trong ví dụ đó, nếu sử
dụng ngắt thì ta không cần bận tâm đến việc kiểm tra cờ bộ định thời, do vậy không
lãng phí thời gian để chờ đợi, trong khi đó ta có thể làm việc khác có ích hơn.
1.2 Sáu ngắt trong 8051
Thực
tế chỉ có 5 ngắt dành cho người dùng
trong 8051 nhưng các nhà sản xuất nói rằng có 6 ngắt vì họ tính cả lệnh RESET.
Sáu ngắt của 8051 được phân bố như sau:
1.
RESET: Khi chân
RESET được kích hoạt từ 8051, bộ đếm chương trình nhảy về địa chỉ 0000H.
Đây là địa chỉ bật lại nguồn.
2.
2 ngắt dành cho các bộ định thời: 1 cho Timer0 và
1 cho Timer1. Địa chỉ tương ứng của
các ngắt này là 000BH và 001BH.
3.
2 ngắt dành cho các ngắt phần cứng bên ngoài: chân 12 (P3.2) và 13 (P3.3) của cổng P3 là các ngắt phần
cứng bên ngoài INT0 và INT1 tương ứng. Địa chỉ tương ứng của
các ngắt ngoài này là 0003H và 0013H.
4.
Truyền thông nối tiếp:
có 1 ngắt chung cho cả nhận và truyền dữ liệu nối tiếp. Địa chỉ của ngắt này
trong bảng vector ngắt là 0023H.
1.3 Trình phục vụ ngắt
Đối
với mỗi ngắt thì phải có một trình phục
vụ ngắt (ISR) hay trình quản lý
ngắt để đưa ra nhiệm vụ cho bộ vi điều khiển khi được gọi ngắt. Khi một ngắt
được gọi thì bộ vi điều khiển sẽ chạy trình phục vụ ngắt. Đối với mỗi ngắt thì
có một vị trí cố định trong bộ nhớ để giữ địa chỉ ISR của nó. Nhóm vị trí bộ nhớ được dành riêng để lưu giữ địa chỉ
của các ISR được gọi là bảng vector ngắt. Xem Hình 1.
Thứ Sáu, 13 tháng 7, 2012

Virtual Serial Port Driver - Tạo cổng nối tiếp ảo
7/13/2012 02:33:00 CH
Phần Mềm, Tạo cổng Com ảo, Tạo cổng nối tiếp ảo, Virtual Serial Port Driver
3 comments
Virtual Serial Port Driver là phần mềm hữu hiệu để tạo ra các cổng nối tiếp ảo và kết nối chúng theo cặp thông qua dây cáp null-modem ảo. Các ứng dụng trên cả hai đầu của cặp đó sẽ có thể trao đổi dữ liệu cho nhau.
Khi đó, dữ liệu được ghi trên cổng đầu tiên sẽ xuất hiện ở cổng thứ hai và ngược lại.
Tất cả các cổng nối tiếp ảo đều hoạt động chính xác như những cổng thực, mô phỏng các thiết lập của chúng. Do đó, bạn có thể tạo ra bao nhiêu cặp cổng ảo theo ý muốn mà không cần phải sử dụng phần cứng bổ sung nào.
Thêm vào đó, công nghệ cổng nối ảo Eltima có thể được tích hợp toàn diện vào trong phần mềm của chính bạn.

[Học lập trình 8051] Bài 6: Truyền thông nối tiếp với 8051
7/13/2012 02:03:00 CH
8051, Ghép Nối Máy Tính, Giới thiệu 8051, Học Lập Trình 8051, Không Đồng Bộ, lập trình 8051, Truyền Dữ Liệu, Truyền Thông Nối Tiếp, UART, Vi Điều Khiển, Vi Xử Lý
31 comments
Truyền thông nối tiếp với 8051
Mục
tiêu
Kết thúc bài học này, bạn có thể hiểu:
Ø Truyền dữ liệu nối tiếp đồng bộ, không đồng bộ
Ø Đóng khung dữ liệu trong truyền thông không đồng bộ
Ø Chuẩn giao diện RS232
Ø Nối ghép 8051 với chuẩn RS232
Ø Các bước lập trình truyền thông nối tiếp cho 8051
·
Cài đặt khung truyền
·
Cài đặt tốc độ baud
Giới
thiệu
Các
máy tính truyền dữ liệu theo hai cách: Song song và nối tiếp. Trong truyền dữ
liệu song song thường cần rất nhiều đường dây dẫn chỉ để truyền dữ liệu đến một
thiết bị chỉ cách xa vài bước. Ví dụ của truyền dữ liệu song song là các máy in
hoặc các ổ cứng, mỗi thiết bị sử dụng một đường cáp với nhiều dây dẫn. Mặc dù
trong các trường hợp như vậy thì nhiều dữ liệu được truyền đi trong một khoảng
thời gian ngắn bằng cách dùng nhiều dây dẫn song song, nhưng khoảng cách thì
không thể lớn được. Vì các đường cáp dài làm suy giảm thậm chí làm méo tín
hiệu. Ngoài ra, các đường cáp dài có giá thành cao. Vì những lý do này, để
truyền dữ liệu đi xa thì phải
sử dụng phương pháp truyền nối tiếp.
1.
Các cơ sở của truyền thông nối tiếp
Trong truyền thông nối tiếp dữ liệu được gửi đi từng bit một,
so với truyền song song thì là một hoặc nhiều byte được truyền đi cùng một lúc.
Hình 1 so sánh giữa việc truyền dữ
liệu nối tiếp và song song.
Hình 1: Sơ đồ truyền dữ liệu nối tiếp
so với sơ đồ truyền song song.
Thứ Tư, 11 tháng 7, 2012

Khái niệm cơ bản trong kỹ thuật Vi xử lý
7/11/2012 12:55:00 SA
khái niệm, Khái Niệm Cơ Bản, Kỹ Thuật, Kỹ Thuật Vi Xử Lý, Vi Điều Khiển, Vi Xử Lý
No comments
Khái niệm cơ bản trong kỹ thuật Vi xử lý
Intel
4004, vi xử lý 4 bit thương mại đầu tiên năm 1971
Bộ
vi xử lý Intel 80486DX2
Những kiến thức được diễn đạt trong
tài liệu này là những ý kiến mang tính chủ quan mà người viết muốn san sẻ với
các bạn đọc có cùng mối quan tâm và chỉ liên quan đến những vấn đề cơ bản của
kỹ thuật vi xử lý nói chung, không phải là kiến thức áp dụng cho một loại vi xử
lý cụ thể.
Thứ Ba, 10 tháng 7, 2012

[Tự học Lập trình C] Bài 16: Hàm [Thực Hành]
7/10/2012 09:01:00 CH
hàm, Học, Học Lập Trình C, hướng dẫn, Lập Trình, Lập Trình C, Ngôn Ngữ C, Nhập môn C, Thực Hành, Tự Học C, Tự Học Lập Trình C
No comments
Bài 16: Hàm [Thực Hành]
Mục tiêu:
Kết thúc bài học này, bạn có thể:
Ø Định nghĩa và gọi hàm
Ø Sử dụng các tham số trong hàm
Phần I – Trong thời gian 1 giờ 30 phút đầu:
16.1 Hàm
Như chúng ta đã biết, một hàm là một khối các lệnh thực hiện một
tác vụ xác định. Trong bài này, chúng ta tập trung vào cách tạo và sử dụng hàm.
16.1.1 Định nghĩa hàm
Một hàm được định nghĩa với một tên hàm, theo sau bởi cặp dấu
ngoặc nhọn {} bên trong chứa một hay nhiều câu lệnh.
Ví dụ:
argentina()
{
statement 1;
statement 2;
statement 3;
}
16.1.2 Gọi một hàm
Một hàm có thể được gọi từ chương trình chính bằng cách đưa ra tên
của hàm theo sau bởi cặp dấu ngoặc () và một dấu chấm phẩy ;.
Ví dụ:
argentina();
Bây giờ, xem chương trình hoàn thiện:
1. Gọi
trình soạn thảo chương trình C.
2. Tạo
tập tin mới.
3. Đưa
vào đoạn mã lệnh sau:
#include<stdio.h>
#include<conio.h>
void Vietnam();
void Italy();
void Brazil();
void Argentina();
main()
{
printf("\nI am in main");
Vietnam();
Italy();
Brazil();
Argentina();
getch();
}
void Vietnam()
{
printf("\nI am in Vietnam");
}
void Italy()
{
printf("\nI am in Italy");
}
void Brazil()
{
printf("\nI am in Brazil");
}
void Argentina()
{
printf("\nI am in Argentina");
}
4. Biên
dịch và thực thi chương trình.
Kết quả của chương trình:
Thứ Hai, 9 tháng 7, 2012

[Học lập trình 8051] Bài 5: Bộ đếm-Bộ định thời trong 8051
7/09/2012 08:25:00 SA
8051, Bộ Đếm, Bộ Định Thời, Counter, Giới thiệu 8051, Học Lập Trình 8051, lập trình 8051, Timer, Vi Điều Khiển, Vi Xử Lý
1 comment
Bộ
đếm/ bộ định thời trong 8051
Mục tiêu
Kết
thúc bài học này, bạn sẽ nắm được:
Ø Bộ đếm, bộ định
thời là gì?
Ø Các thanh ghi
liên quan
Ø Cách thức hoạt
động của bộ đếm/bộ định thời
Ø Các bước lập
trình bộ đếm/bộ định thời
Giới
thiệu
Bộ đếm/Bộ định
thời: Đây là các ngoại vi được thiết kế để thực hiện một nhiệm vụ đơn giản: đếm
các xung nhịp. Mỗi khi có thêm một xung nhịp tại đầu vào đếm thì giá trị của bộ
đếm sẽ được tăng lên 01 đơn vị (trong chế độ đếm tiến/đếm lên) hay giảm đi 01
đơn vị (trong chế độ đếm lùi/đếm xuống).
Xung nhịp đưa
vào đếm có thể là một trong hai loại:
Ø
Xung
nhịp bên trong IC: Đó là xung nhịp được tạo ra nhờ kết hợp mạch dao động bên
trong IC và các linh kiện phụ bên ngoài nối với IC. Trong trường hợp sử dụng
xung nhịp loại này, người ta gọi là các bộ
định thời (timers). Do xung nhịp
bên loại này thường đều đặn nên ta có thể dùng để đếm thời gian một cách khá chính xác.
Ø
Xung
nhịp bên ngoài IC: Đó là các tín hiệu logic thay đổi liên tục giữa 02 mức 0-1
và không nhất thiết phải là đều đặn. Trong trường hợp này người ta gọi là các bộ đếm (counters). Ứng dụng phổ biến của các bộ đếm là đếm các sự kiện bên ngoài như đếm các sản phầm chạy trên băng
chuyền, đếm xe ra/vào kho bãi…
Một khái niệm
quan trọng cần phải nói đến là sự kiện “tràn”
(overflow). Nó được hiểu là sự kiện
bộ đếm đếm vượt quá giá trị tối đa mà nó có thể biểu diễn và quay trở về giá
trị 0. Với bộ đếm 8 bit, giá trị tối đa là 255 (tương đương với FF trong hệ
Hexa) và là 65535 (FFFFH) với bộ đếm 16 bit.
8051
có 02 bộ đếm/bộ định thời. Chúng có thể được dùng như các bộ định thời để tạo một bộ trễ thời gian hoặc như các bộ đếm để đếm các sự kiện xảy ra bên
ngoài bộ VĐK. Trong bài này chúng ta sẽ tìm hiểu về cách lập trình cho chúng
và sử dụng chúng như thế nào. Phần 1
là Lập trình bộ định thời, và phần 2
là Lập trình cho bộ đếm.
1. Các bộ định thời của 8051
8051
có hai bộ định thời là Timer 0 và Timer 1, ở phần này chúng ta bàn về các
thanh ghi của chúng và sau đó trình bày cách lập trình chúng như thế nào để tạo
ra các độ trễ thời gian.
1.1 Các thanh ghi cơ sở của bộ định thời
Cả
hai bộ định thời Timer 0 và Timer 1 đều có độ dài 16 bit được truy cập như hai thanh ghi
tách biệt byte thấp và byte cao. Chúng ta sẽ bàn riêng về từng
thanh ghi.
1.1.1 Các thanh ghi của bộ Timer 0
Thanh
ghi 16 bit của bộ Timer 0 được truy
cập như byte thấp và byte cao:
Ø
Thanh
ghi byte thấp được gọi là TL0 (Timer0
Low byte).
Ø
Thanh
ghi byte cao được gọi là TH0 (Timer0
High byte).
Các
thanh ghi này có thể được truy cập, hoặc được đọc như mọi thanh ghi khác
chẳng hạn như A, B, R0, R1, R2 v.v...
Hình 1: Các thanh ghi
của bộ Timer 0
Chủ Nhật, 8 tháng 7, 2012

[Học lập trình 8051] Bài 4: Các chân, cổng vào/ra
7/08/2012 05:42:00 SA
8051, Chân, Cổng Vào Ra, Giới thiệu 8051, Học Lập Trình 8051, I/O, lập trình 8051, Vi Điều Khiển, Vi Xử Lý
3 comments
Các chân, cổng vào/ra
Mục tiêu:
Kết
thúc bài học này, bạn có thể:
Ø Nắm
được cấu trúc các chân của 8051
Ø Biết
rõ tác dụng của chúng, cách sử dụng
1. Mô tả các chân của
8051
Mặc dù các thành viên của họ 8051 (ví dụ
8751, 89C51, DS5000) đều có các kiểu đóng vỏ khác nhau, chẳng hạn như hai hàng
chân DIP (Dual In-Line Pakage) dạng vỏ dẹt vuông QFP (Quad Flat Pakage) và dạng
chíp không có chân đỡ LLC (Leadless Chip Carrier) thì chúng đều có 40 chân cho
các chức năng khác nhau như vào/ra I/0, đọc RD, ghi WR, địa chỉ, dữ liệu và ngắt.
Cần phải lưu ý rằng một số hãng cung cấp một phiên bản 8051 có 20 chân với số cổng
vào-ra ít hơn cho các ứng dụng yêu cầu thấp hơn. Tuy nhiên, vì hầu hết các nhà
phát triển chính sử dụng chíp đóng vỏ 40 chân với hai hàng chân DIP nên ta chỉ
tập trung mô tả phiên bản này.
Hình
1:
Sơ đồ bố trí chân của 8051.
Thứ Hai, 2 tháng 7, 2012

Quy ước khi viết Mã nguồn C/C++
7/02/2012 09:35:00 CH
Học, Học Lập Trình C, hướng dẫn, Lập Trình, Lập Trình C, Ngôn Ngữ C, Nhập môn C, Phong Cách, Quy Tắc, Quy Ước, Tự Học C, Tự Học Lập Trình C
No comments
QUY
ƯỚC KHI VIẾT MÃ NGUỒN C/C++
Khi viết mã nguồn, việc sửa lỗi, hay dùng lại mã nguỗn
là điều rất cần thiết. Để sử dụng mã nguồn một cách hiệu quả và
làm cho người đọc dễ hiểu thì việc trình bày mã nguồn là điều rất
quan trọng. Nếu không có một quy tắc nào trong viết mã nguồn, thì
chính người viết ra nó cũng khó hiểu được mã nguồn đó sau một thời
gian dài. Do đó chúng ta cần có các Quy tắc, hay còn gọi là Phong
cách viết mã nguồn. Bài viết này liệt kê một số Quy tắc cơ bản cần
thiết.