国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
AD轉(zhuǎn)換
;/* ---  STC International Limited --------------------------------------------------- */
;/* ---  宏晶科技 姚永平  設(shè)計(jì) 2009/1/10   V1.0 ---------------------------------------- */
;/* ---  演示 STC12C5201AD 系列 MCU 的 A/D 轉(zhuǎn)換功能------------------------------------ */
;/* ---  Mobile: 13922805190 --------------------------------------------------------- */
;/* ---  Fax: 0755-82944243 ---------------------------------------------------------- */
;/* ---  Tel: 0755-82948409 ---------------------------------------------------------- */
;/* ---  Web: www.mcu-memory.com ----------------------------------------------------- */
;如果要在程序中使用或在文章中引用該程序,請?jiān)诔绦蛑谢蛭恼轮凶⒚魇褂昧撕昃Э萍嫉馁Y料及程序 
;本程序用宏晶的STC-ISP Ver 3.0A.PCB的下載編程工具測試通過,相關(guān)的A/D轉(zhuǎn)換結(jié)果在P1口上顯示 
;轉(zhuǎn)換結(jié)果也以 16 進(jìn)制形式輸出到串行口,可以用串行口調(diào)試程序觀察輸出結(jié)果。
;時(shí)鐘 18.432MHz, 波特率 = 9600。
;轉(zhuǎn)換結(jié)果也在 P1 口利用 LED 顯示出來, 方便觀察。
LED_MCU_START   EQU  P3.7
 
ADC_CONTR  EQU  0BCH   ;A/D轉(zhuǎn)換寄存器
ADC_RES   EQU  0BDH   ;8位A/D轉(zhuǎn)換結(jié)果寄存器
P1ASF      EQU  9DH    ;P1口中的相應(yīng)位作為模擬功能使用時(shí)的控制寄存器,如做A/D用,相應(yīng)位要置1 
 
ADC_Power_On_Speed_Channel_0 EQU 11100000B    ;P1.0作為A/D輸入
ADC_Power_On_Speed_Channel_1 EQU 11100001B    ;P1.1作為A/D輸入
ADC_Power_On_Speed_Channel_2 EQU 11100010B    ;P1.2作為A/D輸入
ADC_Power_On_Speed_Channel_3 EQU 11100011B    ;P1.3作為A/D輸入
ADC_Power_On_Speed_Channel_4 EQU 11100100B    ;P1.4作為A/D輸入
ADC_Power_On_Speed_Channel_5 EQU 11100101B    ;P1.5作為A/D輸入
ADC_Power_On_Speed_Channel_6 EQU 11100110B    ;P1.6作為A/D輸入
ADC_Power_On_Speed_Channel_7 EQU 11100111B    ;P1.7作為A/D輸入
;-------------------------------------------------
;定義變量
ADC_Channel_0_Result     EQU 30H    ;0通道A/D轉(zhuǎn)換結(jié)果
ADC_Channel_1_Result     EQU 31H    ;1通道A/D轉(zhuǎn)換結(jié)果
ADC_Channel_2_Result     EQU 32H    ;2通道A/D轉(zhuǎn)換結(jié)果
ADC_Channel_3_Result     EQU 33H    ;3通道A/D轉(zhuǎn)換結(jié)果
ADC_Channel_4_Result     EQU 34H    ;4通道A/D轉(zhuǎn)換結(jié)果
ADC_Channel_5_Result     EQU 35H    ;5通道A/D轉(zhuǎn)換結(jié)果
ADC_Channel_6_Result     EQU 36H    ;6通道A/D轉(zhuǎn)換結(jié)果
ADC_Channel_7_Result     EQU 37H    ;7通道A/D轉(zhuǎn)換結(jié)果
;--------------------------------------------------
    ORG   0000H
    LJMP  MAIN
 
    ORG   0050H
MAIN:
    CLR   LED_MCU_START             ;MCU工作指示燈 LED_MCU_START  EQU P3.7
    MOV   SP, #7FH                  ;設(shè)置堆棧
    
    ACALL Initiate_RS232            ;初始化串口 
    
    ACALL ADC_Power_On              ;開ADC電源, 第一次使用時(shí)要打開內(nèi)部模擬電源
                                   ;開ADC電源, 可適當(dāng)加延時(shí),1mS以內(nèi)就足夠了
    ACALL Set_P12_ASF               ;設(shè)置 P1.2 為模擬功能口 
    ACALL Set_ADC_Channel_2         ;設(shè)置 P1.2 作為A/D轉(zhuǎn)換通道
 
    ACALL Get_AD_Result             ;測量電壓并且取A/D轉(zhuǎn)換結(jié)果
    ACALL Send_AD_Result            ;發(fā)送轉(zhuǎn)換結(jié)果到 PC 機(jī)
 
    ACALL Set_P12_Normal_IO         ;設(shè)置 P1.2 為普通IO
    MOV   A, ADC_Channel_2_Result   ;用 P1 口顯示A/D轉(zhuǎn)換結(jié)果
    CPL   A
    MOV   P1, A 
 
Wait_Loop:
    SJMP  Wait_Loop                 ;停機(jī)
 
;-------------------------------------------------------------
;-------------------------------------------------------------
;-------------------------------------------------------------
;-------------------------------------------------------------
Initiate_RS232:                     ;串口初始化
    CLR   ES                        ;禁止串口中斷
    MOV   TMOD, #20H                ;設(shè)置 T1 為波特率發(fā)生器
    MOV   SCON, #50H                ;0101,0000 8位數(shù)據(jù)位, 無奇偶校驗(yàn)
    MOV   TH1, #0FBH                ;18.432MHz 晶振, 波特率 = 9600
    MOV   TL1, #0FBH
 
    SETB  TR1                       ;啟動(dòng) T1
    RET
