void delay(unsigned char i) //延时函数,无符号字符型变量 i 为形式参数
{
unsigned char j,k;
//定义无符号字符型变量 j 和 k
for(k=0;k<i;k++)
//双重 for 循环语句实现软件延时
for(j=0;j<255;j++);
}
四、思考题
1、MCS-51 系列单片机的 P0~P3 四个 I/O 端口在结构上有何异同?使用时应注意的事
项?
实验二、模拟交通信号灯实验
一、实验目的
1、熟悉 C 语言的数据类型、常量与变量、运算符和表达式等基本概念及函数、程序设计
基本结构;2、掌握 C51 对标准 C 语言的扩充功能;3、学习 Keil 软件和 Protues 软件的联合
在线仿真调试系统的使用。
二、实验说明
1、使用单片机控制 LED 来模拟十字路口交通信号灯的切换过程和显示效果。12 只 LED
分成东西向和南北向两组,各组指示灯均有相向的
2 只红色、2 只黄色和 2 只绿色的 LED。
当东西向绿灯亮若干秒后,黄灯闪烁,闪烁
5 次后红灯亮,红灯亮后,南北向由红灯变为
绿灯,若干秒后南北向黄灯闪烁,闪烁
5 次后红灯亮,东西向绿灯亮,如此重复。
2、在 Keil 软件中,建立好相应的项目文件,编译无误后,选中 Target 1,执行菜单
“Project”→“Options for Target ‘Target 1’”命令,打开“Debug” 调试选项卡,单击“Use”前的
单选框,再在右侧下拉列表中选择
“Proteus VSM Monitor-51 Driver”,选项。
3、在 Proteus ISIS 中选择
“Debug”→“Use Remote Debug Monitor”,使系统处于远程后台
待命状态。
4、在 Keil 中执行
“Debug”→“Start/Stop Debug Session”命令,启动源程序的调试,就可
以同时在
Proteus ISIS 软件工作界面观察仿真效果,观察到程序和硬件电路的同步运行情况。
参考调试开发系统
P118-120
三、实验内容及步骤
1、硬件原理图
2、源程序
交通灯状态表
东西方向(A 组)
南北方向(B 组)
状态
红灯
黄灯
绿灯
红灯
黄灯
绿灯
灭
灭
亮
亮
灭
灭
东西向通行,南北向禁止
灭
闪烁
灭
亮
灭
灭
东西向警告,南北向禁止
亮
灭
灭
灭
灭
亮
东西向禁止,南北向通行