⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testzhi.c

📁 针对杭州中正公司的SM-62光学指纹识别模块在Atmega128芯片板上移植后的测试程序
💻 C
📖 第 1 页 / 共 2 页
字号:
#include <iom128.h>
#include "includes.h"
#include "myiom128.h"
#define u8 unsigned char
#define u16 unsigned int
#define CharBufferA 0x01
#define CharBufferB 0x02
#define model_buffer 0x03
#define CABLEENABLE()    PORTE|=0x08//0b00001000
#define UARTRFDISENABLE() PORTE|=0x04//0b00000100
extern void led_flash() ;
extern u8 scan_final_key() ;
extern void lcd_1() ;
extern void display_line_5() ;
extern void display_line_6() ;
extern void lcd_upside_initialization() ;
extern void data_clear() ;
u8 acknowledge = 0x08 ;
u8 i , key , ack[35] ;
u8 templet_num_high , templet_num_low ;
/************************************* InitUART *************************************/
void InitUART( unsigned char baudrate )
{
  CABLEENABLE() ;
  UARTRFDISENABLE() ;
  UBRR0L = baudrate; /* set the baud rate */
  DDRB |= 0x01 ;
  PORTB &= ~0x01;
  UBRR0H = 0x00;
  UCSR0B&= ~0x04 ; //SET BIT UCSZ02 = 0
  UCSR0C = 0x06;   //  SET BITS UCSZ01,UCSZ00 = 1 , indicate  transmit 8 bits data )
  UCSR0B&= ~0x18; //disable RXEN0 , TXEN0
  UCSR0A|= 0x02;  //ENABLE U2X0
}

/************************************* TransmitByte *************************************/
void TransmitByte( unsigned char data )
{
  UCSR0B|= 0x08;  //enable TXEN0
  UCSR0B&=~0x10;  //disable RXEN0
  while ( !(UCSR0A & (1<<UDRE0)) ); /* wait for empty transmit buffer */
  UDR0 = data; /* start transmittion */
}

