امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
اتصال کیبورد کامپیوتر به AVR تحت برنامه Bascom
نویسنده پیام
simasari آفلاین
تازه وارد

ارسال‌ها: 1
موضوع‌ها: 0
تاریخ عضویت: اردیبهشت ۱۳۹۱

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #23
RE: اتصال کیبورد کامپیوتر به AVR تحت برنامه Bascom
با سلام
من یک برنامه اتصال کیبورد کامپیوتر با میکرو atmega16 دارم که به یکی از پورت های میکرو ال سی دی 16*2 وصل است و هرچی در کیبورد تایپ می کنیم در ال سی دی نشون بده. در واقع یک برنامه تست کیبورد است

مشکل اینجاست که اصلاً چراغ ال سی دی روشن نمیشه. ممکنه کمک کنید؟
سورس برنامه و شماتیک رو همینجا واستون گذاشتم تا بررسی کنید.

[تصویر:  lightbox_progress.gif]

کد php:
#include <mega16.h> 
#include <stdio.h> 
#include <delay.h> 
#include <stdlib.h> 
#include <string.h>
#include <lcd.h> 
#asm 
 
.equ __lcd_port=0x18PORTB 
#endasm 

bit h2=0,y=0;
unsigned int count=0
unsigned char a,x,h1=0,out=0,bitcount=11,data
unsigned char str[20]; 
char str2[20]; 

flash unsigned char s0[]="ESC",s1[]="F1",s2[]="F2",s3[]="F3",s4[]="F4"
flash unsigned char s5[]="F5",s6[]="F6",s7[]="F7",s8[]="F8",s9[]="F9"
flash unsigned char s10[]="F10",s11[]="F11",s12[]="F12",s13[]="~",s14[]="!"
flash unsigned char s15[]="@",s16[]="#",s17[]="$",s18[]="%",s19[]="^"
flash unsigned char s20[]="&",s21[]="*",s22[]="(",s23[]=")",s24[]="_"
flash unsigned char s25[]="+",s26[]="/",s27[]=" ",s28[]="Q",s29[]="W"
flash unsigned char s30[]="E",s31[]="R",s32[]="T",s33[]="Y",s34[]="U"
flash unsigned char s35[]="I",s36[]="O",s37[]="P",s38[]="{",s39[]="}"
flash unsigned char s40[]="A",s41[]="S",s42[]="D",s43[]="F",s44[]="G"
flash unsigned char s45[]="H",s46[]="J",s47[]="K",s48[]="L",s49[]=";"
flash unsigned char s50[]="'",s51[]=" ",s52[]="SHIFT",s53[]="Z",s54[]="X"
flash unsigned char s55[]="C",s56[]="V",s57[]="B",s58[]="N",s59[]="M"
flash unsigned char s60[]="<",s61[]=">",s62[]="?",s63[]="shift",s64[]="ctrl"
flash unsigned char s65[]="Win",s66[]="Alt",s67[]=" ",s68[]="Win",s69[]="0"
flash unsigned char s70[]=".",s71[]="1",s72[]="2",s73[]="3",s74[]="4"
flash unsigned char s75[]="5",s76[]="6",s77[]="7",s78[]="8",s79[]="9"
flash unsigned char s80[]="+",s81[]="-",s82[]="*"


