Zar atma

Devre bağlantı şeması:


zar atma uygulaması


Pic Basic Pro kodları:


TRISB=0 TRISD=%00001111 '------------------------------------------------- '@ DEVICE pic16F877 '@ DEVICE pic16F877, WDT_on '@ DEVICE pic16F877, PWRT_ON '@ DEVICE pic16F877, PROTECT_OFF '@ DEVICE pic16F877, XT_OSC '------------------------------------------------- '----------LCD DEFINE komutları----------- DEFINE LCD_DREG PORTB 'data bacakları hangi Porta bağlı? DEFINE LCD_DBIT 4 'data bacakları hangi bitten başlıyor? DEFINE LCD_EREG PORTB 'Enable Bacağı Hangi Porta bağlı? DEFINE LCD_EBIT 3 'Enable Bacağı Hangi bite bağlı? DEFINE LCD RWREG PORTB 'R/W Bacağı Hangi Porta bağlı? DEFINE LCD_RWBIT 2 'R/W Bacağı Hangi bite bağlı? DEFINE LCD_RSREG PORTB 'RS Bacağı Hangi Porta bağlı? DEFINE LCD_RSBIT 1 'RS bacağı Hangi Bite bağlı? DEFINE LCD_BITS 4 '4 bit mi yoksa 8 bit olarak bağlı? DEFINE LCD_LINES 2 'Kaç sıra yazabiliyor? LOW PORTB.2 'değişken tanımlamaları-------------------------------- rastgele VAR WORD L VAR BYTE K VAR BYTE tus VAR BYTE LCDOUT $FE,1 PAUSE 200 site_adi: 'site ismi LCDOUT $FE,1,"elektrikdersimiz" LCDOUT $FE,$C0,".org" PAUSE 500 BAS: 'hangi tuşa basılacağını belirtme LCDOUT $FE,1,"zar atmak icin" LCDOUT $FE,$C0,"# TUSUNA BAS" PAUSE 1 tara: '# tuşuna basılıp basılmadığını kontrol etme PORTD=%10000000 IF PORTD.2 THEN tus=13 IF tus<>13 THEN tekrar: 'rastgele sayı üreterek üretilen sayının 1. ve 2. 'rakamlarını K ve L değişkenlerine atama RANDOM rastgele K=rastgele DIG 1 L=rastgele DIG 2 IF K<1 b="">OR L<1 b="">THEN TEKRAR IF K>6 OR L>6 THEN TEKRAR PAUSE 1 IF tus=13 THEN devam GOTO tara ENDIF devam: 'sayıların yazı karşılıklarına yönlendirilmesi IF K=1 AND L=1 THEN HEP_YEK IF K=1 AND L=2 THEN DU_YEK IF K=1 AND L=3 THEN SE_YEK IF K=1 AND L=4 THEN CAR_YEK IF K=1 AND L=5 THEN PENC_YEK IF K=1 AND L=6 THEN SES_YEK IF K=2 AND L=1 THEN DU_YEK IF K=2 AND L=2 THEN DU_BARA IF K=2 AND L=3 THEN SE_DU IF K=2 AND L=4 THEN CAR_DU IF K=2 AND L=5 THEN PENC_DU IF K=2 AND L=6 THEN SES_DU IF K=3 AND L=1 THEN SE_YEK IF K=3 AND L=2 THEN SE_DU IF K=3 AND L=3 THEN SE_SE IF K=3 AND L=4 THEN CAR_SE IF K=3 AND L=5 THEN PENC_SE IF K=4 AND L=1 THEN CAR_YEK IF K=4 AND L=2 THEN CAR_DU IF K=4 AND L=3 THEN CAR_SE IF K=4 AND L=4 THEN DORTCAR IF K=4 AND L=5 THEN PENC_CAR IF K=4 AND L=6 THEN SES_CAR IF K=5 AND L=1 THEN PENC_YEK IF K=5 AND L=2 THEN PENC_DU IF K=5 AND L=3 THEN PENC_SE IF K=5 AND L=4 THEN PENC_CAR IF K=5 AND L=5 THEN DUBES IF K=5 AND L=6 THEN SES_BES IF K=6 AND L=1 THEN SES_YEK IF K=6 AND L=2 THEN SES_DU IF K=6 AND L=3 THEN SES_SE IF K=6 AND L=4 THEN SES_CAR IF K=6 AND L=5 THEN SES_BES IF K=6 AND L=6 THEN DUSES 'sayıların yazı karşılıklarının LCD de gösterilmesi HEP_YEK: LCDOUT $FE,1,"HEP YEK" GOTO donus DU_YEK: LCDOUT $FE,1,"DU YEK" GOTO donus SE_YEK: LCDOUT $FE,1,"SE YEK" GOTO donus CAR_YEK: LCDOUT $FE,1,"CAR YEK" GOTO donus PENC_YEK: LCDOUT $FE,1,"PENC YEK" GOTO donus SES_YEK: LCDOUT $FE,1,"SES YEK" GOTO donus DU_BARA: LCDOUT $FE,1,"DU BARA" GOTO donus SE_DU: LCDOUT $FE,1,"SE DU" GOTO donus CAR_DU: LCDOUT $FE,1,"CAR DU" GOTO donus PENC_DU: LCDOUT $FE,1,"PENC DU" GOTO donus SES_DU: LCDOUT $FE,1,"SES DU" GOTO donus SE_SE: LCDOUT $FE,1,"DUSSE " GOTO donus CAR_SE: LCDOUT $FE,1,"CAR SE" GOTO donus PENC_SE: LCDOUT $FE,1,"PENC SE" GOTO donus SES_SE: LCDOUT $FE,1,"SES SE" GOTO donus DORTCAR: LCDOUT $FE,1,"DORTCAR" GOTO donus PENC_CAR: LCDOUT $FE,1,"PENC CAR" GOTO donus SES_CAR: LCDOUT $FE,1,"SES CAR" GOTO donus DUBES: LCDOUT $FE,1,"DUBES" GOTO donus SES_BES: LCDOUT $FE,1,"SES BES" GOTO donus DUSES: LCDOUT $FE,1,"DUSES" GOTO donus donus: 'zar sayı değerlerinin LCD de gösterilmesi LCDOUT $FE,$C0,#L," - " LCDOUT $FE,$C4,#K PAUSE 30 tus=0 GOTO tara

Dosyaları indirmek için tıklayınız...



Yorum Gönder

0 Yorumlar