1.实验任务
利用at89s51单片机的p1.0-p1.3接四个发光二极管l1-l4,用来指示当前计数的数据;用p1.4-p1.7作为预置数据的输入端,接四个拨动开关k1-k4,用p3.6/wr和p3.7/rd端口接两个轻触开关,用来作加计数和减计数开关。具体的电路原理图如下图所示
2.电路原理图
图4.12.1
3.系统板上硬件连线
(1).把“单片机系统”区域中的p1.0-p1.3端口用8芯排线连接到“八路发光二极管指示模块”区域中的l1-l4上;要求:p1.0对应着l1,p1.1对应着l2,p1.2对应着l3,p1.3对应着l4;
(2).把“单片机系统”区域中的p3.0/rxd,p3.1/txd,p3.2/int0,p3.3/int1用导线连接到“四路拨动开关”区域中的k1-k4上; (3).把“单片机系统”区域中的p3.6/wr,p3.7/rd用导线连接到“独立式键盘”区域中的sp1和sp2上;
4.程序设计内容
(1).两个独立式按键识别的处理过程;
(2).预置初值读取的问题
(3).led输出指示
5.程序框图
图4.12.2
6.汇编源程序
count equ 30h
org 00h
start: mov a,p3
anl a,#0fh
mov count,a
mov p1,a
sk2: jb p3.6,sk1
lcall dely10ms
jb p3.6,sk1
inc count
mov a,count
cjne a,#16,next
mov a,p3
anl a,#0fh
mov count,a
next: mov p1,a
wait: jnb p3.6,wait
ljmp sk2
sk1: jb p3.7,sk2
lcall dely10ms
jb p3.7,sk2
dec count
mov a,count
cjne a,#0ffh,nex
mov a,p3
anl a,#0fh
mov count,a
nex: mov p1,a
wait2: jnb p3.7,wait2
ljmp sk2
dely10ms: mov r6,#20
mov r7,#248
d1: djnz r7,$
djnz r6,d1
ret
end
7.c语言源程序
#include
unsigned char curcount;
void delay10ms(void)
{
unsigned char i,j;
for(i=20;i》0;i--)
for(j=248;j》0;j--);
}
void main(void)
{
curcount=p3 & 0x0f;
p1=~curcount;
while(1)
{
if(p3_6==0)
{
delay10ms();
if(p3_6==0)
{
if(curcount》=15)
{
curcount=15;
}
else
{
curcount++;
}
p1=~curcount;
while(p3_6==0);
}
}
if(p3_7==0)
{
delay10ms();
if(p3_7==0)
{
if(curcount《=0)
{
curcount=0;
}
else
{
curcount--;
}
p1=~curcount;
while(p3_7==0);
}
}
}
}
东芝推出五款新型MOSFET栅极驱动IC,助力移动电子设备小型化
基于一种高亮度的白光LED串联电路设计
LCD挖孔屏手机均搭载后置指纹识别
设计和验证技术如何确保汽车SoC的功能安全
芯启源受邀参加IP SoC活动 展示高端EDA工具产品特性
AT89S51单片机计数器的设计
苹果在蓝牙生态系统中扮演着十分重要的创新角色
砖头“大哥大”大改造,你会为它买单吗?
华为全液冷超充荣获两项行业大奖!推动充电产业迈向新高度
如何建立2路模拟量输入输出采集与RS485通讯
什么叫热失控?谁来为"超充"的安全性负责?
AI教父Geoffrey Hinton发出警示:超级智能很快就会到来
力帆鹏飞和长安cs55值哪个好?力帆鹏飞悬浮式高颜值,价格亲民,可以考虑下
保时捷Taycan12V锂电池安全解析
光伏项目—如何正确使用“铝合金”电缆
国家能源局发布蔚来研究制定的换电行业标准
安全是一个家庭赖以生存和发展的基础,安防或将成为智能家居的突破口
移动设备/车联网拉抬需求,智能传感器商机爆发
手表的等级分类标准
数字信号处理-FIR IP应用实例