
1、首先先在proteus画出仿真图,方便仿真程序。
2、接着来编写程序,先来写入头函数。
2、根据自己在proteus画的图,定义一下管脚根据你的原理图进行编写。
3、然后写一个延时函数,来调节流水灯的时间间隔延时时间自己定义。
4、下图就是主函数,包括流水灯的反复循环和j流水灯的方向。
5、检查没有错误,编译一下,就可以进行仿真了。
假设P0 P1口各接一个数码管,p2.0接按键,程序如下:#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit key=P2^0
uchar num=0
//共阴数码管七段码
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77}
void Delay1ms(uint i) //1ms延时程序
{
uint j
for(i>0i--)
{
for(j=0j<164j++)
{}
}
}
void main(void )//主程序
{
while(1)
{
if(key==0)//判断按键是否按下
{
Delay1ms(10)//延时消抖
if(key==0)
{
while(key==0)//等待按键抬起
num++
if(num==20)num=0
}
}
P0=table[num%10]
P1=table[num/10]
}
}
汇编很久没用过了,提供一下思路,供参考!可采用计时的方式,检测按键按下状态超过2秒后,数据开始增大递加递减的步距(之前是每次加减1,增大后,每次加减10),松开按键后,计时器清零!
采用计次的方式也可以实现,按键后,数据递加或递减一次,延时300毫秒,再次检测按键,未松开,继续递加,加满5次后,开始增发递加或递减步距,松开按键后,计次清零!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)