;--------------------------------------------------------------
Send_Byte:
    CLR   TI
    MOV   SBUF, A
Send_Byte_Wait_Finish:
    JNB   TI, Send_Byte_Wait_Finish
    CLR   TI
    RET
;--------------------------------------------------------------
ADC_Power_On:
    PUSH  ACC
    ORL   ADC_CONTR, #80H           ;開A/D轉(zhuǎn)換電源
    MOV   A, #20H
    ACALL Delay                    ;開A/D轉(zhuǎn)換電源后要加延時(shí),1mS以內(nèi)就足夠了
    POP   ACC   
    RET
 
;-------------------------------------------------------------
;設(shè)置P1.2為模擬功能
Set_P12_ASF:
    PUSH  ACC
    MOV   A, #00000100B
    ORL   P1ASF, A
    POP   ACC
    RET
 
;-------------------------------------------------------------
;設(shè)置 P1.2 為普通IO
Set_P12_Normal_IO:
    PUSH  ACC
    MOV   A, #11111011B
    ANL   P1ASF, A
    POP   ACC
    RET
 
;-------------------------------------------------------------
Set_ADC_Channel_2:
    MOV   ADC_CONTR, #ADC_Power_On_Speed_Channel_2
                    ;選擇P1.2作為A/D轉(zhuǎn)換通道
    MOV   A, #05H   ;更換 A/D 轉(zhuǎn)換通道后要適當(dāng)延時(shí), 使輸入電壓穩(wěn)定
                    ;以后如果不更換 A/D 轉(zhuǎn)換通道的話, 不需要加延時(shí)
    ACALL Delay     ;切換 A/D 轉(zhuǎn)換通道,加延時(shí)20uS~200uS就可以了,與輸入電壓源的內(nèi)阻有關(guān)
                    ;如果輸入電壓信號源的內(nèi)阻在10K以下,可不加延時(shí)
    RET
 
;-------------------------------------------------------------
 
Send_AD_Result:
    PUSH  ACC
    MOV   A, ADC_Channel_2_Result   ;取 AD 轉(zhuǎn)換結(jié)果
    ACALL Send_Byte                 ;發(fā)送轉(zhuǎn)換結(jié)果到 PC 機(jī)
    POP   ACC
    RET
 
;----------------------------------------------------------
Get_AD_Result:
    PUSH  ACC                       ;入棧保護(hù) 
    MOV   ADC_RES, #0   
    ORL   ADC_CONTR, #00001000B     ;啟動(dòng) AD 轉(zhuǎn)換
    NOP   ;在對ADC_CONTR寄存器進(jìn)行寫操作后,要加4個(gè)空操作延時(shí),才能夠正確讀到ADC_CONTR的值
    NOP   ;在對ADC_CONTR寄存器進(jìn)行寫操作后,要加4個(gè)空操作延時(shí),才能夠正確讀到ADC_CONTR的值
    NOP   ;在對ADC_CONTR寄存器進(jìn)行寫操作后,要加4個(gè)空操作延時(shí),才能夠正確讀到ADC_CONTR的值
    NOP   ;在對ADC_CONTR寄存器進(jìn)行寫操作后,要加4個(gè)空操作延時(shí),才能夠正確讀到ADC_CONTR的值
Wait_AD_Finishe:
    MOV   A, #00010000B             ;判斷 AD 轉(zhuǎn)換是否完成
    ANL   A, ADC_CONTR
    JZ    Wait_AD_Finishe           ;AD 轉(zhuǎn)換尚未完成, 繼續(xù)等待
 
    ANL   ADC_CONTR, #11100111B     ;清0 ADC_FLAG, ADC_START 位, 停止A/D轉(zhuǎn)換
 
    MOV   A, ADC_RES
    MOV   ADC_Channel_2_Result, A   ;保存 AD 轉(zhuǎn)換結(jié)果
    POP   ACC   
    RET
;---------------------------------------------------------------
Delay:
    PUSH  02                        ;將寄存器組0 的 R2 入棧
    PUSH  03                        ;將寄存器組0 的 R3 入棧
    PUSH  04                        ;將寄存器組0 的 R4 入棧
    MOV   R4, A  
Delay_Loop0:
    MOV   R3, #200              ;2 CLOCK  ---------------------+
Delay_Loop1:                    ;                              |
    MOV   R2, #249              ;2 CLOCK  ------+              |
Delay_Loop:                     ;               | 1002 CLOCK   |200406 CLOCK
    DJNZ  R2, Delay_Loop        ;4 CLOCK        |              |
    DJNZ  R3, Delay_Loop1       ;4 CLOCK  ------+              |
    DJNZ  R4, Delay_Loop0       ;4 CLOCK  ---------------------+
 
    POP   04
    POP   03
    POP   02
    RET
;----------------------------------------------------------------
    END

 

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
單片機(jī)和Pc機(jī)串口通信<轉(zhuǎn)>_飛鳥留痕
用STC12C5410單片機(jī)內(nèi)置PWM模塊產(chǎn)生可調(diào)頻率的PWM信號-自己創(chuàng)作_yu5315...
射頻卡讀寫源代碼
學(xué)習(xí)型紅外遙控8路輸出端—巧妙利用家里的舊遙控器
LED點(diǎn)陣顯示屏工作原理及驅(qū)動(dòng)程序
基于單片機(jī)的OLED顯示器的應(yīng)用
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服