📄 reg932_isp.lst
字号:
C51 COMPILER V7.07 REG932_ISP 11/19/2005 17:01:25 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE REG932_ISP
OBJECT MODULE PLACED IN REG932_ISP.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE REG932_ISP.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "include/REG932_ISP.H"
2 #define uchar unsigned char //宏
3 #define uint unsigned int
4
5 void (*Excute_ISP)(); //定义ISP函数指针
6 void ISP_932(void); //932-ISP引导程序
7 void DSP_ISP(void); //932-ISP引导动画
8 void wait750ms_ISP(void); //750ms延时程序
9 void CLS_ISP(void); //清空显示
10 void display_ISP(uchar k_ISP); //第1/2行显示程序
11 void send_byte_ISP(uchar buf_ISP,r_ISP); //串行1/2发送1字节
12 void CLRWDTEXP_ISP(void); //喂狗程序
13
14 sbit PIN_ISP =P2^7; //ISP跳线设置引脚
15 sbit clk1_ISP=P1^6; //模拟串行I/O引脚
16 sbit dat1_ISP=P1^7;
17 sbit clk2_ISP=P2^6;
18 sbit dat2_ISP=P2^7;
19 uchar DIS_ISP[8]; //显示缓冲区
20
21 //===================================================================
22 void ISP_932(void) //932-ISP引导程序
23 { uchar i_ISP;
24 1 P1M1=0x00;
25 1 P1M2=0x00; //设置P1口为准双向
26 1 P2M1=0x00;
27 1 P2M2=0x00; //设置P2口为准双向
28 1 Excute_ISP=0x1E00; //ISP代码指针为0x1F00
29 1 CLRWDTEXP_ISP();
30 1 CLS_ISP(); //清空显示
31 1 if(PIN_ISP==0) //跳线设置为ISP方式?
32 1 {for(i_ISP=0;i_ISP<250;i_ISP++) ; //短延时
33 2 if(PIN_ISP==0) //跳线设置为ISP方式?
34 2 {
35 3 DSP_ISP(); //932-ISP引导动画
36 3 Excute_ISP(); //调用ISP程序
37 3 }
38 2 }
39 1 }
40 //--------------------------------------------------------------------
41 void DSP_ISP(void) //932-ISP引导动画
42 { //uchar j_ISP;
43 1 CLRWDTEXP_ISP();
44 1 DIS_ISP[0]=0x14;
45 1 DIS_ISP[1]=0x67;
46 1 DIS_ISP[2]=0xF1;
47 1 DIS_ISP[3]=0x00;
48 1 DIS_ISP[4]=0x00;
49 1 DIS_ISP[5]=0x00;
50 1 DIS_ISP[6]=0x14;
51 1 DIS_ISP[7]=0xF4;
52 1 SS=1;
53 1 SPICLK=1;
54 1 display_ISP(1); //显示字符ISP IN
55 1 wait750ms_ISP(); //保持
C51 COMPILER V7.07 REG932_ISP 11/19/2005 17:01:25 PAGE 2
56 1 DIS_ISP[3]=0x02;
57 1 display_ISP(1); //显示字符ISP- IN
58 1 wait750ms_ISP(); //保持
59 1 DIS_ISP[4]=0x40;
60 1 display_ISP(1); //显示字符ISP-- IN
61 1 wait750ms_ISP(); //保持
62 1 DIS_ISP[5]=0x02;
63 1 display_ISP(1); //显示字符ISP---IN
64 1 wait750ms_ISP(); //保持
65 1 }
66 //--------------------------------------------------------------------
67 void wait750ms_ISP(void) //750ms延时程序
68 { uchar i_ISP,j_ISP;
69 1 for(i_ISP=0;i_ISP<255;i_ISP++)
70 1 {for(j_ISP=0;j_ISP<255;j_ISP++)
71 2 {CLRWDTEXP_ISP();}
72 2 }
73 1 }
74 //--------------------------------------------------------------------
75 void CLRWDTEXP_ISP(void) //喂狗程序
76 { bit eacopy;
77 1 eacopy=EA;
78 1 EA=0;
79 1 WFEED1=0xA5;
80 1 WFEED2=0x5A;
81 1 EA=eacopy;
82 1 }
83 //--------------------------------------------------------------------
84 void CLS_ISP(void) //清空显示
85 { uchar i_ISP;
86 1 for(i_ISP=0;i_ISP<8;i_ISP++)
87 1 {DIS_ISP[i_ISP]=0;}
88 1 SS=1;
89 1 SPICLK=1;
90 1 display_ISP(1);
91 1 display_ISP(2);
92 1 display_ISP(1);
93 1 display_ISP(2);
94 1 }
95 //--------------------------------------------------------------------
96 void display_ISP(uchar k_ISP) //第1/2行显示程序
97 {uchar i_ISP;
98 1 CLRWDTEXP_ISP();
99 1 for(i_ISP=0;i_ISP<8;i_ISP++) //送给8个LED显示
100 1 {send_byte_ISP(~DIS_ISP[i_ISP],k_ISP);}
101 1 }
102 //--------------------------------------------------------------------
103 void send_byte_ISP(uchar buf_ISP,r_ISP) //向模拟串口发送一字节
104 {
105 1 uchar i_ISP,j_ISP;
106 1 if(r_ISP==1)
107 1 { for(i_ISP=0;i_ISP<8;i_ISP++) //移位8次输出buf_ISP
108 2 {
109 3 if(buf_ISP&0x01==0x01) //d.0位为1?
110 3 {dat1_ISP=1;} //dat1输出1
111 3 else
112 3 {dat1_ISP=0;} //dat1输出0
113 3 clk1_ISP=1; //发移位脉冲
114 3 for(j_ISP=0;j_ISP<5;j_ISP++) ; //短延时
115 3 clk1_ISP=0; //撤消移位脉冲
116 3 buf_ISP=buf_ISP>>1; //字型码逐位移出
117 3 }
C51 COMPILER V7.07 REG932_ISP 11/19/2005 17:01:25 PAGE 3
118 2 }
119 1 if(r_ISP==2)
120 1 { for(i_ISP=0;i_ISP<8;i_ISP++) //移位8次输出buf_ISP
121 2 {
122 3 if(buf_ISP&0x01==0x01) //d.0位为1?
123 3 {dat2_ISP=1;} //dat2输出1
124 3 else
125 3 {dat2_ISP=0;} //dat2输出0
126 3 clk2_ISP=1; //发移位脉冲
127 3 for(j_ISP=0;j_ISP<5;j_ISP++) ; //短延时
128 3 clk2_ISP=0; //撤消移位脉冲
129 3 buf_ISP=buf_ISP>>1; //字型码逐位移出
130 3 }
131 2 }
132 1 }
133 //--------------------------------------------------------------------
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 292 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 11 4
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -