?? pdiusbd12.lst
字號:
C51 COMPILER V7.06 PDIUSBD12 11/16/2008 16:00:31 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 16:00:31 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 16:00:31 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 + -