一、目的
(1)熟悉proteus仿真软件,掌握单片机原理图的绘图方法;
(2)学习I/O口的使用方法;
(3)学习C51的程序设计方法;
(4)学会在ISIS模块中进行C51程序录入、编译和调试;
(5)理解单片机程序控制原理,实现指示灯/开关控制器的预期功能。
二、实验原理
指示灯/开关控制器的电路原理图如图1所示。图中输入电路由外接在P1口的8只开关组成;输出电路由外接在P2口的8只二极管组成。此外,还包括时钟电路和复位电路。
三、实验原理图
四、实验内容
(1)在proteus中绘制电路原理图;用总线将P1.0~P1.7口连至开关SW1~SW8,用总线将P2.0~P2.7分别接到发光二极管D1~D8;
(2)在KEIL软件中编写相应的C51程序;
(3)在proteus中加载程序,观察仿真结果;波动开关SW1~SW8,观察发光二极管的亮灯状态,检验电路图绘制与C51程序编写的正确性。
五、实验代码
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
void delay(uchar k)
{
uint j;
while(k--)
for(j=0;j<500;j++);
}
void main(void)
{
uchar temp;
uint i;
for (i=0;i<3;i++)
{
P2=0x00;
delay(100);
P2=0xff;
delay(100);
}
while(1)
{
temp=P1;
P2=temp;
}
}