標(biāo)題:
PT6311 HT1628的avr單片機(jī)詳細(xì)例程
[打印本頁]
作者:
zuozuo1024
時(shí)間:
2019-5-27 13:32
標(biāo)題:
PT6311 HT1628的avr單片機(jī)詳細(xì)例程
PT6311 HT1628的詳細(xì)例程,連續(xù)地址讀寫,按鍵掃描,LED顯示都有詳細(xì)的例程包。歡迎交流,例程都經(jīng)過了驗(yàn)證是OK的。
0.png
(10.05 KB, 下載次數(shù): 68)
下載附件
2019-5-28 04:50 上傳
單片機(jī)源程序如下:
/*----------------------------------------------------------------------------*/
// Tools : ICC-AVR6.31A
// File : Main.C
// Target : M8
// Crystal : 8.000MHz
// Date : 2015-03-13 18:36:18
// Amend : 2015-03-16 11:26:09
// Function: ET6226-LED、HT1628-LED、PT6311-VFD面板測試
// Notes : 5P/6P、7P/8P接口, 效果燈控制, IR接收自動(dòng)測試
/*----------------------------------------------------------------------------*/
// 包含頭文件
#include <macros.h>
#include <iom8v.h>
#include "ICCAVRMACRO.H" // AVR 宏定義
#include "ICCAVRIO.H" // IO口配置
#include "Timer2.H" // 38K載波調(diào)制
#include "FD650.H" // ET6226 驅(qū)動(dòng)
#include "HT1628.H" // HT1628 驅(qū)動(dòng)
#include "PT6311.H" // PT6311 驅(qū)動(dòng)
/*----------------------------------------------------------------------------*/
// 數(shù)據(jù)區(qū)
unsigned char IR_PASS[4] = {19, 10, 5, 5}; // "PASS"
unsigned char IR_FAIL[4] = {15, 10, 1, 17}; // "FAIL"
/*----------------------------------------------------------------------------*/
// 函數(shù)聲明
void Delay_1mS(void);
void Delay_mS(unsigned int n);
void GPIO_Init(void);
void Boot_Show(void);
// ET6226
void IR_Test_ET6226(void);
void Device_Test_ET6226(void);
unsigned char Device_Check_ET6226(void);
// HT1628
void IR_Test_HT1628(void);
void Device_Test_HT1628(void);
unsigned char Device_Check_HT1628(void);
// PT6311
void IR_Test_PT6311(void);
void Device_Test_PT6311(void);
unsigned char Device_Check_PT6311(void);
/*----------------------------------------------------------------------------*/
// 延時(shí)函數(shù)定義
void Delay_1mS(void) // 8MHz
{
unsigned char i, j = 9;
do{i = 221; do{i--;}while(i); j--;}while(j);
}
void Delay_mS(unsigned int n)
{
while(n--)
{
Delay_1mS();
}
}
/*----------------------------------------------------------------------------*/
// GPIO初始化
void GPIO_Init(void)
{
DDRB = 0x00; // 輸入
DDRC = 0x00;
DDRD = 0x00;
PORTB = 0xFF; // 上拉
PORTC = 0xFF;
PORTD = 0xFF;
LED_B_OUT; // 輸出
LED_B_OFF; // 藍(lán)滅
LED_IR_OUT; // 輸出
LED_IR_OFF; // IR關(guān)
}
/*----------------------------------------------------------------------------*/
// LED 閃爍指示
// num: 閃爍次數(shù)
void LED_Blink(unsigned char num)
{
while(num--)
{
LED_B_ON; Delay_mS(150);
LED_B_OFF; Delay_mS(150);
}
}
/*----------------------------------------------------------------------------*/
// 系統(tǒng)初始化
void Boot_Show(void)
{
GPIO_Init(); // GPIO 初始化
TC2_Init(); // TIMER2 初始化
LED_Blink(2); // LED閃爍、等待上電穩(wěn)定
}
/*----------------------------------------------------------------------------*/
// 主函數(shù)
void main(void)
{
unsigned char device = NULL;
Boot_Show();
while(1)
{
FD_Init(); // 初始化 ET6226
device = Device_Check_ET6226(); // 設(shè)備檢測 ET6226
if(device) // 有設(shè)備插入
{
Device_Test_ET6226(); // 設(shè)備測試
}
HT_Init(); // 初始化 HT1628
device = Device_Check_HT1628(); // 設(shè)備檢測 HT1628
if(device) // 有設(shè)備插入
{
Device_Test_HT1628(); // 設(shè)備測試
}
VFD_Init(); // 初始化 PT6311
device = Device_Check_PT6311(); // 設(shè)備檢測 PT6311
if(device) // 有設(shè)備插入
{
Device_Test_PT6311(); // 設(shè)備測試
}
Delay_mS(500); // 每隔0.5S檢測一次是否有設(shè)備插入
}
}
/*----------------------------------------------------------------------------*/
// 設(shè)備檢測
// ret: ( 0 ~ 1 ) 0 = no, 1 = yes
unsigned char Device_Check_ET6226(void)
{
unsigned char Input_device;
unsigned char FD_Ack = 1;
FD_IIC_Start(); // 開始總線
FD_IIC_Write_8bits(FD650_GET_KEY); // 寫入指令0x4F
FD_Ack = FD_IIC_Get_Ack(); // 接收應(yīng)答位
FD_IIC_Read_8bits(); // 讀出數(shù)據(jù)
FD_IIC_Set_Ack(1); // 發(fā)送應(yīng)答位,不應(yīng)答,接收數(shù)據(jù)結(jié)束
FD_IIC_Stop(); // 結(jié)束總線
if(FD_Ack) { Input_device = NULL; }// 無設(shè)備插入
else { Input_device = TRUE; }// 有設(shè)備插入
return (Input_device);
}
/*----------------------------------------------------------------------------*/
// IR接收測試
void IR_Test_ET6226(void)
{
unsigned char i;
unsigned char IR_high_level;// IR 采樣高電平個(gè)數(shù)
unsigned char IR_status; // IR 初始狀態(tài)
IR_high_level = 0; // 初始化數(shù)據(jù)
FD_UnInit(); // SDA設(shè)置為輸入
Delay_mS(10); // 延時(shí)等待電平穩(wěn)定
for(i = 0; i < 20; i++) // 采樣20個(gè)點(diǎn)(20 * 5mS = 100mS)
{
Delay_mS(5); // 延時(shí)
if(FD_SDA_TST) // 采樣
IR_high_level++;// 正常
}
if(IR_high_level >= 5) // 至少有5個(gè)高電平
{
IR_status = 1; // 正常
}
else
{
IR_status = 0; // 短路
}
TC2_START(); // 38K ON
Delay_mS(50); // 延時(shí)
if(IR_status)
{
if(!FD_SDA_TST) // IR 接收成功OK
{
FD_LED_ON; // 效果燈亮
FD_Power_Led(0);// 紅燈滅
FD_Lock_Led(1); // 綠燈亮
FD_Background_Led(1); // 藍(lán)燈亮
FD_Prints(IR_PASS, 1);
}
else // IR 接收失敗NG
{
FD_LED_OFF; // 效果燈滅
FD_Power_Led(1);// 紅燈亮
FD_Lock_Led(0); // 綠燈滅
FD_Background_Led(0); // 藍(lán)燈滅
FD_Prints(IR_FAIL, 1);
}
}
else // IR 對地短路
{
FD_LED_OFF; // 效果燈滅
FD_Power_Led(1); // 紅燈亮
FD_Lock_Led(0); // 綠燈滅
FD_Background_Led(0); // 藍(lán)燈滅
FD_Prints(IR_FAIL, 1);
}
TC2_STOP(); // 38K OFF
LED_IR_OFF;
}
/*----------------------------------------------------------------------------*/
// 設(shè)備測試
void Device_Test_ET6226(void)
{
unsigned char i;
unsigned char tmp;
unsigned char device; // 檢測設(shè)備
unsigned char led_status; // LED狀態(tài)
unsigned char key_val[4]; // 按鍵數(shù)據(jù) 顯示用
unsigned char key; // 按鍵鍵值 檢測用
LED_Blink(1); // 設(shè)備插入指示
// ----------------------------------
// 變量初始化
{
for(i = 0; i < 4; i++)
{
key_val[i] = 0x00;
}
i = 0;
key = 0;
tmp = 0;
device = NULL;
led_status = 0;
}
// ----------------------------------
// FD650 全亮全滅測試
device = Device_Check_ET6226(); // 插入設(shè)備檢測
if(device)
{
FD_Init(); // 初始化
for(i = 0; i < 10; i++) // 10 * 200mS = 2000mS
{
FD_Set_Brightness(5); // 開啟顯示和鍵盤,8段顯示方式,5級亮度
FD_Full(); // 數(shù)碼管全部置高
FD_LED_ON; // 效果燈亮
Delay_mS(200); // 全亮
}
FD_Null(); // 清顯示
FD_LED_OFF; // 效果燈滅
Delay_mS(500); // 全滅
}
// ----------------------------------
// FD650 數(shù)碼管位測試----
device = Device_Check_ET6226(); // 插入設(shè)備檢測
if(device)
{
for(i = 0; i < 4; i++) // 共四位
{
FD_Printc(i, 0x40, 0); // 輸出'-'
Delay_mS(150);
FD_Printc(i, 0x00, 0); // 輸出' '
}
Delay_mS(150);
}
// ----------------------------------
// FD650 數(shù)碼管段測試----
device = Device_Check_ET6226(); // 插入設(shè)備檢測
if(device)
{
for(i = 0; i < 7; i++) // 共七段
{
tmp = 0x01 << i;
FD_Fill(tmp); // 輸出段碼
FD_Update(); // 刷新顯示
Delay_mS(150);
}
Delay_mS(150);
FD_Null(); // 清顯示
}
// ----------------------------------
// FD650 LED燈測試----
device = Device_Check_ET6226(); // 插入設(shè)備檢測
if(device)
{
// 秒點(diǎn)閃爍
FD_Set_Led(1, 1); // 亮
Delay_mS(200);
FD_Set_Led(1, 0); // 滅
// 三個(gè)LED燈依次閃爍(綠、紅、藍(lán))
for(i = 0; i < 4; i++)
{
if(i != 1)
{
FD_Set_Led(i, 1); // 亮
Delay_mS(200);
FD_Set_Led(i, 0); // 滅
}
}
// 效果燈閃爍
FD_LED_ON; // 亮
Delay_mS(200);
FD_LED_OFF; // 滅
}
// ----------------------------------
// FD650 按鍵和IR測試
do{
FD_Set_Brightness(5); // 開啟顯示和鍵盤,8段顯示方式,5級亮度
tmp = FD_Get_Key(); // 讀取按鍵
if((tmp < 29) && (tmp > 0)) // 按鍵有效
{
if(key != tmp) // 鍵值不同
{
key = tmp; // 鍵值同步
for(i = 0; i < 4; i++)
key_val[i] = tmp;
FD_Prints(key_val, 1); // 顯示鍵值
led_status ^= 0x01; // 燈狀態(tài)取反
FD_Lock_Led(led_status);
FD_Power_Led(led_status);
FD_Background_Led(led_status);
if(led_status) { FD_LED_ON; }
else { FD_LED_OFF; }
if(tmp == 2) // Power按鍵
{
Delay_mS(100); // 顯示鍵值延時(shí)
IR_Test_ET6226(); // IR接收測試
}
}
}
Delay_mS(20); // 按鍵掃描延時(shí)
device = Device_Check_ET6226(); // 插入設(shè)備檢測
}while(device); // 循環(huán)檢測按鍵,直到設(shè)備斷開
FD_LED_OFF; // 效果燈滅
LED_Blink(1); // 設(shè)備拔出指示
}
/*----------------------------------------------------------------------------*/
// 設(shè)備檢測
// ret: ( 0 ~ 1 ) 0 = no, 1 = yes
unsigned char Device_Check_HT1628(void)
{
unsigned char i;
unsigned char key;
HT_Write_Command(RD_DAT | ADD_AUTO | MODE_NORMAL); // 讀按鍵操作命令
NOP(); NOP(); NOP();
for(i = 0; i < 5; i++)
{
key = HT_Read_Data();
NOP(); NOP();
if(key) { break; }
}
HT_STB_SET;
if(key == 0xFF)
return (0);
else
return (1);
}
/*----------------------------------------------------------------------------*/
// IR接收測試
void IR_Test_HT1628(void)
{
unsigned char i;
unsigned char IR_high_level;// IR 采樣高電平個(gè)數(shù)
unsigned char IR_status; // IR 初始狀態(tài)
IR_high_level = 0; // 初始化數(shù)據(jù)
HT_DIO_IN; // DIO設(shè)置為輸入
Delay_mS(10); // 延時(shí)等待電平穩(wěn)定
for(i = 0; i < 20; i++) // 采樣20個(gè)點(diǎn)(20 * 5mS = 100mS)
{
Delay_mS(5); // 延時(shí)
if(HT_DIO_TST) // 采樣
IR_high_level++;// 正常
}
if(IR_high_level >= 5) // 至少有5個(gè)高電平
{
IR_status = 1; // 正常
}
else
{
IR_status = 0; // 短路
}
TC2_START(); // 38K ON
Delay_mS(50); // 延時(shí)
if(IR_status)
{
if(!HT_DIO_TST) // IR 接收成功OK
{
HT_LED_ON; // 效果燈亮
HT_LOCK_ON; // 信號燈亮
HT_Prints(IR_PASS, 1);
}
else // IR 接收失敗NG
{
HT_LED_OFF; // 效果燈滅
HT_LOCK_OFF; // 信號燈滅
HT_Prints(IR_FAIL, 1);
}
}
else // IR 對地短路
{
HT_LED_OFF; // 效果燈滅
HT_LOCK_OFF; // 信號燈滅
HT_Prints(IR_FAIL, 1);
}
TC2_STOP(); // 38K OFF
LED_IR_OFF;
}
/*----------------------------------------------------------------------------*/
// 設(shè)備測試
void Device_Test_HT1628(void)
{
unsigned char i;
unsigned char tmp;
unsigned char device; // 檢測設(shè)備
unsigned char led_status; // LED狀態(tài)
unsigned char key_val[4]; // 按鍵數(shù)據(jù) 顯示用
unsigned char key; // 按鍵鍵值 檢測用
LED_Blink(1); // 設(shè)備插入指示
// ----------------------------------
// 變量初始化
{
for(i = 0; i < 4; i++)
{
key_val[i] = 0x00;
}
i = 0;
key = 0;
tmp = 0;
device = NULL;
led_status = 0;
}
// ----------------------------------
// HT1628 全亮全滅測試
device = Device_Check_HT1628(); // 插入設(shè)備檢測
if(device)
{
HT_Init(); // 初始化
for(i = 0; i < 10; i++) // 10 * 200mS = 2000mS
{
HT_Write_Command(MODE_N_DIG); // 顯示模式: 5位12段
HT_Set_Brightness(3); // 3級亮度
HT_Full(); // 數(shù)碼管全部置高
HT_LED_ON; // 效果燈亮
HT_LOCK_ON; // 信號燈亮
Delay_mS(200); // 全亮
}
HT_Null(); // 清顯示
HT_LED_OFF; // 效果燈滅
HT_LOCK_OFF; // 信號燈滅
Delay_mS(500); // 全滅
}
// ----------------------------------
// HT1628 數(shù)碼管位測試----
device = Device_Check_HT1628(); // 插入設(shè)備檢測
if(device)
{
for(i = 0; i < 4; i++) // 共四位
{
HT_Printc(i, 0x40, 0); // 輸出'-'
Delay_mS(150);
HT_Printc(i, 0x00, 0); // 輸出' '
}
Delay_mS(150);
}
// ----------------------------------
// HT1628 數(shù)碼管段測試----
device = Device_Check_HT1628(); // 插入設(shè)備檢測
if(device)
{
for(i = 0; i < 7; i++) // 共七段
{
tmp = 0x01 << i;
HT_Fill(tmp); // 輸出段碼
HT_Update(); // 刷新顯示
Delay_mS(150);
}
Delay_mS(150);
HT_Null(); // 清顯示
}
// ----------------------------------
// HT1628 LED燈測試----
device = Device_Check_HT1628(); // 插入設(shè)備檢測
if(device)
{
HT_Second(1); // 秒點(diǎn)亮
Delay_mS(200);
HT_Second(0); // 秒點(diǎn)滅
HT_LOCK_ON; // 信號燈亮
Delay_mS(200);
HT_LOCK_OFF; // 信號燈滅
HT_LED_ON; // 效果燈亮
Delay_mS(200);
HT_LED_OFF; // 效果燈滅
}
// ----------------------------------
// HT1628 按鍵和IR測試
do{
HT_Write_Command(MODE_N_DIG); // 顯示模式: 5位12段
HT_Set_Brightness(3); // 3級亮度
tmp = HT_Get_Key(); // 讀取按鍵
if((tmp < 21) && (tmp > 0)) // 按鍵有效
{
if(key != tmp) // 鍵值不同
{
key = tmp; // 鍵值同步
for(i = 0; i < 4; i++)
key_val[i] = tmp;
HT_Prints(key_val, 1); // 顯示鍵值
led_status ^= 0x01; // 燈狀態(tài)取反
if(led_status)
{
HT_LOCK_ON; // 信號燈亮
HT_LED_ON; // 效果燈亮
}
else
{
HT_LOCK_OFF; // 信號燈滅
HT_LED_OFF; // 效果燈滅
}
if(tmp == 2) // Power按鍵
{
Delay_mS(100); // 顯示鍵值延時(shí)
IR_Test_HT1628(); // IR接收測試
}
}
}
Delay_mS(20); // 按鍵掃描延時(shí)
device = Device_Check_HT1628(); // 插入設(shè)備檢測
}while(device); // 循環(huán)檢測按鍵,直到設(shè)備斷開
HT_LED_OFF; // 效果燈滅
HT_LOCK_OFF; // 信號燈滅
LED_Blink(1); // 設(shè)備拔出指示
}
/*----------------------------------------------------------------------------*/
// 設(shè)備檢測
// ret: ( 0 ~ 1 ) 0 = no, 1 = yes
unsigned char Device_Check_PT6311(void)
{
unsigned char i;
unsigned char key;
PT_Write_Command(RD_DAT | ADD_AUTO | MODE_NORMAL); // 讀按鍵操作命令
NOP(); NOP(); NOP();
for(i = 0; i < 6; i++)
{
key = PT_Read_Byte();
NOP(); NOP();
if(key) { break; }
}
PT_STB_SET;
if(key == 0xFF)
return (0);
else
return (1);
}
/*----------------------------------------------------------------------------*/
// IR接收測試
void IR_Test_PT6311(void)
{
unsigned char i;
unsigned char IR_high_level;// IR 采樣高電平個(gè)數(shù)
unsigned char IR_status; // IR 初始狀態(tài)
IR_high_level = 0; // 初始化數(shù)據(jù)
Delay_mS(10); // 延時(shí)等待電平穩(wěn)定
for(i = 0; i < 20; i++) // 采樣20個(gè)點(diǎn)(20 * 5mS = 100mS)
{
Delay_mS(5); // 延時(shí)
if(PT_DOUT_TST) // 采樣
IR_high_level++;// 正常
}
if(IR_high_level >= 5) // 至少有5個(gè)高電平
{
IR_status = 1; // 正常
}
else
{
IR_status = 0; // 短路
}
TC2_START(); // 38K ON
Delay_mS(50); // 延時(shí)
if(IR_status)
{
if(!PT_DOUT_TST) // IR 接收成功OK
{
VFD_Null(); // 清屏
PT_LED_ON; // 效果燈亮
VFD_Power_Led(0); // 紅燈滅
VFD_Lock_Led(1); // 綠燈亮
VFD_RedBlue_Led(1); // 藍(lán)燈亮
VFD_Background_Led(1); // 導(dǎo)光亮
VFD_Printsf(4, "PASS");
}
else // IR 接收失敗NG
{
VFD_Null(); // 清屏
PT_LED_OFF; // 效果燈滅
VFD_Power_Led(1); // 紅燈亮
VFD_Lock_Led(0); // 綠燈滅
VFD_RedBlue_Led(0); // 藍(lán)燈滅
VFD_Background_Led(0); // 導(dǎo)光滅
VFD_Printsf(4, "FAIL");
}
}
else // IR 對地短路
{
VFD_Null(); // 清屏
PT_LED_OFF; // 效果燈滅
VFD_Power_Led(1); // 紅燈亮
VFD_Lock_Led(0); // 綠燈滅
VFD_RedBlue_Led(0); // 藍(lán)燈滅
VFD_Background_Led(0); // 導(dǎo)光滅
VFD_Printsf(4, "FAIL");
}
TC2_STOP(); // 38K OFF
LED_IR_OFF;
}
/*----------------------------------------------------------------------------*/
// 設(shè)備測試 PT6311 13位VFD顯示
void Device_Test_PT6311(void)
{
unsigned char i;
unsigned int tmp;
unsigned char device; // 檢測設(shè)備
unsigned char led_status; // LED狀態(tài)
unsigned char key_val[12]; // 按鍵數(shù)據(jù) 顯示用
unsigned char key1, key2; // 按鍵鍵值 檢測用
LED_Blink(1); // 設(shè)備插入指示
// ----------------------------------
// 變量初始化
{
for(i = 0; i < 12; i++)
{
key_val[i] = 0x00;
}
i = 0;
tmp = 0;
key1 = 0;
key2 = 0;
device = NULL;
led_status = 0;
}
// ----------------------------------
// VFD 全亮全滅測試
device = Device_Check_PT6311(); // 插入設(shè)備檢測
if(device)
{
VFD_Init(); // 初始化
for(i = 0; i < 10; i++) // 10 * 200mS = 2000mS
{
PT_Write_Command(MODE_13DIG_15SEG); // 13位15段顯示模式
VFD_Set_Brightness(8); // 亮度8級
VFD_Full(); // VFD全部亮
PT_LED_ON; // 效果燈亮
VFD_Power_Led(1); // 紅燈亮
VFD_Lock_Led(1); // 綠燈亮
VFD_RedBlue_Led(1); // 藍(lán)燈亮
VFD_Background_Led(1); // 導(dǎo)光亮
Delay_mS(200); // 全亮
}
VFD_Null(); // 清顯示
PT_LED_OFF; // 效果燈滅
VFD_Power_Led(0); // 紅燈滅
VFD_Lock_Led(0); // 綠燈滅
VFD_RedBlue_Led(0); // 藍(lán)燈滅
VFD_Background_Led(0); // 導(dǎo)光滅
Delay_mS(500); // 全滅
}
// ----------------------------------
// VFD 位測試----
device = Device_Check_PT6311(); // 插入設(shè)備檢測
if(device)
{
for(i = 0; i < 13; i++)
{
VFD_Show(i, 0xFFFF);
Delay_mS(150);
VFD_Show(i, 0x0000);
}
Delay_mS(150);
VFD_Null(); // 清顯示
for(i = 0; i < 13; i++)
{
VFD_Show(i, 0xFFFF);
Delay_mS(150);
}
Delay_mS(150);
VFD_Null(); // 清顯示
}
// ----------------------------------
// VFD 段測試----
device = Device_Check_PT6311(); // 插入設(shè)備檢測
if(device)
{
for(i = 0; i < 15; i++)
{
tmp = 0x0001 << i;
VFD_Fill(tmp); // 輸出段碼
VFD_Update(); // 刷新顯示
Delay_mS(150);
}
Delay_mS(150);
VFD_Null(); // 清顯示
tmp = 0;
for(i = 0; i < 15; i++)
{
tmp |= 0x0001 << i;
VFD_Fill(tmp); // 輸出段碼
VFD_Update(); // 刷新顯示
Delay_mS(150);
}
Delay_mS(150);
VFD_Null(); // 清顯示
}
// ----------------------------------
// VFD LED燈測試----
device = Device_Check_PT6311(); // 插入設(shè)備檢測
if(device)
{
// 四個(gè)LED燈依次閃爍(綠、紅、藍(lán)、藍(lán))
for(i = 0; i < 4; i++)
{
VFD_Set_LED(i, 1); // 亮
Delay_mS(200);
VFD_Set_LED(i, 0); // 滅
}
// 效果燈閃爍
PT_LED_ON; // 亮
Delay_mS(200);
PT_LED_OFF; // 滅
}
// ----------------------------------
// VFD 按鍵和IR測試
do{
PT_Write_Command(MODE_13DIG_15SEG); // 13位15段顯示模式
VFD_Set_Brightness(8); // 亮度8級
key1 = VFD_Get_Key(); // 讀取按鍵
if((key1 < 9) && (key1 > 0)) // 按鍵有效
{
if(key2 != key1) // 鍵值不同
{
key2 = key1; // 鍵值同步
for(i = 0; i < 11; i++)
key_val[i] = key2 + '0';
VFD_Prints(1, key_val); // 顯示鍵值
led_status ^= 0x01; // 燈狀態(tài)取反
VFD_Power_Led(led_status);
VFD_Lock_Led(led_status);
VFD_RedBlue_Led(led_status);
VFD_Background_Led(led_status);
if(led_status) { PT_LED_ON; }
else { PT_LED_OFF; }
if(key2 == 2) // Power按鍵
{
Delay_mS(100); // 顯示鍵值延時(shí)
IR_Test_PT6311(); // IR接收測試
}
}
}
Delay_mS(20); // 按鍵掃描延時(shí)
device = Device_Check_PT6311(); // 插入設(shè)備檢測
}while(device); // 循環(huán)檢測按鍵,直到設(shè)備斷開
PT_LED_OFF; // 效果燈滅
LED_Blink(1); // 設(shè)備拔出指示
}
復(fù)制代碼
所有資料51hei提供下載:
Test_6226_1628_6311.zip
(60.82 KB, 下載次數(shù): 49)
2019-5-27 13:32 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
新鄉(xiāng)家電維修
時(shí)間:
2025-3-29 20:30
我找不到匯編語言,下載看看也不懂,PT6311控制LED沒成功,LED端口有控制燈絲和負(fù)壓的啟動(dòng)引腳,啊啊啊
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1