1、课程名称 单片机技术基础 实验名称 74HC595串入并出实验实验目的、要求1、了解C51编程2、理解串入并出的概念3、掌握对74HC595串入并出的编程实验原理本实验主要是使用74HC595来实现串入并出,串行输入为一位,并行输出为八位,串入并出主要是起到扩省IO端口的作用。并行输出的数据体现在发光二极管上面。主要设备、器材计算机一台 KEIL集成开发环境 普中科技单片机实验板一个实验步骤及原始数据记录1)启动Keil C51软件。2)新建一个工程文件74HC595.uv2,选择芯片为AT89S52。3)新建一个C51文件74HC595.c,单击左上角的New File,在编辑框里输入程序。
2、4)完成代码的输入后,单击SAVE按钮,注意选择保存的路径,并输入保存的文件名74HC595.c,然后单击【保存】按钮。5)保存好后把此文件加入到工程中(用鼠标在Source Groupl上单击右键,然后再单击Add Files to GroupSource Groupl)。5)选择要加入的文件,找到74HC595后,单击【Add】按钮,然后单击【close】按钮。6)到此便完成了工程项目的建立以及文件加入工程,现在开始编译工程,若在output window的build页看到0 Error(s)表示编译通过,可以进行程序的仿真运行。7) 根据电路图连接LED灯和74HC595输出端,74HC
3、595的串行输入端已经与单片机的P34连接在一起了。开启单片机,将程序下载到单片机,观测运行结果。程序运行之后,LED灯根据串行输入的数据而点亮。实验程序: #include #include sbit MOSIO = P34; /定义74HC595的串行输入端sbit R_CLK = P35; /定义74HC595的接收时钟信号sbit S_CLK = P36; /定义74HC595的发送时钟信号void delay(unsigned int); /延时函数void HC595SendData(unsigned char );/74HC595的串入并出函数void main() unsign
4、ed char Led =0xfc; /要串行发送的数据 /有两位为零,因些发光二极管有两个是亮的 HC595SendData(0xff); /首先发送全1,将发光二极管全部熄灭 while(1) HC595SendData(Led); /将数据串放并出发送到发光二极管 Led 0;i-) for(j=300;j0;j-);void HC595SendData(unsigned char SendVal ) unsigned char i; for(i=0;i8;i+) if(SendVali)&0x80) /从最高位开始传送,判断是否为1。 MOSIO =1; else MOSIO = 0; S_CLK=0; _nop_(); _nop_(); S_CLK=1; /串行数据转变为并行数据的时钟信号 R_CLK=0; _nop_(); _nop_(); R_CLK=1;