欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: max5481數(shù)字電位器測試仿真 [打印本頁]

作者: taotie    時(shí)間: 2025-10-17 12:14
標(biāo)題: max5481數(shù)字電位器測試仿真

BASCOM-AVR代碼:
' ==========================================================
' MAX5481數(shù)字電位器測試
'2025年10月17日
' ==========================================================
$regfile = "m16def.dat"     ' 指定ATmega16單片機(jī)型號(hào)定義文件
$crystal = 8000000          ' 設(shè)置晶振頻率為8MHz
$hwstack = 64               ' 設(shè)置硬件堆棧大小為64字節(jié)
$swstack = 64               ' 設(shè)置軟件堆棧大小為64字節(jié)
$framesize = 64             ' 設(shè)置幀大小為64字節(jié)

' ==========================================================
' 引腳定義
' ==========================================================
Cs Alias Portb.4            ' 定義片選引腳CS連接到PORTB.4

' ==========================================================
' SPI 配置
' ==========================================================
' 配置硬件SPI:無中斷、MSB先傳、主機(jī)模式、時(shí)鐘極性低、相位0、無從機(jī)選擇
Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Noss = 1
Spiinit                     ' 初始化SPI接口

' ==========================================================
' 變量定義
' ==========================================================
Dim Command_byte As Byte    ' SPI命令字節(jié)
Dim Data_high As Byte       ' 數(shù)據(jù)高字節(jié)
Dim Data_low As Byte        ' 數(shù)據(jù)低字節(jié)
Dim Test As Word            ' 測試值變量
Dim Temp_word As Word       ' 臨時(shí)數(shù)據(jù)變量

' ==========================================================
' 串口配置
' ==========================================================
'Config Serialin = Buffered , Size = 20  ' 注釋掉的串口輸入緩沖配置
'Enable Interrupts                       ' 注釋掉的中斷使能
$baud = 9600                ' 設(shè)置串口波特率為9600
Test = 1023                 ' 初始化測試值為1023(10位最大值)

' ==========================================================
' 子程序聲明
' ==========================================================
Declare Sub Write_wiper(byval Value As Word)  ' 聲明寫入Wiper位置的子程序

' ==========================================================
' 主程序開始
' ==========================================================
Waitms 10                   ' 延時(shí)10ms,確保系統(tǒng)穩(wěn)定

' ==========================================================
' 主循環(huán) - 循環(huán)測試不同的Wiper位置
' ==========================================================
Do
   ' 測試不同的阻值位置
   Call Write_wiper(Test)    ' 寫入最大阻值位置(1023)
   Waitms 200                ' 延時(shí)200ms

   Call Write_wiper(768)     ' 寫入75%位置(768)
   Waitms 200

   Call Write_wiper(512)     ' 寫入50%位置(512)  
   Waitms 200

   Call Write_wiper(256)     ' 寫入25%位置(256)
   Waitms 200

   Call Write_wiper(0)       ' 寫入最小阻值位置(0)
   Waitms 200
Loop
End                         ' 程序結(jié)束

' ==========================================================
' 寫入Wiper位置子程序 (10位數(shù)字電位器)
' SPI傳輸格式:8位命令 + 16位數(shù)據(jù)(高10位有效,低6位無效)
' ==========================================================
Sub Write_wiper(byval Value As Word)
   ' 命令字節(jié): 0x00 = 寫入Wiper寄存器并立即更新
   Command_byte = &H00

   ' 數(shù)據(jù)格式轉(zhuǎn)換:將10位數(shù)據(jù)左移6位,放到16位數(shù)據(jù)的D15-D6位置
   ' 因?yàn)閿?shù)字電位器只使用高10位,低6位被忽略
   Temp_word = Value * 64    ' 相當(dāng)于左移6位(乘以2^6=64)

   Data_high = High(temp_word)   ' 獲取16位數(shù)據(jù)的高字節(jié)
   Data_low = Low(temp_word)     ' 獲取16位數(shù)據(jù)的低字節(jié)

   ' SPI數(shù)據(jù)傳輸過程
   Reset Cs                 ' 片選置低,開始SPI傳輸
   Spiout Command_byte , 1  ' 發(fā)送命令字節(jié)
   Spiout Data_high , 1     ' 發(fā)送數(shù)據(jù)高字節(jié)
   Spiout Data_low , 1      ' 發(fā)送數(shù)據(jù)低字節(jié)
   Set Cs                   ' 片選置高,結(jié)束SPI傳輸

   ' 調(diào)試輸出 - 通過串口顯示傳輸?shù)臄?shù)據(jù)
   Print "輸出原始值: " ; Value              ' 輸出原始值
   Print "輸出命令字節(jié): " ; bin(command_byte)    ' 以二進(jìn)制格式輸出命令字節(jié)
   Print "輸出數(shù)據(jù)高字節(jié): " ; bin(data_high)      ' 以二進(jìn)制格式輸出數(shù)據(jù)高字節(jié)
   Print "輸出數(shù)據(jù)低字節(jié): " ; bin(data_low)        ' 以二進(jìn)制格式輸出數(shù)據(jù)低字節(jié)
   Print "---"                                  ' 輸出分隔線
End Sub







歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1