このファイル: /home/web6047/www/cgi-bin/prj/20190901-DRAMを理解してプログラミングに強くなろう/20191021-8bitPIC24H.X/newmain - snapshot 20191027.c
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <libpic30.h>
4
#include <p24HJ32GP202.h>
5
6
7
8
_FBS( BSS_NO_BOOT_CODE & BWRP_WRPROTECT_OFF )
9
_FGS( GSS_OFF & GWRP_OFF )
10
_FOSCSEL( IESO_ON & FNOSC_FRC )
11
_FOSC( FCKSM_CSDCMD & IOL1WAY_OFF & OSCIOFNC_ON & POSCMD_EC )
12
_FWDT( FWDTEN_OFF & WINDIS_OFF & WDTPRE_PR32 & WDTPOST_PS1 )
13
_FPOR( ALTI2C_OFF & FPWRT_PWR32 )
14
_FICD( JTAGEN_OFF & ICS_PGD1 )
15
16
17
18
19
void delay( unsigned long int num ) {
20
unsigned long int i;
21
for( i = 0; i < num; i++ );
22
}
23
24
25
void tell( int num ) {
26
int i;
27
delay( 50000 );
28
for( i = 0; i < num; i++ ) {
29
LATBbits.LATB6 = 1;
30
delay( 100000 );
31
LATBbits.LATB6 = 0;
32
delay( 100000 );
33
}
34
delay( 50000 );
35
}
36
37
38
void space() {
39
delay( 50000 );
40
LATBbits.LATB6 = 1;
41
delay( 400000 );
42
LATBbits.LATB6 = 0;
43
delay( 50000 );
44
}
45
46
int main(int argc, char** argv) {
47
unsigned long int i;
48
int r;
49
50
51
52
53
AD1PCFGL = 0b0001111000111111;
54
55
56
TRISA = 0b11111;
57
58
TRISB = 0b0000000000000000;
59
60
61
62
ジョウホウ 123(dec) カキコミ
63
LATBbits.LATB8 = 1;
64
LATBbits.LATB9 = 1; セツメイノピンシュツリョクSET★★★
65
LATBbits.LATB10 = 0;
66
LATBbits.LATB11 = 1; セツメイノピンシュツリョクSET★★★
67
68
LATBbits.LATB12 = 1;
69
LATBbits.LATB13 = 1; セツメイノピンシュツリョクSET★★★
70
LATBbits.LATB14 = 1;
71
LATBbits.LATB15 = 0; セツメイノピンシュツリョクSET★★★
72
73
LATBbits.LATB2 = 1;
74
delay( 30000 ); カキコミ
75
LATBbits.LATB2 = 0;
76
77
ジョウホウ ヲ ヨム
78
TRISBbits.TRISB8 = 1;
79
TRISBbits.TRISB9 = 1; セツメイノピンニュウリョクSET
80
TRISBbits.TRISB10 = 1;
81
TRISBbits.TRISB11 = 1; セツメイノピンニュウリョクSET
82
83
TRISBbits.TRISB12 = 1;
84
TRISBbits.TRISB13 = 1; セツメイノピンニュウリョクSET
85
TRISBbits.TRISB14 = 1;
86
TRISBbits.TRISB15 = 1; セツメイノピンニュウリョクSET
87
88
LATBbits.LATB2 = 1;
89
90
r = 0;
91
r = r + PORTBbits.RB8; セツメイノピンウケトリ
92
r = r + PORTBbits.RB9 * 2;
93
r = r + PORTBbits.RB10 * 4; セツメイノピンウケトリ
94
r = r + PORTBbits.RB11 * 8;
95
r = r + PORTBbits.RB12 * 16; セツメイノピンウケトリ
96
r = r + PORTBbits.RB13 * 32;
97
r = r + PORTBbits.RB14 * 64; セツメイノピンウケトリ
98
r = r + PORTBbits.RB15 * 128;
99
100
LATBbits.LATB2 = 0; セツメイノピンAトンジスタオフ
101
102
103
104
105
int keta1 = r % 10;
106
int keta10 = ( r % 100 ) / 10;
107
int keta100 = r / 100;
108
109
tell( keta100 );
110
space();
111
tell( keta10 );
112
space();
113
tell( keta1 );
114
115
116
117
118
119
120
121
122
while( 1 ) {
123
124
if( PORTAbits.RA4 == 1 ) {
125
LATBbits.LATB6 = 1;
126
} else {
127
LATBbits.LATB6 = 0;
128
}
129
}
130
131
return (EXIT_SUCCESS);
132
}