Have некоторые проблемы по делу просто мобильный телефон

U

uXing

Guest
Я собираюсь сделать простой мобильный телефон, который просто использует
1.AT89C52
2.Клавиатура
3.ЖК-дисплей (SC162D, 16 символов × 2 строки)
4.GM862 с EVK V3 RS232

Здесь связи Betwee MCU, клавиатурой и ЖК
-

<img src="http://ihome.cuhk.edu.hk/~s057611/Design.JPG" border="0" alt="Have some problem on doing a simply mobile phone" title="Выпей проблемой делать просто мобильный телефон"/>Он отлично работает в Proteus (вид моделирования программного обеспечения)

Тип GM862 EVK V3 таки<img src="http://ihome.cuhk.edu.hk/~s057611/GM862.JPG" border="0" alt="Have some problem on doing a simply mobile phone" title="Выпей проблемой делать просто мобильный телефон"/>Есть несколько вопросов, которые я хотел бы спросить

Вопрос 1
Здесь источник питания, что я планировал использовать<img src="http://ihome.cuhk.edu.hk/~s057611/Power.JPG" border="0" alt="Have some problem on doing a simply mobile phone" title="Выпей проблемой делать просто мобильный телефон"/>Это AC-DC адаптер с выходом DC 3 - 15V 700mA
Могу ли я использовать две из этого в качестве источника питания?Один заключается в предоставлении 5V для 89c52 и ЖК, а другой является предоставление 7,5 В до GM862 EVK V3.
Я действительно беспокоиться о большой ток уничтожить GM862 или любого другого устройства.Вопрос 2
Если бы я только хочу, чтобы отправить команду AT для MCU GM862, могу ли я покинул RxD, RTS, CTS отключен?

Вопрос 3
Я не знаю ли подключение Pin TXD это право или нет. (Так как спецификация кажется неправильным)
Поэтому я хотел бы подтвердить это.

89c52 Pin 11 (TXD) -> Уровень перевода (от 2.8V до 5V) -> TXD (GM862 EVK V3)

GM862 TXD, что я должна соединить это красный круг изображения one.Right?

Вопрос 4
Перед подключением к TXD (GM862 EVK V3), мне нужно сделать для отпайки на этом Пин (красный круг на рисунок 1). Потому что есть уровень перевода между RSR232 и TXD.
http://www.sparkfun.com/datasheets/Cellular% 20Modules/GM862% 20EVK% 20V3% 20RS232% 20sch.PDF

Я действительно не знакомы с разработки аппаратного и боится разрушения устройства.Ваша помощь может сделать своим проектом стало легче. [/ IMG]
Последняя редакция uXing по 11 апреля 2008 11:19; редактировалось 1 раз в общей сложности

 
Hey Buddy каким вы сделали, что клавиатура в Proteus ???................ вам не нужно соединить Proteus кристалл имеет кристалл умолчанию ........ .........

 
Да, он не должен соединить кристалла в protues.ЖК может работать в protues.Но это не моя работа в реальном продукте оборудования.Он не показал ничего в моей ЖК-дисплей, то почему?Мой код инициализации от ЖК находится здесь:

# включить <AT89X52.h>
# DEFINE LCD_data P1
# DEFINE LCD_BusyFlat P1_7
# DEFINE LCD_RS P3_5
# DEFINE LCD_RW P3_6
# DEFINE LCD_EN P3_7
Пустота lcd_init ()
(

/ / установить до 8-разрядном режиме и выберите линию 1-строчный дисплей и характер шрифта
LCD_RS = 0; LCD_RW = 0; P1 = 0x30; LCD_EN = 1; LCD_EN = 0;
Delay ();

/ / выключения дисплея
LCD_RS = 0; LCD_RW = 0; P1 = 0x0F; LCD_EN = 1; LCD_EN = 0;
Delay ();

/ / отобразить четкие
LCD_RS = 0; LCD_RW = 0; P1 = 0x01; LCD_EN = 1; LCD_EN = 0;
Delay ();

/ / отображение.Курсор появляется
LCD_RS = 0; LCD_RW = 0; P1 = 0x0E; LCD_EN = 1; LCD_EN = 0;
Delay ();

/ / режим ввода установить никакого сдвига и авто incremement
LCD_RS = 0; LCD_RW = 0; P1 = 0x06; LCD_EN = 1; LCD_EN = 0;
Delay ();
)

 
И. помощью программы на языке ассемблера
$ MOD52
ЛИНИЯ EQU R0
DATAREADY EQU P2.7

Org 0000H

MOV LINE, # 00H
MOV P2, # 0ffh

MOV A, # 38H; ЖК 2 строки
ACALL COMNWRT

MOV A, # 01H; CLR DISPL
ACALL COMNWRT

MOV, # 0EH; SHIFT курсор на
ACALL COMNWRT

MOV A, # 06H; SHIFT курсор вправо
ACALL COMNWRT

MOV A, # 80H, отправьте ПЕРВАЯ ЛИНИЯ ADDR
ACALL COMNWRT

CHECK:
JNB DATAREADY, Level2
SJMP CHECK
Level2:
MOV, P2
SETB P2.7
ACALL ПРОСМОТР
SJMP CHECK

Слова:
RL
ANL A, # 0F0H
XRL, # 0F0H
MOV 20H, # 00H; CLEAR MEM LOCN 20
RLC; перегруппировки I / P BCD КОД в надлежащем порядке
MOV 00H, C
RLC
MOV 01H, C
RLC
MOV 02H, C
RLC
MOV 03H, C
CLR C
MOV A, 20H
Subb, # 01H; CHECK Если ключевые 1 нажата
JZ ONE1
Subb, # 01H; CHECK Если ключевые 2 нажата
JZ TWO1
Subb, # 01H; CHECK Если ключ 3 нажата
JZ THREE1
Subb, # 01H; CHECK Если ключевые 4 нажата
JZ FOUR1
Subb, # 01H; CHECK Если ключевые 5 нажата
JZ FIVE1
Subb, # 01H; CHECK Если ключ 6 нажата
JZ SIX1
Subb, # 01H; CHECK Если ключевые 7 нажата
JZ SEVEN1
Subb, # 01H; CHECK Если ключевые 8 нажата
JZ EIGHT1
Subb, # 01H; CHECK Если ключевые 9 нажата
JZ NINE1
Subb, # 01H; CHECK Если ключевые 0 нажата
JZ ZERO1
Subb, # 01H; CHECK Если ключ * нажата
JZ Назад1
Subb, # 01H; CHECK Если ключевые # нажата
JZ HASH1
LJMP неверно;

ONE1: LJMP ONE
TWO1: LJMP ДВА
THREE1: LJMP ТРИ
FOUR1: LJMP ЧЕТЫРЕХ
FIVE1: LJMP ПЯТЬ
SIX1: ШЕСТЬ LJMP
SEVEN1: LJMP SEVEN
EIGHT1: LJMP ВОСЕМЬ
NINE1: LJMP ДЕВЯТИ
ZERO1: LJMP ZERO
Назад1: LJMP НАЗАД
HASH1: LJMP HASH
INCORRECT1: LJMP НЕКОРРЕКТНО

Нажатии одной:; ключевой
ACALL LINEINC
MOV, # '1 '
ACALL DATAWRT
ACALL DELAY1
CLR C
LJMP CHECK

Нажата ВТОРАЯ, ключевые ДВА
ACALL PRINTA
ACALL PRINTB
ACALL PRINTC
ACALL PRINT2
ACALL DELAY1
ACALL Check1
ACALL ASTERIX
ACALL ASTERIX
ACALL ASTERIX
ACALL ASTERIX
ACALL LINEINC
MOV A, R1
Subb, # 01H
JZ PRINTA
Subb, # 01H
JZ PRINTB
Subb, # 01H
JZ PRINTC
Subb, # 01H
JZ PRINT2
SJMP INCORRECT1
LJMP CHECK

PRINTA:
MOV A, # ''
ACALL DATAWRT
RET

PRINTB:
MOV A, # 'B'
ACALL DATAWRT
RET

PRINTC:
MOV A, # 'C'
ACALL DATAWRT
RET

PRINT2:
MOV, # '2 '
ACALL DATAWRT
RET

Нажата ТРЕТЬЯ, ключевые ТРИ
ACALL PRINTD
ACALL PRINTE
ACALL PRINTF
ACALL PRINT3
ACALL DELAY1
ACALL Check1
ACALL ASTERIX
ACALL ASTERIX
ACALL ASTERIX
ACALL ASTERIX
ACALL LINEINC
MOV A, R1
Subb, # 01H
JZ PRINTD
Subb, # 01H
JZ PRINTE
Subb, # 01H
JZ PRINTF
Subb, # 01H
JZ PRINT3
LJMP НЕКОРРЕКТНО
LJMP CHECK

PRINTD:
MOV A, # 'D'
ACALL DATAWRT
RET

PRINTE:
MOV A, # 'E'
ACALL DATAWRT
RET

PRINTF:
MOV A, # 'F'
ACALL DATAWRT
RET

PRINT3:
MOV, # '3 '
ACALL DATAWRT
RET

ЧЕТВЕРТАЯ:; ЧЕТЫРЕ КЛЮЧЕВЫЕ нажата
ACALL PRINTG
ACALL PRINTH
ACALL PRINTI
ACALL PRINT4
ACALL DELAY1
ACALL Check1
ACALL ASTERIX
ACALL ASTERIX
ACALL ASTERIX
ACALL ASTERIX
ACALL LINEINC
MOV A, R1
Subb, # 01H
JZ PRINTG
Subb, # 01H
JZ PRINTH
Subb, # 01H
JZ PRINTI
Subb, # 01H
JZ PRINT4
LJMP НЕКОРРЕКТНО
LJMP CHECK

PRINTG:
MOV A, # 'G'
ACALL DATAWRT
RET

PRINTH:
MOV A, # 'H'
ACALL DATAWRT
RET

PRINTI:
MOV A, # 'I'
ACALL DATAWRT
RET

PRINT4:
MOV, # '4 '
ACALL DATAWRT
RETНажата ПЯТАЯ, ключевые ПЯТЬ
ACALL PRINTJ
ACALL PRINTK
ACALL PRINTL
ACALL PRINT5
ACALL DELAY1
ACALL Check1
ACALL ASTERIX
ACALL ASTERIX
ACALL ASTERIX
ACALL ASTERIX
ACALL LINEINC
MOV A, R1
Subb, # 01H
JZ PRINTJ
Subb, # 01H
JZ PRINTK
Subb, # 01H
JZ PRINTL
Subb, # 01H
JZ PRINT5
LJMP НЕКОРРЕКТНО
LJMP CHECK

PRINTJ:
MOV A, # 'J'
ACALL DATAWRT
RET

PRINTK:
MOV A, # 'K'
ACALL DATAWRT
RET

PRINTL:
MOV A, # 'L'
ACALL DATAWRT
RET

PRINT5:
MOV, # '5 '
ACALL DATAWRT
RET

ШЕСТЬ:; КЛЮЧЕВЫЕ ШЕСТЬ нажата
ACALL PRINTM
ACALL PRINTN
ACALL PRINTO
ACALL PRINT6
ACALL DELAY1
ACALL Check1
ACALL ASTERIX
ACALL ASTERIX
ACALL ASTERIX
ACALL ASTERIX
ACALL LINEINC
MOV A, R1
Subb, # 01H
JZ PRINTM
Subb, # 01H
JZ PRINTN
Subb, # 01H
JZ PRINTO
Subb, # 01H
JZ PRINT6
LJMP НЕКОРРЕКТНО
LJMP CHECK

PRINTM:
MOV A, # 'M'
ACALL DATAWRT
RET

PRINTN:
MOV A, # 'N'
ACALL DATAWRT
RET

PRINTO:
MOV A, # 'O'
ACALL DATAWRT
RET

PRINT6:
MOV, # '6 '
ACALL DATAWRT
RETСЕМЬ:; КЛЮЧЕВЫЕ СЕМЬ нажата
ACALL PRINTP
ACALL PRINTQ
ACALL PRINTR
ACALL РИСУНКА
ACALL PRINT7
ACALL DELAY1
ACALL Check1
ACALL ASTERIX
ACALL ASTERIX
ACALL ASTERIX
ACALL ASTERIX
ACALL LINEINC
MOV A, R1
Subb, # 01H
JZ PRINTP
Subb, # 01H
JZ PRINTQ
Subb, # 01H
JZ PRINTR
Subb, # 01H
JZ РИСУНКА
Subb, # 01H
JZ PRINT7
LJMP НЕКОРРЕКТНО
LJMP CHECK

PRINTP:
MOV A, # ''
ACALL DATAWRT
RET

PRINTQ:
MOV A, # 'Q'
ACALL DATAWRT
RET

