Mục lục:
- Quân nhu
- Bước 1: Cài đặt Bascom và thiết lập
- Bước 2: Hãy xem xét kỹ hơn con chip
- Bước 3: Mạch đầu tiên
- Bước 4: Viết chương trình đầu tiên
- Bước 5: Thêm nút để sử dụng đầu vào
Video: Bắt đầu với Bascom AVR: 5 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:30
Đây là phần mở đầu của loạt bài hướng dẫn bạn lập trình vi điều khiển AVR của mình với Bascom AVR.
Tại sao tôi làm điều này.
Hầu hết các mẫu chương trình trong loạt bài này bạn có thể thực hiện bằng Arduino.
Một số dễ hơn và một số khó hơn, nhưng cuối cùng cả hai sẽ chạy trên cùng một bộ điều khiển.
Nhưng cách lập trình là khác nhau trong mọi môi trường phát triển. Arduino cần một thư viện cho mọi thứ ngoại trừ các chức năng cơ bản. Bascom cũng làm việc với các thư viện, nhưng tôi hiếm khi phải bao gồm một thư viện. Với Arduino, tất cả các cài đặt dành riêng cho phần cứng đều được thực hiện thông qua các thư viện. bạn có rất ít ảnh hưởng đến sức mạnh thực tế của bộ vi điều khiển. Bắt đầu với bộ hẹn giờ mà bộ điều khiển có. với arduino, bạn cần một thư viện nữa. nếu bạn có bộ đếm thời gian cho đến khi nó hoạt động, nó có thể là một thư viện khác va chạm với cài đặt của bạn. Tại bascom, bạn có quyền truy cập miễn phí vào phần cứng hoàn chỉnh bao gồm cả khu vực khởi động được chiếm bởi arduino. ví dụ, một số thư viện tại bascom hỏi bạn muốn sử dụng bộ đếm thời gian nào. mặt khác, vì arduino giúp bạn dễ dàng tự tạo một thư viện, nên nó tự nhiên làm cho nó trở thành một nền tảng mà phần cứng và cảm biến mới thường có một thư viện trực tiếp. những gì thường liên quan đến rất nhiều nghiên cứu tại bascom và các chức năng mà một thư viện thường đảm nhận sau đó phải được kết hợp cẩn thận vào mã chương trình. nhưng tin tốt là cộng đồng bascom cũng rất lớn, đó là lý do tại sao luôn có giải pháp cho mọi ý tưởng.
Vì vậy, nó phụ thuộc một phần vào dự án những gì được sử dụng cho một môi trường phát triển và một phần vào bí quyết của người lập trình.
nhưng tại sao tôi lại làm loạt bài này. một mặt nó tiết kiệm được nhiều tiền. Tôi không cần phải mua một bảng arduino cho mọi dự án. Ví dụ: Một Arduino noname có giá khoảng 12 €, bộ điều khiển trên đó chỉ có giá 2,5 € với mạch tối thiểu cần thiết cho một chức năng ổn định, nó có giá khoảng 4 €. mặt khác, bạn có toàn bộ lựa chọn chip avr được hỗ trợ sẵn có. atmegas 8 đến 256 và attiny 8 đến 2313 và nhiều loại xmega mà tôi không có kinh nghiệm. Ví dụ: nếu bạn chỉ muốn sử dụng một servo và cảm biến siêu âm có thể nhận dạng bàn tay, sau đó mở nắp thùng rác, bạn có thể sử dụng chip nhỏ nhất có thể. Vì vậy, có rất nhiều lý do để học ngôn ngữ thứ hai.
Vậy hãy bắt đầu
Quân nhu
Đây là danh sách các bộ phận cần thiết tối thiểu để chip hoạt động ổn định và lập trình.
Breadboard để thử nghiệm
Atmega 8-16PU (tốt hơn bạn nên mua 2 hoặc 3 nếu bạn giết chúng do nhầm lẫn)
Bộ điều chỉnh điện áp 5V 7805
Điện trở 10Kohm
Tụ phim 100nF
Tụ điện 10µF
Tụ điện 100µF
một số dây cho breadboard
Windows PC 7/8 / 8.1 / 10
Lập trình viên ISP (tôi sẽ sử dụng USBasp ở đây, bạn có thể mua nó ở amazon với giá ít tiền)
Bascom AVR (bạn có thể tải xuống tại đây một DEMO. Tất cả các funktions đều được mở khóa, nhưng bạn chỉ có thể viết mã cho đến khi kích thước 4Kb đủ cho nhiều mã).
Phần tùy chọn:
LED có điện trở
công tắc đẩy
các bộ phận cụ thể của dự án
Bước 1: Cài đặt Bascom và thiết lập
Tải xuống tệp và cài đặt Bascom AVR. Cài đặt tất cả các phần của nó bao gồm cả hộp kiểm cuối cùng sau khi cài đặt.
Sau đó khởi động lại PC của bạn nếu không bascom sẽ không khởi động.
Sau khi khởi động lại bắt đầu bascom.
Đi tới Tùy chọn -> Lập trình viên và chọn USBasp từ danh sách, lưu cài đặt và đóng Bascom.
Sử dụng Chương trình này để cài đặt usbasp. Sau đó, khởi động lại PC của bạn một lần nữa. Bây giờ kết nối USBasp với PC của bạn và khởi động trình quản lý thiết bị. USBasp sẽ xuất hiện trên các thiết bị libusb.
Stat Bascom một lần nữa và tạo một tệp mới. Lưu nó vào máy tính của bạn và nhấn nút F7 trên bàn phím của bạn.
Trình biên dịch khởi động và biên dịch chương trình trống. Bây giờ bạn có thể kiểm tra chức năng của lập trình viên.
Nhấn nút F4 trên bàn phím của bạn để bắt đầu cửa sổ lập trình. Bây giờ vào chip -> nhận dạng để bắt đầu tương tác. Đèn LED từ USBasp bây giờ sẽ nhấp nháy ngắn. Bạn sẽ nhận được một thông báo như chip Id FFFFFF không thể đọc thiết bị. Đó là một dấu hiệu tốt là Lập trình viên đang làm việc nhưng nó không tìm thấy chip.
Bây giờ chúng ta có thể bắt đầu xây dựng mạch đầu tiên.
Bước 2: Hãy xem xét kỹ hơn con chip
Nếu bạn nhìn vào sơ đồ chân của con chip, có vẻ như con chip này không giống với bo mạch arduino. Chắc chắn, chúng tôi sử dụng Atmega8 và trên Arduino không có Atmega328. Nhưng Pinout gần giống nhau nhưng chip của anh ấy của board Arduino Uno có nhiều chức năng hơn. Đây là tên của các ghim. VCC và GND là các chân để cấp nguồn.
AREF và AVCC là chân cho điện áp tham chiếu và nguồn cung cấp cho bộ chuyển đổi tương tự sang kỹ thuật số.
PB 0-7 PC 0-6 PD 0-7 là các chân đầu ra đầu vào mục đích chung với nhiều người.
đặt lại pin là những gì tên nói. Để khởi động lại chip. Dòng phía trên tên đặt lại có nghĩa là phủ định. Điều đó có nghĩa là, để thiết lập lại chip, bạn phải kéo nó xuống 0V.
Đối với các chân sau, các lệnh riêng biệt sẽ sớm xuất hiện.
RXD TXD là các chân phần cứng cho giao tiếp nối tiếp UART.
INT0 INT1 là các chân ngắt phần cứng
XCK / T0 UART Nguồn đồng hồ / Bộ định thời / Bộ đếm 0 Nguồn đồng hồ
Chân XTAL / TOSC dành cho tinh thể bên ngoài lên đến 16MHz (các kiểu khác nhau lên đến 20MHz) / Chân pha lê cho RTC bên trong
T1 tương tự như T0
Các chân AIN dành cho bộ so sánh tương tự
ICP1 tương tự như T0 / T1
OC1A là chân đầu ra phần cứng cho bộ định thời pwm1 kênh A
Chân chọn chip SS / OC2 cho SPI / như OC1B nhưng kênh B
MOSI MISO SCK / OC2 là các chân SPI phần cứng và các chân để lập trình / bộ định thời đầu ra PWM2
ADC0 đến ADC5 là các đầu vào tương tự
SDA SCL là các Chân cho I2C phần cứng
Chip thông thường có thể hoạt động từ 4, 5V đến 5, 5V thì Atmega 8L có thể hoạt động với Điện áp thấp hơn nhiều.
Bạn thấy thậm chí con chip này có thể làm được nhiều hơn một Arduino Uno dường như không thể làm được. Nhưng Arduino cũng có thể làm được điều đó, bạn chỉ phải lập trình nó.
Bước 3: Mạch đầu tiên
Bây giờ đã đến lúc xây dựng mạch đầu tiên của bạn.
Thông thường mạch đầu tiên là gì? Bên phải! Hãy nhấp nháy đèn LED.
Đèn LED được kết nối với PB0. Điện trở bên cạnh chip có 10k Ohms.
Điện trở bên cạnh đèn LED có 470 Ohms.
Bây giờ bạn có thể kết nối USBasp với Atmega như trong hình.
Nhưng trước khi bạn bật nguồn, hãy để chúng tôi viết chương trình.
Bước 4: Viết chương trình đầu tiên
Tạo một tệp mới trong Bascom và nhập văn bản sau.
$ regfile "m8def.dat"
$ crystal = 1000000 config portb.0 = output do portb.0 = 1 đợi 1 portb.0 = 0 đợi 1 vòng lặp
sau đó biên dịch nó bằng cách nhấn F7 trên bàn phím của bạn.
Bây giờ chúng ta có thể lập trình chip bằng cách nhấn F4. Cửa sổ lập trình viên xuất hiện. Bây giờ đã đến lúc bật nguồn từ breadboard. Bạn nên áp dụng một cái gì đó từ 6 đến 12 Volts.
Bây giờ vào chip -> autoprogram. Nếu cửa sổ lập trình viên tự động đóng lại thì chương trình đã thành công.
Đèn LED sẽ nhấp nháy trong tần số một giây.
Bây giờ hãy xem kỹ chương trình để hiểu cú pháp.
$ regfile "m8def.dat"
$ pha lê = 1000000
với $ regfile, chúng tôi cho trình biên dịch biết loại chip được sử dụng, tên của chip Arduino sẽ là "m328pdef.dat"
với $ crystal, chúng tôi cho anh ta biết tốc độ cpu khoảng 1MHz.
config portb.0 = Đầu ra
điều đó có nghĩa là PB0 sẽ hoạt động như một đầu ra.
Nhân tiện, từ viết tắt PB0 có nghĩa là cổng B bit 0. Chip được chia thành nhiều cổng. Mỗi cổng được cấp một chữ cái để xác định rõ ràng. và mỗi portpin một bit từ 0 đến 7. Ví dụ, tôi có thể ghi một byte hoàn chỉnh vào thanh ghi đầu ra cổng, thanh ghi này sẽ được xuất thông qua các chân cổng riêng lẻ.
làm
vòng
Đây là ý nghĩa của câu lệnh void loop trong Arduino. Tất cả giữa hai lệnh đó sẽ lặp lại mãi mãi. (với một số ngoại lệ nhưng sau đó nhiều hơn về điều đó)
Cổngb.0 = 1
đợi 1 portb.0 = 0 đợi 1
Ở đây chúng tôi tạo ra sự nhấp nháy của đèn led.
Portb.0 = 1 cho chip chuyển đầu ra PB0 thành 5V
lệnh chờ 1 để chip đợi trong một giây. Nếu bạn muốn chuyển đổi đèn led nhanh hơn, bạn phải thay thế lệnh chờ bằng các lệnh chờ, bây giờ bạn có thể nhập thời gian bây giờ tính bằng mili giây, ví dụ: waitms 500. (waitus có nghĩa là đợi trong nano giây)
Portb.0 = 0 báo cho chip chuyển đầu ra PB0 thành 0V.
Bước 5: Thêm nút để sử dụng đầu vào
Bây giờ chúng ta thêm một nút để làm sáng đèn led nếu nút đó được nhấn.
Chèn nút như trong hình.
bây giờ gõ vào chương trình sau.
$ regfile "m8def.dat"
$ crystal = 1000000 config portb.0 = output config portd.7 = input Portd.7 = 1 do if pind.7 = 0 then portb.0 = 1 else portb.0 = 0 vòng lặp
Nếu bạn tải chương trình đó lên chip, đèn led chỉ sáng khi nhấn nút. Nhưng tại sao?
chương trình bắt đầu giống hệt như chương trình cuối cùng cho đến khi
cấu hình portd.7 = đầu vào. Điều đó có nghĩa là chân PD7 được kết nối với nút đóng vai trò như một đầu vào.
Portd.7 = 1 không chuyển chân lên mức cao, nhưng nó kích hoạt điện trở kéo lên bên trong của Atmega.
Nếu trạng thái if trông hơi buồn nếu bạn đã quen với arduino.
nếu bạn sử dụng câu lệnh if, bạn phải sử dụng câu lệnh "then". Trong mẫu này, câu lệnh if được sử dụng cho các hoạt động lệnh đơn lẻ. Nếu bạn muốn sử dụng nhiều lệnh hơn, bạn phải viết nó như thế này.
nếu pind.7 = 0 thì
portb.0 = 1 một số mã một số mã một số mã khác portb.0 = 0 kết thúc nếu
để sử dụng câu lệnh if này, bạn phải sử dụng câu lệnh "end if" ở cuối.
điều gì vẫn quan trọng. Có thể bạn đã thấy nó. các đầu vào không được truy vấn với portx.x, nhưng với pinx.x. Bạn có thể dễ dàng nhớ điều đó. Đầu ra có "o" (cổng) trong từ và đầu vào có "i" (pin).
Bây giờ đến lượt bạn chơi một chút.
Hướng dẫn tiếp theo của tôi sẽ sớm ra mắt (các câu lệnh chuẩn như while, select case, for và các biến.)
Nếu bạn thích hướng dẫn của tôi và muốn biết thêm thông tin cho tôi trong các ý kiến.
Đề xuất:
Làm thế nào để sử dụng đồng hồ vạn năng trong tiếng Tamil. Hướng dẫn cho người mới bắt đầu - Đồng hồ vạn năng cho người mới bắt đầu: 8 bước
Làm thế nào để sử dụng đồng hồ vạn năng trong tiếng Tamil. Hướng dẫn cho người mới bắt đầu | Đồng hồ vạn năng dành cho người mới bắt đầu: Xin chào các bạn, Trong hướng dẫn này, tôi đã giải thích cách sử dụng đồng hồ vạn năng trong tất cả các loại mạch điện tử theo 7 bước khác nhau, chẳng hạn như 1) kiểm tra tính liên tục khi phần cứng gặp sự cố 2) Đo dòng điện một chiều 3) kiểm tra Diode và đèn LED 4) Đo Resi
Cách cài đặt Linux (Người mới bắt đầu bắt đầu tại đây!): 6 bước
Cách cài đặt Linux (Người mới bắt đầu Bắt đầu tại đây!): Chính xác thì Linux là gì? Chà, bạn đọc thân mến, Linux là một cánh cổng dẫn đến một thế giới của những khả năng hoàn toàn mới. Đã qua rồi thời OSX tận dụng niềm vui khi sở hữu một chiếc máy tính. Đã qua đi những ký hiệu ngu ngốc về bảo mật thông qua Windows 10. Bây giờ, đến lượt bạn t
Đầu vào tương tự IoT - Bắt đầu với IoT: 8 bước
Đầu vào tương tự IoT - Bắt đầu với IoT: Tìm hiểu Đầu vào tương tự là một phần quan trọng để hiểu cách mọi thứ xung quanh chúng ta hoạt động, hầu hết nếu không phải tất cả các cảm biến đều là cảm biến tương tự (đôi khi những cảm biến này được chuyển đổi sang kỹ thuật số). Không giống như đầu vào kỹ thuật số chỉ có thể bật hoặc tắt, đầu vào tương tự
Bắt đầu dự án đầu tiên của bạn với Raspberry: Đèn LED nhấp nháy: 4 bước
Bắt đầu dự án đầu tiên của bạn với Raspberry: Đèn LED nhấp nháy: Trong dự án này, tôi sẽ chỉ cho bạn cách lập trình Raspberry Pi để tạo đèn LED nhấp nháy, Nếu bạn đã gần mua một chiếc Raspberry pi và bạn không biết bắt đầu từ đâu, điều này hướng dẫn nó phù hợp. Ngoài Raspberry Pi của bạn chạy Raspbian, y
Sử dụng bất kỳ hệ thống loa 5.1 nào với bất kỳ máy nghe nhạc MP3 hoặc máy tính nào, với giá rẻ !: 4 bước
Sử dụng bất kỳ hệ thống loa 5.1 nào với bất kỳ máy nghe nhạc MP3 hoặc máy tính nào, với giá rẻ !: (Đây là tài liệu hướng dẫn đầu tiên của tôi và tiếng Anh không phải là ngôn ngữ mẹ đẻ của tôi) Trước đây, tôi đã mua một bộ loa Creative Inspire 5100 với giá rẻ. Tôi đã sử dụng nó với máy tính để bàn của mình có card âm thanh 5.1 (PCI). Sau đó, a đã sử dụng nó với máy tính xách tay của tôi, người có