一、仿真环境:
- Proteus 8.9
- Keil5
- 具体软件安装方法参考论坛上其他文章
二、模型搭建
1、打开Proteus软件,主界面点击“新建工程”
?2、在弹出的窗口中修改工程名称、保存路径,默认选择“新工程”,点击“下一步”
??3、?选择“DEFAULT”,点击“下一步”
?4、默认配置,不需要修改,直接点击“下一步”
?5、默认配置,不需要修改,直接点击“下一步”
?6、点击“完成”,弹出原理图绘制窗口
?
?7、点击“元件模式”按钮,点击“P”按钮,在弹出的窗口左上角Keyword中输入“89C51”,在右侧窗口中显示的Devices中选择第一个,点击右下角“确定”
?8、将芯片移动到绘制界面的中央,单击鼠标左键,将芯片符号放置在绘制界面中
?9、按照同样方式,在“元件模式”中搜索“resistor”和“LED”,选择相应的元件,添加到绘制界面中
?
?10、复制粘贴,将LED、电阻、单片机P0引脚连接
?11、在左侧点击“终端模式”,选择“POWER”元件,拖入绘制界面,与LED正极相连
?12、计算R1~R8阻值
1)双击LED1,看元件参数,主要是导通电压和工作电流
?2)计算电阻值
R2~R7的计算过程类似
3)分别双击R1~R8,修改阻值??
三、代码编写
1、打开Keil软件,点击Project -> New uVision Project,选择文件夹,输入Project名称,点击“确定”
?2、在弹出的窗口中,选择“AT89S51”芯片,点击“OK”
?3、弹出窗口中点击“否”
4、 点击File -> New...,在Text1中输入代码?
#include <reg51.h>
#include <intrins.h>
#define LED P0
void delay(void)
{
unsigned char i, j;
for(i = 0; i < 200; i++)
for(j = 0; j < 200; j++);
}
void main()
{
unsigned char LED_Count;
while(1)
{
for(LED_Count = 0; LED_Count < 8; LED_Count ++)
{
LED = _crol_(0xfe, LED_Count);
delay();
}
LED = 0xff;
}
}
?5、点击File -> Save,在弹出窗口中输入文件名,注意一定要加“.c”后缀,点击“保存”
?6、右击“Source Group 1”,选择“Add Existing Files to Group 'Source Group 1'...”,选择刚刚保存的C文件,点击“Add”和“Close”
?
?7、点击魔术棒,在Output栏中选中“Create HEX File”,点击“OK”
?8、点击“Rebuild”,底部窗口显示编译无错误
?四、仿真结果
1、回到Proteus界面,双击单片机图标,在弹出的窗口中,按照51Test -> 01 -> Objects,找到LED.hex文件,选中,点击“打开”?
2、点击“确定”
3、点击左下角“运行”按钮,可以观察到LED的流水灯效果?
?
|