导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→关于POS机的客显问题

* 105264: 关于POS机的客显问题

   yellovey 
yellovey发表的帖子 

 关于POS机的客显问题
各位好,我刚接触POS机,不怎么懂,现在要写个POS机的客显,我写了但就是没显示结果,不知道为什么,他的协议是,我发送0,他串口输出+s1 +QA1.00 发送1他显示+s1QA2.00 总计他输出+s2+QA3.00 收款他输出+s3+QA3.00 我的程序传上来了,现在急着用,谢谢了。
#include "reg52.h"
#include  "intrins.h"    //内部包含延时函数 _nop_();
typedef unsigned char int8u;
typedef unsigned int  int16u;
int8u temp;
      sbit sdata=P3^1;
      sbit srck=P1^2;
      sbit rck=P1^3;
      sbit led_1=P3^2;
      sbit led_2=P3^3;
      sbit led_3=P3^4;
      sbit led_4=P3^5;
void initiate (void)   //串口初始化
{
     ES=0;
     EA=0;                 //禁止串口中断
     SCON=0x50;            //串口工作于方式1
     TMOD=0x20;            //T1工作于方式2
     TH1=0xf4;             //f=11.0592 波特率为2400
     TL1=0xf4;
     TR1=1;                //允许T1计数
     ES=1;
     EA=1;
}
void accept_byte (int8u one_byte)//接受一个字节的数据
{
 RI=0;
 one_byte=SBUF;
   while(RI==0);
   RI=0;
}
void wr_595(void)            //将显示数据送入74HC595内部移位寄存器
{
  int8u j;
  for (j=0;j  <8;j++)
  {
    temp=temp  <  <1;
    sdata=CY;
    srck=0;                  //上升沿触发
    _nop_();
    _nop_();
    srck=1;
    _nop_();
    _nop_();
    _nop_();
  }
}
void out_595(void)           //将移位寄存器内的数据锁存到输出寄存器并显示
{
    rck=0;
    _nop_();
    _nop_();
    rck=1;
    _nop_();
    _nop_();
    _nop_();
}
void delay(int ms) //延时函数
{
   int k;
      while(ms--)
        {
           for(k=0; k  <250; k++)
             {
                _nop_();
                _nop_();
                _nop_();
                _nop_();
             }
       }
}
void main ()
{
       initiate();
       while(1)
         {
loop:     accept_byte(temp);
          accept_byte(temp);
          accept_byte(temp);
              switch(temp)
                {
                   case 0x01:
                      led_4=0;
                   break;
                   case 0x02:
                      led_1=0;
                   break;
                   case 0x03:
                      led_3=0;
                   break;
                   case 0x04:
                      led_2=0;
                   break;
                 }
           delay(0x100);
           accept_byte(temp);
           accept_byte(temp);
           accept_byte(temp);
           accept_byte(temp);
           accept_byte(temp);
loop1:     wr_595();
           out_595();
           delay(100);
           accept_byte(temp);
                   if(0x0d==temp)
                     {
                       goto loop;
                      }
                  else
                       accept_byte(temp);
                       goto loop1;
           }
}


发表时间:2007年4月27日16:39:52

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:请教老古-------您的ISA以太网开发板图中PM34上的那块芯片用的是哪种?93C46吗?请教老
[下一篇帖子]:有关POS机的客显问题各位好,我刚接触POS机,不怎么懂,现在要写个POS机的客显,我写了但就是没显