一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 3712|回复: 5

[其他综合] 发个编码开关的程序,并请教一个问题

[复制链接]
发表于 2011-9-14 20:05 | 显示全部楼层 |阅读模式
自己编的。使用外部中断0。1602显示。由于PROTEUS没有编码开关所以仿真文件没有。实物试过了能正常工作。 switch.rar (10.46 KB, 下载次数: 292) 想请教大家temp0是不是一定要定义为全局变量?
#include<reg52.h>
#include"bmkg.h"
code un8 tab[]={"0123456789" };
void Delay(un8 xms);
void Delay1(un16 xus);
void lcdinit();  //1602初始化
void lcdcom(un8 com);//写指令
void lcddata(un8 dat);//写数据
void DSPLAY(); //显示函数
un8 temp0=0;
main()
{
  
  
  lcdinit();
  EA=1;  //允许中断
  EX0=1;//开外中断0
  IT0=1;//后沿负跳边触发外中断
  while(1)
   {
   lcdcom(0x80);
      DSPLAY();
  }
}

void lcdinit()
{
  Delay(15);
  lcdcom(0x03);
  Delay(5);
  lcdcom(0x03);
  Delay(5);
  lcdcom(0x03);
  Delay(2);
  lcdcom(0x02);//4线制
  Delay(1);
  lcdcom(0x06);  
  lcdcom(0x0C);
  lcdcom(0x28);
}
void lcdcom(un8 com)
{
  un8 temp1;
  temp1=com;
  lcd1602=com|0x0f;
  RS=0;
  Delay1(2);
  EN=1;
  Delay1(2);
  EN=0;
  
  com=temp1;
  lcd1602=(com<<4)|0x0f;
  RS=0;
  Delay1(2);
  EN=1;
  Delay1(2);
  EN=0;
}
void lcddata(un8 dat)
{
  un8 temp2;
  temp2=dat;
  lcd1602=dat|0x0f;
     RS=1;
  Delay1(2);
  EN=1;
  Delay1(2);
  EN=0;
   
  dat=temp2;
  lcd1602=(dat<<4)|0x0f;
     RS=1;
  Delay1(2);
  EN=1;
  Delay1(2);
  EN=0;
     }

void DSPLAY()
{
  
  lcddata(tab[temp0/10]);
  lcddata(tab[temp0%10]);
}
void Delay(un8 xms)
{
un8 i,j;
for(i=xms;i>0;i--)
    for(j=120;j>0;j--);
}  
   
void Delay1(un16 xus)
{
un16 i,j;
for(i=xus;i>0;i--)
    for(j=30;j>0;j--);
}
void intt0() interrupt 0
{
  if(0==bm2)
  {
   temp0++;
  }
  else
   temp0--;
   if(0XFF==temp0)
  {
  temp0=99;
  }
  if(100==temp0)
  {
   temp0=0;
  }
}
发表于 2011-9-14 20:20 | 显示全部楼层
好像“Static”变量也行。
回复

使用道具 举报

发表于 2011-9-14 20:20 | 显示全部楼层
搬个板凳慢慢看
回复

使用道具 举报

发表于 2011-9-15 02:50 | 显示全部楼层
temp0是编码器的数值变量吧,被几个函数过程调用,你不设置成全局变量,能编译过去?
回复

使用道具 举报

 楼主| 发表于 2011-9-15 18:43 | 显示全部楼层
谢谢大家!
回复

使用道具 举报

发表于 2012-4-29 10:20 | 显示全部楼层
我最近也在弄这个
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-11-4 08:14 , Processed in 0.034645 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表