1樓:匿名使用者
一鍵多功能按鍵識別技術。
1.實驗任務。
開關k1接在管腳上,在at89s51微控制器的埠接有1個發光二極體,上電的時候,l1接在p1.
0管腳上的發光二極體在亮,當一次按下開關k1的時候,燈滅,再按一次,燈亮,如此輪流下去。
2.系統板上硬體連線。
把「微控制器系統」區域中的埠連線到「獨立式鍵盤」區域中的k1埠上;把連到l1上。
3.程式設計方法。
(1. 設計思想由來。
在我們生活中,我們很容易通過這個叫張三,那個叫李四,另外乙個是王五;那是因為每個人有不同的名子,我們就很快認出,同樣,對於要通過乙個按鍵來識別每種不同的功能,我們給每個不同的功能模組用不同的id號標識,這樣,每按下一次按鍵,id的值是不相同的,所以微控制器就很容易識別不同功能的身份了。
(2. 設計方法。
從上面的要求我們可以看出,l1到亮滅受開關k1來控制,我們給l1亮滅定義出不同的id號,當l1在亮時,id=0;當l1在滅時,id=1;分別給出不同的id號我們就能夠完成上面的任務了。
4.匯程式設計序:
id equ 30h
k1 bit
l1 bit
org 0000h
clr mov id,#00h
start: jb k1,rel ;k1沒閉合轉。
lcall delay10ms ;k1閉合,延時消抖動。
jb k1,rel :再判斷。
inc id
mov a,id
cjne a,#02,rel
mov id,#00h
rel: jnb k1,$ 等待開關彈起。
mov a,id
cjne a,#00h,is0 ;判斷相應id
clr l1 :id=0,燈亮。
lcall delay光 ;延時。
sjmp start
is0: cjne a,#01h,start;
setb l1
lcall delay
sjmp start
delay10ms: mov r6,#20 ;延時10ms子程式。
loop1: mov r7,#
djnz r7,$
djnz r6,loop1
retdelay: mov r5,#20 ;延時20ms子程式。
loop2: lcall delay10ms
djnz r5,loop2
retend
求微控制器中圍繞中斷的程式題目?急求
嘻哈海棠 找了幾個定時 計數器的題目,外部中斷應該很簡單。1 利用定時 計數器t0從p1.0輸出週期為1s的方波,讓發光二極體以1hz閃爍,設晶振頻率為12mhz。2 利用定時 計數器t1產生定時時鐘,由p1口控制8個發光二極體,使8個指示燈依次一個一個閃動,閃動頻率為10次 秒 8個燈依次亮一遍為...
求哲理故事,急,求一個哲理故事,急
一枝梅 世界上最遙遠的距離 泰戈爾 世界上最遙遠的距離 不是生與死 而是我就站在你面前 你卻不知道我愛你 世界上最遙遠的距離 不是我就站在你面前你卻不知道我愛你 而是 明明知道彼此相愛 卻不能在一起 世界上最遙遠的距離 不是 明明知道彼此相愛卻不能在一起 而是 明明無法抵擋這股想念 卻還得故意裝作絲...
程式的疑問,求高手解答,乙個程式的疑問,求高手解答。
include stdio.h include math.h main else break 這一句不用的。讓迴圈提前結束了。這是著名的哥德 猜想問題。另外除了3 31 5 29,11 23還有17 17 滄海雄風 你的取值範圍有問題 都去了 a 2 sqrt 根本不可能出現大於輸入數字一半的你能把...