单片机io口实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一
以下所有KEIL工程、程序均命名为自己姓名的拼音
一、实验目的:
熟悉KEIL软件的开发,掌握程序下载流程
二、实验环境:
1.硬件:PC微机、单片机开发板
2.软件:KEIL
三、实验步骤:
1.在KEIL中新建工程文件,在工程文件下新建C文件“姓名首字母.c”并加入到工程
中(注意C语言编程时,工程中要保留STARTUP.A51汇编文件)。
2.编写程序,初始化内部数据寄存器0x40开始的100个地址单元,写入0x55,然后复
制到0x60开始的存储器中,使用软件仿真的方式调试程序,观察程序模拟运行的结果:
#include "reg52.h"
unsigned char *p,*q;
unsigned char i;
int main(){
p=0x40;
for(i=0;i<10;i++)
{
*p=0x55;
p++;
}
for(i=0;i<10;i++)
{
*p=*q;
q++;
p++;
while(1);
}
}
调试时,在调试界面中依次找到
a) 变量观察窗口
b) 存储器窗口
c) 单步运行
d) 全速运行
程序运行结果(存储器窗口截图):
3.编写程序,控制实验板上的LED灯:D1-D3点亮,D4-D7熄灭,D8点亮#include”reg52.h”
sbit P1_4=P1^4;
int main()
{
P1_4=0;
P0=0x1E;
While(1);
}
4.编写C语言程序,实现LED灯循环点亮
#include "reg52.h"
void delay (unsigned z)
{
while(z--);
}
int main()
{
unsigned char i;
P1&=~(0x01<<4);
P0=0xff;
i=0x01;
while (1)
{
P0=~i;
i=i<<1;
if(i==0x0)
i=0x01;
delay(10000);
}
}
四、实验总结