PRINTR:
MOV A, # 'R'
ACALL DATAWRT
RET

Отпечатки:
MOV A, # 'S'
ACALL DATAWRT
RET

PRINT7:
MOV, # '7 '
ACALL DATAWRT
RET

ВОСЕМЬ:; КЛЮЧЕВЫЕ ВОСЕМЬ нажата
ACALL PRINTT
ACALL PRINTU
ACALL PRINTV
ACALL PRINT8
ACALL DELAY1
ACALL Check1
ACALL ASTERIX
ACALL ASTERIX
ACALL ASTERIX
ACALL ASTERIX
ACALL LINEINC
MOV A, R1
Subb, # 01H
JZ PRINTT
Subb, # 01H
JZ PRINTU
Subb, # 01H
JZ PRINTV
Subb, # 01H
JZ PRINT8
LJMP НЕКОРРЕКТНО
LJMP CHECK

PRINTT:
MOV A, # 'Т'
ACALL DATAWRT
RET

PRINTU:
MOV A, # 'U'
ACALL DATAWRT
RET

PRINTV:
MOV A, # 'V'
ACALL DATAWRT
RET

PRINT8:
MOV, # '8 '
ACALL DATAWRT
RETДЕВЯТЬ:; КЛЮЧЕВЫЕ ДЕВЯТЬ нажата
ACALL PRINTW
ACALL PRINTX
ACALL PRINTY
Принц ACALL
ACALL PRINT9
ACALL DELAY1
ACALL Check1
ACALL ASTERIX
ACALL ASTERIX
ACALL ASTERIX
ACALL ASTERIX
ACALL LINEINC
MOV A, R1
Subb, # 01H
JZ PRINTW
Subb, # 01H
JZ PRINTX
Subb, # 01H
JZ PRINTY
Subb, # 01H
Принц JZ
Subb, # 01H
JZ PRINT9
LJMP НЕКОРРЕКТНО
LJMP CHECK

PRINTW:
MOV A, # 'W'
ACALL DATAWRT
RET

PRINTX:
MOV A, # 'X'
ACALL DATAWRT
RET

PRINTY:
MOV A, # 'Y'
ACALL DATAWRT
RET

Принц:
MOV A, # 'Z'
ACALL DATAWRT
RET

PRINT9:
MOV, # '9 '
ACALL DATAWRT
RET

ZERO:; КЛЮЧЕВЫЕ ZERO нажата
ACALL LINEINC
MOV A, # '0 '
ACALL DATAWRT
ACALL DELAY1
CLR C
LJMP CHECK

ASTERIX:
MOV A, # 10H
ACALL COMNWRT
MOV A, # ''
ACALL DATAWRT
MOV A, # 10H
ACALL COMNWRT
RET

НАЗАД:
ACALL ASTERIX
ACALL LINEDEC; когда основные * нажата
LJMP CHECK

Академия:; когда основные # нажата
MOV A, # ''
ACALL DATAWRT
ACALL LINEINC
ACALL DELAY1
CLR C
LJMP CHECK

НЕПРАВИЛЬНО: а при нажатой клавишу неправильная
ACALL LINEDEC
CLR C
LJMP CHECK

DELAY1:; 0,5 сек DELAY
AGAIN1: MOV R3, # 64
Еще раз: MOV R4, # 250
ЗДЕСЬ: NOP
NOP
NOP
NOP
NOP
DJNZ R4, ЗДЕСЬ
DJNZ R3, опять
CLR C
RET

Check1:
C1:
JNB DATAREADY, C2
SJMP C1
C2:
MOV, P2
RL
ANL A, # 0F0H
XRL, # 0F0H
MOV 20H, # 00H; CLEAR MEM LOCN 20
RLC
MOV 00H, C
RLC
MOV 01H, C
RLC
MOV 02H, C
RLC
MOV 03H, C
MOV R1, 20H
CLR C
RET

LINEINC:
CJNE LINE, # 10H, CHK1
MOV, # 0C0H
ACALL COMNWRT

МКП LINE
CLR C
RET
CHK1: CJNE LINE, # 20H, CHK2
MOV A, # 01H; CLR дисплей при DISPL ПОЛНА
ACALL COMNWRT
MOV A, # 80H
ACALL COMNWRT

MOV LINE, # 00H
CLR C
RET
CHK2: INC LINE
CLR C
RET

LINEDEC:
CJNE LINE, # 10H, CHK3
MOV A, # 90H
ACALL COMNWRT

Декабрь LINE
CLR C
RET
CHK3: CJNE LINE, # 00H, CHK4
MOV, # 0D0H
ACALL COMNWRT

MOV LINE, # 20H
CLR C
RET
CHK4: DEC LINE
CLR C
RET

COMNWRT: ACALL ГОТОВ
MOV Р0,
CLR P3.3
CLR P3.2
SETB P3.4
CLR P3.4
RET

DATAWRT: ACALL ГОТОВ
MOV Р0,
SETB P3.3
CLR P3.2
SETB P3.4
CLR P3.4
RET

Готово: SETB P0.7
CLR P3.3
SETB P3.2
BACK2: CLR P3.4
SETB P3.4
JB P0.7, BACK2
RET

КОНЕЦ

 
Пустота петля () / / цикл здесь, если кнопка холдинга
(
для (;;) (
если (P2_0! = 0)
Перерыв / / остановить цикл, когда будет отпущена кнопка
)

для (;;) (
если (P2_1! = 0)
брейк;
)

для (;;) (
если (P2_2! = 0)
брейк;
)

для (;;) (
если (P2_3! = 0)
брейк;
)
)

Пустота scan_keyboard ()
(
While (1) (P2 = 239 / / 11101111 проверить column3

если (P2_0 == 0) (/ / # нажата
Отправить ( 'A');
Send ( 'T');
Send ( 'D');
Send ( '');
петля ();
)

если нажата (P2_1 == 0) (/ / 9
Отправить ('9 ');
LCD_RS = 1; LCD_RW = 0; P1 = 0x39; LCD_EN = 1; Delay (); LCD_EN = 0;
петля ();
)

если нажата (P2_2 == 0) (/ / 6
Отправить ('6 ');
LCD_RS = 1; LCD_RW = 0; P1 = 0x36; LCD_EN = 1; Delay (); LCD_EN = 0;
петля ();
)

если нажата (P2_3 == 0) (/ / 3
Отправить ('3 ');
LCD_RS = 1; LCD_RW = 0; P1 = 0x33; LCD_EN = 1; Delay (); LCD_EN = 0;
петля ();
)

P2 = 223 / / 11011111 проверить column2

если нажата (P2_0 == 0) (/ / 0
Отправить ('0 ');
LCD_RS = 1; LCD_RW = 0; P1 = 0x30; LCD_EN = 1; Delay (); LCD_EN = 0;
петля ();
)

если нажата (P2_1 == 0) (/ / 8
Отправить ('8 ');
LCD_RS = 1; LCD_RW = 0; P1 = 0x38; LCD_EN = 1; Delay (); LCD_EN = 0;
петля ();
)

если нажата (P2_2 == 0) (/ / 5
Отправить ('5 ');
LCD_RS = 1; LCD_RW = 0; P1 = 0x35; LCD_EN = 1; Delay (); LCD_EN = 0;
петля ();
)

если нажата (P2_3 == 0) (/ / 2
Отправить ('2 ');
LCD_RS = 1; LCD_RW = 0; P1 = 0x32; LCD_EN = 1; Delay (); LCD_EN = 0;
петля ();
)

P2 = 191 / / 10111111 проверить Column1

если (P2_0 == 0) (/ / * нажата
Отправить (0x0D); / / возврат каретки
петля ();
)

если нажата (P2_1 == 0) (/ / 7
Отправить ('7 ');
LCD_RS = 1; LCD_RW = 0; P1 = 0x37; LCD_EN = 1; Delay (); LCD_EN = 0;
петля ();
)

если нажата (P2_2 == 0) (/ / 4
Отправить ('4 ');
LCD_RS = 1; LCD_RW = 0; P1 = 0x34; LCD_EN = 1; Delay (); LCD_EN = 0;
петля ();
)

если нажата (P2_3 == 0) (/ / 1
Отправить ('1 ');
LCD_RS = 1; LCD_RW = 0; P1 = 0x31; LCD_EN = 1; Delay (); LCD_EN = 0;
петля ();
)
))

Кодекс клавиатура работу.И ЖК являются работа в Proteus тоже.
Но ЖК не имеет отображения в реальном продукте.Я не знаю почему

 

Welcome to EDABoard.com

Sponsor

Back
Top