欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      STC單片機(jī)通用AD轉(zhuǎn)換程序[優(yōu)秀范文5篇]

      時(shí)間:2019-05-15 12:47:41下載本文作者:會(huì)員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《STC單片機(jī)通用AD轉(zhuǎn)換程序》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《STC單片機(jī)通用AD轉(zhuǎn)換程序》。

      第一篇:STC單片機(jī)通用AD轉(zhuǎn)換程序

      福星電子網(wǎng)http://

      #include

      #include

      sfr P1_ADC_EN = 0x97;//A/D轉(zhuǎn)換功能允許寄存器

      sfr ADC_CONTR = 0xC5;//A/D轉(zhuǎn)換控制寄存器

      sfr ADC_DATA = 0xC6;//A/D轉(zhuǎn)換結(jié)果寄存器 高8位,sfr ADC_LOW2 = 0xC7;//A/D轉(zhuǎn)換結(jié)果寄存器 低2位,如果是8位AD無此寄存器。

      #define uchar unsigned char;

      #define uint unsigned int;

      Uintad_out1,ad_out2;

      void delay(uchar delay_time)// 延時(shí)函數(shù)

      {

      uchar n;

      uint m;

      for(n=0;n

      {

      for(m=0;m<10000;m++);

      }

      }

      uchar get_AD_result(uchar channel)

      {

      uchar AD_finished = 0;// 存儲(chǔ) A/D 轉(zhuǎn)換標(biāo)志

      ADC_DATA = 0;

      ADC_CONTR = channel;// 選擇 A/D 當(dāng)前通道

      _nop_();_nop_();_nop_();//使輸入電壓達(dá)到穩(wěn)定

      _nop_();_nop_();_nop_();

      ADC_CONTR |= 0x08;//0000,1000 令 ADC_START = 1, 啟動(dòng)A/D 轉(zhuǎn)換

      AD_finished = 0;

      while(AD_finished == 0)// 等待A/D 轉(zhuǎn)換結(jié)束

      {

      AD_finished =(ADC_CONTR & 0x10);//0001,0000, ADC_FLAG ==1測試A/D轉(zhuǎn)換結(jié)束否

      }

      ADC_CONTR &= 0xF7;//1111,0111 令 ADC_START = 0, 關(guān)閉A/D 轉(zhuǎn)換,return(ADC_DATA);// 返回 A/D 轉(zhuǎn)換結(jié)果

      }

      void main()

      {

      P1 = P1 | 0x01;// 0000,0001,P1.0為 A/D 轉(zhuǎn)換,即通道0與1

      福星電子網(wǎng)http://

      P1_ADC_EN = 0x01;//0000,0001, P1 的P1.0設(shè)置為 A/D 轉(zhuǎn)換輸入腳// 斷開P1.0,P1.1 內(nèi)部上拉電阻

      while(1)

      {

      get_AD_result(0);

      delay(10);

      //可以多采集幾次求均值

      //8位數(shù)據(jù)輸出,參考電壓5V

      ad_out1=(ADC_DATA*5)/256

      //8位數(shù)據(jù)輸出,參考電壓5V

      ad_out2=((ADC_DATA*4)+ ADC_LOW2)/1024

      }

      }

      第二篇:第十章 AD轉(zhuǎn)換電路教案

      第九章 數(shù)模/模數(shù)轉(zhuǎn)換電路

      一、概念

      1、信號(hào)分類:時(shí)間連續(xù)、數(shù)值連續(xù)的信號(hào)(模擬信號(hào))

      時(shí)間連續(xù)、數(shù)值離散的信號(hào) 時(shí)間離散、數(shù)值連續(xù)的信號(hào)

      時(shí)間離散、數(shù)值離散的信號(hào)(數(shù)字信號(hào))

      2、典型的模擬信號(hào)處理系統(tǒng)由三部分組成:

      (1)模數(shù)轉(zhuǎn)換器、(2)數(shù)字信號(hào)處理器、(3)數(shù)模轉(zhuǎn)換器。

      3、模數(shù)轉(zhuǎn)換器將待處理的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào);

      數(shù)字信號(hào)處理器對(duì)轉(zhuǎn)換過來的數(shù)字信號(hào)進(jìn)行處理,得到數(shù)字的處理結(jié)果;

      數(shù)模轉(zhuǎn)換器將處理結(jié)果轉(zhuǎn)換成模擬信號(hào)。

      二、D/A轉(zhuǎn)換器

      1、D/A轉(zhuǎn)換器功能:將數(shù)字量成正比地轉(zhuǎn)換成模擬量

      D/A轉(zhuǎn)換器由電阻網(wǎng)絡(luò)、模擬電子開關(guān)及求和運(yùn)算放大器

      3、權(quán)電阻網(wǎng)絡(luò)數(shù)模轉(zhuǎn)換器

      然而,位權(quán)電阻網(wǎng)絡(luò)數(shù)模轉(zhuǎn)換器包含種電阻,要在比較大的阻值范圍內(nèi)保證每個(gè)電阻都有很高的精度是十分困難的,尤其對(duì)制造集成電路不利。雖然雙級(jí)權(quán)電阻網(wǎng)絡(luò)數(shù)模轉(zhuǎn)換器[圖9.2.2]

      所用的電阻種類減少了一倍,但是并沒有質(zhì)的變化。由于構(gòu)思巧妙,倒T形權(quán)電阻網(wǎng)絡(luò)數(shù)模轉(zhuǎn)換器[圖9.2.3]

      所用的電阻種類只有兩種,10位數(shù)模轉(zhuǎn)換器AD7520就是一種倒T形權(quán)電阻網(wǎng)絡(luò)數(shù)模轉(zhuǎn)換器。為靈活起見,AD7520沒有包含運(yùn)算放大器,使用時(shí)需要外接。目前單片集成數(shù)模轉(zhuǎn)換器多采用權(quán)電流型或開關(guān)電容型結(jié)構(gòu)。理想情況下,位數(shù)模轉(zhuǎn)換器的輸出電壓正比于輸入的數(shù)字量,即數(shù)字量,果,其中,為輸出的模擬電壓,為輸入的為參考電壓。顯然,如果為正,則為負(fù);反之,如為負(fù),則為正。如果需要具有雙極性輸出電壓的數(shù)模轉(zhuǎn)換器,為正)或負(fù)的(如果我們只需添加一個(gè)電阻和一個(gè)正的(如果為負(fù))直流電壓源,使運(yùn)算放大器稱為加法器即可[圖9.2.15]。

      為了保證信號(hào)處理結(jié)果的準(zhǔn)確性,數(shù)模轉(zhuǎn)換器必須有足夠的精度。數(shù)模轉(zhuǎn)換器在理論上可以達(dá)到的精度常用分辨率來表示,例如,12位數(shù)模轉(zhuǎn)換器的精度比8位數(shù)模轉(zhuǎn)換器的精度高得多,16位數(shù)模轉(zhuǎn)換器的精度比12位數(shù)模轉(zhuǎn)換器的精度高得多,等等。數(shù)模轉(zhuǎn)換器實(shí)際上可以達(dá)到的精度用轉(zhuǎn)換誤差來表示。例如,轉(zhuǎn)換誤差為1/2LSB(最低有效位)的數(shù)模轉(zhuǎn)換器的精度比轉(zhuǎn)換誤差為1LSB的數(shù)模轉(zhuǎn)換器的精度高。為了保證信號(hào)處理結(jié)果的時(shí)效性,數(shù)模轉(zhuǎn)換器必須有足夠的轉(zhuǎn)換速度。通常用建立時(shí)間來表示數(shù)模轉(zhuǎn)換器的轉(zhuǎn)換速度。在對(duì)轉(zhuǎn)換速度要求不太高的場合,有時(shí)采用串行輸入的數(shù)模轉(zhuǎn)換器,以便減少傳輸線的數(shù)目。這種模數(shù)轉(zhuǎn)換器由并行輸入的數(shù)模轉(zhuǎn)換器和移位寄存器構(gòu)成,其中一位寄存器可以將串行的數(shù)字信號(hào)轉(zhuǎn)換為并行的數(shù)字信號(hào),供并行輸入的數(shù)模轉(zhuǎn)換器使用。

      二、A/D轉(zhuǎn)換器

      1、模數(shù)轉(zhuǎn)換的過程有四個(gè)階段,即采樣、保持、量化和編碼。1)采樣是將連續(xù)時(shí)間信號(hào)變成離散時(shí)間信號(hào)的過程。經(jīng)過采樣,時(shí)間連續(xù)、數(shù)值連續(xù)的模擬信號(hào)就變成了時(shí)間離散、數(shù)值連續(xù)的信號(hào),稱為采樣信號(hào)。采樣電路相當(dāng)于一個(gè)模擬開關(guān),模擬開關(guān)周期性地工作。理論上,每個(gè)周期內(nèi),模擬開關(guān)的閉合時(shí)間趨近于0。在模擬開關(guān)閉合的時(shí)刻(采樣時(shí)刻),我們就“采”到模擬信號(hào)的一個(gè)“樣本”。2)量化是將連續(xù)數(shù)值信號(hào)變成離散數(shù)值信號(hào)的過程。理論上,經(jīng)過量化,我們就可以將時(shí)間離散、數(shù)值連續(xù)的采樣信號(hào)變成時(shí)間離散、數(shù)值離散的數(shù)字信號(hào)。

      我們知道,在電路中,數(shù)字量通常用二進(jìn)制代碼表示。因此,量化電路的后面有一個(gè)編碼電路,將數(shù)字信號(hào)的數(shù)值轉(zhuǎn)換成二進(jìn)制代碼。3)然而,量化和編碼總是需要一定時(shí)間才能完成,所以,量化電路的前面還要有一個(gè)保持電路。保持是將時(shí)間離散、數(shù)值連續(xù)的信號(hào)變成時(shí)間連續(xù)、數(shù)值離散信號(hào)的過程。在量化和編碼期間,保持電路相當(dāng)于一個(gè)恒壓源,它將采樣時(shí)刻的信號(hào)電壓“保持”在量化器的輸入端。雖然邏輯上保持器是一個(gè)獨(dú)立的單元,但是,工程上保持器總是與采樣器做在一起。兩者合稱采樣保持器。

      2、模數(shù)轉(zhuǎn)換器有直接型和間接型兩種。

      第三篇:STC單片機(jī)串口在線燒錄芯片問題總結(jié)

      STC單片機(jī)串口在線燒錄芯片問題總結(jié)

      在一個(gè)偶然和朋友聊天中了解了STC單片機(jī)芯片,從此一發(fā)不可收拾。當(dāng)時(shí)我看中STC芯片的一個(gè)主要原因是因?yàn)樗蠥D轉(zhuǎn)換功能和在線燒錄功能。用到現(xiàn)在算起來也大致有三、四年的時(shí)間了,在此期間用了不少STC不同型號(hào)的芯片??偟膩碇v這個(gè)芯片還是比較好使的,但在燒錄過程中也碰到不少麻煩,現(xiàn)在把它羅列如下,以便和同行們一起交流、探討和學(xué)習(xí)。

      第一種情況是通過USB轉(zhuǎn)串口燒錄。曾經(jīng)成功過一段時(shí)間,但后來不知道為什么再也燒錄不進(jìn)去了,直到現(xiàn)在也不明白其中的道理。查了一些資料說是USB轉(zhuǎn)串口的芯片問題,需要專用芯片的USB轉(zhuǎn)串口。我也信了,但從此給我的印象是-------STC單片機(jī)燒錄程序時(shí)是要挑芯片的。

      第二種情況是串口燒錄時(shí)有些232芯片不好用,一打聽才知道是232芯片不好,不能用國產(chǎn)的要用進(jìn)口的,我又專門去買了一批7元多一片的進(jìn)口232芯片,結(jié)果-------沒有成功過。不得已只好換回用國產(chǎn)的,哎!好了,謝天謝地!阿彌多佛!看來STC芯片串口在線燒錄不但挑USB轉(zhuǎn)串口的芯片,還挑232芯片。

      第三種情況是同一批板子、同一批232芯片有些板子能在線燒錄程序,而有些板子卻不能燒錄程序,實(shí)在沒辦法。還好本次產(chǎn)品是采用PLCC封裝的,只好把不能燒錄的芯片拔到可以燒錄的板子上去燒錄好再拔插回去,說到這里有人可能會(huì)懷疑不能燒錄的板子232芯片或外圍電路有問題,我當(dāng)時(shí)的直覺也是這樣的,但是我板子232口只要燒錄好程序,工作時(shí)通訊一切正常,這又作何解釋?不可思議!

      第四種情況(也是我偶然發(fā)現(xiàn)的)5v的STC15F104E芯片,有時(shí)候能燒錄,有時(shí)候不能燒錄,不能燒錄的概率在90%以上,真是莫名其妙。摸索了將近一天時(shí)間才發(fā)現(xiàn)串口接上后(板子在沒有上電的時(shí)候)STC芯片電源腳有約3v電壓,我想想可能是從串口反串回來的,有這3v電壓的存在,芯片就如同沒有掉電,所以也就燒錄不進(jìn)去。我就用鑷子把電源到地短接一下,目的是進(jìn)行放電。然后馬上給板子上電,哎~~~成了!并且屢試不爽。有類似情況的朋友也不妨一試。哈。。

      第五種情況是我有一批板子用的是STC12LE5A60S2 QFP44封裝,在我的筆記本上用串口燒錄成功率為100%,而到我臺(tái)式機(jī)上用串口燒錄時(shí)成功率卻為0%,是我臺(tái)機(jī)的串口有問題嗎?非也!臺(tái)機(jī)串口燒錄STC15F104E和其它是好的,但是對(duì)付本批次板卻是無計(jì)可施,最后無論我如何絞盡腦汁也不得其解,只好懷疑是板子在設(shè)計(jì)時(shí)有問題,但是設(shè)計(jì)有問題的板子為什么在筆記本上燒錄又是好的呢?只能說-------STC芯片串口在線燒錄不但挑USB轉(zhuǎn)串口的芯片、挑232芯片,還挑電腦。

      第六種情況是同一塊板子今天能燒錄進(jìn)去,過一段時(shí)間又燒錄不進(jìn)去了,再放一段時(shí)間又能燒錄進(jìn)去了。唉~~~看來STC芯片串口在線燒錄不但挑USB轉(zhuǎn)串口的芯片、挑232芯片、挑電腦,還要看它的心情。

      我暈!STC的芯片真的是讓人歡喜讓人憂。

      第四篇:89C51單片機(jī)時(shí)鐘程序

      SECOND EQU 40H

      ;給內(nèi)存RAM空間中40H單元起名SECOND MINUTE EQU 41H

      ;給內(nèi)存RAM空間中41H單元起名MINUTE HOUR EQU 42H

      ;給內(nèi)存RAM空間中42H單元起名HOUR SECONDGEWEI EQU 43H

      ;給43H單元起名SECONDGEWEI存秒的個(gè)位 SECONDSHIWEI EQU 44H

      ;給44H單元起名SECONDSHIWEI存秒的十位 MINUTEGEWEI EQU 45H

      ;給45H單元起名MINUTEGEWEI存分的個(gè)位 MINUTESHIWEI EQU 46H

      ;給46H單元起名MINUTESHIWEI存分的十位 HOURGEWEI EQU 47H

      ;給47H單元起名HOURGEWEI存小時(shí)的個(gè)位 HOURSHIWEI EQU 48H

      ;給48H單元起名HOURSHIWEI存小時(shí)的十位 ORG 0000H

      ;復(fù)位時(shí)程序從此開始 SJMP START

      ;跳到START進(jìn)行初始化 ORG 000BH

      ;定時(shí)器 0中斷入口 AJMP TIMER0

      ;跳轉(zhuǎn)到TIMER0處

      ORG 0030H

      ;初始化程序從30H開始;---------------初始化START------------------------------START:

      MOV SECOND, #0

      ;給秒存儲(chǔ)單元SECOND賦初始值0 MOV MINUTE, #0

      ;給分存儲(chǔ)單元MINUTE賦初始值0 MOV HOUR , #12

      ;給小時(shí)存儲(chǔ)單元HOUR賦初始值12 MOV DPTR , #TAB

      ;給數(shù)據(jù)指針賦值,將DPTR指向TAB數(shù)據(jù)表頭處 MOV 30H, #0

      ;給30H單元賦初始值0(用于計(jì)20次的50ms中斷)MOV TH0,#3CH

      ;給計(jì)數(shù)容器的高8位TH0賦初始值3CH MOV TL0,#0B0H

      ;給計(jì)數(shù)容器的低8位TL0賦初始值B0H MOV TMOD,#00000001B

      ;C/T位設(shè)置為0,M1M0設(shè)置位10,即模式1定時(shí) MOV TCON,#00010000B

      ;TR0設(shè)置為1,即啟動(dòng)定時(shí)器0開始工作 SETB ET0

      ;IE中的ET0位設(shè)置為1,開定制器中斷0 SETB EA

      ;IE中的EA位設(shè)置為1,開總中斷;-----------------------主程序MAIN-----------------------------MAIN:CALL KEY

      ;調(diào)按鍵子程序KEY CALL PROCESS

      ;調(diào)數(shù)據(jù)處理子程序PROCESS CALL DISPLAY

      ;調(diào)顯示子程序DISPLAY SJMP MAIN

      ;跳轉(zhuǎn)到MAIN標(biāo)號(hào)處;------------------------------按鍵子程序KEY調(diào)時(shí)-------------------KEY:MOV P1,#0FEH

      ;行掃描 LCALL DELAY

      ;JNB P1.4,HOURJIA

      ;P1.4引腳如果是低電平就跳到HOURJIA處

      JNB P1.5,HOURJIAN

      ;P1.5引腳如果是低電平就跳到HOURJIAN處 JNB P1.6,MINUTEJIA

      ;P1.6引腳如果是低電平就跳到MIMUTEJIA處 JNB P1.7,MINUTEJIAN

      ;P1.7引腳如果是低電平就跳到MIMUTEJIAN處 FANHUI:RET

      ;子程序返回(如果沒有按鍵按下)

      HOURJIA:CALL DELAY

      ;調(diào)延時(shí)程序目的是跳過按鍵抖動(dòng)期(去抖)JB P1.4,FANHUI

      ;P1.4如果是高電平就跳到FANHUI處(沒鍵按)JNB P1.4,$

      ;如果P1.4是低電平就停在當(dāng)前位置等鍵釋放 MOV R4,HOUR CJNE R4,#23,A1

      ;判斷時(shí)數(shù)字是否為23 AJMP A2

      A1:INC HOUR

      ;把小時(shí)位加1 MOV SECOND, #0

      ;小時(shí)進(jìn)位,秒歸0

      RET

      A2:MOV HOUR,#0

      ;小時(shí)數(shù)為23時(shí)加一為0

      MOV SECOND, #0

      ;小時(shí)進(jìn)位,秒歸0

      RET

      ;子程序返回

      HOURJIAN:CALL DELAY

      ;調(diào)延時(shí)程序目的是跳過按鍵抖動(dòng)期(去抖)JB P1.5,FANHUI

      JNB P1.5,$

      MOV R5,HOUR CJNE R5,#0,A3

      AJMP A4 A3:DEC HOUR

      MOV SECOND, #0

      RET A4:MOV HOUR,#23

      MOV SECOND, #0 RET

      MINUTEJIA:CALL DELAY

      JB P1.6,FANHUI

      JNB P1.6,$

      MOV R6,MINUTE

      CJNE R6,#59,A5

      AJMP A6 A5:INC MINUTE

      MOV SECOND, #0

      RET A6:MOV SECOND, #0

      MOV MINUTE, #0

      MOV R4,HOUR CJNE R4,#23,A10

      MOV HOUR,#0

      RET A10:INC HOUR

      RET

      MINUTEJIAN:CALL DELAY

      JB P1.7,FANHUI

      JNB P1.7,$

      MOV R7,MINUTE CJNE R7,#0,A7

      AJMP A8 A7:DEC MINUTE

      ;P1.5如果是高電平就跳到FANHUI處(沒鍵按)

      ;如果P1.5是低電平就停在當(dāng)前位置等鍵釋放

      ;判斷時(shí)數(shù)字是否為23

      ;把小時(shí)位減1

      ;小時(shí)數(shù)為0時(shí)減一為23

      ;子程序返回

      ;調(diào)延時(shí)程序目的是跳過按鍵抖動(dòng)期(去抖)

      ;P1.6如果是高電平就跳到FANHUI處(沒鍵按)

      ;如果P1.6是低電平就停在當(dāng)前位置等鍵釋放

      ;判斷分鐘數(shù)是否為59

      ;把分鐘位加1

      ;給秒存儲(chǔ)單元SECOND賦初始值0

      ;分鐘數(shù)為59則分鐘歸0

      ;判斷時(shí)數(shù)字是否為23

      ;23時(shí)增1歸0

      ;分鐘數(shù)為59 自增1后小時(shí)增1

      ;子程序返回

      ;調(diào)延時(shí)程序目的是跳過按鍵抖動(dòng)期(去抖)

      ;P1.7如果是高電平就跳到FANHUI處(沒鍵按)

      ;如果P1.7是低電平就停在當(dāng)前位置等鍵釋放

      ;判斷分鐘數(shù)是否為0

      ;分鐘不為0把分鐘位減1

      MOV SECOND, #0

      RET

      A8:MOV MINUTE, #59

      ;分鐘數(shù)為0時(shí)減一為59 MOV R4,HOUR CJNE R4,#0,A9

      ;判斷時(shí)鐘數(shù)是否為0 MOV HOUR,#23

      ;時(shí)鐘數(shù)為0減1為23 MOV SECOND, #0 RET

      A9:DEC HOUR

      ;時(shí)鐘數(shù)不為0則減1 MOV SECOND, #0

      RET

      ;子程序返回;-------------------處理子程序PROCESS-----------------------PROCESS:MOV A, SECOND

      ;把SECOND中的秒值拷貝給A MOV B, #10

      ;給寄存器B賦值10 DIV AB

      ;A除以B,結(jié)果存入A中,余數(shù)存入B中 MOV SECONDSHIWEI , A

      ;結(jié)果即秒的十位數(shù)拷貝給SECONDSHIWEI MOV SECONDGEWEI , B

      ;余數(shù)即秒的個(gè)位拷貝給SECONDGEWEI MOV A, MINUTE

      ;把MINUTE中的分值拷貝給A MOV B, #10

      ;給寄存器B賦值10 DIV AB

      ;A除以B,結(jié)果存入A中,余數(shù)存入B中 MOV MINUTESHIWEI , A

      ;結(jié)果即分的十位拷貝給MINUTESHIWEI MOV MINUTEGEWEI , B

      ;余數(shù)即分的個(gè)位拷貝給MINUTEGEWEI MOV A, HOUR

      ;把HOUR中的小時(shí)值拷貝給A MOV B, #10

      ;給寄存器B賦值10 DIV AB

      ;A除以B,結(jié)果存入A中,余數(shù)存入B中 MOV HOURSHIWEI , A

      ;結(jié)果即小時(shí)的十位拷貝給HOURSHIWEI MOV HOURGEWEI , B

      ;余數(shù)即小時(shí)的個(gè)位拷貝給HOURGEWEI RET

      ;子程序結(jié)束返回到主程序;-----------------顯示子程序DISPLAY--------------DISPLAY:MOV A, HOURSHIWEI

      ;小時(shí)的十位拷貝給A MOVC A, @A+DPTR

      ;到A+DPRT這個(gè)數(shù)對(duì)應(yīng)的地方找顯示段碼拷貝給A MOV P0, A

      ;把顯示段碼(小時(shí)的十位)送到P0 CLR P2.0

      ;將P2.0置低電平,對(duì)應(yīng)的三極管導(dǎo)通 CALL DELAY

      ;調(diào)延時(shí)(讓顯示小時(shí)十位的數(shù)碼管持續(xù)亮一段時(shí)間)SETB P2.0

      ;將P2.0置高電平,對(duì)應(yīng)三極管截止,對(duì)應(yīng)數(shù)碼管滅 MOV A, HOURGEWEI

      ;小時(shí)的個(gè)位拷貝給A MOVC A,@A+DPTR

      ;到A+DPRT這個(gè)數(shù)對(duì)應(yīng)的地方找顯示段碼拷貝給A MOV P0, A

      ;把顯示段碼(小時(shí)的個(gè)位)送到P0 CLR P2.1

      ;將P2.1置低電平,對(duì)應(yīng)的三極管導(dǎo)通

      CALL DELAY

      ;調(diào)延時(shí)(讓顯示小時(shí)個(gè)位的數(shù)碼管持續(xù)亮一段時(shí)間)SETB P2.1 MOV P0,#7FH CLR P2.1 CALL DELAY SETB P2.1

      ;將P2.1置高電平,對(duì)應(yīng)三極管截止,對(duì)應(yīng)數(shù)碼管滅 MOV A, MINUTESHIWEI

      ;分鐘的十位拷貝給A MOVC A,@A+DPTR

      ;到A+DPRT這個(gè)數(shù)對(duì)應(yīng)的地方找顯示段碼拷貝給A MOV P0, A

      ;把顯示段碼(分鐘的十位)送到P0 CLR P2.2

      ;將P2.2置低電平,對(duì)應(yīng)的三極管導(dǎo)通 CALL DELAY

      ;調(diào)延時(shí)(讓顯示分鐘十位的數(shù)碼管持續(xù)亮一段時(shí)間)SETB P2.2

      ;將P2.2置高電平,對(duì)應(yīng)三極管截止,對(duì)應(yīng)數(shù)碼管滅 MOV A, MINUTEGEWEI

      ;分鐘的個(gè)位拷貝給A MOVC A,@A+DPTR

      ;到A+DPRT這個(gè)數(shù)對(duì)應(yīng)的地方找顯示段碼拷貝給A MOV P0, A

      ;把顯示段碼(分鐘的個(gè)位)送到P0 CLR P2.3

      ;將P2.3置低電平,對(duì)應(yīng)的三極管導(dǎo)通

      CALL DELAY

      ;調(diào)延時(shí)(讓顯示分鐘個(gè)位的數(shù)碼管持續(xù)亮一段時(shí)間)SETB P2.3

      ;將P2.3置高電平,對(duì)應(yīng)三極管截止,對(duì)應(yīng)數(shù)碼管滅

      MOV P0,#7FH CLR P2.3 CALL DELAY SETB P2.3

      MOV A, SECONDSHIWEI

      ;秒的十位拷貝給A MOVC A,@A+DPTR

      ;到A+DPRT這個(gè)數(shù)對(duì)應(yīng)的地方找顯示段碼拷貝給A MOV P0, A

      ;把顯示段碼(秒鐘的十位)送到P0 CLR P2.4

      ;將P2.4置低電平,對(duì)應(yīng)的三極管導(dǎo)通 CALL DELAY

      ;調(diào)延時(shí)(讓顯示秒鐘十位的數(shù)碼管持續(xù)亮一段時(shí)間)SETB P2.4

      ;將P2.4置高電平,對(duì)應(yīng)三極管截止,對(duì)應(yīng)數(shù)碼管滅 MOV A, SECONDGEWEI

      ;秒的個(gè)位拷貝給A MOVC A,@A+DPTR

      ;到A+DPRT這個(gè)數(shù)對(duì)應(yīng)的地方找顯示段碼拷貝給A MOV P0, A

      ;把顯示段碼(秒鐘的個(gè)位)送到P0 CLR P2.5

      ;將P2.5置低電平,對(duì)應(yīng)的三極管導(dǎo)通

      CALL DELAY

      ;調(diào)延時(shí)(讓顯示秒鐘個(gè)位的數(shù)碼管持續(xù)亮一段時(shí)間)SETB P2.5

      ;將P2.5置高電平,對(duì)應(yīng)三極管截止,對(duì)應(yīng)數(shù)碼管滅 RET

      ;顯示子程序結(jié)束返回主程序;--------------------中斷服務(wù)子程序----------------------------TIMER0:MOV R3, A

      ;把A中的數(shù)據(jù)送入R3保護(hù)起來 INC 30H

      ;30H單元中的數(shù)加1 MOV A, 30H

      ;30H單元中的數(shù)據(jù)拷貝給A CJNE A,#20,JIXU

      ;A中的數(shù)據(jù)與20比較不相等就跳轉(zhuǎn)到JIXU處 MOV 30H,#0

      ;(如果30H單元計(jì)滿20了)給30H賦值0 INC SECOND

      ;把SECOND中的秒鐘數(shù)加1 MOV A,SECOND

      ;把SECOND中的數(shù)據(jù)拷貝給A CJNE A, #60, JIXU

      ;A中的數(shù)據(jù)與60比較不相等就跳轉(zhuǎn)到JIXU處 MOV SECOND, #0

      ;給秒SECOND賦值0 INC MINUTE

      ;把MINUTE中的分鐘數(shù)加1 MOV A, MINUTE

      ;把MINUTE中的數(shù)據(jù)拷貝給A CJNE A, #60, JIXU

      ;A中的數(shù)據(jù)與60比較不相等就跳轉(zhuǎn)到JIXU處 MOV MINUTE, #0

      ;給分鐘MINUTE賦值0 INC HOUR

      ;把HOUR中的小時(shí)數(shù)據(jù)加1 MOV A, HOUR

      ;把HOUR中的數(shù)據(jù)拷貝給A CJNE A, #24, JIXU

      ;A中的數(shù)據(jù)與24比較不相等就跳轉(zhuǎn)到JIXU處 MOV HOUR, #0

      ;給小時(shí)HOUR賦值0 JIXU: MOV A,R3

      ;把剛才送入R3中的數(shù)據(jù)還給A MOV TH0,#3CH

      ;給計(jì)數(shù)容器的高8位TH0賦初始值3CH MOV TL0,#0B0H

      ;給計(jì)數(shù)容器的低8位TL0賦初始值B0H RETI

      ;中斷子程序返回主程序;---------------------------延時(shí)子程序----------------------------DELAY:MOV R0, #50

      ;給R0賦值50 D2:MOV R1, #10

      ;給R1賦值10 D1:DJNZ R1, D1

      ;R1減1不等于0跳到D1處 DJNZ R0, D2

      ;R0減1不等于0跳到D2處

      RET

      ;延時(shí)子程序結(jié)束返回調(diào)用該程序的下一條;---------------下面的數(shù)據(jù)表中存儲(chǔ)的是顯示段碼(共陽)-------------------TAB:DB 0C0H,0F9H,0A4H,0B0H,99H

      ;從TAB處開始存儲(chǔ)0、1、2、3、4

      DB 92H ,82H ,0F8H,80H ,90H

      ;5、6、7、8、9對(duì)應(yīng)的顯示段碼 END

      ;程序結(jié)束

      第五篇:51單片機(jī)舵機(jī)程序

      51單片機(jī)舵機(jī)程序不用定時(shí)器:自己整理的不用定時(shí)器調(diào)舵機(jī)向左,中,右三個(gè)方向擺動(dòng)的51單片機(jī)程序

      #include sbit a=P0^0;#define uchar unsigned char #define uint unsigned int void delay(uint z){ uint x,y;for(x=z;x>0;x--)

      for(y=110;y>0;y--);}

      void delayus2x(unsigned char t){

      while(--t);} void delay750us(){ delayus2x(245);delayus2x(122);} void delay1500us(){

      delayus2x(245);

      delayus2x(245);

      delayus2x(245);} void delay2300us(){

      delayus2x(245);

      delayus2x(245);

      delayus2x(245);

      delayus2x(245);

      delayus2x(147);

      } void main()

      //a=~a和delay順序不能反 { while(1){

      uint i=50;while(--i)

      //中

      {

      a=1;

      delay1500us();

      a=0;

      delay(20);

      }

      i=50;

      while(--i)

      {

      a=1;

      delay2300us();

      a=0;

      delay(20);

      }

      i=50;

      while(--i)

      {

      a=1;

      delay750us();

      a=0;

      delay(20);

      }

      }

      }

      //左

      //右

      下載STC單片機(jī)通用AD轉(zhuǎn)換程序[優(yōu)秀范文5篇]word格式文檔
      下載STC單片機(jī)通用AD轉(zhuǎn)換程序[優(yōu)秀范文5篇].doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        單片機(jī)經(jīng)典長短按程序

        新型的按鍵掃描程序 不過我在網(wǎng)上游逛了很久,也看過不少源程序了,沒有發(fā)現(xiàn)這種按鍵處理辦法的蹤跡,所以,我將他共享出來,和廣大同僚們共勉。我非常堅(jiān)信這種按鍵處理辦法的便捷和......

        單片機(jī)實(shí)驗(yàn)三 雙機(jī)通信實(shí)驗(yàn)程序

        實(shí)驗(yàn)三 雙機(jī)通信實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康?UART 串行通信接口技術(shù)應(yīng)用 二、實(shí)驗(yàn)實(shí)現(xiàn)的功能 用兩片核心板之間實(shí)現(xiàn)串行通信,將按鍵信息互發(fā)到對(duì)方數(shù)碼管顯示。 三、系統(tǒng)硬件設(shè)計(jì)......

        基于單片機(jī)的數(shù)字鐘課程設(shè)計(jì)程序

        #include #define uchar unsigned char #define uint unsigned int uchar code table[]="I LOVE YOU !"; uchar code table1[]="2014:06:14"; sbit lcden=P3^5; sbit lcdrs=......

        單片機(jī)程序開發(fā)工程師的個(gè)人簡歷

        單片機(jī)程序開發(fā)工程師的個(gè)人簡歷模板 姓名:陳先生性別:男 婚姻狀況:未婚民族:漢族 戶籍:廣東-佛山年齡:32 現(xiàn)所在地:廣東-深圳身高:175cm 希望地區(qū):廣東-深圳、 廣東-深圳 希望崗位:電......

        基于單片機(jī)的數(shù)字鐘課程設(shè)計(jì)程序

        #include #define uchar unsigned char #define uint unsigned int uchar code table[]="I LOVE YOU !"; uchar code table1[]="2014:06:14"; sbit lcden=P3^5; sbit lcdrs=......

        51單片機(jī)測距程序(精選五篇)

        /*功能描述: 按下按鍵k檢測距離,松開鎖定結(jié)果 按下按鍵find 查詢歷史測量數(shù)據(jù),本程序可查詢5次歷史數(shù)據(jù) 按下out鍵 退出歷史數(shù)據(jù)查詢功能 Test可不接 */ #include #define uch......

        excel中數(shù)字轉(zhuǎn)換英文大寫程序

        Function NumbToEnglish(ByVal MyNumber) Dim Temp Dim Inte, Dec Dim DecimalPlace, Count ReDim Place(9) As String Place = " Thousand " Place = " Milli......

        51單片機(jī)四路搶答器程序(5篇范例)

        #include sbit key1=P3^0; sbit key2=P3^1; sbit key3=P3^2; sbit key4=P3^3; sbit key5=P3^7; sbit BEEP=P2^0; unsigned char temp; unsigned char pulse_number1=9; uns......