可预置可逆4位计数器
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);
}
}
}
}
多功能扩展坞(MT-UC21),笔记本电脑的好帮手
国家很早就重视半导体,为什么现在我们还被限制?
高压开关机械故障检测基本方法及存在的问题
哪吒汽车助力尼泊尔人民加速普及智能新能源汽车
单片机和FreeRTOS上跑机器人ROS
可预置可逆4位计数器
R5300 G4X服务器RM241B RAID卡的BBU信息状态显示为失败
传苹果有意为下一代iPad采用单LED背光设计
怎样制作一个简单的声音激活PIC18警报
NVIDIA的公版显卡将要开放了?
电动汽车新动向:特斯拉每分钟花费6500美元要破产 FF91样车运抵北京明年量产
数码摄像头成像距离
轻松制作极品胆前级,vacuum tube preamplifier
RISC-V CPU 处理器核心采用嵌入式开源实时操作系统
奖项收获季!利尔达客思两款创新产品荣获“浙江照明奖”
数据模型的概念和作用
iPhone12 Pro的拍照功能怎么样?
什么是PCB油墨 常见的PCB线路板油墨品牌
麦捷科技:集成微电路技术打造核心竞争力
最佳数字主动降噪耳机设计要点