Мазмұны:
- 1 -қадам: талаптар
- 2 -қадам: бағдарламашыны құру
- 3 -қадам: Бағдарламалық жасақтаманы орнату
- 4 -қадам: чипті бағдарламалау
- 5 -қадам: құрастыру
- 6 -қадам: кодты түсіндіру
- 7 -қадам: Қосымша ресурстар
Бейне: AT89C2051 көмегімен 8051 бағдарламалауға кіріспе (Қонақта: Arduino): 7 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:27
8051 (MCS-51 деп те аталады)-80-жылдардағы MCU дизайны, ол бүгінгі күнге дейін танымал болып қала береді. Қазіргі заманғы 8051 үйлесімді микроконтроллерлер көптеген жеткізушілерден, барлық пішіндер мен өлшемдерде және перифериялық қондырғылардың кең ауқымында қол жетімді. Бұл нұсқаулықта біз Atmel компаниясынан AT89C2051 MCU қарастырамыз.
AT89C2051 - шағын (2Кбайт флэш, 128 байт жедел жады), арзан (бір чипке ~ 1,40 доллар) микроконтроллер.
- 2.7-6В жұмыс
- 15 енгізу -шығару жолдары
- 2 таймер (16 биттік)
- Ішкі және сыртқы үзілістер
- UART
- Микросхемадағы аналогтық компаратор
- 24 МГц сағаты бар 2MIPS дейін
1 -қадам: талаптар
Талаптар:
- Linux ДК (қажетті бағдарламалық қамтамасыз ету: Arduino IDE, git, make, sdcc)
- Arduino UNO
- AT89C2051 чипі (DIP20 пакеті)
- 20 істікшелі ZIF ұясы
- Optocoupler (жақсырақ MOSFET шығысы)
- Arduino прототиптік қалқаны
- 12 В қуат көзі
- 5В қуат көзі
- 16 МГц кристалды осциллятор
- 2x 30pF конденсатор
- 100nF конденсатор
- Диод (мысалы: 1N400X)
- Резисторлар (1K, 3K3)
- Protoboard
- Секіргіштер
- Мыс сым
Қажетті бағдарламалық жасақтаманы тексеріңіз:
қандай питон3
қайсысы sdcc қайсысын жасайды
2 -қадам: бағдарламашыны құру
Бұл бөлім қысқаша болады, өйткені мен біраз уақыт бұрын бағдарламалау қалқанын құрдым. Мен құрастырылған тақтаның схемасы мен суреттерін тіркедім. Схеманың PDF файлын репозиторийден табуға болады.
Сізге бағдарламашылар тақтасын бағдарламалау қажет:
1. Репозиторийді клондау.
git клоны
2. AT89C2051_programmer/AT89_prog/AT89_prog.ino файлын Arduino IDE бағдарламасында ашыңыз.
3. Эскизді Arduino IDE -ден құрастырыңыз және жүктеңіз.
3 -қадам: Бағдарламалық жасақтаманы орнату
1. Python виртуалды ортасын құру.
python3 -m venv venv
. venv/bin/activate
2. at89overlord орнатыңыз. at89overlord - бұл мен жазған AT89C2051 чипінің ашық коды бар бағдарламашы, оның бастапқы кодын мына жерден табуға болады.
pip at89overlord орнатыңыз
3. Орнатуды тексеріңіз.
at89overlord -h
4 -қадам: чипті бағдарламалау
1. Қарапайым жыпылықтау жобасын клондау.
cd ~
git clone https://github.com/piotrb5e3/hello-8051.git cd hello-8051/
2. Қолданбаны құрыңыз.
жасау
3. Arduino -ны дербес компьютерге қосыңыз, 12 В кернеуін қосыңыз, AT89C2051 чипін ZIF ұясына салыңыз.
4. Arduino сериялық портын табыңыз.
ls /dev /tty*
5. Чипке салынған IntelHex файлын жүктеңіз. Егер сіздің Arduino порты /dev /ttyACM0 -ден өзгеше болса, сіз -p пәрмен жолы параметрімен дұрыс мәнді беруіңіз керек.
at89overlord -f./hello.ihx
5 -қадам: құрастыру
Схемаға сәйкес тізбекті жинаңыз. PDF нұсқасын репозиторийден табуға болады.
Сіз 0,5 Гц жиіліктегі жасыл жарық диодты жарқылды көресіз.
6 -қадам: кодты түсіндіру
#қосу
#қосу
Біз sdcc -тен AT89X051 тақырыбын қосудан бастаймыз. Онда регистрлермен айнымалылар сияқты әрекет етуге арналған макростар бар. Біз сондай -ақ uint8_t және uint16_t бүтін сандар түрлерінің анықтамаларын қамтитын stdint.h қосамыз.
// Осциллятор 16 МГц деп есептейміз
#анықтаңыз INTERRUPTS_PER_SECOND 5208
Timer0 толып кеткен кезде үзіліс орын алады. Ол бір 8 биттік таймер ретінде конфигурацияланған, сондықтан бұл процессордың әрбір 2^8 циклінде болады. Процессордың бір циклы 12 сағаттық циклды алады, осылайша біз 16000000/12/2^8 = 5208.33333 жетті.
тұрақсыз uint8_t led_state = 0;
тұрақсыз uint16_t timer_counter = INTERRUPTS_PER_SECOND;
Біз басқарылатын мемлекеттік бақылауды жариялаймыз және есептегіш айнымалыларды үземіз.
void Timer0_ISR (void) _ үзіліс (1) {
timer_counter-; if (timer_counter == 0) {led_state =! led_state; timer_counter = INTERRUPTS_PER_SECOND; }}
Timer0 толған сайын есептегіш төмендейді. Егер ол нөлге тең болса, ол бастапқы күйге қайтарылады. Бұл шамамен секундына бір рет болады, нәтижесінде ~ 0,5 Гц жарық диодты жыпылықтайды.
int main () {
TMOD = 0x3; // Таймер режимі - 8 бит, алдын ала есептегіш жоқ. жиілік = OSCFREQ/12/2^8 TL0 = 0; // Таза санауыш TH0 = 0; // Тіркеуді тазарту TR0 = 1; // Таймерді іске қосуды орнатыңыз. ET0 = 1; // Үзілісті орнатыңыз. EA = 1; // Жаһандық үзілісті орнатыңыз. while (1) {if (led_state) {P1 = 0xFF; } басқа {P1 = 0x00; }}}
Біз таймер модулін конфигурациялаймыз және күйді басқарудың айнымалы мәнінің өзгеруін күтеміз. TMOD - таймер режимінің басқару регистрі. TL0 және TH0 - Timer0 басқару регистрлері. ET0-таймерді басқару регистріндегі (TCON) қосылатын timer0 биті. TR0 және EA - үзілісті қосу регистрінің (IE) биттері.
7 -қадам: Қосымша ресурстар
- AT89C2051 мәліметтер парағы:
- Шағын құрылғы C компиляторы (sdcc):
- 8051 ресурстар:
- AT89C2051 бағдарламашылар қоймасы:
- сәлем-8051 репозиторийі:
Ұсынылған:
ISP Wifi модулін, ESP8266 флешер мен бағдарламашыны қолдану арқылы ESP8266 AT микробағдарламасын қалай жыпылықтауға немесе бағдарламалауға болады: 6 қадам
ESP8266 AT бағдарламалық жасақтамасын ESP8266 флешер мен бағдарламашы, IOT Wifi модулін қолдану арқылы қалай жыпылықтауға немесе бағдарламалауға болады: Сипаттама: Бұл модуль ESP-01 немесе ESP-01S түріндегі ESP8266 модульдеріне арналған USB адаптері /бағдарламашысы. Ол ESP01 қосуға арналған 2х4П 2,54мм әйел басымен ыңғайлы түрде орнатылған. Сондай-ақ, ол ESP-01-дің барлық түйреуіштерін 2x4P 2,54 мм ерлер арқылы ажыратады
Қолмен кодтамай Raspberry Pi бағдарламалауға кіріспе: 3 қадам
Қолмен кодтаусыз Raspberry Pi бағдарламалауға кіріспе: Сәлеметсіз бе, бұл нұсқаулық сізге Raspberry Pi-ді функционалды блок диаграммасы деп аталатын PLC үшін графикалық бағытталған бағдарламалау тілімен үйлесетін толық бағдарламаланатын автоматтандыру құрылғысына қалай айналдыру керектігін көрсетеді (IEC 61131-3 стандартының бөлігі). Бұл болуы мүмкін
Arduino UNO көмегімен Arduino Pro Mini қалай бағдарламалауға болады: 4 қадам
Arduino UNO көмегімен Arduino Pro Mini қалай бағдарламалауға болады: Сәлеметсіздерме балалар, мен бүгін Arduino UNO көмегімен Arduino Pro mini бағдарламалаудың қарапайым әдісімен бөлісемін. Бұл оқу құралы arduino -мен жұмыс жасай бастаған және Arduino Pro mini көмегімен өз жобасының көлемін кішірейткісі келетіндерге арналған
Elechouse V3 және Arduino көмегімен дауысты тануға кіріспе: 4 қадам (суреттермен)
Elechouse V3 және Arduino көмегімен дауысты тануға кіріспе: Сәлеметсіз бе!! Дауысты тану технологиясы соңғы бірнеше жыл бойы осында болды. Біз әлі күнге дейін Siri қосылған бірінші iPhone -мен сөйлескендегі үлкен толқуды есімізде сақтаймыз. Содан бері дауысты басқару құрылғылары өте жоғары деңгейге көтерілді
Хабарлама қораптарын пакеттік бағдарламалауға қалай қосуға болады: 3 қадам
Хабарлама қораптарын пакеттік бағдарламалауға қалай қосуға болады: Сіз VBScript -тегідей пакеттік файлдарыңыз үшін графикалық интерфейс қосқыңыз келді ме? Менде бар. Бірақ енді сіз MessageBox деп аталатын керемет бағдарламаны қолдана аласыз