www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] listp=16f876A;編驛參數(shù)#include;預(yù)定義頭文件errorlevel0,-302;錯(cuò)誤輸出級(jí)別;配置字__CONFIG_XT_OSC&_CP_OFF&_WDT_OFF&_BODEN_OFF&_PWRTE_ON&_WRT_OFF&_LVP_OFF&_CPD_OFF;***************************

listp=16f876A;編驛參數(shù)
#include;預(yù)定義頭文件
errorlevel0,-302;錯(cuò)誤輸出級(jí)別


;配置字
__CONFIG_XT_OSC&_CP_OFF&_WDT_OFF&_BODEN_OFF&_PWRTE_ON&_WRT_OFF&_LVP_OFF&_CPD_OFF

;******************************************************************************
;**
;*全局公共變量定義*
;**
;******************************************************************************
cbLOCk0x70
w_temp:1;中斷時(shí)的現(xiàn)場(chǎng)保護(hù)W寄存器暫存單元
status_temp:1;中斷時(shí)的現(xiàn)場(chǎng)保護(hù)STATUS寄存器暫存單元
pclath_temp:1;中斷時(shí)的現(xiàn)場(chǎng)保護(hù)PCLATH寄存器暫存單元

AX:1;通用寄存器AX
BX:1;通用寄存器BX
CX:1;通用寄存器CX

delay_cnt:2;延時(shí)專用計(jì)數(shù)單元,2個(gè)字節(jié)

endc

;******************************************************************************
;**
;*在BANK1中定義的變量*
;**
;******************************************************************************
cblock0x20
base_ptr:2;顯示內(nèi)容基準(zhǔn)地址指針
CTRl_byte:1;內(nèi)容顯示控制字
;bit<0>=紅色
;bit<1>=綠色
;bit<2:4>=顯示方式,0:靜止,居左
;1:向左滾動(dòng),循環(huán)顯示
;bit<5:7>=保留
row_bytes:1;每一行的字節(jié)總數(shù)

cur_ptr:2;當(dāng)前取數(shù)據(jù)指針
row_cnt:1;行顯示計(jì)數(shù)器
col_cnt:1;列顯示計(jì)數(shù)器
col_offset:1;當(dāng)前顯示列偏移(與curr_ptr一起決定列的起點(diǎn))

endc

;******************************************************************************
;**
;*單片機(jī)復(fù)位執(zhí)行入口*
;**
;******************************************************************************
org0x000;

nop;預(yù)留ICD調(diào)試用
gotoMAIN;轉(zhuǎn)入主執(zhí)行程序入口

;******************************************************************************
;**
;* 單片機(jī) 中斷執(zhí)行入口*
;**
;******************************************************************************
org0x004;

MOV wfw_temp;保護(hù)現(xiàn)場(chǎng)
MOV fSTATUS,w
MOV wfstatus_temp
MOV fPCLATH,w
MOV wfpclath_temp

;此處編寫自已的中斷處理程序

MOV fpclath_temp,w;恢復(fù)現(xiàn)場(chǎng)
MOV wfPCLATH
MOV fstatus_temp,w
MOV wfSTATUS
swapfw_temp,f
swapfw_temp,w
retfie

;******************************************************************************
;**
;*主程序執(zhí)行入口*
;**
;******************************************************************************
MAIN:
callINIT_PORT;初始化PORTA,PORTB,PORTC口寄存器
MAIN_1:
bankselbase_ptr
MOV lwlow(Hz_TABLE_1);置顯示數(shù)據(jù)基準(zhǔn)指針
MOV wfbase_ptr
MOV lwhigh(HZ_TABLE_1)
MOV wfbase_ptr+1
MOV lw0x03;置顯示控制字,紅綠色,靜止,居左顯示
MOV wfctrl_byte
MOV lw0x08;置總顯示列寬度,4個(gè)漢字,8個(gè)字節(jié)
MOV wfrow_bytes
MAIN_2:
MOV lw0x00;置顯示列偏移值為0
MOV wfcol_offset
MOV lw0x00;置起啟顯示行從Y0..Y15循環(huán)
MOV wfrow_cnt
MOV fbase_ptr,w
MOV wfcur_ptr
MOV fbase_ptr+1,w
MOV wfcur_ptr+1
MAIN_3:
MOV fwrow_bytes
MOV wfcol_cnt
MAIN_4:
callGET_DATA;獲得一個(gè)字節(jié)數(shù)據(jù)

MOV wfAX
MOV fcol_offset,w
MOV wfBX
MOV lw0x08
MOV wfCX
callSHIFT_BYTE

decfszcol_cnt,f
gotoMAIN_4

callLATCH_REGISTER

bankselPORTB
MOV frow_cnt,w
MOV wfPORTB

callSLEEP_MS

incfrow_cnt,f
btfssrow_cnt,4
gotoMAIN_3
MAIN_5:
gotoMAIN_2
;******************************************************************************
;**
;*初始化PORT寄存器*
;**
;******************************************************************************
INIT_PORT:
BANKSELTRISB
clrfTRISB;PORTB寄存器的bit<0:3>用于行計(jì)數(shù)輸出
BANKSELPORTB
MOV lw0x10;PORTB的BIT4=1,關(guān)閉所有LED顯示
MOV wfPORTB

BANKSELADCON1;設(shè)置PORTA寄存器為數(shù)字I/O
MOV lw0x10
MOV wfADCON1
BANKSELTRISA;設(shè)置PORTA為數(shù)字輸出寄存器
clrfTRISA;bit<0>用于紅色移位數(shù)據(jù)輸出,bit<1>用于綠色.bit<2>為移位脈沖,bit<3>為鎖存脈沖

return;返回

;******************************************************************************
;**
;*將一個(gè)字節(jié)移入列寄存器*
;**
;*入口參數(shù):*
;*AX中為移位數(shù)據(jù)*
;*BX中為起始位0=D7,1=D6,...*
;*CX中為移動(dòng)計(jì)數(shù)*
;*出口參數(shù):*
;*無(wú)*
;**
;******************************************************************************
SHIFT_BYTE:
MOV fBX,f;是從D7開(kāi)如寫入列寄存器?
skpnz
gotoSHIFT_BYTE_2
SHIFT_BYTE_1:
rlfAX,f;從AX中移去多余的數(shù)據(jù)位
decfszBX,f
gotoSHIFT_BYTE_1

SHIFT_BYTE_2:
BANKSELPORTA;選擇端口A的所在頁(yè)面
SHIFT_BYTE_3:
MOV lw0x03;預(yù)置,紅、綠都為亮
rlfAX,f
skpc
MOV lw0x00;紅、綠都為滅
andwfctrl_byte,w;確定顯示的顏色
andlw0x03;屏蔽多余的位
MOV wfPORTA;數(shù)據(jù)輸出到移位總線上,PORTA的BIT<0:1>

nop
nop
nop
iorlw0x04;在PORTA的BIT<2>上生成一個(gè)上升沿移位脈沖,將數(shù)據(jù)移入列寄存器
MOV wfPORTA;置PORTA的BIT<2>為高電平
nop
nop
nop
andlw0x03
MOV wfPORTA;置PORTA的BIT<2>為低電平
nop;完成移位脈沖輸出
nop
nop

decfszCX,f;是否輸出了所有的數(shù)據(jù)位
gotoSHIFT_BYTE_2;繼續(xù)下一位輸出

return;完成一個(gè)字節(jié)的移位輸出,返回

;******************************************************************************
;**
;*將列寄存器的內(nèi)容輸出顯示*
;**
;*入口參數(shù):*
;*無(wú)*
;*出口參數(shù):*
;*無(wú)*
;**
;******************************************************************************
LATCH_REGISTER:
BANKSELPORTA;選擇端口A的所在頁(yè)面

MOV lw0x00;在PORTA的BIT<3>上生成一個(gè)↑上升沿鎖存脈沖,將移位數(shù)據(jù)打入鎖存器
MOV wfPORTA
nop
nop
nop
MOV lw0x08;置PORTA的BIT<3>為高電平
MOV wfPORTA
nop
nop
nop
MOV lw0x00;置PORTA的BIT<3>為低電平
MOV wfPORTA
nop
nop
nop

return;完成脈沖輸出,返回

;******************************************************************************
;**
;*廷時(shí)子程序*
;**
;*入口參數(shù):*
;*無(wú)*
;*出口參數(shù):*
;*無(wú)*
;**
;******************************************************************************
SLEEP_MS
MOV lw.2
MOV wfdelay_cnt+1
SLEEP_MS_1
MOV lw.199
MOV wfdelay_cnt
SLEEP_MS_2
nop
decfszdelay_cnt,f
gotoSLEEP_MS_2
decfszdelay_cnt+1,f
gotoSLEEP_MS_1

return

DELAY_NOP:
nop
nop
nop
nop
nop
return

;******************************************************************************
;**
;*查表獲得數(shù)據(jù)*
;**
;*入口參數(shù):*
;*cur_ptr中為查表指針*
;*出口參數(shù):*
;*W中為值*
;*說(shuō)明:*
;*本程序先將指針加一,再取數(shù)據(jù)*
;**
;******************************************************************************
GET_DATA:
incfcur_ptr,f
skpnz
incfcur_ptr+1,f
MOV fcur_ptr+1,w
MOV wfPCLATH
MOV fcur_ptr,w
MOV wfPCL

;******************************************************************************
;**
;*顯示數(shù)據(jù)定義*
;**
;******************************************************************************
HZ_TABLE_1:dt0x00;占位節(jié)字
dt0x00,0x80,0x00,0x00,0x01,0x00,0x10,0x80
dt0x00,0x80,0x41,0x84,0x21,0x08,0x10,0x80
dt0xFC,0x80,0x26,0x7E,0x11,0x0C,0x51,0x04
dt0x04,0xFC,0x14,0x44,0x09,0x10,0x51,0xFE
dt0x45,0x04,0x04,0x44,0x09,0x20,0x52,0x00
dt0x46,0x48,0x04,0x44,0x01,0x04,0x54,0x80
dt0x28,0x40,0xF4,0x44,0xFF,0xFE,0x58,0x60
dt0x28,0x40,0x14,0xC4,0x04,0x40,0x50,0x24
dt0x10,0x40,0x15,0x44,0x04,0x40,0x57,0xFE
dt0x28,0x40,0x16,0x54,0x04,0x40,0x54,0x44
dt0x24,0xA0,0x14,0x48,0x04,0x40,0x54,0x44
dt0x44,0xA0,0x10,0x40,0x08,0x40,0x54,0x44
dt0x81,0x10,0x10,0x40,0x08,0x42,0x54,0x44
dt0x01,0x08,0x28,0x40,0x10,0x42,0x14,0x44
dt0x02,0x0E,0x47,0xFE,0x20,0x3E,0x17,0xFC
dt0x0C,0x04,0x00,0x00,0x40,0x00,0x14,0x04




;******************************************************************************
;**
;*源程序結(jié)束*
;**
;******************************************************************************
END

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開(kāi)關(guān)電源具有效率高的特性,而且開(kāi)關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