?? lesson12.lst
字號:
1: #include<pic.h>
2: #define uchar unsigned char
3: #define uint unsigned int
4: #define add 0xaa
5: __CONFIG(0x3B31);
6: const uchar ee_data[]={1,2,3,4,5,6};
7: uchar read_data[6];
8: const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
9: 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
10: void delay(uint x);
11: void init();
12: void didi(uchar num);
13: void disp(uchar num1,uchar num2,uchar num3,uchar num4,uchar num5,uchar num6);
14: void write();
15: void read();
16: void main()
17: {
18: init();
19: write();
20: delay(100);
21: read();
22: while(1)
23: {
24: disp(read_data[0],read_data[1],read_data[2],read_data[3],read_data[4],read_data[5]);
25: }
26: }
27: void delay(uint x)
28: {
29: uint a,b;
30: for(a=x;a>0;a--)
31: for(b=110;b>0;b--);
32: }
33: void init()
34: {
35: TRISD=0;
36: TRISA=0;
37: TRISE0=0;
38: // ADCON1=0x07;
39: RE0=0;
40: PORTD=0;
41: PORTA=0;
42: TRISC=0xff;
43: SSPSTAT=0x80;
44: SSPCON=0x38;
45: SSPCON2=0;
46: SSPADD=0x09;
47: }
48: void write()
49: {
50: uchar i;
51: SSPIF=0;
52: SEN=1;
53: while(!SSPIF);
54: SSPIF=0;
55: SSPBUF=0xA0;
56: while(!SSPIF);
57: SSPIF=0;
58: SSPBUF=add;
59: while(!SSPIF);
60: SSPIF=0;
61: for(i=0;i<6;i++)
62: {
63: SSPBUF=ee_data[i];
64: while(!SSPIF);
65: SSPIF=0;
66: }
67: PEN=1;
68: while(!SSPIF);
69: SSPIF=0;
70: }
71: void read()
72: {
73: uchar i;
74: SSPIF=0;
75: SEN=1;
76: while(!SSPIF);
77: SSPIF=0;
78: SSPBUF=0xA0;
79: while(!SSPIF);
80: SSPIF=0;
81: SSPBUF=add;
82: while(!SSPIF);
83: SSPIF=0;
84: SSPIF=0;
85: RSEN=1;
86: while(!SSPIF);
87: SSPIF=0;
88: SSPBUF=0xA1;
89: while(!SSPIF);
90: SSPIF=0;
91: for(i=0;i<6;i++)
92: {
93: RCEN=1;
94: while(!SSPIF);
95: read_data[i]=SSPBUF;
96: while(!SSPIF);
97: SSPIF=0;
98: if(i>=5)
99: {
100: ACKDT=1;
101: }
102: else
103: {
104: ACKDT=0;
105: }
106: ACKEN=1;
107: while(!SSPIF);
108: SSPIF=0;
109: }
110: PEN=1;
111: while(!SSPIF);
112: SSPIF=0;
113: }
114: void didi(uchar num)
115: {
116: uchar di_num;
117: for(di_num=num;di_num>0;di_num--)
118: {
119: RE0=1;
120: delay(50);
121: RE0=0;
122: delay(20);
123: }
124: }
125:
126: void disp(uchar num1,uchar num2,uchar num3,uchar num4,uchar num5,uchar num6)
127: {
128: PORTD=table[num1];//顯示第一個數碼管
129: PORTA=0x20;//0010 0000
130: delay(2);
131: PORTD=table[num2];//顯示第二個數碼管
132: PORTA=0x10;//0001 0000
133: delay(2);
134: PORTD=table[num3];//顯示第三個數碼管
135: PORTA=0x08;//0000 1000
136: delay(2);
137: PORTD=table[num4];//顯示第四個數碼管
138: PORTA=0x04;//0000 0100
139: delay(2);
140: PORTD=table[num5];//顯示第五個數碼管
141: PORTA=0x02;//0000 0010
142: delay(2);
143: PORTD=table[num6];//顯示第六個數碼管
144: PORTA=0x01;//0000 0001
145: delay(2);
146: }
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -