📄 pdiusbd12.lst
字号:
C51 COMPILER V7.06 PDIUSBD12 11/16/2008 15:59:43 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE PDIUSBD12
OBJECT MODULE PLACED IN PDIUSBD12.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE PDIUSBD12.c BROWSE DEBUG OBJECTEXTEND TABS(1)
stmt level source
1 /******************************************************************
2 本程序只供学习使用,未经作者许可,不得用于其它任何用途
3
4 欢迎访问我的USB专区:http://group.ednchina.com/93/
5 欢迎访问我的blog: http://www.ednchina.com/blog/computer00
6 http://computer00.21ic.org
7
8 感谢PCB赞助商——电子园: http://bbs.cepark.com/
9
10 PDIUSBD12.C file
11
12 作者:电脑圈圈
13 建立日期: 2008.06.27
14 修改日期: 2008.07.10
15 版本:V1.1
16 版权所有,盗版必究。
17 Copyright(C) 电脑圈圈 2008-2018
18 All rights reserved
19 *******************************************************************/
20
21 #include <AT89x52.H>
22 #include "MyType.h"
23 #include "PDIUSBD12.H"
24 #include "config.h"
25 #include "UART.h"
26
27 /********************************************************************
28 函数功能:D12写命令。
29 入口参数:Command:一字节命令。
30 返 回:无。
31 备 注:无。
32 ********************************************************************/
33 void D12WriteCommand(uint8 Command)
34 {
35 1 D12SetCommandAddr(); //设置为命令地址
36 1 D12ClrWr(); //WR置低
37 1 D12SetPortOut(); //将数据口设置为输出状态(注意这里为空宏,移植时可能有用)
38 1 D12SetData(Command); //输出命令到数据口上
39 1 D12SetWr(); //WR置高
40 1 D12SetPortIn(); //将数据口设置为输入状态,以备后面输入使用
41 1 }
42 ////////////////////////End of function//////////////////////////////
43
44 /********************************************************************
45 函数功能:读一字节D12数据。
46 入口参数:无。
47 返 回:读回的一字节。
48 备 注:无。
49 ********************************************************************/
50 uint8 D12ReadByte(void)
51 {
52 1 uint8 temp;
53 1 D12SetDataAddr(); //设置为数据地址
54 1 D12ClrRd(); //RD置低
55 1 temp=D12GetData(); //读回数据
C51 COMPILER V7.06 PDIUSBD12 11/16/2008 15:59:43 PAGE 2
56 1 D12SetRd(); //RD置高
57 1 return temp; //返回读到数据
58 1 }
59 ////////////////////////End of function//////////////////////////////
60
61 /********************************************************************
62 函数功能:读D12的ID。
63 入口参数:无。
64 返 回:D12的ID。
65 备 注:无。
66 ********************************************************************/
67 uint16 D12ReadID(void)
68 {
69 1 uint16 id;
70 1 D12WriteCommand(Read_ID); //写读ID命令
71 1 id=D12ReadByte(); //读回ID号低字节
72 1 id|=((uint16)D12ReadByte())<<8; //读回ID号高字节
73 1 return id;
74 1 }
75 ////////////////////////End of function//////////////////////////////
76
77 /********************************************************************
78 函数功能:写一字节D12数据。
79 入口参数:Value:要写的一字节数据。
80 返 回:无。
81 备 注:无。
82 ********************************************************************/
83 void D12WriteByte(uint8 Value)
84 {
85 1 D12SetDataAddr(); //设置为数据地址
86 1 D12ClrWr(); //WR置低
87 1 D12SetPortOut(); //将数据口设置为输出状态(注意这里为空宏,移植时可能有用)
88 1 D12SetData(Value); //写出数据
89 1 D12SetWr(); //WR置高
90 1 D12SetPortIn(); //将数据口设置为输入状态,以备后面输入使用
91 1 }
92 ////////////////////////End of function//////////////////////////////
93
94 /********************************************************************
95 函数功能:读取D12最后传输状态寄存器的函数。
96 入口参数:Endp:端点号。
97 返 回:端点的最后传输状态。
98 备 注:该操作将清除该端点的中断标志位。
99 ********************************************************************/
100 uint8 D12ReadEndpointLastStatus(uint8 Endp)
101 {
102 1 D12WriteCommand(0x40+Endp); //读取端点最后状态的命令
103 1 return D12ReadByte();
104 1 }
105 ////////////////////////End of function//////////////////////////////
106
107 /********************************************************************
108 函数功能:选择端点的函数,选择一个端点后才能对它进行数据操作。
109 入口参数:Endp:端点号。
110 返 回:无。
111 备 注:无。
112 ********************************************************************/
113 void D12SelectEndpoint(uint8 Endp)
114 {
115 1 D12WriteCommand(0x00+Endp); //选择端点的命令
116 1 }
117 ////////////////////////End of function//////////////////////////////
C51 COMPILER V7.06 PDIUSBD12 11/16/2008 15:59:43 PAGE 3
118
119 /********************************************************************
120 函数功能:清除接收端点缓冲区的函数。
121 入口参数:无。
122 返 回:无。
123 备 注:只有使用该函数清除端点缓冲后,该接收端点才能接收新的数据包。
124 ********************************************************************/
125 void D12ClearBuffer(void)
126 {
127 1 D12WriteCommand(D12_CLEAR_BUFFER);
128 1 }
129 ////////////////////////End of function//////////////////////////////
130
131 /********************************************************************
132 函数功能:应答建立包的函数。
133 入口参数:无。
134 返 回:无。
135 备 注:无。
136 ********************************************************************/
137 void D12AcknowledgeSetup(void)
138 {
139 1 D12SelectEndpoint(1); //选择端点0输入
140 1 D12WriteCommand(D12_ACKNOWLEDGE_SETUP); //发送应答设置到端点0输入
141 1 D12SelectEndpoint(0); //选择端点0输出
142 1 D12WriteCommand(D12_ACKNOWLEDGE_SETUP); //发送应答设置到端点0输出
143 1 }
144 ////////////////////////End of function//////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -