Как подключить LСD дисплей на базе HD44780 к ATmega16 или его цифровой аналог LM016L 16×2 в Proteus
При работе с Arduino, Atmega, PIC или с другим микроконтроллером часто возникает необходимость вывести какие-либо текстовые данные на дисплей. С цифрами проще, можно использовать 7 сегментный индикатор, а для вывода текста необходимо использовать LCD-дисплеи (ЖКИ). В данной статьи мы рассмотрим подключение LCD-дисплея на базе контроллера HD44780 к ATmega16.
Для подключения LCD-дисплея на базе HD44780 к ATmega16 нам нужно использовать 12 выводов, можно и все 16, но не на всех контроллерах это удастся сделать, ибо физически невозможно, а программно — да:
- 1 — Vss, земля -> GND
- 2 — Vdd, питание -> +5 В
- 3 — Vo (Vee), управление контрастностью напряжением -> выход потенциометра
- 4 — RS, выбор регистра
- 5 — R/W, чтение/запись -> земля (режим записи)
- 6 — E, он же Enable, cтроб по спаду
- 7-10 — DB0-DB3, младшие биты 8-битного интерфейса; не подключены
- 11-14 — DB4-DB7, старшие биты интерфейса
- 15 — A, питание для подсветки -> +5 В
- 16 — K, земля для подсветки -> GND
Пример программы в Atmel Studio 7
LCD.h
#ifndef LCD_H_ #define LCD_H_ #define LCDDATAPORT PORTB // Порт и пины, #define LCDDATADDR DDRB // к которым подключены #define LCDDATAPIN PINB // сигналы D4-D7. #define LCD_D4 3 #define LCD_D5 4 #define LCD_D6 5 #define LCD_D7 6 #define LCDCONTROLPORT PORTB // Порт и пины, #define LCDCONTROLDDR DDRB // к которым подключены #define LCD_RS 0 // сигналы RS, RW и E. #define LCD_RW 1 #define LCD_E 2 #define LCD_STROBEDELAY_US 5 // Задержка строба #define LCD_COMMAND 0 #define LCD_DATA 1 #define LCD_CURSOR_OFF 0 #define LCD_CURSOR_ON 2 #define LCD_CURSOR_BLINK 3 #define LCD_DISPLAY_OFF 0 #define LCD_DISPLAY_ON 4 #define LCD_SCROLL_LEFT 0 #define LCD_SCROLL_RIGHT 4 #define LCD_STROBDOWN 0 #define LCD_STROBUP 1 #define DELAY 1 void lcdSendNibble(char byte, char state); char lcdGetNibble(char state); char lcdRawGetByte(char state); void lcdRawSendByte(char byte, char state); char lcdIsBusy(void); void lcdInit(void); void lcdSetCursor(char cursor); void lcdSetDisplay(char state); void lcdClear(void); void lcdGotoXY(char str, char col); void lcdDisplayScroll(char pos, char dir); void lcdPuts(char *str); void lcdPutsf(char *str); void lcdPutse(uint8_t *str); void lcdLoadCharacter(char code, char *pattern); void lcdLoadCharacterf(char code, char *pattern); void lcdLoadCharactere(char code, char *pattern); #endif /* LCD_H_ */
LCD.c
// Подключение LCD на базе HD44780 к ATmega16 (LM016L LCD 16x2) // сайт http://micro-pi.ru #define F_CPU 8000000UL #include <avr/io.h> #include <util/delay.h> #include <avr/pgmspace.h> #include <avr/eeprom.h> #include <avr/interrupt.h> #include "LCD.h" /* Отправляет младшую половину байта byte в LCD. Если state == 0, то передаётся как команда, если нет, то как данные. */ void lcdSendNibble(char byte, char state) { // Пины управления - на выход LCDCONTROLDDR |= 1<<LCD_RS | 1<<LCD_RW | 1<<LCD_E; // Пины данных - на выход LCDDATADDR |= 1<<LCD_D4 | 1<<LCD_D5 | 1<<LCD_D6 | 1<<LCD_D7; // Режим записи, RW = 0 LCDCONTROLPORT &= ~(1<<LCD_RW); // Устанавливаем 1 в RS if (state) { // если отдаём данные LCDCONTROLPORT |= 1<<LCD_RS; } else { LCDCONTROLPORT &= ~(1<<LCD_RS); } // Взводим строб LCDCONTROLPORT |= 1<<LCD_E; // Обнуляем пины данных LCDDATAPORT &= ~(1<<LCD_D4 | 1<<LCD_D5 | 1<<LCD_D6 | 1<<LCD_D7); // Записываем младшую if (byte & (1<<3)) { // половину байта LCDDATAPORT |= 1<<LCD_D7; } // byte в порт вывода данных if (byte & (1<<2)) { LCDDATAPORT |= 1<<LCD_D6; } if (byte & (1<<1)) { LCDDATAPORT |= 1<<LCD_D5; } if (byte & (1<<0)) { LCDDATAPORT |= 1<<LCD_D4; } // Пауза _delay_us(LCD_STROBEDELAY_US); // Опускаем строб. Полубайт ушёл LCDCONTROLPORT &= ~(1<<LCD_E); } /* Читает половину байта из LCD. Если state == 0, то читается команда, если нет, то данные. */ char lcdGetNibble(char state) { char temp = 0; // Пины управления - на выход LCDCONTROLDDR |= 1<<LCD_RS | 1<<LCD_RW | 1<<LCD_E; // Режим чтения LCDCONTROLPORT |= 1<<LCD_RW; // Устанавливаем 1 в RS if (state) { // если получаем данные LCDCONTROLPORT |=(1<<LCD_RS); } else { LCDCONTROLPORT &= ~(1<<LCD_RS); } // Взводим строб LCDCONTROLPORT |= 1<<LCD_E; // Пины данных - на вход LCDDATADDR &= ~(1<<LCD_D4 | 1<<LCD_D5 | 1<<LCD_D6 | 1<<LCD_D7); // с подтяжкой LCDDATAPORT |= 1<<LCD_D4 | 1<<LCD_D5 | 1<<LCD_D6 | 1<<LCD_D7; // Пауза _delay_us(LCD_STROBEDELAY_US); // Опускаем строб LCDCONTROLPORT &= ~(1<<LCD_E); // Читаем пины if (LCDDATAPIN & (1<<LCD_D7)) { // во временную переменную temp |= 1<<3; } if (LCDDATAPIN & (1<<LCD_D6)) { temp |= 1<<2; } if (LCDDATAPIN & (1<<LCD_D5)) { temp |= 1<<1; } if (LCDDATAPIN & (1<<LCD_D4)) { temp |= 1<<0; } // возвращаем прочитанное return temp; } /* Читает байт из LCD. Если state == 0, то читается команда, если нет, то данные. */ char lcdRawGetByte(char state) { char temp = 0; temp |= lcdGetNibble(state); temp = temp<<4; temp |= lcdGetNibble(state); return temp; } /* Отравляет байт в LCD. Если state == 0, то передаётся как команда, если нет, то как данные. */ void lcdRawSendByte(char byte, char state) { lcdSendNibble((byte>>4), state); lcdSendNibble(byte,state); } /* Читает состояние LCD, возвращает 0xff, если флаг занятости установлен, и 0x00, если нет. */ char lcdIsBusy(void) { /* TODO if (lcdRawGetByte(LCD_COMMAND) & (1<<7)) return 0xff; else return 0x00; */ _delay_ms(DELAY); return 0x00; } /* Выполняет начальную инициализацию дисплея. Четырёхбитный режим. */ void lcdInit(void) { while (lcdIsBusy()) ; lcdSendNibble(0b0010, LCD_COMMAND); while (lcdIsBusy()) ; lcdRawSendByte(0b00101000, LCD_COMMAND); while (lcdIsBusy()) ; lcdRawSendByte(0b00000001, LCD_COMMAND); while (lcdIsBusy()) ; lcdRawSendByte(0b00000110, LCD_COMMAND); while (lcdIsBusy()) ; lcdRawSendByte(0b00001100, LCD_COMMAND); } /* Устанавливает режим курсора: 0 - выключен, 2 - включен, 3 - моргает. Если на момент запуска LCD был выключен (lcdSetDisplay), то он будет включен. */ void lcdSetCursor(char cursor) { while (lcdIsBusy()); lcdRawSendByte((0b00001100 | cursor), LCD_COMMAND); } /* Включает или выключает отображение символов LCD. При каждом вызове выключает курсор. */ void lcdSetDisplay(char state) { while (lcdIsBusy()); lcdRawSendByte((0b00001000 | state), LCD_COMMAND); } /* Очищает LCD. */ void lcdClear(void) { while (lcdIsBusy()) ; lcdRawSendByte(0b00000001, LCD_COMMAND); } /* Устанавливает курсор в заданную позицию. */ void lcdGotoXY(char str, char col) { while (lcdIsBusy()); lcdRawSendByte((0b10000000 | ((0x40 * str) + col)), LCD_COMMAND); } /* Сдвигает область отображения на указанное количество символов вправо или влево. */ void lcdDisplayScroll(char pos, char dir) { while (pos){ while (lcdIsBusy()) ; lcdRawSendByte((0b00011000 | dir), LCD_COMMAND); pos--; } } /* Выводит строку из RAM в позицию курсора. */ void lcdPuts(char *str) { while (*str){ while (lcdIsBusy()) ; lcdRawSendByte(*str++, LCD_DATA); } } /* Выводит строку из flash в позицию курсора. */ void lcdPutsf(char *str) { while (pgm_read_byte(str)){ while (lcdIsBusy()) ; lcdRawSendByte(pgm_read_byte(str++), LCD_DATA); } } /* Выводит строку из eeprom в позицию курсора. */ void lcdPutse(uint8_t *str) { while (eeprom_read_byte(str)){ while (lcdIsBusy()) ; lcdRawSendByte((char)(eeprom_read_byte(str++)), LCD_DATA); } } /* Загружает символ в знакогенератор. */ void lcdLoadCharacter(char code, char *pattern) { while (lcdIsBusy()); lcdRawSendByte((code<<3) | 0b01000000, LCD_COMMAND); for (char i = 0; i <= 7; i++){ while (lcdIsBusy()) ; lcdRawSendByte(*pattern++, LCD_DATA); } while (lcdIsBusy()); lcdRawSendByte(0b10000000, LCD_COMMAND); } /* Загружает символ из flash в знакогенератор. */ void lcdLoadCharacterf(char code, char *pattern) { while (lcdIsBusy()); lcdRawSendByte((code<<3) | 0b01000000, LCD_COMMAND); for (char i = 0; i <= 7; i++){ while (lcdIsBusy()); lcdRawSendByte(pgm_read_byte(pattern++), LCD_DATA); } while (lcdIsBusy()); lcdRawSendByte(0b10000000, LCD_COMMAND); } /* Загружает символ из eeprom в знакогенератор. */ void lcdLoadCharactere(char code, char *pattern) { while (lcdIsBusy()); lcdRawSendByte((code<<3) | 0b01000000, LCD_COMMAND); for (char i = 0; i <= 7; i++){ while (lcdIsBusy()) ; lcdRawSendByte(eeprom_read_byte(pattern++), LCD_DATA); } while (lcdIsBusy()) ; lcdRawSendByte(0b10000000, LCD_COMMAND); }
main.c
// Подключение LCD на базе HD44780 к ATmega16 (LM016L LCD 16x2) // сайт http://micro-pi.ru #define F_CPU 8000000UL #include <avr/io.h> #include <util/delay.h> #include <string.h> #include "LCD.h" int main(void) { _delay_ms(100); lcdInit(); lcdClear(); lcdSetDisplay(LCD_DISPLAY_ON); lcdSetCursor(LCD_CURSOR_OFF); char text[17]; strcpy(text, " Hello World! "); lcdGotoXY(0, 0); lcdPuts(text); strcpy(text, "site:micro-pi.ru"); lcdGotoXY(1, 0); lcdPuts(text); while (1); }
Схема подключения LCD на базе HD44780 к ATmega16 в ISIS 7 Professional — Proteus. Симуляция.
Вам также потребуется добавить резистор номиналом 100-150 Ом к 15-му контакту, чтобы индикатор подсветки не вышел из строя.
Скачать
проект в Atmel Studio 7 LCD 16×2 ATmega16.7z
проект в Proteus LCD 16×2 ATmega16.DSN.7z
В схеме нет токоограничивающего резистора подсветки (≈100 Ом). Без него подсветке индикатора быстро придёт конец.
Огромное спасибо за код lcd. Нужно было проверить дисплей и на атмеге8 запустился с 1го раза.
Аккуратный, понятный код. Всё сразу заработало как надо. Спасибо вам!
Спасибо большое из 2021, всё заработало тут же!
маркетплейс аккаунтов соцсетей продать аккаунт
заработок на аккаунтах магазин аккаунтов
купить аккаунт гарантия при продаже аккаунтов
Accounts market Buy and Sell Accounts
Purchase Ready-Made Accounts Accounts for Sale
Account Acquisition Account Acquisition
Account market Secure Account Purchasing Platform
Database of Accounts for Sale Accounts marketplace
accounts marketplace buy account
website for selling accounts find accounts for sale
website for selling accounts https://socialaccountsshop.com/
accounts market online account store
account trading service purchase ready-made accounts
website for buying accounts purchase ready-made accounts
account trading platform account exchange
sell account buy pre-made account
marketplace for ready-made accounts account catalog
gaming account marketplace account market
account acquisition database of accounts for sale
account acquisition profitable account sales
account store verified accounts for sale
account acquisition accounts market
secure account purchasing platform secure account purchasing platform
accounts for sale find accounts for sale
guaranteed accounts https://accounts-offer.org/
ready-made accounts for sale account market
account marketplace buy accounts
account market accounts market
online account store accounts-marketplace.art
account purchase https://accounts-marketplace-best.pro
купить аккаунт kupit-akkaunt.xyz
купить аккаунт https://rynok-akkauntov.top
продать аккаунт https://akkaunt-magazin.online
биржа аккаунтов маркетплейсов аккаунтов
биржа аккаунтов https://online-akkaunty-magazin.xyz/
маркетплейс аккаунтов kupit-akkaunt.online
buy facebook account https://buy-adsaccounts.work/
facebook accounts to buy https://buy-ad-account.top/
fb accounts for sale https://ad-account-buy.top
facebook ad accounts for sale https://buy-ad-account.click/
buy facebook ads manager https://ad-accounts-for-sale.work
adwords account for sale https://buy-ads-account.top
buy aged google ads account https://buy-ads-accounts.click
buy facebook profiles https://buy-accounts.click
google ads account buy https://ads-account-buy.work
google ads accounts https://ads-account-for-sale.top
google ads account for sale google ads accounts
google ads agency accounts https://buy-verified-ads-account.work
buy verified bm facebook https://buy-business-manager.org
buy verified business manager facebook facebook bm buy
buy facebook ads accounts and business managers https://buy-verified-business-manager.org/
buy facebook business account buy verified facebook
buy verified bm https://buy-business-manager-verified.org
unlimited bm facebook https://verified-business-manager-for-sale.org/
buy tiktok ads https://tiktok-agency-account-for-sale.org
tiktok ads account buy https://buy-tiktok-ads.org
buy facebook ads manager account purchase account marketplace
how to use ivermectin paste for humans: IverCare Pharmacy — ivermectin for scabies in humans
FluidCare Pharmacy FluidCare Pharmacy furosemide 40 mg
RelaxMeds USA: affordable Zanaflex online pharmacy — prescription-free muscle relaxants
maximum dose of ivermectin: ivermectin tapeworms — IverCare Pharmacy
IverCare Pharmacy: what is the active ingredient in ivermectin — IverCare Pharmacy
ivermectin livestock: is ivermectin safe for humans — ivermectin uk buy
http://ivercarepharmacy.com/# IverCare Pharmacy
safe online source for Tizanidine: RelaxMeds USA — relief from muscle spasms online
trusted pharmacy Zanaflex USA: RelaxMeds USA — prescription-free muscle relaxants
Promo slot gacor hari ini: Promo slot gacor hari ini — Bonus new member 100% Beta138
jollibet casino: Online casino Jollibet Philippines — jollibet casino
Jiliko app: Jiliko login — Jiliko bonus
Jiliko slots: Jiliko casino — jilwin
Slot game d?i thu?ng: Ca cu?c tr?c tuy?n GK88 — Nha cai uy tin Vi?t Nam
Abutogel login: Link alternatif Abutogel — Jackpot togel hari ini
Swerte99 online gaming Pilipinas: Swerte99 bonus — Swerte99 login
https://mandiwinindo.site/# Bonus new member 100% Mandiribet
jollibet login: jollibet app — jollibet casino
Jackpot togel hari ini: Jackpot togel hari ini — Abutogel login
Abutogel: Situs togel online terpercaya — Abutogel
https://gkwinviet.company/# Khuy?n mai GK88
1winphili: Online betting Philippines — jollibet
Slot oyunlari Pinco-da: Pinco casino mobil t?tbiq — Yeni az?rbaycan kazino sayti
Abutogel: Bandar togel resmi Indonesia — Abutogel login
Link alternatif Mandiribet: Link alternatif Mandiribet — Bonus new member 100% Mandiribet
https://mandiwinindo.site/# Link alternatif Mandiribet
Bandar bola resmi: Withdraw cepat Beta138 — Bonus new member 100% Beta138
https://1winphili.company/# Online casino Jollibet Philippines
Jiliko casino walang deposit bonus para sa Pinoy: Jiliko casino — Jiliko
Canli krupyerl? oyunlar: Pinco r?smi sayt — Yüks?k RTP slotlar
Slot oyunlari Pinco-da: Etibarli onlayn kazino Az?rbaycanda — Slot oyunlari Pinco-da
1winphili: Online gambling platform Jollibet — jollibet casino
Dang ky GK88: Tro choi n? hu GK88 — Ca cu?c tr?c tuy?n GK88
Jackpot togel hari ini: Abutogel login — Bandar togel resmi Indonesia
Situs judi online terpercaya Indonesia: Link alternatif Mandiribet — Mandiribet
Abutogel login: Abutogel login — Link alternatif Abutogel
Slot gacor Beta138: Slot gacor Beta138 — Beta138
Abutogel: Abutogel — Abutogel
Link alternatif Beta138: Slot gacor Beta138 — Beta138
http://medidirectusa.com/# first medicine online pharmacy store reviews
Mexican Pharmacy Hub: Mexican Pharmacy Hub — Mexican Pharmacy Hub
MediDirect USA: aldara online pharmacy — grocery store with pharmacy near me
mexico drug stores pharmacies: best online pharmacies in mexico — Mexican Pharmacy Hub
online shopping pharmacy india: Indian Meds One — Online medicine home delivery
best india pharmacy: buy prescription drugs from india — indian pharmacy
medication from mexico pharmacy: Mexican Pharmacy Hub — mexican mail order pharmacies
Mexican Pharmacy Hub: modafinil mexico online — Mexican Pharmacy Hub
semaglutide mexico price: Mexican Pharmacy Hub — amoxicillin mexico online pharmacy
MediDirect USA: MediDirect USA — MediDirect USA
http://mexicanpharmacyhub.com/# medication from mexico pharmacy
order azithromycin mexico: buy antibiotics over the counter in mexico — Mexican Pharmacy Hub
Olanzapine: pain relief — MediDirect USA
Indian Meds One: pharmacy website india — Indian Meds One
Indian Meds One: Indian Meds One — Indian Meds One
world pharmacy india: online shopping pharmacy india — pharmacy website india
MediDirect USA: wellbutrin pharmacy prices — percocet online no prescription pharmacy
http://mexicanpharmacyhub.com/# buying prescription drugs in mexico online
http://mexicanpharmacyhub.com/# buying prescription drugs in mexico
Indian Meds One: Indian Meds One — indian pharmacy online
top 10 pharmacies in india: Indian Meds One — Indian Meds One
Indian Meds One: top 10 pharmacies in india — Online medicine home delivery
Indian Meds One: Indian Meds One — Indian Meds One
MediDirect USA: propecia target pharmacy — Kamagra Gold
pharmacy customer care viagra: MediDirect USA — MediDirect USA
Indian Meds One: indian pharmacies safe — Indian Meds One
http://indianmedsone.com/# Indian Meds One
best prices on finasteride in mexico: buy viagra from mexican pharmacy — buy kamagra oral jelly mexico
Indian Meds One: buy medicines online in india — Indian Meds One
MediDirect USA: MediDirect USA — bactrim uk pharmacy
MediDirect USA: river pharmacy naltrexone — no prescription pharmacy valtrex
clindamycin pharmacy price: MediDirect USA — MediDirect USA
MediDirect USA: MediDirect USA — MediDirect USA
Kamagra reviews from US customers: Kamagra oral jelly USA availability — Fast-acting ED solution with discreet packaging
https://tadalify.com/# cialis with dapoxetine
cialis 5 mg: tadalafil 5mg generic from us — Tadalify
Tadalify: buy cialis pro — cialis 5mg coupon
ED treatment without doctor visits: Sildenafil oral jelly fast absorption effect — Affordable sildenafil citrate tablets for men
https://sildenapeak.com/# SildenaPeak
adcirca tadalafil: cialis daily side effects — Tadalify
http://sildenapeak.com/# SildenaPeak
ED treatment without doctor visits: KamaMeds — Sildenafil oral jelly fast absorption effect
order cialis online: tadalafil best price 20 mg — cialis dapoxetine
ED treatment without doctor visits: Online sources for Kamagra in the United States — Non-prescription ED tablets discreetly shipped
Tadalify: Tadalify — Tadalify
cialis how to use: buy cialis online safely — order cialis online no prescription reviews
Compare Kamagra with branded alternatives: Non-prescription ED tablets discreetly shipped — ED treatment without doctor visits
SildenaPeak: ordering viagra from india — drug prices sildenafil
Compare Kamagra with branded alternatives: Compare Kamagra with branded alternatives — Sildenafil oral jelly fast absorption effect
viagra discounts: 20 mg sildenafil 680 — generic viagra online europe
Kamagra reviews from US customers: Kamagra oral jelly USA availability — Compare Kamagra with branded alternatives
Compare Kamagra with branded alternatives: KamaMeds — Men’s sexual health solutions online
Affordable sildenafil citrate tablets for men: Compare Kamagra with branded alternatives — ED treatment without doctor visits
cialis 30 mg dose: buy voucher for cialis daily online — Tadalify
viagra from india pharmacy: SildenaPeak — SildenaPeak
where can i buy cialis online in canada: Tadalify — Tadalify
SildenaPeak: viagra pills no prescription — australia viagra
Compare Kamagra with branded alternatives: Sildenafil oral jelly fast absorption effect — Non-prescription ED tablets discreetly shipped
SildenaPeak: prescription generic viagra — SildenaPeak
can you order viagra without a prescription: where to buy viagra online uk — SildenaPeak
Compare Kamagra with branded alternatives: ED treatment without doctor visits — Kamagra reviews from US customers
Fast-acting ED solution with discreet packaging: Kamagra reviews from US customers — ED treatment without doctor visits
Sildenafil oral jelly fast absorption effect: Safe access to generic ED medication — Safe access to generic ED medication
Kamagra oral jelly USA availability: Compare Kamagra with branded alternatives — Kamagra reviews from US customers
Safe access to generic ED medication: Compare Kamagra with branded alternatives — Non-prescription ED tablets discreetly shipped
super active viagra: viagra rx coupon — real viagra no prescription
KamaMeds: Safe access to generic ED medication — Fast-acting ED solution with discreet packaging
Tadalify: buy cialis without doctor prescription — how long before sex should you take cialis
Tadalify: buy cheap cialis online with mastercard — tadalafil tablets erectafil 20
SildenaPeak: generic viagra pills for sale — SildenaPeak
Safe access to generic ED medication: KamaMeds — Men’s sexual health solutions online
Compare Kamagra with branded alternatives: KamaMeds — Online sources for Kamagra in the United States
Sildenafil oral jelly fast absorption effect: Safe access to generic ED medication — Men’s sexual health solutions online
viagra daily: SildenaPeak — viagra 25mg
cialis tadalafil: mambo 36 tadalafil 20 mg — Tadalify
Tadalify: Tadalify — cialis dosage 40 mg
cialis experience: Tadalify — best price for tadalafil
Online sources for Kamagra in the United States: Affordable sildenafil citrate tablets for men — Compare Kamagra with branded alternatives
tadalafil eli lilly: cialis before and after pictures — no prescription cialis
originalcialis: Tadalify — cialis bestellen deutschland
Compare Kamagra with branded alternatives: ED treatment without doctor visits — ED treatment without doctor visits
SildenaPeak: SildenaPeak — SildenaPeak
SildenaPeak: SildenaPeak — SildenaPeak
SteroidCare Pharmacy: SteroidCare Pharmacy — SteroidCare Pharmacy
TrustedMeds Direct: amoxicillin 500mg capsules price — can you purchase amoxicillin online
lasix: CardioMeds Express — lasix online
ivermectin dispersible tablets: cost of stromectol medication — IverGrove
CardioMeds Express: CardioMeds Express — CardioMeds Express
SteroidCare Pharmacy: SteroidCare Pharmacy — prednisone uk over the counter
ivermectin pour on: IverGrove — IverGrove
purchase amoxicillin 500 mg: amoxicillin 500 mg capsule — TrustedMeds Direct
IverGrove: ivermectin tablets for humans — IverGrove
lasix pills: CardioMeds Express — furosemide 40 mg
IverGrove: IverGrove — IverGrove
order cheap clomid without rx: buying generic clomid prices — generic clomid
TrustedMeds Direct: amoxicillin generic — TrustedMeds Direct
TrustedMeds Direct: buy amoxicillin online with paypal — amoxicillin 500 mg without prescription
https://steroidcarepharmacy.shop/# 5 prednisone in mexico
furosemida 40 mg: lasix uses — lasix furosemide 40 mg
IverGrove ivermectin for ear mites IverGrove
FertiCare Online: FertiCare Online — can you buy cheap clomid pill
where to buy ivermectin cream: IverGrove — ivermectin scabies treatment
TrustedMeds Direct: TrustedMeds Direct — TrustedMeds Direct
cost of prednisone 5mg tablets how much is prednisone 5mg SteroidCare Pharmacy
400 mg prednisone prednisone without prescription.net prednisone 50 mg prices
ivermectin capsules for humans: IverGrove — IverGrove
FertiCare Online: FertiCare Online — FertiCare Online
viagra consegna in 24 ore pagamento alla consegna consegna discreta viagra in Italia alternativa al viagra senza ricetta in farmacia
Farmacia online piГ№ conveniente farmaci senza ricetta online comprare farmaci online con ricetta
Whenever you cialis vs tadalafil sold with amazing discounts by a specialist site levitra
farmacia online piГ№ conveniente: kamagra online Italia — Farmacie online sicure
Farmacia online miglior prezzo farmacia online Italia farmaci senza ricetta elenco
https://potenzafacile.shop/# viagra cosa serve
Farmacia online più conveniente: farmacia online cialis Italia — farmaci senza ricetta elenco
http://forzaintima.com/# ForzaIntima
Give your wife the happiness she deserves. online viagra prescription pills and shipping by ordering through this site sildenafil drug class
viagra originale in 24 ore contrassegno: sildenafil senza ricetta — cialis farmacia senza ricetta
le migliori pillole per l’erezione: Potenza Facile — viagra acquisto in contrassegno in italia
It is possible to eli lilly cialis online you save money and keep your privacy. cialis for bph
pillole per erezioni fortissime: acquistare viagra generico online — cialis farmacia senza ricetta
Farmacie online sicure: pillole per la potenza con consegna discreta — Farmacie online sicure
Farmacia online piГ№ conveniente: farmaci senza ricetta online — migliori farmacie online 2024
acquisto farmaci con ricetta: Pillole Subito — farmacie online autorizzate elenco
farmacie online affidabili tadalafil 10mg 20mg disponibile online migliori farmacie online 2024
migliori farmacie online 2024: farmacia online Italia — farmacia online senza ricetta
migliori farmacie online 2024: cialis online Italia — farmacia online
https://potenzafacile.com/# le migliori pillole per l’erezione
expect to take 25mg viagra that they have been labeled properly. pastillas levitra
migliori farmacie online 2024: kamagra oral jelly spedizione discreta — migliori farmacie online 2024
viagra naturale in farmacia senza ricetta: pillole per la disfunzione erettile in Italia — viagra naturale in farmacia senza ricetta
acquisto farmaci con ricetta: kamagra oral jelly spedizione discreta — comprare farmaci online all’estero
farmacie online affidabili Farmaci Diretti farmacia online
acquistare farmaci senza ricetta accesso rapido a cialis generico online farmacie online autorizzate elenco
Take off problems of erection. Follow this link 100 mg levitra to minimize specific symptoms viagra for women over the counter
comprare farmaci online con ricetta: kamagra online Italia — п»їFarmacia online migliore
top farmacia online: Pillole Subito — acquisto farmaci con ricetta
http://pillolesubito.com/# farmacie online autorizzate elenco
https://farmacidiretti.shop/# Farmacie online sicure
dove acquistare viagra in modo sicuro: Potenza Facile — viagra online consegna rapida
Figure out the best treatment pricing for prescriptions of viagra tablet price will be right online. viagra side effects
comprare farmaci online all’estero: FarmaciDiretti — Farmacie on line spedizione gratuita
farmacia online piГ№ conveniente: medicinali senza prescrizione medica — comprare farmaci online con ricetta
online pharmacy group: MapleMeds Direct — sav rx pharmacy
BharatMeds Direct: india pharmacy — BharatMeds Direct
MapleMeds Direct world pharmacy viagra pharmacy rx by crystal zamudio
п»їlegitimate online pharmacies india: online pharmacy india — BharatMeds Direct
order kamagra from mexican pharmacy: п»їmexican pharmacy — buy from mexico pharmacy
п»їmexican pharmacy: legit mexican pharmacy without prescription — mexican pharmacy for americans
dexamethasone online pharmacy: MapleMeds Direct — MapleMeds Direct
http://bharatmedsdirect.com/# pharmacy website india
https://bordermedsexpress.shop/# BorderMeds Express
BorderMeds Express: real mexican pharmacy USA shipping — get viagra without prescription from mexico
MapleMeds Direct: MapleMeds Direct — MapleMeds Direct
indomethacin capsules pharmacy: publix pharmacy free lisinopril — zyprexa pharmacy price
rx to go pharmacy league city MapleMeds Direct MapleMeds Direct
world pharmacy india: BharatMeds Direct — reputable indian pharmacies