- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机实验三流水灯实验
电子信息工程系实验报告
课程名称:单片微型计算机与接口技术
实验项目名称:实验三 流水灯实验 实验时间:2013-11-21
班级:**** 姓名:**** 学号:****
实 验 目 的:
1、进一步熟悉keil仿真软件、proteus仿真软件的使用。
2、了解并熟悉单片机I/O口和LED灯的电路结构,学会构建简单的流水灯电路。
3、掌握C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。
二、实 验 环 境:
硬件:windows 7
软件:keil 4, Proteus 7.8
三、实验原理:
输入输出接口的作用数据缓冲功能信号转换功能接受和执行CPU命令的功能
MCS-51系列单片机有四组8位并行I/O口,记作P0、P1、P2和P3。每组I/O口内部都有8位数据输入缓冲器、8位数据输出锁存器及数据输出驱动等电路。
四组并行I/O端口即可以按字节操作,又可以按位操作。当系统没有扩展外部器件时,I/O端口用作双向输入输出口;当系统作外部扩展时,使用P0、P2口作系统地址和数据总线、P3口有第二功能,与MCS-51的内部功能器件配合使用。
以P1口为例,内部结构如下图所示:
图 P1口的位结构
图1 P1口的位结构
作输出时:输出0时,将0输出到内部总线上,在写锁存器信号控制下写入锁存器,锁存器的反向输出端输出1,下面的场效应管导通,输出引脚成低电平。输出1时,下面的场效应管截止,上面的上拉电阻使输出为1。作输入时:P1端口引脚信号通过一个输入三态缓冲器接入内部总线,再读引脚信号控制下,引脚电平出现在内部总线上。
四个并行口使用的注意事项如下:
如果单片机内部有程序存贮器,不需要扩展外部存贮器和I/O接口,单片机的四个口均可作I/O口使用;
四个口在作输入口使用时,均应先对其写“1”,以避免误读;
P0口作I/O口使用时应外接10K的上拉电阻,其它口则可不必;
P2可某几根线作地址使用时,剩下的线不能作I/O口线使用;
5、P3口的某些口线作第二功能时,剩下的口线可以单独作I/O口线使用。
四、实 验 内 容 及 过 程:
1、建一个keil项目程序 建一个protues电路图的过程
(1)protues电路图:一个LED灯 一个开关
图一 一个LED灯 一个开关protues电路图
(2)keil项目程序:程序1、开关控制灯亮灭
程序2、开关按下灯闪三下
程序1代码如下:
#includereg52.h
#define uint unsigned int
#define uchar unsigned char
sbit kg=P1^0 ;
sbit deng=P2^0;
}
void main()
{
while(1)
{ kg=1;
if(kg==0)
deng=1;
else
deng=0;
}
}
程序2代码如下:
#includereg52.h
#define uchar unsigned char
#define uint unsigned int
sbit kg=P1^0 ;
sbit deng=P2^0;
void delay_50ms(uint t)
{
uint j;
for(;t0;t--)
for(j=6245;j0;j--);
}
void main()
{
while(1)
{
uchar i;
deng=0;
kg=1;
if(kg==0)
for(i=0;i3;i++)
{
deng=1;
delay_50ms(10);
deng=0;
delay_50ms(10);
}
文档评论(0)