📄 74_595_task.lst
字号:
C51 COMPILER V7.06 74_595_TASK 09/18/2008 13:57:34 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 74_595_TASK
OBJECT MODULE PLACED IN 74_595_TASK.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 74_595_TASK.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /**********************************************************************/
2 //**程序名称:74HC595驱动发光二极管模块
3 //** 作者:杨占刚
4 //**作者简介:中南民族大学_电子信息工程学院_电子信息工程专业_本科学号:05071133
5
6 //**芯片说明:8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。三态。
7 //数据在SCLK的上升沿输入,在RCLK的上升沿进入的存储寄存器中去。
8 //如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。
9 //**出口函数:595_TASK()
10 //**人口函数:无
11 /***建立时间:2008年7月19号
12 /*??????????????????????????????????????????????????????????????????????*/
13 #include "c8051f020.h"
14 #include "config.h"
15 #include "intrins.h"
16
17
18 /**************************************************
19 >>>函数名称: LED_595_TASK(UCHAR d)
20 >>>函数功能: 74HC595驱动发光二极管LED
21 >>>入口参数: UCHAR d:对应的8个数码管的亮灭,位为1亮,位为0灭
22 >>>出口参数: 无
23 >>>调用模块: 无
24 /**注意事项:串行到并行的数据转换
25 ***************************************************/
26 void Write_595(UCHAR d)
27 {
28 1 UCHAR i,Serial;
29 1 Serial = d;
30 1 for(i=0;i<8;i++)
31 1 {
32 2 SCLK = 0;
33 2 SER=Serial&0X80;//因为串口输入是最低位先输入,所以,先右移一位使得最低位变为CY,再执行SER=CY;
34 2 Serial=Serial<<1;
35 2 SCLK = 1; //数据在SCLK的上升沿输入到移位寄存器中
36 2 _nop_();
37 2 }
38 1 //以下3条指令若在多字节时,应该移入多字节全发送完后在执行此3条指令
39 1 RCLK = 0;
40 1 _nop_();
41 1 RCLK = 1; //数据在RCLK的上升沿输输出
42 1 }
43
44 void main(void)
45 {
46 1 config();
47 1 for(;;)
48 1 {
49 2 Write_595(16);
50 2 }
51 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 120 ----
C51 COMPILER V7.06 74_595_TASK 09/18/2008 13:57:34 PAGE 2
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 + -