|
Плизззз VB\VC++ и ASM51 (нужна программа из 5 строк) |
|
|
|
Apr 4 2006, 14:12
|

Группа: Новичок
Сообщений: 9
Регистрация: 4-04-06
Из: Израиль
Пользователь №: 15 789

|
Люди добрые, спасите...
Надо написать малюсенькую программу но вот как это реализовать не знаю.
Вот что нужно: 1. На VisualBasic или VisualC++ написать малюсенькую программу в которой будет 2 строки ввода, каждая ограничена до 16 символов. Нажимая на кнопку send инфа из этих строк отправляестья в COM1 порт.
2. На Assembler-51 (для микроконтроллера 8051/31) написать прогу которая будет принимать эту инфу.
Всё это необходимо для того, чтобы отобразить на 2 строчках LCD то, что написали в компе. Программа для вывода на LCD уже есть, осталось вышеперечисленное. Наверное также важно чтобы к строкам в программе на VB или VC++ добавлялся какой-то символ обозначающий для проги на asm-51 что это 1 или 2 строка. Мне сказали что реально реализовать за счёт внутреннего RAM в микроконтроллере 8031, поэтому думаю будет наилучьшим вариантом, запись полученной инфы из компа в адреса RAM, а оттуда будет выдоваться всё на LCD.
Буду признателен любой помощи!!!! Плиззз, очень надо!!!!
Заранее благодарен!
--------------------
..:: Deeds Talk Loud Than Words ::..
|
|
|
|
|
Apr 4 2006, 15:32
|
Местный
  
Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821

|
VisualC++ для comporta!! Проверенно - работает!
|
|
|
|
|
Apr 4 2006, 15:38
|

Группа: Новичок
Сообщений: 9
Регистрация: 4-04-06
Из: Израиль
Пользователь №: 15 789

|
Спасибо, сейчас посмотрю, попытаюсь что-то понять
--------------------
..:: Deeds Talk Loud Than Words ::..
|
|
|
|
|
Apr 4 2006, 15:51
|

Группа: Новичок
Сообщений: 9
Регистрация: 4-04-06
Из: Израиль
Пользователь №: 15 789

|
Посмотрел, но как адаптировать под то что мне надо не имею представления, можешь подсказать, или помочь?
--------------------
..:: Deeds Talk Loud Than Words ::..
|
|
|
|
|
Apr 4 2006, 16:18
|

Группа: Новичок
Сообщений: 9
Регистрация: 4-04-06
Из: Израиль
Пользователь №: 15 789

|
Ок, понял то, что ничего не понял, потому как в с++ не соображаю, учил С и то не долго и не много, ты мог бы сделать, если не трудно?
--------------------
..:: Deeds Talk Loud Than Words ::..
|
|
|
|
|
Apr 4 2006, 16:46
|
Местный
  
Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821

|
А там C++помоему и нету - простой С и API функции. Тебе тут и надо-то диалоговый проект создать, button и editcontrol положить, ну а потом eventи обработать и всё. Вот тебе ссылка, там есть и VisualC++, думаю сам быстро разберёшся!
Сообщение отредактировал andron86 - Apr 4 2006, 16:47
|
|
|
|
|
Apr 4 2006, 17:20
|

Группа: Новичок
Сообщений: 9
Регистрация: 4-04-06
Из: Израиль
Пользователь №: 15 789

