Source: http://www.cpp.edu/~pbsiegel/picprogs/pprogs.html
Следниве програми се примери кои јас го користам за учење на програмирање на 8-битни PIC микроконтролери. А добра препорака е книгата “Дизајнирање на Вградени системи со PIC микроконтролери: Принципи и апликации” од страна на Тим Wilmshurst. Доунлоад за ССМ е исто така добра референца за информации во врска со битови за секоја адреса регистар меморија чип.
Методот што се користи е да се програмира PIC чип со користење на PICKit2 во асемблерски јазик. На PICKit2 е релативно евтина и услуги за голем број на PIC микроконтролери. Ние обично почнуваат со микроконтролер на PIC16F690, бидејќи има само за сè што ни треба и има мал број на пинови (20). Поставување на PIC16F690 во протоборд, ние ги користиме на PICKit2 “само” и да ги поврзете на нашите сопствени 6 жици од PICKit2 на микроконтролерот како што е прикажано во дијаграмот Pickit2 circuit. Ние спроведе следната постапка за да ја тестираме и нашата систем. Програмирање е направено со користење на MPLAB (бесплатно симнување) на софтвер од микрочип во собранието.
1.Првата програма на ССМ чип со test.asm програмата, кој го става 5 волти тогаш 0 волти на игла # 16 (C0).
2.Проверете го излезниот на игла # 16 со осцилоскоп. Треба да се види на излез 5 волти која трае 1 микро-секунда (за 4 MHz часовникот), и 0 волти, кој трае 3 микро-сек. Ако ова функционира, тогаш знаеме дека ние се постави на програмерот и чип правилно.
3.Следна ние се провери сериски пренос, бидејќи ние ќе сакате да примите и зачувате податоците што ги испрати од микроконтролерот. Како прво проверете ги програмирате код sertest1.asm, кој испраќа истиот број преку сериски во 9600 бауд
4.За да проверите дали сериски излез е на работа, ќе се поврзете на осцилоскоп со игла Соединетите Американски Држави (# 10 за PIC16F690). Излезот за нула во бинарен број треба да биде 5 волти траат 1 микро-секунда (за 9600 бауд). Излезот за еден во бинарен број треба да биде 0 волти во траење од 1 микро-секунда (за 9600 бауд). Исто така, ќе биде почеток и да престане малку, па заврши сигналот ќе биде 10-битна долго.
5.Ако игла TX е производство на точни излез, постојат два начини на кои можеме да го прочитате сериски пренос на податоци со компјутер: користење на TTL-232R-5V кабел за USB, или со користење на MAX232 чип за сериски порт. Поранешниот метод е едноставен и лесен за употреба.
a.USB влез на компјутер: Најлесен начин за пренос на податоци од ССМ со компјутер е да се користи TTL на USB кабел: TTL-232R-5V (прав конектор) или TTL-232R-5V-WE (жица завршува) направени од страна FTDI . Кабелот има 6 води, од кои 4 се директно поврзани ССМ иглички. Види PIC-usb connections за коло дијаграм на врски.
b.СЕРИСКИ влезна порта на компјутер: Ако некој сака да влез на сериски порт, а потоа на чип MAX232 обезбедува соодветна напон за менување на портот. чип MAX232 ќе се префрли
6. волти до +8 волти и 0 волти до -8 волти за влез на сериски порт. Види max232 коло (комплименти на www.SoDoItYourself.com) за дијаграм на колото да се поврзете на ССМ со сериски порт. За да ја проверите на колото, читаме излез на чип MAX232 со осцилоскоп за да се осигура дека точниот +/- 8 волти претставува бинарен број.
Конечно, асинхрони сериски излез на компјутерот се чита во Линукс оперативен систем со еден од C програми наведени подолу (Читање на асинхрони сериски излез). Откако точно бинарен број е даден на мониторот на компјутерот, може да почнеме нашите проекти. Бидејќи во овој тест ја испраќаме ист бинарен број во секое време, ние понекогаш се кадрирање грешки.
7.Како уште една проверка на сериски пренос, ние се програмира микроконтролерот со sertest3.asm програмата, која додатоците на бинарен број по еден и ги испраќа преку сериски со компјутерот. Последователни броеви треба да биде излез на мониторот на компјутерот.
8.Види протоборд врски за нашите поставени во спој програмирање на плочката. Види protoboard за слика на нашиот протоборд. А 20 MHz резонатор е поврзан со чип на сликата.
Пример Програми за PIC микроконтролери
1.time2.asm е асемблерски код кој гласи на тајмер и испраќа податоци до компјутер преку сериски. Кодот има убав прекинувај рутински дека наголемува регистри кога timer0 поплавите. Целосната часовник користи 4 регистри.
2.timer2.asm е кодот собранието што се користи за ласер (или слика) портата тајмингот. На програмата се чека до 11 пински оди ниско, потребно е време печат, и ја праќа на 4 тајмер бајти преку сериски со компјутер. Таа потоа се чека до 11 пински оди високо, потребно е време печат и ја праќа 4 тајмер бајти преку сериски со компјутер. Јамката се повторува засекогаш. Оваа програма е развиена од страна на “Џеј” Beccarelli како дел од неговиот постар проект.
3.atod20hl.asm е асемблерски код, кој брзо аналогна на дигитална е направено 80 пати со вредностите зачувани во меморијата. а потоа податоците се префрлени преку сериски со компјутерот. линија конфигурација вклучува надворешни 20 MHz резонатор на (_HS_OSC) и сериски се префрла на 115.2 KBaud. 10 малку земање мостри А до Д може да се направи во 300KHz со оваа програма. Оваа програма е напишан од Мајкл Менсел, како дел од неговиот постар проект.
Читање на асинхрони сериски излез од чип преку компјутер сериски порт и USB порт
Одличен веб сајт за читање и writting на сериски и паралелни порта е “www.beyondlogic.com”. Подолу на листата програма примерок, која работи во Linux, да се прочита на сериски порт.
1.picserin.c Оваа програма е напишана во C и работи во Linux. Тоа се вели во сериски порт 24 пати по ред и отпечатоци на бајти на екранот. Ние само го користи како тест за да видите ако ССМ чип емитува сериски податоци правилно.
2.За сериски пренос на податоци може да се прочита преку USB порта. usbserial.c програмата: е напишана во C и работи во Linux. Ние ги користиме на сериски-USB адаптер за кои Ubuntu има еден возач. Откако USB приклучок е вклучен во, возач уред “ttyUSB0” е поставена.
Тајмингот на компјутер преку паралелниот порт
Може да се направи прилично прецизен тајминг за влез TTL користат паралелна порта. Подолу, ние листа на некои кодови кои се користат (или го користат) во нашата училница за photogate тајмингот.
1.pend.c: Оваа програма е напишана во C и работи во Linux на нашите нишалото експеримент. Се проверува паралелна порта за промена на пин 10. Кога ќе се случи промена, печат на времето се добива со помош на повик за rdtsc.
2.atwoodxpar.c Оваа програма е напишана во C и работи во Linux на нашите Atwood експеримент машина. Се проверува паралелна порта за промена на пин 10 на паралелен порт. Кога ќе се случи промена, печат на времето се добива со помош на повик за rdtsc. Податоците може да се оформени на мониторот преку библиотеката X11. Да ги собере употреба gcc -lm -lX11 atwoodxpar.c