单片机实验(3).doc

课程名称 单片机技术基础 实验名称 74HC595串入并出实验 实验目的、要求 1、了C51编2、 主要设备、器材 计算机一台 KEIL集成开发环境 普中科技单片机实验板一个 实验步骤及原始数据记录 1)启动Keil C51软件。 2)3)新建一个C51文件,单击左上角的New File,在编辑框里输入程序。 )完成代码的输入后,单击SAVE按钮,注意选择保存的路径,并输入保存的文件名c,然后单击【保存】按钮。 )保存好后把此文件加入到工程中(用鼠标在Source Groupl上单击右键,然后再单击Add Files to Group‘Source Groupl’)。 )选择要加入的文件,找到后,单击【Add】按钮,然后单击【close】按钮。 )到此便完成了工程项目的建立以及文件加入工程,现在开始编译工程,若在output window的build页看到0 Error(s)表示编译通过,可以进行程序的仿真运行。 ) 根据电路图连接LED灯和74HC595输出端,74HC595的串行输入端已经与单片机的P3^4连接在一起了。开启单片机,将程序下载到单片机,观测运行结果。实验程序: #includereg52.h#includeintrins.h sbit MOSIO = P3^4; //定义74HC595的串行输入端 sbit R_CLK = P3^5; //定义74HC595的接收时钟信号 sbit S_CLK = P3^6; //定义74HC595的发送时钟信号 void delay(unsigned int); //延时函数 void HC595SendData(unsigned char );//74HC595的串入并出函数 void main() { unsigned char Led =0xfc; //要串行发送的数据 //有两位为零,因些发光二极管有两个是亮的 HC595SendData(0xff); //首先发送全1,将发光二极管全部熄灭 while(1) { HC595SendData(Led); //将数据串放并出发送到发光二极管 Led = 1; //将发送的数据左移 Led =Led|0x01; if(Led==0x3f) Led=0x7e; if(Led==0xfd) Led=0xfc; delay(200); } } void delay(unsigned int i) { unsigned int j; for(;i0;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; }

文档评论(0)

1亿VIP精品文档

相关文档