/************************************* receiveByte *************************************/
unsigned char receiveByte()
{
  UCSR0B&=~0x08;  //disable TXEN0
  UCSR0B|= 0x10;  //enable RXEN0
  while ( !(UCSR0A & (1<<RXC0)));
  return UDR0 ;
}
/*********************************** ack_bag_length_1 ***********************************/
u8 ack_bag_length_1()
{
   u8 i , acknowledge ;
   do
   {
      acknowledge = receiveByte() ;
   }
   while(acknowledge != 0x07) ;
   for(i=0;i<6;i++)
   {
      receiveByte() ;
   }
   ack[0] = receiveByte() ; //确认码
   receiveByte() ; //sum_h
   receiveByte() ; //sum_l
   receiveByte() ; //C0
   return ack[0] ;
}
/*********************************** ack_bag_length_3 ***********************************/
u8 ack_bag_length_3()
{
   u8 i;
   do
   {
      ack[0] = receiveByte() ;
   }
   while(ack[0] != 0x07) ;
   for(i=0;i<6;i++)
   {
      receiveByte() ;
   }
   ack[0] = receiveByte() ; //确认码
   ack[1] = receiveByte() ; //p1
   ack[2] = receiveByte() ; //p2
   receiveByte() ; //sum_h
   receiveByte() ; //sum_l
   receiveByte() ; //C0
   return ack[0] ;
}
/*********************************** ack_bag_length_6 ***********************************/
u8 ack_bag_length_6()
{
   u8 i;
   do
   {
      ack[0] = receiveByte() ;
   }
   while(ack[0] != 0x07) ;
   for(i=0;i<6;i++)
   {
      receiveByte() ;
   }
   ack[0] = receiveByte() ; //确认码
   ack[1] = receiveByte() ; //p1
   ack[2] = receiveByte() ; //p1
   ack[3] = receiveByte() ; //p3
   ack[4] = receiveByte() ; //p4
   ack[5] = receiveByte() ; //p5
   receiveByte() ; //sum_h  //p6
   receiveByte() ; //sum_l
   receiveByte() ; //C0
   return ack[0] ;
}
/*********************************** ack_bag_length_33 ***********************************/
u8 ack_bag_length_33()
{
   u8 i;
   do
   {
      ack[0] = receiveByte() ;
   }
   while(ack[0] != 0x07) ;
   for(i=0;i<6;i++)
   {
      receiveByte() ;
   }
   for(i=0;i<33;i++)
   {
     ack[i] = receiveByte() ;
   }
   receiveByte() ; //sum_h
   receiveByte() ; //sum_l
   receiveByte() ; //C0
   return ack[0] ;
}
/*********************************** ack_bag_length_35 ***********************************/
u8 ack_bag_length_35()
{
   u8 i;
   do
   {
      ack[0] = receiveByte() ;
   }
   while(ack[0] != 0x07) ;
   for(i=0;i<6;i++)
   {
      receiveByte() ;
   }
   for(i=0;i<35;i++)
   {
     ack[i] = receiveByte() ;
   }
   receiveByte() ; //sum_h
   receiveByte() ; //sum_l
   receiveByte() ; //C0
   return ack[0] ;
}
/*********************************** command_bag_length_1 ***********************************/
void command_bag_length_1(u8 cmd)
{
    u8 sum ;
    u8 i,sum_h,sum_l ;
    TransmitByte(0xC0) ;
    TransmitByte(0x01) ;
    for(i=0;i<4;i++)
    {
       TransmitByte(0x00) ;
    }
    TransmitByte(0x00) ;
    TransmitByte(0x01) ;
    TransmitByte(cmd) ;
    sum = 0x01 + cmd ;
    sum_h = sum>>8 ;
    sum_l = sum&0xff ;
    TransmitByte(sum_h) ;
    TransmitByte(sum_l) ;
    TransmitByte(0xC0) ;
}
/*********************************** command_bag_length_2 ***********************************/
void command_bag_length_2( u8 cmd , u8 p1 )
{
    u8 sum ;
    u8 i,sum_h,sum_l ;
    TransmitByte(0xC0) ;
    TransmitByte(0x01) ;
    for(i=0;i<4;i++)
    {
       TransmitByte(0x00) ;
    }
    TransmitByte(0x00) ;
    TransmitByte(0x02) ;
    TransmitByte(cmd) ;
    TransmitByte(p1) ;
    sum = 0x02 + cmd + p1 ;
    sum_h = sum>>8 ;
    sum_l = sum&0xff ;
    TransmitByte(sum_h) ;
    TransmitByte(sum_l) ;
    TransmitByte(0xC0) ;
}
/*********************************** command_bag_length_3 ***********************************/
void command_bag_length_3( u8 cmd , u8 p1 , u8 p2 )
{
    u16 sum ;
    u8 i,sum_h,sum_l ;
    TransmitByte(0xC0) ;
    TransmitByte(0x01) ;
    for(i=0;i<4;i++)
    {
       TransmitByte(0x00) ;
    }
    TransmitByte(0x00) ;
    TransmitByte(0x03) ;
    TransmitByte(cmd) ;
    TransmitByte(p1) ;
    TransmitByte(p2) ;
    sum = 0x03 + cmd + p1 + p2 ;
    sum_h = sum>>8 ;
    sum_l = sum&0xff ;
    TransmitByte(sum_h) ;
    TransmitByte(sum_l) ;
    TransmitByte(0xC0) ;
}
/*********************************** command_bag_length_4 ***********************************/
void command_bag_length_4( u8 cmd , u8 p1 , u8 p2 , u8 p3 )
{
    u16 sum ;
    u8 i,sum_h,sum_l ;
    TransmitByte(0xC0) ;
    TransmitByte(0x01) ;
    for(i=0;i<4;i++)
    {
       TransmitByte(0x00) ;
    }
    TransmitByte(0x00) ;
    TransmitByte(0x04) ;
    TransmitByte(cmd) ;
    TransmitByte(p1) ;
    TransmitByte(p2) ;
    TransmitByte(p3) ;
    sum = 0x04 + cmd + p1 + p2 +p3 ;
    sum_h = sum>>8 ;
    sum_l = sum&0xff ;
    TransmitByte(sum_h) ;
    TransmitByte(sum_l) ;
    TransmitByte(0xC0) ;
}
/*********************************** command_bag_length_6 ***********************************/
void command_bag_length_6(u8 cmd , u8 p1 , u8 p2 , u8 p3 , u8 p4, u8 p5 )
{
    u16 sum ;
    u8 i,sum_h,sum_l ;
    TransmitByte(0xC0) ;
    TransmitByte(0x01) ;
    for(i=0;i<4;i++)
    {
       TransmitByte(0x00) ;
    }
    TransmitByte(0x00) ;
    TransmitByte(0x06) ;
    TransmitByte(cmd) ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -