1、matlab实验二 闪烁灯实验二 闪烁灯一、 实验目的1、 学习Keil软件的程序调试方法。2、 学习单片机HEX文件的下载。3、 学会KEIL C程序设计及调试,重点学会预处理命令、数据类型的定义二、 实验仪器P4计算机、Keil软件、STC_ISP软件、实验板三、 实验内容1、 依据电路图,实现LED的闪烁,每隔0.2秒更替一次亮灭2、 按照 KEIL软件的使用步骤,建立工程。3、 编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成HEX文件。4、 用STC-ISP下载软件下载HEX文件到单片机系统。5、 运行、调试程序,观察实验结果。四、 STC-ISP下载软件的使用方法该
2、软件将已生成的HEX文件下载到单片机中。具体步骤如下:1、 双击STC-ISP图标:2、 然后在“MCU Type”列表中选择单片机型号(应选择单片机板中的CPU型号),如下图:3、 点击“Open File”按钮,找到所要下载的HEX文件,并选中,选择“打开”,如下图:4、 选择串口的对应端口号,(根据自己的硬件连接端口)(如COM1)。5、 然后选“MaxBuad”中的波特率,也可以选默认值。6、 点击”Download/下载”,进行文件下载,如图:7、 稍等几秒,即可下载完成,如图:五、 电路原理图与实验参考程序实验板的原理图如下:LED灯的连接图如下:1. 实验一/* 文件名 : 闪烁
3、灯一.c* 描述 : 该程序实现LED的闪烁,每隔0.2秒更替一次亮灭。 在使用某款新单片机时,经常就用类似的闪烁灯程序来判断单片机是否正常工作。 本程序通过软件延时,并且通过软件调试。 在“HOT-51开发板配套资料经典学习资料单片机相关”下面有KEIl软件仿真的教程。 注:因为我们P0口LED和数码管是公用的,LED闪烁的同时数码管也会闪烁。 你可以通过改变J1跳线位置然后给P3.7付低电平,让数码管不显示。* 创建人 : 东流,2009年8月27日* 版本号 : 1.0*/#include#define uchar unsigned char /这里用uchar代替unsigned ch
4、ar,uchar用来定义无符号字符型数。#define uint unsigned int /uint用来定义无符号整型数。sbit Show_LED = P00; /用来声明P0.0口为程序所要控制的端口,sbit是KEIL专门用来声明某位IO口 /* 名称 : Delay()* 功能 : 延时,延时时间为 10ms * del。这是通过软件延时,有一定误差。* 输入 : del* 输出 : 无*/void Delay(uint del) uint i,j; for(i=0; idel; i+) for(j=0; j1827; j+) /这个是通过软件仿真得出的数 ;/* 名称 : Main
5、()* 功能 : 实现灯的闪烁* 输入 : 无* 输出 : 无*/void Main(void) /P0 = 0x00; /用于灭数码管 /Delay(1); /P3 = 0x7f; /注意J1要跳到下方才起作用,P3.7位低,数码管锁存 /Delay(1); /P0 = 0xff; /灭所有的LED while(1) Show_LED = 0; Delay(20); /Delay(del)中的数为延时的时间参数,延时时间为 10ms * del. Show_LED = 1; Delay(20); 2. 实验二/* 文件名 : 闪烁灯二.c* 描述 : * 创建人 : 东流,2009年8月27
6、日* 版本号 : 1.0*/#include#define uchar unsigned char#define uint unsigned int/* 名称 : Delay()* 功能 : 延时,延时时间为 10ms * del* 输入 : del* 输出 : 无*/void Delay(uint del) uint i,j; for(i=0; idel; i+) for(j=0; j1827; j+) ;/* 名称 : Main()* 功能 : 实现灯的闪烁* 输入 : 无* 输出 : 无*/void Main(void) P0 = 0xff; P2 = 0x00; while(1) /*
7、下面四行用于控制LED每隔一个亮*/ P0 = 0xaa; Delay(50); P0 = 0x55; Delay(50); /*下面四行用于控制LED每隔一个亮*/ P0 = 0xcc; Delay(50); P0 = 0x33; Delay(50); /*下面四行用于控制LED 高四位 或者 低四位亮*/ P0 = 0x0f; Delay(50); P0 = 0xf0; Delay(50); /*下面八行用于控制LED的两次全亮 全灭*/ P0 = 0x00; Delay(25); P0 = 0xff; Delay(25); P0 = 0x00; Delay(25); P0 = 0xff; Delay(25); Delay(200); /延时两秒 六、 实验报告要求编写程序实现LED1到LED8的顺序点亮和熄灭。具体要求如下:1、 每次只亮一个灯。2、 亮灯的顺序是LED1到LED8循环往复。要点:使用C语言的移位命令。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1