📄 74hc595-165.lst
字号:
C51 COMPILER V7.10 74HC595_165 10/20/2008 22:28:46 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE 74HC595_165
OBJECT MODULE PLACED IN 74hc595-165.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE 74hc595-165.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2 /*************************此部分为74HC595的驱动程序使用SPI总线连接*************************************/
3
4 #include<reg52.h>
5 #include <intrins.h>
6 #include <Function.h>
7
8 #define NOP() _nop_() /* 定义空指令 */
9 #define _Nop() _nop_() /*定义空指令*/
10
11
12 //SPI IO
13 sbit MOSIO =P1^5;
14 sbit R_CLK =P1^6;
15 sbit S_CLK =P1^7;
16 sbit IN_PL =P3^4; //74HC165 shift load 把数据加载到锁存器中
17 sbit IN_Dat=P3^5; //74HC165 output 数据移出
18 sbit OE =P3^6;
19
20
21
22 /*********************************************************************************************************
23 ** 函数名称: HC595SendData
24 ** 功能描述: 向SPI总线发送数据
25 *********************************************************************************************************/
26 void HC595SendData(unsigned int SendVal)
27 {
28 1 unsigned char i;
29 1
30 1 for(i=0;i<16;i++)
31 1 {
32 2 if((SendVal<<i)&0x8000) MOSIO=1; // set dataline high
33 2 else MOSIO=0;
34 2
35 2 S_CLK=0;
36 2 NOP();
37 2 NOP();
38 2 S_CLK=1;
39 2 }
40 1
41 1
42 1 R_CLK=0; //set dataline low
43 1 NOP();
44 1 NOP();
45 1 R_CLK=1; //片选
46 1 OE=0;
47 1
48 1 }
49
50 /*********************************************************************************************************
51 ** 函数名称: ReHC74165
52 ** 功能描述:
53 *********************************************************************************************************/
54 unsigned long ReHC74165(void)
55 {
C51 COMPILER V7.10 74HC595_165 10/20/2008 22:28:46 PAGE 2
56 1 unsigned char i;
57 1 unsigned long indata;
58 1
59 1 IN_PL=0;
60 1 NOP();
61 1 IN_PL=1;
62 1 NOP();
63 1
64 1 indata=0;
65 1 for(i=0; i<25; i++)
66 1 {
67 2 indata=indata<<1;
68 2 if(IN_Dat==1)indata=indata+1;
69 2 S_CLK=1;
70 2 NOP();
71 2 S_CLK=0;
72 2 }
73 1
74 1 return(~indata);
75 1
76 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 100 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -