Кто-нибудь пробовал писать? А то принесли партию AT89C51-20PI и возник вопрос какой дат файл подключать (89c51cc.dat; 89C51RC.dat; 89C51RD.dat).
BASCOM 8051
Сообщений 1 страница 30 из 31
Поделиться22012-04-11 15:38:43
8052.dat пока не используешь уникальные регистры, большого значения это не имеет - все они совместимы.
Поделиться32014-04-03 23:42:54
подниму тему
есть страшный китайский зверь stc 11f16xe
шьётся через бутлоадер по uart
что-то совместимое с 8051
у кого есть bascom 8051 посвежее? а то на сайте демо от 2007 года
Поделиться42015-04-19 17:53:16
Возможно глупый вопрос, но...
Реально ли зашить нашу кр1816ВЕ51(31) кодом написанным на BASCOM-8051 и главное, будет ли работать?
Поделиться52015-04-20 09:25:15
думаю, будет. Если это 100% копия
https://ru.wikipedia.org/wiki/Intel_8051
Поделиться62015-05-01 00:42:31
BASCOM-8051 я думаю закинули.
dron711
Пробуй какой нибудь код мелкий написать.
Поделиться72023-11-25 17:20:12
Седалищный нерв тонко чувствовал приближающиеся изменения...
Решил я глянуть на рынок МК немного с иной стороны. Поискал, что еще есть работоспособного.
Ну, нашел клоны PIC
Нашел пару клонов AVR (уже упоминавшийся lgt8f)
Нашел вообще на своём ядре - PADAUK. Даже хотел было прикупить, но у ходовых там весьма скромно с памятью программ (обычно 1-1.5-3,4 кБ). И особый программатор надо, хотя народ слепил на STM32 какой-то usb программатор.
И решил я, что 8051 - самое оптимальное решение.
И снова полез искать. Всё тот же STC - фактически единственный, который выпускается и растёт как минимум с 2015 года.
На неделе запрошу у поставщика цены на 5-10 ходовых моделей и сообщу сюда.
Возможно, это - самое адекватное в плане замены AVR. Тем более, есть Bascom-51 - уже проще писать.
ps
а еще нашел Megawin - что-то даже на Алиэкспресс продаётся
pps
наткнулся на интересный обзор:
https://vc.ru/u/1769747-vladimir-dennic … lektroniki
Отредактировано Александр Д. (2023-11-25 22:44:40)
Поделиться82023-11-26 10:09:34
Я, так понимаю, вам для промышленных масштабов.
я так уже вспомнил старые добрые советские времена Полез на свалку истории радиодеталей
Поделиться92023-11-26 13:22:25
семейство не умерло, практически все крупные игроки его проектируют и производят.
Поделиться102023-11-26 13:48:26
Возможно, это - самое адекватное в плане замены AVR.
Чем вызвана необходимость замены?
Нужен МК чем дешевле тем лучше?
Нужен МК с более функциональной встроенной периферией?
Просто захотелось поработать с другими МК?
Поделиться112023-11-26 14:48:08
Нужен МК чем дешевле тем лучше?
Желание наличия выбора. К PIC возвращаться не хочу. Если только pic24 - но цена не радует. Да и мы под санкциями, компания не жалует нас!
Нужен МК с более функциональной встроенной периферией?
Иногда - да. Хочется и uart-ов поболе, и таймеров бы еще пару, и , и, и ))))
Просто захотелось поработать с другими МК?
Да, но не stm32 и иже с ними - ни Си не терплю, ни потребностей в "мощности" нет))
Поделиться122023-11-27 10:07:19
Вы что, у на свои процессоры есть. Вот например:
1887ВЕ7Т Купить: 11880.00 руб с НДС.
Поделиться132023-11-27 10:23:11
они такие же "наши", как я - китаец.
Даже буквы - и те, болгарские...
Поделиться142023-11-27 18:46:42
1887ВЕ7Т
Там до сих пор есть ряд аппаратных ошибок (уже не помню каких), править видимо не собираются (уже много лет). В своё время косился на них (в силу определённых обстоятельств), но желание бороться с ветряными мельницами за такие бабки - не появилось (спонсоров естественно нет ).
Поделиться152023-11-27 18:50:39
я подходил на выставке: Ну, как оно, с импортозамещением? )) когда будет горсть МК - за тыщу?
отшутились.
Поделиться162023-11-28 09:58:47
бороться с ветряными мельницами за такие бабки
Я когда цену увидел то немного приху, извините удивился. Импортозамещение в деле не иначе.
Поделиться172023-11-28 10:56:14
МК от Мегавин
Цена в Китае:
Unit price/¥:
10pcs 100pcs 1000pcs
MG82F6D17 AS8 5 4.5 3.5
MG82F6D17 AL20 3.5 3 1.5
MG82F6D17 AZ20 3.8 3 2.5
последние цифры в маркировки - количество выводов, буквы - тип корпуса
http://www.megawin.com.tw/en-global/pro … /MG82F6D17
документация: wwwmegawin.com.tw/zh-tw/support/downloadDocument/136/698
Поделиться182023-11-30 22:03:48
Здравствуйте, на глаза попались контроллеры stc, очень привлекли ценой и доступностью в продаже, одна проблема, не знаю с какой стороны к нему подойти.
STC8H1K08-36I-TSSOP20 Микроконтроллер STC, ядро 8051T(33МГЦ). 64кб Flash, 1.25кб SRAM. 2 UART, 1 I2C, 9 каналов 10-бит АЦП. Цена в нашем регионе всего 26 рублей. Никто не интересовался такими?
Поделиться192023-12-01 10:50:45
я интересовался в 2019-2021
bascom51 оживляет это семейство на ура.
Кое что брал из примеров компании, были под Кейл.
А где Вы такой нашли и по такой цене?
https://www.stcmicro.com/stc/stc8h1k08.html
Весьма заманчиво, спасибо!! Задал вопрос поставщику.
Отредактировано Александр Д. (2023-12-01 10:58:26)
Поделиться202023-12-01 12:10:39
Александр, в "Промэлектронике" г. Екатеринбург
https://www.promelec.ru/product/527335/ 26 рублей
https://www.promelec.ru/product/527337/ 36 рублей
Поделиться212023-12-01 12:12:59
спасибо, уже видел. Давно у них ничего не покупал - сразу с Али везу. Поэтому не знаю, сколько возьмут за доставку в Подмосковье.
ps: Узнал: доставка - как партия из 10 штук из Китая ))
pps:
Заказал на Али 10 штук.
Тем более, у этого производителя МК щьются без программатора, обычный usb-ttl преобразователь. А некоторые МК покрупнее - через USB.
Отредактировано Александр Д. (2023-12-01 12:33:26)
Поделиться222023-12-01 13:21:06
Александр, в bascom8051 не нашёл библиотеку dat по него.... Где-то можно скачать?
Поделиться232023-12-01 13:50:19
не совсем понял вопрос
Я подбирал что-то из типовых (открывал dat и сравнивал даташиты).
а что нового в МК - добавлял через регистры, описано в примерах на Си, под среду Keil
Поделиться242023-12-04 21:07:37
Александр, в "Промэлектронике" г. Екатеринбург
И тут заказал несколько моделей МК.
Поделиться252023-12-04 21:34:09
¥ 10pcs 100pcs 1000pcs
STC8H1K08-36I TSSOP20 3 2.2 1
STC8H1K17-36I TSSOP20 3 2.2 1
Поделиться262023-12-11 15:03:25
catalex написал(а):
Александр, в "Промэлектронике" г. Екатеринбург
И тут заказал несколько моделей МК.
Получил сегодня
Но, как назло, надо уехать по делам на неделю-две...
Упаковали знатно: огромная коробочка, 3 пакетика микросконтроллеров и огромное количество силикагеля и "пупырок" )))
Поделиться272024-01-01 22:59:31
STC8H1K08
пока смог только помигать св.диодом из Кейла.
Присобачить все изменения в регистрах для этого МК пока не смог - времени не было.
Но уже что-то ))
Сейчас попробую UART (там аж 4 режима)
ps
uart1 запустил
второй - нет, пока не понял причину
Отредактировано Александр Д. (2024-01-02 00:14:01)
Поделиться282024-01-03 23:09:39
ну что же... Уже кое-что!
режимы портов выбираю, резистор-подтяжку устанавливаю, кнопку опрашиваю, светодиодом управляю, Int0/Int1 работают и режим реакции задаю.
Print не работает. Я не знаток ассемблера 51, но вижу, что баском устанавливает "не те" биты в нужных регистрах. Пока не понимаю причину.
Думаю, и input работать не будет, но не проверял.
$regfile = "STC_8H.DAT" ' STC registers list
'$romstart = &H0 ' code starting address
$crystal = 11059200 ' CPU clock frequenceDim Temp As Byte
P1ie = &B_0000_0100 ' 1: Enable digital signal input
P1m1 = &B_0000_0000 : P1m0 = &B_0010_0000 ' Push-pull output mode
P1pu = &B_0000_0100 ' 1: pull-up resistor
My_led Alias P1.5
Knopka Alias P1.2P3ie = &B_0000_1100 ' 1: Enable digital signal input
P3m1 = &B_0000_0000 : P3m0 = &B_0000_0000 '
P3pu = &B_0000_1100 ' 1: pull-up resistorOn Int1 Int1_int 'Initialise the INT1 Interrupt
Priority Set Int1 'set INT1 to the highest priority level (INT1 has by default the highest prio)
'It1 = 0 ' Enable INT1 rising and falling interrupt
It1 = 1 ' Enable INT1 falling edge interrupt
Enable Interrupts
Enable Int1 'enable the interruptFor Temp = 0 To 9
My_led = 1
Waitms 50My_led = 0
Waitms 50
NextDo
' If Knopka = 0 Then
' My_led = 1
Waitms 50
' Else
My_led = 0
' End If
LoopInt1_int:
Incr Temp
If Temp > 5 Then
My_led = 1
Temp = 0
End If
Return
Не всё проверено, но уже что-то!
[BIT]
ACC = E0
B = F0
PSW = D0
P0 = 80
P1 = 90
P2 = A0
P3 = B0
P4 = c0
P5 = c8
P6 = e8
P7 = f8
SCON = 98
T2CON = C8
IE = A8
IP = B8
TCON = 88[BYTE]
SP = 81
DPL = 82
DPH = 83
TH0 = 8C
TH1 = 8D
TL0 = 8A
TL1 = 8B
PCON = 87
TMOD = 89
SBUF = 99
T2MOD = C9
TL2 = CC
TH2 = CD
RCAP2L = CA
RCAP2H = CB
AUXR = 8E
SADDR = A9
IPH = B7
SADEN = B9
P_SW1 = a2
P_SW2 = ba
T2H = d6
T2L = d7
S2CON = 9A ' UARTs control register
S2BUF = 9B
S3CON = AC
S3BUF = AD
S4CON = 84
S4BUF = 85
WDT_CONTR = C1 ' Watchdog Timer Register
RSTCFG = FF ' Reset Configuration Register
WKTCL = AA ' Power-down wake-up timer count register
WKTCH = AB' WKTEN = 7
P0M1 = 93 ' mode register 1
P0M0 = 94 ' mode register 0
P1M1 = 91' PnM1.x PnM0.x Pn.x mode
P1M0 = 92' 0 0 Quasi bidirectional mode
P2M1 = 95' 0 1 Push-pull output mode
P2M0 = 96' 1 0 High-impedance input mode
P3M1 = b1' 1 1 Open drain mode
P3M0 = b2
P4M1 = b3
P4M0 = b4
P5M1 = c9
P5M0 = ca
P6M1 = cb
P6M0 = cc
P7M1 = e1
P7M0 = e2
ADC_CONTR = BC ' control register
ADC_RES = BD ' Result High Byte
ADC_RESL= BE ' Result Low Byte
ADCCFG = DE ' Configuration Register[XBYTE]
P0PU = FE10 ' Pull-up resistor control register
P1PU = FE11' Internal 4.1K pull-up resistor control bit
P2PU = FE12' 0: Disable 4.1K pull-up resistor inside the port
P3PU = FE13' 1: Enable 4.1K pull-up resistor inside the port
P4PU = FE14
P5PU = FE15
P6PU = FE16
P7PU = FE17
P0NCS = FE18 ' Schmitt trigger control register
P1NCS = FE19' Schmitt trigger control bit:
P2NCS = FE1a '0: Enable schmitt trigger function on the port. (Schmitt trigger is enabled by default after power-on reset.)
P3NCS = FE1b' 1: Disable schmitt trigger function on the port.
P4NCS = FE1c
P5NCS = FE1d
P6NCS = FE1e
P7NCS = FE1f
P0SR = FE20 ' Level Shift Rate Register
P1SR = FE21
P2SR = FE22' Level shifting speed control bits:
P3SR = FE23' 0: Fast level shifting, and the corresponding up and down impact will be relatively large.
P4SR = FE24' 1: Slow level shifting, and the corresponding up and down impact will be relatively small.
P5SR = FE25
P6SR = FE26
P7SR = FE27
P0IE = FE30 ' Input Enable Control Register
P1IE = FE31
P2IE = FE32
P3IE = FE33
P4IE = FE34
P5IE = FE35 ' Digital signal input enable control:
P6IE = FE36 ' 0: Disable digital signal input.
P7IE = FE37 ' 1: Enable digital signal input. If the I/O is used as a digital port, it must be set to 1
CKSEL = FE00 ' Clock selection register
CLKDIV = FE01 ' Clock Division Register
IRCCR = FE02 ' Internal Oscillator control register
XOSCCR = FE03 ' External Oscillator control register
IRC32KCR = FE04 ' Internal 32KHz Oscillator control register
MCLKOCR = FE05 ' Main clock output control register
X32KCR = FE08 ' External 32KHz Oscillator control register
P0DR = FE28 ' Drive Current Control Register
P1DR = FE29' 0: Enhanced drive ability
P2DR = FE2a' 1: General drive ability
P3DR = FE2b
P4DR = FE2c
P5DR = FE2d
P6DR = FE2e
P7DR = FE2f
ADCTIM = FEA8 ' Timing Control Register[SBIT]
TF1 = 8f
TR1 = 8e
TF0 = 8d
TR0 = 8c
IE1 = 8b
IT1 = 8a
IE0 = 89
IT0 = 88
EA = AF ' IE
EPCA_LVD = AE
EADC_SPI = AD
ES = AC
ET1 = AB
EX1 = AA
ET0 = A9
EX0 = A8
PPCA_LVD = BE ' IP
PADC_SPI = BD
PS = BC
PT1 = BB
PX1 = BA
PT0 = B9
PX0 = B8
CY = d7 ' PSW
AC = d6
F0 = d5
RS1 = d4
RS0 = d3
OV = d2
F1 = d1
P = d0
RD = b7 ' P3
WR = b6
T1 = b5
T0 = b4
INT1 = b3
INT0 = b2
TXD = b1
RXD = b0
SM0 = 9f ' SCON
SM1 = 9e
SM2 = 9d
REN = 9c
TB8 = 9b
RB8 = 9a
TI = 99
RI = 98
TF2 = cf ' T2CON
EXF2 = ce
RCLK = cd
TCLK = cc
EXEN2 =cb
TR2 = ca
C_T2 = c9
CP_RL2= c8[MISC]
up = STC8H
IRAM = 256
clockdiv=1
'org = 2E
I_int = &H03
I_tmr = &H0B
I_int1 = &H13
I_tmr1 = &H1B
I_uart1 = &H23
I_adc = &H2B
I_lvd = &H33
I_uart2 = &H43
I_spi = &H4B
I_int2 = &H53
I_int3 = &H5B
I_tmr2 = &H63
I_user = &H6B
I_int4 = &H83
I_uart3 = &H8B
I_uart4 = &H93
I_tmr3 = &H9B
I_tmr4 = &HA3
I_cmp = &HAB
I_i2c = &HC3
I_usb = &HCB
I_pwma = &HD3
I_pwmb = &HDB
'I_tksu = &H011B
'I_rtc = &H0123
'I_p0int = &H012B
'I_p1int = &H0133
'I_p2int = &H013B
'I_p3int = &H0143
'I_p4int = &H014B
'I_p5int = &H0153
'I_p6int = &H015B
'I_p7int = &H0163
'I_dma_m2m = &H017B
'I_dma_adc = &H0183
'I_dma_spi = &H018B
'I_dma_ur1t = &H0193
'I_dma_ur1r = &H019B
'I_dma_ur2t = &H01A3
'I_dma_ur2r = &H01AB
'I_dma_ur3t = &H01B3
'I_dma_ur3r = &H01BB
'I_dma_ur4t = &H01C3
'I_dma_ur4r = &H01CB
'I_dma_lcm = &H01D3
'I_lcm = &H01DB' ADC Register
ADC_POWER = 7
ADC_START = 6
ADC_FLAG = 5
ADC_EPWMT = 4
'ADC_CHS = 3210 ' ADC channel selection bitsCCON = D8 ' PCA
CMOD = D9
CCAPM0 = DA
CCAPM1 = DB
CCAPM2 = DC
CCAPM3 = DD
CCAPM4 = DE
CCAPM5 = DFCL = E9
CCAP0L = EA
CCAP1L = EB
CCAP2L = EC
CCAP3L = ED
CCAP4L = EE
CCAP5L = EFCH = F9
CCAP0H = FA
CCAP1H = FB
CCAP2H = FC
CCAP3H = FD
CCAP4H = FE
CCAP5H = FFPCA_PWM0 = F2
PCA_PWM1 = F3
PCA_PWM2 = F4
PCA_PWM3 = F5
PCA_PWM4 = F6
PCA_PWM5 = F7'PCON = 87
SMOD = 7
SMOD0 = 6
LVDF = 5
POF = 4
GF1 = 3
GF0 = 2
PD = 1
IDL = 0' ISP_IAP_EEPROM Register
IAP_DATA = C2 ' IAP Flash Data Register
IAP_ADDRH = C3 ' IAP Flash Address High Byte
IAP_ADDRL = C4 ' IAP Flash Address Low Byte
IAP_CMD = C5 ' IAP Flash Command Register
IAP_TRIG = C6 ' IAP Flash Trigger register
IAP_CONTR = C7 ' IAP Control Register
IAP_TPS = F5 ' IAP Waiting Time Control RegisterSPSTAT = CD ' SPI Status register
SPIF = 7
WCOL = 6SPSTAT = CE ' SPI Control Register
SSIG = 7
SPEN = 6
DORD = 5
MSTR = 4
CPOL = 3
CPHA = 2'SPSTAT = CF ' SPI Data Register
' Registers Related to I2C
' 16-bit advanced PWM timer
' USB Universal Serial Bus STC8H8K64U family' SPI Register
SPSTAT = 84
SPCTL = 85
SPDAT = 86' CCON
CF = 7
CR = 6
CCF5 = 5
CCF4 = 4
CCF3 = 3
CCF2 = 2
CCF1 = 1
CCF0 = 0S2SM0 = 7 ' UART2 control register S2CON = 9A
S2SM2 = 5
S2REN = 4
S2TB8 = 3
S2RB8 = 2
S2TI = 1
S2RI = 0
S3SM0 = 7 ' UART3 control register S3CON = AC
S3ST3 = 6
S3SM2 = 5
S3REN = 4
S3TB8 = 3
S3RB8 = 2
S3TI = 1
S3RI = 0
S4SM0 = 7 ' UART4 control register S4CON = 84
S4ST3 = 6
S4SM2 = 5
S4REN = 4
S4TB8 = 3
S4RB8 = 2
S4TI = 1
S4RI = 0
Отредактировано Александр Д. (2024-01-04 16:50:56)
Поделиться292024-01-04 00:23:19
Я не знаток ассемблера 51, но вижу, что баском устанавливает "не те" биты в нужных регистрах.
Пока не понимаю причину.
Может, есть ошибки (недописки) в файле DAT или XML ?
Bascom изначально "знал" этот МК или они (эти файлы) корректировались ?
Поделиться302024-01-04 00:28:51
я почти с нуля писал DAT файл
запустил оба uart через регистры. Придётся написать свои PRINT и INPUT ...
$regfile = "STC_8H.DAT" ' STC registers list
$crystal = 11059200 ' CPU clock frequenceP3ie = &B_0000_0001 ' 1: Enable digital signal input
P3m1 = &B_0000_0000 : P3m0 = &B_0000_0000 ' Push-pull output mode
P3pu = &B_0000_0000 ' 1: pull-up resistorScon = &H50
S2con = &H10
T2l = &HE8
T2h = &HFF
'Auxr = &H14 ' UART1
Auxr = &H15 ' UART 1 + 2P_sw1 = &H00 'RXD/P3.0, TXD/P3.1
'P_sw1 = &H40 'RXD_2/P3.6, TXD_2/P3.7
'P_sw1 = &H80 'RXD_3/P1.6, TXD_3/P1.7
'P_sw1 = &Hc0 'Rxd_4/P4.3, Txd_4/P4.4P_sw2 = &H00 'RXD2/P1.0, TXD2/P1.1
'P_SW2 = &H01 'RXD2_2/P4.6, TXD2_2/P4.7'Ren = 1 ' enable recieving
'Es = 1 ' enable interrupt
'Ea = 1 ' enable All interruptDo
Sbuf = 49
My_led = 1
Waitms 100S2buf = 50
My_led = 0
Waitms 100
Loop
$regfile = "STC_8H.DAT" ' STC registers list
$crystal = 11059200 ' CPU clock frequence'$ramstart = &H100 ' RAM starting address
'$ramsize = 128Dim Text$ As String * 11
Dim Mig As Byte , N_uart As ByteMy_led Alias P1.5
Knopka Alias P1.0 ' inputP1ie = &B_0000_0001 ' 1: Enable digital signal input
P1m1 = &B_0000_0000 : P1m0 = &B_0010_0000 ' Push-pull output mode
P1pu = &B_0000_0001 ' 1: pull-up resistorFor Mig = 0 To 9 ' Помигаем
My_led = 1
Waitms 150My_led = 0
Waitms 150
NextP3ie = &B_0000_0001 ' 1: Enable digital signal input
P3m1 = &B_0000_0000 : P3m0 = &B_0000_0000 ' Push-pull output mode
P3pu = &B_0000_0000 ' 1: pull-up resistorScon = &H50
S2con = &H10
T2l = &HE8
T2h = &HFF
'Auxr = &H14 ' UART1
Auxr = &H15 F ' UART 1 + 2P_sw1 = &H00 'RXD/P3.0, TXD/P3.1
'P_sw1 = &H40 'RXD_2/P3.6, TXD_2/P3.7
'P_sw1 = &H80 'RXD_3/P1.6, TXD_3/P1.7
'P_sw1 = &Hc0 'Rxd_4/P4.3, Txd_4/P4.4P_sw2 = &H00 'RXD2/P1.0, TXD2/P1.1
'P_SW2 = &H01 'RXD2_2/P4.6, TXD2_2/P4.7Mig = 0
Do
My_led = 1
Text$ = ""Incr Mig
Text$ = "1: " + Str(mig) + Chr(10) + Chr(13)
N_uart = 1 : Gosub Prn_uartText$ = "2: " + Str(mig) + Chr(10) + Chr(13)
N_uart = 2 : Gosub Prn_uartWaitms 50
My_led = 0
Waitms 50
Loop'=========================================
Prn_uart:
Dim Tstr$ As String * 1
Dim Temp As Byte , Kolvo As Byte , Simvol As ByteKolvo = Len(text$)
For Temp = 1 To Kolvo
Simvol = Mid(text$ , Temp , 1)If N_uart = 1 Then
Sbuf = Simvol
While Ti = 0 : Wend
Ti = 0
Else
S2buf = Simvol
While S2con.1 = 0 : Wend
S2con.1 = 0
End If
NextErase Simvol
Erase Kolvo
Erase Temp
Erase Tstr$
Return
Отредактировано Александр Д. (2024-01-04 16:49:59)