Дмитрий Вас

Members
  • Публикации

    1 285
  • Зарегистрирован

  • Посещение

Все публикации пользователя Дмитрий Вас

  1. Вопросы От Начинающих По Мк

    #include "main.h" #define sbi(x, y) (x |= (1 << y)) /*set Register x of y*/ #define cbi(x, y) (x &= ~(1 <<y )) /*Clear Register x of y*/ #define uchar unsigned char #define uint unsigned int //Defined HT1621's command (обозначим команды) #define ComMode 0x52 //4COM,1/3bias 1000 010 1001 0 #define RCosc 0x30 //встроенный RC-генератор (включено по умолчанию)1000 0011 0000 #define LCD_on 0x06 //on LCD #define LCD_off 0x04 //off LCD #define Sys_en 0x02 //включаем системный осцилятор дисплея 1000 0000 0010 #define CTRl_cmd 0x80 //записываем control cmd #define Data_cmd 0xa0 //записываем data cmd // // назначаем порты HT1621 data port #define CS 2 //это ss в атмеге8 порт PB2 #define WR 5 //sck PB5 #define DATA 3 //mosi PB3 #define CS1 (PORTB|=(1<<2)) #define CS0 (PORTB&=~(1<<2))//digitalWrite #define WR1 (PORTB|=(1<<5)) #define WR0 (PORTB&=~(1<<5)) #define DATA1 (PORTB|=(1<<3)) #define DATA0 (PORTB&=~(1<<3)) /*void SPI_init(void) { DDRB |= ((1<<PORTB2)|(1<<PORTB3)|(1<<PORTB5)); //ножки SPI на выход PORTB &= ~((1<<PORTB2)|(1<<PORTB3)|(1<<PORTB5)); //низкий уровень SPCR |= (1 << SPE) | (1 << MSTR)| (1<<SPR0);//включим шину, объ¤вим ведущим, делитель 16 } void SPI_SendByte (char byte) { SPDR = byte; while (!(SPSR & (1 << SPIF))); }*/ char dispnum[6]={0x00,0x00,0x00,0x00,0x00,0x00}; /*0,1,2,3,4,5,6,7,8,9,A,b,C,c,d,E,F,H,h,L,n,N,o,P,r,t,U,-, ,*/ //const char num[]={0x7D,0x60,0x3E,0x7A,0x63,0x5B,0x5F,0x70,0x7F,0x7B,0x77,0x4F,0x1D,0x0E,0x6E,0x1F,0x17,0x67,0x47,0x0D,0x46,0x75,0x37,0x06,0x0F,0x6D,0x02,0x00,}; const char num[]={0xD7,0x50,0xE3,0xF1,0x74,0xB5,0xB7,0xD0,0xF7,0xF5,0xF6,0x37,0x87,0X23,0X73,0XA7,0XA6,0X76,0X36,0X07,0XD6,0XE6,0X22,0X27,0X57,0X20,0x00,}; /**------------------------------------------------------------------------- Name: SendBit_1621(отправлять данные) ---------------------------------------------------------------------------*/ void SendBit_1621(uchar sdata,uchar cnt) //Первый бит { uchar i; for(i=0;i<cnt;i++) { WR0; _delay_ms(20); if(sdata&0x80) DATA1; else DATA0; _delay_ms(20); WR1; _delay_ms(20); sdata<<=1; } _delay_ms(20); } /**------------------------------------------------------------------------- Name: SendCmd(отправлять cmd) //Запись MODE «100» и 9 бит команды ---------------------------------------------------------------------------*/ void SendCmd_1621(uchar command) { CS0; SendBit_1621(0x80,4); SendBit_1621(command,8); CS1; } /**------------------------------------------------------------------------- Name: Write_1621 отправлять data and cmd) ---------------------------------------------------------------------------*/ void Write_1621(uchar addr,uchar sdata) { addr<<=3; CS0; SendBit_1621(0xa0,3); //запись MODE“101” SendBit_1621(addr,6); //запись addr high 6 bits SendBit_1621(sdata,8); //запись data 8 bits CS1; } /**------------------------------------------------------------------------- Name: all_off(Clear Display) ---------------------------------------------------------------------------*/ void HT1621_all_off(uchar num) { uchar i; uchar addr=0; for(i=0;i<num;i++) { Write_1621(addr,0x00); addr+=1; } } /**************************************************************************** Name: all_on(All lit) ****************************************************************************/ void HT1621_all_on(uchar num) { uchar i; uchar addr=0; for(i=0;i<num;i++) { Write_1621(addr,0xff); addr+=1; } } /**************************************************************************** Name: all_on_num(All lit,Display the same number) ****************************************************************************/ void HT1621_all_on_num(uchar num,uchar xx) { uchar i; uchar addr=0; for(i=0;i<num;i++) { Write_1621(addr,xx); addr+=1; } } /**************************************************************************** Name: Init_1621(initialize 1621) *****************************************************************************/ void Init_1621(void) { SendCmd_1621(Sys_en); SendCmd_1621(RCosc); SendCmd_1621(ComMode); SendCmd_1621(LCD_on); } /**************************************************************************** Name: LCDoff(off 1621) *****************************************************************************/ void LCDoff(void) { SendCmd_1621(LCD_off); } /**************************************************************************** Name: LCDon(on 1621) *****************************************************************************/ void LCDon(void) { SendCmd_1621(LCD_on); } void displayallnum(unsigned int n) //Display all digital characters { uchar i,j; uchar addr=0; for(i=0;i<n;i++) { for(j=0;j<27;j++) { Write_1621(addr,num[j]); _delay_ms(100) ; } addr+=1; } } //By-bit display 8 characters and decimal point void displayall8(void) {uchar i; HT1621_all_off(16); for(i=0;i<16;i++) { Write_1621(i,0b11110111); _delay_ms(50) ; } } /**************************************************************************** Name: displaydata(unsigned long int t) Display data t : Data to be displayed *****************************************************************************/ void displaydata(unsigned long int t) {uchar i; dispnum[5]=num[t/100000]; dispnum[4]=num[(t/10000)%10]; dispnum[3]=num[(t/1000)%10]; dispnum[2]=num[(t/100)%10]; dispnum[1]=num[(t/10)%10]; dispnum[0]=num[t%10]; for(i=0;i < 6 ;i++) { Write_1621(i,dispnum); } } void setup() { DDRB|=(1<<CS)|(1<<WR)|(1<<DATA);//CS,WR,DATA на выход /* pinMode(CS, OUTPUT); //Pin 2 pinMode(WR, OUTPUT); //Pin 5 pinMode(DATA, OUTPUT); //Pin 3*/ } void loop() { long int t=0; uchar i; _delay_ms(50) ; Init_1621() ; HT1621_all_on(16) ; _delay_ms(300) ; HT1621_all_off(16); _delay_ms(300) ; HT1621_all_on(16) ; _delay_ms(300) ; HT1621_all_off(16); _delay_ms(300) ; for(i=0;i<27;i++) { HT1621_all_on_num(16,num); _delay_ms(200) ; HT1621_all_off(16); } while(1) { //display 0 to 99999 for(t=0;t<99999;t++) { displaydata(t); _delay_ms(100) ; } //displaydata : "0 1 2 3 4 5 6 7 8 9 A b" //for(i=0;i < 16 ;i++) //{ //Write_1621(i,num); //} //displaybihua(); //_delay_ms(1000); } } вот мои каракули. это было написано под ардуино и на сколько знаний хватило переделал. но вроде все исправил да пишет id returned 1 exit status/collect2.exe
  2. Курилка

    0.3 который чтоли?
  3. Курилка

    что за D в формуле?
  4. Блок Питания На Ir2153

    Это писал видимо очень "УМНЫЙ" человек
  5. Блок Питания На Ir2153

    Форум опасно.[emoji5] спасибо скупой
  6. Блок Питания На Ir2153

    Господа посоветуйте чего почитать по полумостам, а то глаза разбегаются.
  7. Блок Питания На Ir2153

    Вы скорей прозревший пастырь. Иногда.[emoji5]
  8. Блок Питания На Ir2153

    Григорий пусть люди разговаривают и идут к истине.
  9. Расчет импульсного трансформатора.

    Если сделать как в расчете т.е. два выхода да еще подгрузить чуток. То падение будет меньше, а уровень напряжения к реальному ближе. Напряжение всегда будет как в расчетке вашей: мин ном макс.
  10. Курилка

    Посоветуйте книгу по импульсным источникам питания, а то глаза разбегаются.
  11. Расчет импульсного трансформатора.

    Хз но как то работают на обычных сетевых трансах. Для увеличения мощности расчитывают с запасом по току.
  12. Расчет импульсного трансформатора.

    Номинальное у вас показало 13в, это раз. Число витков 4.6 ну округлите в меньшую сторону и нагрузите после фильтра резистором. К тому же вы не учли тот факт что в проге у вас еще один выход который погасит мощность на порядок. Что кстати скажется и на напряжении 12 вольтового выхода!
  13. Расчет импульсного трансформатора.

    Я бы на вашем месте не заморачивался, ну сделайте 4 витка и пользуйтесь. На такую погрешность причины могут быть разные, начиная от проницаемости сердечника до банальной ошибки в числе витков в первичке.
  14. Блок Питания На Ir2153

    Полевики это подобие конденсатора затвор нужно разряжать поэтому ставят резистор. Без него работать будет но не долго т.к. разряжаться будет через цепи микры.
  15. Расчет импульсного трансформатора.

    Че то я не понял 19,4 или 20? А частота точно 47к? И при нашрузке ничуть не село? Что то сильно сомниваюсь! При ос с стабилизацией на крутых микрах такого только можно добиться.
  16. Расчет импульсного трансформатора.

    Такая тема уже есть.
  17. 30 витков мотал все равно греется... все
  18. Proteus - Вопросы И Ответы

    Все разобрался. Не верно был прописан адрес строки.
  19. Proteus - Вопросы И Ответы

    Может кто сталкивался в протеусе лсд 16/2 не выводит во второй строке. Что может быть. Програмно врядли качал разные проги пробовал.
  20. Курилка

    Вы тут хаяли америку, а теперь жалуетесь на родину, каламбур получается.
  21. Курилка

    В ютубе есть тип который заходит ( вы можете сделать это и сами ) в карты гугл и показывает что там за рубежом. Какие улицы, какие дома. Вот и смотрите своими глазами как ТАМ.
  22. Курилка

    Скажуууу я вам. Сделал сброс и обосрался. Телефон заблокировался и все тут. Залез в ютуб с другого и начались тут пляски. Ребята я поверил в магию!
  23. Курилка

    Проверка связи Отправлено с моего SM-J120F через Tapatalk
  24. Курилка

    Еще раз поторю после обновы по телефон сам творит что хочет. Буду делать общий сброс. Да это я
  25. Курилка

    Телефон обновил по, и после этого стал глючить. Сам ярлыки удаляет ставит при чем по верх других. Меняет настрйки вот и подпись установил.