图5-9编辑完成的简单实例的电路图
2. 源程序设计与生成目标代码文件
(1)程序流程图
开始 声明变量 点亮发光二极管 延时500毫秒 关闭发光二极管 延时500毫秒 主程序
图5-10 发光二极管闪烁的流程图
(2)源程序设计
将放光二极管闪烁的程序保存在文件FLASH_LED.C中,
#include
sbit D1=P1^0; //声明单片机P1口的第一位 void delay(uint z); //声明子函数 void main() {
while(1) //大循环 {
D1=0; //点亮第一个发光二极管 delay(500); //延时500毫秒
D1=1; //关闭第一个发光二极管
}}
delay(500); //延时500毫秒
void delay(uint z) //延时子程序延时约z毫秒 { }
uint x,y; for(x=z;x>0;x--)
for(y=110;y>0;y--);
3. 在keil中编译生成目标代码文件。
。
4. PROTEUS仿真
(1)加载目标代码文件
双击编辑窗口的AT89C52器件,在弹出如图5—11所示属性编辑对话框Program File一栏中单击打开按钮
,出现文件浏览对话框,找到
FLASH_LED.HEX文件,单击“打开”按钮,完成添加文件。在Clock frequency栏中把频率设置为12MHZ,仿真系统则以12MHZ的时钟频率运行。因为单片机运行的时钟频率以属性设置中的“Clock frequency”为准,所以在编辑区设计MCS-51系列单片机系统电路时,可以略去单片机振荡电路,并且复位电路也可以略去。所以从子情境三开始就将振荡电路和复位电路省略。
(2)仿真:单击按钮
,启动仿真,仿真运行片段如图5-12所示。发
光二极管间隔500毫秒闪烁。
红色方块代表低电平,蓝色方块代表高电平,灰色方块代表不确定电平