|
Я только взглянул мне в глазах потемнело. У меня есть приблизительный код на VB который отправляет эксадецимальное значение, а мне надо не значение а 2 строки по 16 символов, а вот какой функцией перевернуть все 16 символов в ascii код и отправить их по одному не знаю. Мне больше половины всего кода не надо, надо только 2 поля ввода ограниченных до 16 символов, а при нажатии на send они переводяться в ascii код (потом видимо в hex) и отправляються на com1port!Вот код который у меня есть: Код Public dat As String Public tim As String Public CurrentTime As String Public x, z As Integer
Private Sub Command3_Click()
End Sub
Private Sub Form_Load() Timer2.Enabled = True 'Show clock and date' Combo1.AddItem "Summer" Combo1.AddItem "Winter" Combo1.AddItem "Manual" Combo1.AddItem "Activate" ' MSComm1.CommPort = 1 ' MSComm1.Settings = "9600,n,8,1" If MSComm1.PortOpen = True Then MSComm1.PortOpen = False End If End Sub Private Sub Command1_Click() 'Manual' dat = Text1.Text tim = Text2.Text Label2.Caption = dat & " " & tim Command1.Enabled = False Command2.Enabled = True End Sub Private Sub Command2_Click() 'Start' x = 0 z = 0 Timer1.Enabled = True Command2.Enabled = False Combo1.Enabled = False End Sub Private Sub Combo1_Click() 'Choosing the Mode' CurrentTime = Format(Time, "hh:mm") Select Case Combo1.ListIndex Case 0 tim = "20:09" Label2.Caption = "Every day at: " & tim Command2.Enabled = True Case 1 tim = "19:58" Label2.Caption = "Every day at: 19:00" Command2.Enabled = True Case 2 Label2.Caption = " " Command1.Enabled = True ' Command2.Enabled = True Case 3 tim = CurrentTime Command2.Enabled = True End Select End Sub
Private Sub Label1_Click()
End Sub
Private Sub Label2_Click()
End Sub
Private Sub MSComm1_OnComm()
End Sub
Private Sub Text1_Change()
End Sub
Private Sub Text2_Change()
End Sub
Private Sub Text3_Change()
End Sub
Private Sub Text4_Change()
End Sub
Private Sub Timer1_Timer() 'Main Timer' CurrentTime = Format(Time, "hh:mm") x = x + 1 ' Text1.Text = x Text2.Text = tim Text3.Text = CurrentTime If CurrentTime = tim Then If z = 0 Then 'Checks if sent ' If MSComm1.PortOpen = False Then MSComm1.PortOpen = True End If MSComm1.Output = Hex(255) Text1.Text = Hex(255) z = 1 x = 0 End If Call cw End If End Sub Public Function cw() Label2.Caption = "Evrithing vorks " Text4.Text = x If x = 5 Then ' Time period in sec - x' If MSComm1.PortOpen = False Then MSComm1.PortOpen = True End If MSComm1.Output = Hex(170) Text1.Text = Hex(170) Label2.Caption = " " MSComm1.PortOpen = False Combo1.Enabled = True Timer1.Enabled = False End If End Function Private Sub Timer2_Timer() 'Secondary timer for clock and date ' Label1.Caption = Date & " " & Time End Sub
Сообщение отредактировал IncreMan - Apr 4 2006, 17:22
--------------------
..:: Deeds Talk Loud Than Words ::..
|
|
|
|
|
Apr 6 2006, 16:12
|

Группа: Новичок
Сообщений: 9
Регистрация: 4-04-06
Из: Израиль
Пользователь №: 15 789

|
Скорее это надо для красоты  Но это часть проблемы, я не могу посылать в порт сразу весь string, а только chars по отдельности, потому как микроконтроллер может принимать через серийный порт только одно hex значение.
--------------------
..:: Deeds Talk Loud Than Words ::..
|
|
|
|
|
Apr 7 2006, 08:30
|
Группа: Новичок
Сообщений: 12
Регистрация: 18-07-05
Пользователь №: 6 878

|
Цитата(IncreMan @ Apr 4 2006, 19:12)  Надо написать малюсенькую программу но вот как это реализовать не знаю. ну если малюсенькую, то делал что-то подобное года 3 назад: Код Public Num As String
Private Sub Command1_Click() Pr = "byt" Num = InputBox$(Pr, , Num) End Sub
Private Sub Command2_Click() MSComm1.CommPort = 1 MSComm1.Settings = "9600,N,8,1" MSComm1.PortOpen = True Timer1.Enabled = True End Sub
Private Sub Command3_Click() Timer1.Enabled = False MSComm1.PortOpen = False
End Sub
Private Sub Timer1_Timer() Label1.Caption = Num MSComm1.Output = Num End Sub Вводишь в инбокс символы, которые будут выведены на СОМ порт (ASCII код переменной NUM) с периодом заданным в Timer1, или я что-то не понял? Прикрепил весь проект.
|
|
|
|
|
Apr 10 2006, 09:06
|

Группа: Новичок
Сообщений: 9
Регистрация: 4-04-06
Из: Израиль
Пользователь №: 15 789

|
Огромное, спасибо, попробую что-то с этим сделать, а это действительно курсовая, и энная сумма приемлимо, но уже завтра здавать, вроде всё сковырял, единственная проблема осталась в том, что отправляя например символ "A" приходит "U", или вообще закарючка, я проверил, получаеться что отправляя к примеру 7Ah приходит FAh. Пока не могу понять в чём дело, потому как если я из МК отправляю в компьютер, то всё принимаеться как надо, а наоборот не хочет.
В любом случае, как только всё закончу, выложу, готовый вариант, чтоб другим на пользу было, если вдруг пригодиться!
--------------------
..:: Deeds Talk Loud Than Words ::..
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|