单片机应用技术实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机应用技术实验报
告
Document number【980KGB-6898YT-769T8CB-246UT-
实验一流水灯控制
一、实验目的
1.学会使用KeilC51软件及proteus7.8仿真工具进行程序设计;
2.掌握利用C语言完成80C51单片机的开发设计,完成流水LED灯控制;
3.熟练掌握在计算机上编辑、编译、连接及运行C程序的方法。
二、实验设备
PC微机;
Windows操作系统;
KeilC51软件及proteus7.8集成环境。
三、实验步骤
1.Proteus下电路设计
程序要求设计一个单片机控制流水灯程序,采用延时程序完成8个LED灯点亮效果(可自行设计效果,程序仅供参考)。首先在Proteus环境下,建立以AT89C52单片机为核心的LED控制电路,电路由时钟电路、复位电路及LED控制电路组成。
2.C语言源程序的建立
在KeilC51中设计C程序,首先新建工程名并保存,工程扩展名为**.uv2,并在出现的对话框中选择AT89C52单片机。然后在工程下新建文本文件,保存为*.c 的源文件,将*.c文件添加到工程中,并配置好输出。根据电路图要求设计c语言源程序并进行编译,如程序设计无误,则生成了扩展名为*.hex的文件,以便将该文件导入到Proteus中的AT89C52单片机中。如编译未通过,则再次根据编译错误提示对源程序进行修改。
3.在Proteus中导入*.hex文件
运行Proteus软件,在电路图中双击AT89C52,导入上面编译完成的*.hex文件。
4.程序的执行
首先根据提供的程序进行验证,然后按预期在KeilC中自行修改程序,并导入Proteus中进行验证。
四、程序设计
源程序(在KeilC中进行编译)
/* 名称:8只LED左右来回点亮
说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果*/
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
//延时
voidDelay(unsignedintt)
{
while(--t);
}
voidmain()//主程序
{
uchari;
P0=0x01;
while(1)
{
for(i=0;i<7;i++)
{
P0=_crol_(P0,1);//P0的值向左循环移动
Delay(20000);
}
for(i=0;i<7;i++)
{
P0=_cror_(P0,1);//P0的值向右循环移动
Delay(20000);
}
}
}
五、实验总结
XXXXXXXXXXX
实验二按键控制
一、实验目的
1.学会使用KeilC51软件及proteus7.8仿真工具进行程序设计;
2.掌握利用C语言完成80C51单片机的开发设计,完成按键控制;
3.熟练掌握在计算机上编辑、编译、连接及运行C程序的方法。
二、实验设备
PC微机;
Windows操作系统;
KeilC51软件及proteus7.8集成环境。
三、实验步骤
1.Proteus下电路设计
程序要求开关S1和S2分别控制LED1和LED2。(可自行设计效果,程序仅供参考);首先在Proteus环境下,建立以AT89C52单片机为核心的LED控制电路,电路由时钟电路、复位电路及LED控制电路组成。
2.C语言源程序的建立
在KeilC51中设计C程序,首先新建工程名并保存,工程扩展名为**.uv2,并在出现的对话框中选择AT89C52单片机。然后在工程下新建文本文件,保存为*.c 的源文件,将*.c文件添加到工程中,并配置好输出。根据电路图要求设计c语言源程序并进行编译,如程序设计无误,则生成了扩展名为*.hex的文件,以便将该文件导入到Proteus中的AT89C52单片机中。如编译未通过,则再次根据编译错误提示对源程序进行修改。
3.在Proteus中导入*.hex文件
运行Proteus软件,在电路图中双击AT89C52,导入上面编译完成的*.hex文件。
4.程序的执行
首先根据提供的程序进行验证,然后按预期在KeilC中自行修改程序,并导入Proteus中进行验证。
四、程序设计
/* 名称:开关控制LED
说明:开关S1和S2分别控制LED1和LED2。
*/
#include
sbitS1=P1^0;
sbitS2=P1^1;
sbitLED1=P0^0;
sbitLED2=P0^1;
//主程序
voidmain()
{
while(1)
{
if(!S1)//如果检测到低电平,说明按键按下
LED1=0;
else
LED1=1;
if(!S2)//如果检测到低电平,说明按键按下
LED2=0;
else
LED2=1;
}
}
五、实验总结
XXXXXXXXXXX
实验三直流电机控制
一、实验目的
1.学会使用KeilC51软件及proteus7.8仿真工具进行程序设计;2.掌握利用C语言完成80C51单片机的开发设计,完成直流电机控制;3.熟练掌握在计算机上编辑、编译、连接及运行C程序的方法。