51单片机函数库制作

单片机函数库
1.延时

void delay(uint x)
{
uint i,j;
for(i=0;i<x;i++)
  for(j=0;j<110;j++); 
}

2.数码管显示

void dispw(uchar w,uchar s)//w为位数,s为显示的数字 
{P2=_cror_(0x7f,w);
 P0=smg[s];
 delay1ms(1);
 P2=0xff;
}

3.十六进制数字

uchar code smg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

4.矩阵按键扫描

uchar scan()
{
	uchar hyw,lyw,hsm,lsm,jz;
	flag=0;
	for(hyw=0;hyw<4;hyw++)
	 {
	   P3 = _crol_(0xfe,hyw); //低4位输出低电平
	      for(lyw=0;lyw<4;lyw++)
		     {
			 	lsm = _crol_(0xfe,hyw)&0xf0;//假设高4位出现低电平,&0xf0为低4位取0
				hsm = P3&0xf0; //实际P3的高4位的值
                    if(lsm==hsm)//判断是否有按键按下
					  {
					  	delay(20);
						 while(lsm==hsm)hsm=P3&0xf0;//等待按键松开,并且不断检查P3口高4位的值
						 jz=4*hyw+lyw+1;.//给按键赋值显示1—16
						 flag =
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值