打印

求助,X9313控制程序

[复制链接]
2421|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
枫叶1989|  楼主 | 2010-8-14 10:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 枫叶1989 于 2010-8-14 10:57 编辑

#include "reg52.h"
#include "intrins.h"
#define uchar unsigned char
sbit cs=P1^0;
sbit inc=P1^1;
sbit u_d=P1^2;
sbit up=P3^2;
sbit down=P3^4;
sbit P24 = P2^4;
sbit P25 = P2^5;
sbit P26 = P2^6;
sbit P27 = P2^7;
uchar  kk=0,d[4];   //kk为增益标志,d[4]为显示缓冲区
void delay(void)   //延时程序,延时m*0.5毫秒
{
uchar i,j;
   for (i=0;i<10;i++)
   {
     for (j=0;j<50;j++);
   }
}
void display(uchar t)     //数码管显示
{
uchar i;
uchar code  BCD_7[11]={0xC0,   //0
   0xF9,   //1
   0xA4,   //2
   0xB0,   //3
   0x99,   //4
   0x92,   //5
   0x82,   //6
   0xF8,   //7
   0x80,   //8
   0x90,   //9
   0xFF } ;
for(;t>0;t--)
{
for(i=0;i<4;i++)
{
P0=BCD_7[d];
P2|=0x10<<i;
delay();
P2&=0x0f;
}
}
}
void up_X9313(void) //产生脉冲使X9313增大一个步进单位,返回值kk
{
cs=0;
u_d=1;
inc=1;
inc=0;
_nop_();_nop_();
inc=1;
cs=1;
kk++;
}
void down_X9313(void)//产生脉冲使X9313减小一个步进单位 ,返回值kk
{
cs=0;
u_d=0;
inc=1;
inc=0;
_nop_();_nop_();
inc=1;
cs=1;
kk--;
}
void init_X9313(void)  //初始化X9313,返回值kk
{
uchar i;
for(i=31;i>0;i--)
{
up_X9313();
}
}
uchar read_key(void)
{
up=1;
down=1;
if(up&down)return 0xFF;
else if(up==0)return 0;
else return 1 ;
}
void main(void)
{
uchar k;
int amp;
init_X9313();
/*此处为测试点,检查初始化程序是否运行,添加此处
程序时,须注释后面的WHILE循环*/
/*amp=kk*30%960;
d[3]=amp/1000%10;
d[2]=amp/100%10;
d[1]=amp/10%10;
d[0]=amp%10;
display(100);*/
while(1)
{
do
{
k=read_key();  //等待按键,显示增益
amp=kk*30%960;
d[3]=amp/1000%10;
d[2]=amp/100%10;
d[1]=amp/10%10;
d[0]=amp%10;
display(100);
}while(k==0xFF);
if(!k)
{up_X9313();
}
else
{
down_X9313();
}
}
}
调试的时候显示的值不对哎

相关帖子

沙发
枫叶1989|  楼主 | 2010-8-14 10:16 | 只看该作者
坐等高手。。。

使用特权

评论回复
板凳
枫叶1989|  楼主 | 2010-8-29 11:07 | 只看该作者
晕,没人搞过?

使用特权

评论回复
地板
qiang3a| | 2010-8-29 11:11 | 只看该作者
哥来顶你了。:lol

使用特权

评论回复
5
hotpower| | 2010-8-29 17:33 | 只看该作者
记得是数字电位器。忘了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:誓将学习进行到底。

0

主题

17

帖子

1

粉丝