📄 lesson11.lst
字号:
1: #include<pic.h>
2: #define uchar unsigned char
3: #define uint unsigned int
4: #define cs RC2
5: #define dout RC4
6: #define nop() asm("nop")
7: __CONFIG(0x3B31);
8: const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
9: 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
10: uchar data_temp;
11: void delay(uint x);
12: void init();
13: void didi(uchar num);
14: void disp(uchar num1,uchar num2,uchar num3,uchar num4,uchar num5,uchar num6);
15: void comm(uchar data);
16: uchar read(uchar add);
17: void write(uchar add,uchar wdata);
18: void write_enable();
19: void main()
20: {
21: uchar a1,a2,a3,a4,a5,a6,i;
22: init();
23: // write_enable();
24: // for(i=6;i>0;i--)
25: // {
26: // write_enable();
27: // write(i,i);
28: // }
29: a1=read(1);
30: a2=read(2);
31: a3=read(3);
32: a4=read(4);
33: a5=read(5);
34: a6=read(6);
35: while(1)
36: {
37: disp(a1,a2,a3,a4,a5,a6);
38: }
39: }
40: void delay(uint x)
41: {
42: uint a,b;
43: for(a=x;a>0;a--)
44: for(b=110;b>0;b--);
45: }
46: void init()
47: {
48: TRISD=0;
49: TRISA=0;
50: TRISC=0x10;//00010000
51: TRISE0=0;
52: SSPSTAT=0x80;
53: SSPCON=0x32;
54: cs=0;
55: }
56:
57: void write_enable()
58: {
59: cs=1;
60: nop();
61: comm(0x02);
62: comm(0x60);
63: cs=0; nop(); nop();
64: }
65:
66: void write(uchar add,uchar wdata)
67: {
68: cs=1;
69: nop();
70: comm(0x02);
71: comm(add|0x80);
72: comm(wdata);
73: cs=0;
74: nop(); nop();
75: cs=1; nop(); nop();
76: while(!dout);
77: cs=0; nop(); nop();
78: // PORTD = 0Xff;
79: // PORTA = 0Xff;
80: }
81:
82: uchar read(uchar add)
83: {
84: uchar rtemp;
85: cs=1;
86: nop();
87: comm(0x03);
88: comm(add);
89: comm(0);
90: cs=0;
91: rtemp=data_temp;
92: return (rtemp);
93: }
94: void comm(uchar data)
95: {
96: SSPBUF=data;
97: while(!SSPIF);
98: SSPIF=0;
99: data_temp=SSPBUF;
100: }
101:
102: void didi(uchar num)
103: {
104: uchar di_num;
105: for(di_num=num;di_num>0;di_num--)
106: {
107: RE0=1;
108: delay(50);
109: RE0=0;
110: delay(20);
111: }
112: }
113:
114: void disp(uchar num1,uchar num2,uchar num3,uchar num4,uchar num5,uchar num6)
115: {
116: PORTD=table[num1];//显示第一个数码管
117: PORTA=0x20;//0010 0000
118: delay(2);
119: PORTD=table[num2];//显示第二个数码管
120: PORTA=0x10;//0001 0000
121: delay(2);
122: PORTD=table[num3];//显示第三个数码管
123: PORTA=0x08;//0000 1000
124: delay(2);
125: PORTD=table[num4];//显示第四个数码管
126: PORTA=0x04;//0000 0100
127: delay(2);
128: PORTD=table[num5];//显示第五个数码管
129: PORTA=0x02;//0000 0010
130: delay(2);
131: PORTD=table[num6];//显示第六个数码管
132: PORTA=0x01;//0000 0001
133: delay(2);
134: }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -