日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當(dāng)前位置:首頁 >> 技術(shù)中心 >> 單片機入門 >> 單片機程序的完善

單片機程序的完善

關(guān)鍵字:單片機程序 作者:admin 來源:不詳 發(fā)布時間:2018-05-19  瀏覽:4

怎樣才能讓燈不斷地閃爍呢?實際上就是要燈亮一段時間,再滅一段時間,也就是說要P10不斷地輸出高和低電平。怎樣實現(xiàn)這個要求呢?請考慮用下面的指令是否可行:

SETB P10

CLR P10

………

這是不行的,有兩個問題,第一,計算機執(zhí)行指令的時間很快,執(zhí)行完SETB P10后,燈是滅了,但在極短時間(微秒級)后,計算機又執(zhí)行了CLR P10指令,燈又亮了,所以根本分辨不出燈曾滅過。第二,在執(zhí)行完CLR P10后,不會再去執(zhí)行SETB P10指令,所以以后再也沒有機會讓滅了。

為了解決這兩個問題,我們可以做如下設(shè)想,第一,在執(zhí)行完SETB P10后,延時一段時間(幾秒或零點幾秒)再執(zhí)行第二條指令,就可以分辨出燈曾滅過了。第二在執(zhí)行完第二條指令后,讓計算機再去執(zhí)行第一條指令,不斷地在原地兜圈,我們稱之為"循環(huán)",這樣就可以完成任務(wù)了。

以下先給出程序(后面括號中的數(shù)字是為了便于講解而寫的,實際不用輸入):

主程序:

LOOP: SETB P10    ;(1)

LCALL DELAY   ;(2)

CLR P10    ;(3)

LCALL DELAY  ;(4)

AJMP LOOP    ;(5)

;以下子程序

DELAY: MOV R7,#250 ;(6)

D1: MOV R6,#250    ;(7)

D2: DJNZ R6,D2   ;(8)

DJNZ R7,D1    ;(9)

RET        ;(10)

END        ;(11)

按上面的設(shè)想分析一下前面的五條指令。

第一條是讓燈滅,第二條應(yīng)當(dāng)是延時,第三條是讓燈亮,第四條和第二條一模一樣,也是延時,第五條應(yīng)當(dāng)是轉(zhuǎn)去執(zhí)行第一條指令。第二和第四條實現(xiàn)的原理稍后談,先看第五條,LJMP是一條指令,意思是轉(zhuǎn)移,往什么地方轉(zhuǎn)移呢?后面跟的是LOOP,看一下,什么地方還有LOOP,對了,在第一條指令的前面有一個LOOP,所以很直觀地,我們可以認識到,它要轉(zhuǎn)到第一條指令處。這個第一條指令前面的LOOP被稱之為標(biāo)號,它的用途就是給這一行起一個名字,便于使用。是否一定要給它起名叫LOOP呢?當(dāng)然不是,起什么名字,完全由編程序的人決定,可以稱它為A,X等等,當(dāng)然,這時,第五條指令LJMP后面的名字也得跟著改了。

第二條和第四條指令的用途是延時,它是怎樣實現(xiàn)的呢?指令的形式是LCALL,這條指令稱為調(diào)用子程序指令,看一下指令后面跟的是什么,DELAY,找一下DELAY,在第六條指令的前面,顯然,這也是一個標(biāo)號。這條指令的作用是這樣的:當(dāng)執(zhí)行LCALL指令時,程序就轉(zhuǎn)到LCALL后面的標(biāo)號所標(biāo)定的程序處執(zhí)行,如果在執(zhí)行指令的過程中遇到RET指令,則程序就返回到LCALL指令的下面的一條指令繼續(xù)執(zhí)行,從第六行開始的指令中,可以看到確實有RET指令。在執(zhí)行第二條指令后,將轉(zhuǎn)去執(zhí)行第6條指令,而在執(zhí)行完6,7,8,9條指令后將遇到第10條令:RET,執(zhí)行該條指令后,程序?qū)⒒貋韴?zhí)行第三條指令,即將P10清零,使燈亮,然后又是第四條指令,執(zhí)行第四條指令就是轉(zhuǎn)去執(zhí)行第6,7,8,9,10條指令,然后回來執(zhí)行第5條指令,第5條指令就是讓程序回到第1條開始執(zhí)行,如此周而復(fù)始,燈就在不斷地亮、滅了。

在標(biāo)號DELAY標(biāo)志的這一行到RET這一行中的所有程序,這是一段延時程序,大概延時零點幾秒,至于具體的時間,以后我們再學(xué)習(xí)如何計算。 程序的最后一行是END,這不是一條指令,它只是告訴我們程序到此結(jié)束,它被稱為"偽指令"。

編輯:admin  最后修改時間:2018-05-19

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

宽甸| 海原县| 团风县| 柳河县| 武汉市| 息烽县| 宝鸡市| 江门市| 柳河县| 大竹县| 凤台县| 元朗区| 驻马店市| 集安市| 兴义市| 滁州市| 镇雄县| 句容市| 仪陇县| 迁安市| 武夷山市| 陇南市| 华蓥市| 金塔县| 定兴县| 定襄县| 霞浦县| 鸡东县| 抚松县| 星座| 乐清市| 苍山县| 甘南县| 阳谷县| 长沙县| 滁州市| 威宁| 中宁县| 璧山县| 泌阳县| 漳平市|