1.实验任务
如图4.9.1所示,开关sp1接在p3.7/rd管脚上,在at89s51单片机的p1端口接有四个发光二极管,上电的时候,l1接在p1.0管脚上的发光二极管在闪烁,当每一次按下开关sp1的时候,l2接在p1.1管脚上的发光二极管在闪烁,再按下开关sp1的时候,l3接在p1.2管脚上的发光二极管在闪烁,再按下开关sp1的时候,l4接在p1.3管脚上的发光二极管在闪烁,再按下开关sp1的时候,又轮到l1在闪烁了,如此轮流下去。
2.电路原理图
图4.9.1
3.系统板上硬件连线
(1).把“单片机系统”区域中的p3.7/rd端口连接到“独立式键盘”区域中的sp1端口上;
(2).把“单片机系统”区域中的p1.0-p1.4端口用8芯排线连接到“八路发光二极管指示模块”区域中的“l1-l8”端口上;要求,p1.0连接到l1,p1.1连接到l2,p1.2连接到l3,p1.3连接到l4上。
4.程序设计方法
(1).设计思想由来
在我们生活中,我们很容易通过这个叫张三,那个叫李四,另外一个是王五;那是因为每个人有不同的名子,我们就很快认出,同样,对于要通过一个按键来识别每种不同的功能,我们给每个不同的功能模块用不同的id号标识,这样,每按下一次按键,id的值是不相同的,所以单片机就很容易识别不同功能的身份了。
(2).设计方法
从上面的要求我们可以看出,l1到l4发光二极管在每个时刻的闪烁的时间是受开关sp1来控制,我们给l1到l4闪烁的时段定义出不同的id号,当l1在闪烁时,id=0;当l2在闪烁时,id=1;当l3在闪烁时,id=2;当l4在闪烁时,id=3;很显然,只要每次按下开关k1时,分别给出不同的id号我们就能够完成上面的任务了。下面给出有关程序设计的框图。
5.程序框图
图4.9.2
6.汇编源程序
id equ 30h
sp1 bit p3.7
l1 bit p1.0
l2 bit p1.1
l3 bit p1.2
l4 bit p1.3
org 0
mov id,#00h
start: jb k1,rel
lcall delay10ms
jb k1,rel
inc id
mov a,id
cjne a,#04,rel
mov id,#00h
rel: jnb k1,$
mov a,id
cjne a,#00h,is0
cpl l1
lcall delay
sjmp start
is0: cjne a,#01h,is1
cpl l2
lcall delay
sjmp start
is1: cjne a,#02h,is2
cpl l3
lcall delay
sjmp start
is2: cjne a,#03h,is3
cpl l4
lcall delay
sjmp start
is3: ljmp start
delay10ms: mov r6,#20
loop1: mov r7,#248
djnz r7,$
djnz r6,loop1
ret
delay: mov r5,#20
loop2: lcall delay10ms
djnz r5,loop2
ret
end
7.c语言源程序
#include
unsigned char id;
void delay10ms(void)
{
unsigned char i,j;
for(i=20;i》0;i--)
for(j=248;j》0;j--);
}
void delay02s(void)
{
unsigned char i;
for(i=20;i》0;i--)
{delay10ms();
}
}
void main(void)
{ while(1)
{ if(p3_7==0)
{delay10ms();
if(p3_7==0)
{
id++;
if(id==4)
{
id=0;
}
while(p3_7==0);
}
}
switch(id)
{ case 0:
p1_0=~p1_0;
delay02s();
break;
case 1:
p1_1=~p1_1;
delay02s();
break;
case 2:
p1_2=~p1_2;
delay02s();
break;
case 3:
p1_3=~p1_3;
delay02s();
break;
}
}
抛丸机老是无规律停机,或直接PLC报警怎么办?
5g网络或明年正式推出
电子商务将成为运用AR技术的第一大领域
你可能遇到假宽带了,公布的网速数据为何差别如此之大
FCC Part 25.203 卫星地球站站址和频率的选择-协调距离
AT89S51单片机发光二极管多功能闪烁的设计
AEC---SiC MOSFET 高温栅氧可靠性研究
真正能够防盗的智能锁应该具备以下几大条件
使用Magic Packet远程唤醒单片机
详细解析FCoE协议
滤波器的设计仿真实例
英特尔今年底就将开始导入 7 纳米晶圆制程
固态继电器工作原理详细介绍
当机器人有温度后,识别物体的能力将加强
超级电容器在微型电网中的应用
什么是Docker容器
BMC Web门户不显示网卡的问题及其解决方法
Java中的SPI动态扩展(下)
兆易创新透露MCU出货量已经超4亿颗
中国联通"新起点,新征程—匠心网络万里行”活动正式拉开帷幕