|
发表于 2015-8-30 11:15:43
|
显示全部楼层
- #include "main.h"
- const uint8_t table_seg[30]=
- {seg00,seg01,seg02,seg03,seg04,seg05,seg06,seg07,seg08,seg09,
- seg10,seg11,seg12,seg13,seg14,seg15,seg16,seg17,seg18,seg19,
- seg20,seg21,seg22,seg23,seg24,seg25,seg26,seg27,seg28,seg29
- };
- uint8_t r_dis_buff[32];//显示缓存区
- uint8_t r_key_buff[4]; //按键缓存区
- //====================================================================
- //===us延时函数===//
- void Delay_us(uint16_t byte)//100us = 750
- {
- uint16_t i;
- for(i = byte;i > 0;i--)
- {
- ;
- }
- }
- //====================================================================
- //===ms延时函数===//
- void Delay_ms(uint16_t byte)//1ms = 10
- {
- for(;byte > 0;byte--)
- {
- Delay_us(750);
- }
- }
- //====================================================================
- //===发送1字节===//
- void Send_Byte_Date(uint8_t change,uint8_t temp)
- {
- uint8_t i;
- if(change == RESET)
- {
- Set_tstb1_L();
- }
- else
- {
- Set_tstb2_L();
- }
- for(i = 8;i >0;i--)
- {
- Set_tclk_L();
- if((temp & 0x01) == SET)
- {
- Set_tdio_H();
- }
- else
- {
- Set_tdio_L();
- }
- Set_tclk_H();
- temp >>= 1;
- }
- }
- //====================================================================
- //===读取按键===//
- void Read_Key_Date(void)
- {
- uint8_t i,j;
- Set_tstb1_H();
- Set_tclk_H();
- Set_tdio_H();
- Send_Byte_Date(0,0x42);//读取按键值
- for(j = 0;j < 4;j++)
- {
- for(i = 8;i > 0;i--)
- {
- r_key_buff[j] >>= 1;
- Set_tclk_L();
- Delay_us(100);
- Set_tclk_H();
- if(Read_KeyData() == SET)
- {
- r_key_buff[j] |= 0x80;
- }
- else
- {
- r_key_buff[j] &= 0x7f;
- }
- }
- }
- Set_tstb1_H();
- }
- //====================================================================
- //===发送显示数据===//
- void Send_Display_Date(uint8_t change)
- {
- uint8_t j;
- if(change == RESET)
- {
- Set_tstb1_H();
- }
- else
- {
- Set_tstb2_H();
- }
- Set_tclk_H();
- Set_tdio_H();
- Send_Byte_Date(change,0x44);
- if(change == RESET)
- {
- Set_tstb1_H();
- }
- else
- {
- Set_tstb2_H();
- }
- for(j = 0;j < 16;j++)
- {
- if(change == RESET)
- {
- Send_Byte_Date(change,0xc0 + j);
- if(j >= 12)
- {
- Send_Byte_Date(change,r_dis_buff[j]);
- }
- else
- {
- Send_Byte_Date(change,table_seg[r_dis_buff[j]]);
- }
- Set_tstb1_H();
- }
- else
- {
- Send_Byte_Date(change,0xc0 + j);
- if((j == 4) || (j == 6))
- {
- Send_Byte_Date(change,r_dis_buff[j + 16]);
- }
- else
- {
- Send_Byte_Date(change,table_seg[r_dis_buff[j + 16]]);
- }
- Set_tstb2_H();
- }
- }
- Send_Byte_Date(change,0x89);
- if(change == RESET)
- {
- Set_tstb1_H();
- }
- else
- {
- Set_tstb2_H();
- }
- }
复制代码 |
|