interrupt [EXT_INT0void ext_int0_isr(void){ 
count++; 
if (
h2==0

if(
bitcount 11 && bitcount 2

data=(data >> 1); 
if(
PIND.7==1)data=(data|0b10000000); 

MCUCR=3
h2=1


if(
h2==1){ 
MCUCR=2
h2=0
if(--
bitcount==0

out=data
bitcount=11





void key(unsigned char in){ 
switch (
in

case 
0x76
strcatf(str,s0); 
break; 
case 
0x05
strcatf(str,s1); 
break; 
case 
0x06
strcatf(str,s2); 
break; 
case 
0x04
strcatf(str,s3); 
break; 
case 
0x0c
strcatf(str,s4); 
break; 


case 
0x03
strcatf(str,s5); 
break; 
case 
0x0b
strcatf(str,s6); 
break; 
case 
0x83
strcatf(str,s7); 
break; 
case 
0x0a
strcatf(str,s8); 
break; 
case 
0x01
strcatf(str,s9); 
break; 
case 
0x09
strcatf(str,s10); 
break; 
case 
0x78
strcatf(str,s11); 
break; 
case 
0x07
strcatf(str,s12); 
break; 
case 
0x0e
strcatf(str,s13); 
break; 
case 
0x16
strcatf(str,s14); 
break; 
case 
0x1e
strcatf(str,s15); 
break; 
case 
0x26

strcatf(str,s16); 
break; 
case 
0x25
strcatf(str,s17); 
break; 
case 
0x2e
strcatf(str,s18); 
break; 
case 
0x36
strcatf(str,s19); 
break; 
case 
0x3d
strcatf(str,s20); 
break; 
case 
0x3e
strcatf(str,s21); 
break; 
case 
0x46
strcatf(str,s22); 
break; 
case 
0x45
strcatf(str,s23); 
break; 
case 
0x4e
strcatf(str,s24); 
break; 
case 
0x55
strcatf(str,s25); 
break; 
case 
0x5d
strcatf(str,s26); 
break; 
case 
0x0d
lcd_clear(); 


strcpy(str,str2); 
break; 
case 
0x15
strcatf(str,s28); 
break; 
case 
0x1d
strcatf(str,s29); 
break; 
case 
0x24
strcatf(str,s30); 
break; 
case 
0x2d
strcatf(str,s31); 
break; 
case 
0x2c
strcatf(str,s32); 
break; 
case 
0x35
strcatf(str,s33); 
break; 
case 
0x3c
strcatf(str,s34); 
break; 
case 
0x43
strcatf(str,s35); 
break; 
case 
0x44
strcatf(str,s36); 
break; 
case 
0x4d
strcatf(str,s37); 
break; 
case 
0x54
strcatf(str,s38); 
break; 
case 
0x5b
strcatf(str,s39); 
break; 
case 
0x1c
strcatf(str,s40); 
break; 
case 
0x1b
strcatf(str,s41); 
break; 
case 
0x23
strcatf(str,s42); 
break; 
case 
0x2b
strcatf(str,s43); 
break; 
case 
0x34
strcatf(str,s44); 
break; 
case 
0x33
strcatf(str,s45); 
break; 
case 
0x3b
strcatf(str,s46); 
break; 
case 
0x42
strcatf(str,s47); 
break; 
case 
0x4b
strcatf(str,s48); 
break; 
case 
0x4c
strcatf(str,s49); 
break; 

case 
0x52
strcatf(str,s50); 
break; 
case 
0x5a
y=~y
strcpy(str,str2); 
break; 
case 
0x12
x--; 
break; 
case 
0x1a
strcatf(str,s53); 
break; 
case 
0x22
strcatf(str,s54); 
break; 
case 
0x21
strcatf(str,s55); 
break; 
case 
0x2a
strcatf(str,s56); 
break; 
case 
0x32
strcatf(str,s57); 
break; 
case 
0x31
strcatf(str,s58); 
break; 
case 
0x3a
strcatf(str,s59); 
break; 
case 
0x41
strcatf(str,s60); 
break; 

case 
0x49
strcatf(str,s61); 
break; 
case 
0x4a
strcatf(str,s62); 
break; 
case 
0x59
x++; 
break; 
case 
0x14
strcatf(str,s64); 
break; 
case 
0x27
strcatf(str,s65); 
break; 
case 
0x11
strcatf(str,s66); 
break; 
case 
0x29
strcatf(str,s67); 
break; 
case 
0x1f
strcatf(str,s68); 
break; 
case 
0x70
strcatf(str,s69); 
break; 
case 
0x71
strcatf(str,s70); 
break; 
case 
0x69
strcatf(str,s71); 
break; 
case 
0x72

strcatf(str,s72); 
break; 
case 
0x7a
strcatf(str,s73); 
break; 
case 
0x6b
strcatf(str,s74); 
break; 
case 
0x73
strcatf(str,s75); 
break; 
case 
0x74
strcatf(str,s76); 
break; 
case 
0x6c
strcatf(str,s77); 
break; 
case 
0x75
strcatf(str,s78); 
break; 
case 
0x7d
strcatf(str,s79); 
break; 
case 
0x79
strcatf(str,s80); 
break; 
case 
0x7b
strcatf(str,s81); 
break; 
case 
0x7c
strcatf(str,s82); 
break; 
case 
0x66
a=strlen(str); 
str[a-1]=0
break; 

if(
out!=0)h1++; 
out=0



void main(void
{

GICR|=0x40
MCUCR=0x02
MCUCSR=0x00
GIFR=0x40
ACSR=0x80

DDRD.7=0
lcd_init(16); 
#asm("sei") 
while(1

key(out); 
lcd_clear(); 
delay_ms(10);
lcd_gotoxy(x,y); 
delay_ms(10);
lcd_puts(str); 
delay_ms(500); 
};} 
(آخرین ویرایش در این ارسال: ۳۱-اردیبهشت-۱۳۹۱, ۱۶:۵۰:۴۳، توسط sharin.)
۲۸-اردیبهشت-۱۳۹۱, ۱۵:۰۴:۲۵
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  معرفی یک سنسور جریان برای اتصال به میکرو ؟ mega16 6 1,738 ۲۷-اردیبهشت-۱۳۹۹, ۱۷:۳۸:۳۲
آخرین ارسال: Ambassador
  اتصال سنسور lm35 در فاصله 12 متری به میکرو ؟ mega16 3 1,643 ۲۷-بهمن-۱۳۹۸, ۱۸:۴۳:۲۸
آخرین ارسال: aKaReZa75
Question اتصال کامپیوتر به میکرو با بلوتوث surena3 0 2,563 ۱۷-فروردین-۱۳۹۶, ۱۲:۲۶:۲۶
آخرین ارسال: surena3
Question [فوری] اتصال lcd گرافیکی به پایه های دلخواه میکرو در بسکام behzadsen 4 4,337 ۰۵-دى-۱۳۹۵, ۱۵:۲۵:۳۰
آخرین ارسال: behzadsen
Exclamation اتصال به روتر enc28j60 HamidSay 11 7,714 ۲۹-آذر-۱۳۹۵, ۲۲:۲۳:۵۵
آخرین ارسال: HamidSay
  سوال در مورد اتصال حافظه eeprom جانبی به میکرو SBRE77 9 10,467 ۰۷-مهر-۱۳۹۵, ۲۳:۳۱:۲۹
آخرین ارسال: omidrn
  سوالهای برنامه نویسی با کامپایلر BASCOM EBKA 242 157,509 ۱۸-خرداد-۱۳۹۵, ۲۰:۱۸:۲۴
آخرین ارسال: hassan721
  [فوری] اتصال دوربین گوشی به AVR و نمایش بر روی ال سی دی n96 MN-123 9 7,186 ۱۸-اردیبهشت-۱۳۹۵, ۲۲:۵۹:۴۴
آخرین ارسال: MN-123
  BASCOM-AVR V2.0.5.0 + Patch p3rtic@n 2 5,472 ۰۵-شهریور-۱۳۹۴, ۱۵:۴۵:۰۱
آخرین ارسال: ehsan2774
Sad [سوال] اتصال کامپیوتر به میکرو از طریق پورت سریال Monje 11 11,438 ۱۱-خرداد-۱۳۹۴, ۱۶:۲۷:۰۷
آخرین ارسال: alira725

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS