欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 求大神指導該如何學習?想通過學習完成一個單片機流水燈程序 [打印本頁]

作者: temperture    時間: 2021-3-15 18:20
標題: 求大神指導該如何學習?想通過學習完成一個單片機流水燈程序
由于本論壇禁止直接求程序,禁止伸手黨,所以向大家請教一下大致的實現方法與思路,理清頭緒后我自己來寫程序去實現

單片機的PL0~PL7接8個發光二極管LOD0~LOD7。編寫程序,從中間兩個燈開始亮起(LED3,LED4),向兩邊逐個點亮,每次亮兩個燈,當LED0和;ED7點亮后,由兩邊向中間逐個點亮,重復循環

作者: zsw3721    時間: 2021-3-15 20:39
給你個簡單的方案建議,由于亮燈的組合情況只有4種,干脆定義一個8個元素的顯示數組,把來回一遍亮燈的8種狀態對應的字節按順序寫到數組中。然后只要在while循環中搞一個for循環就能實在重復循環顯示。
作者: 啤酒瓶子老大    時間: 2021-3-15 23:54
對了。數組最適合你的想法,可以想讓那個亮,就讓那個亮。想亮幾個,就亮幾個。數組寫個100組,每組100個值,你就是點燈大師!
作者: 守城的小彬    時間: 2021-3-16 00:07
想寫簡單還是想寫復雜。可能你基礎還不牢固,寫個容易明白的給你
#include<reg52.h>///////這句程序將芯片廠家定義的程序拉進你的程序,他的作用告訴電腦各引腳連接到第幾個控制寄存器,因為直接寫P0他不知道啥意思,所以這句程序拉進來的頭文件告訴電腦P0=0X80;是指P0連接到了第80號寄存器,然后電腦進去數,數到第80控制單元就是P0引腳了。了解就可以了。
sbit LEDsbi0=P0^0;
sbit LEDsbi0=P0^0;
sbit LEDsbi0=P0^0;
作者: aide51    時間: 2021-3-16 09:16
這個用沙發的思路,地板的程序結合起來就是一個完美的程序,當然前提是你要for循環和while的用法,這個可以去本論壇或網上搜索一下應該有這種介紹的,結合這個東西肯定能做得出來,祝你成功!
作者: yzxabcd    時間: 2021-3-16 10:51
用一個for語句,你這里有6個狀態,34,25,16,07,16,25,循環執行
作者: 天ノ憶    時間: 2021-3-16 11:57
int Array[] = {00011000,00100100,01000010,10000001};

while(1)
{
  for( char i = 0 ; i < 4 ; i ++ ){
    P1 = Array[ i ] ;
    Delay();
  }

  for( char i = 4; i > 0 ; i -- ){
    P1 = Array[ i  -1] ;
    Delay();
  }
}
作者: 神飛游光    時間: 2021-3-16 12:05
不太能理解數組的思想,按我的想法就照著最笨的辦法來。。一條代碼點兩個燈,延時,關燈,延時,再點下面兩個燈,延時,關燈,延時。。。。整個放到for循環里面。。。
作者: 12xxx    時間: 2021-3-16 15:34
其實流水燈你得明白它的每個程序是干什么的,他那個數組里面存儲的數據就是每個引腳的電平狀態,比如說,0xff換成二進制就是1111 1111,學過數電就知道,我們在電子元件中1代表高電平,0代表低電平。所以說這代表你這邊有八個引腳是高電平。而再去結合單片機led燈硬件連接就可以知道,它一端連的是高電平(也就是我們說的共陽),另一端是單片機引腳,led兩端是高電平無電勢差,所以是滅的狀態同理,0x00是全部點亮,你可以先根據想點亮那個led燈對應的引腳寫0,滅就寫1,最后化為16進制。就得到所謂的點燈數組,然后把數組里的數據付給引腳,引腳就有了高低電平。然后就是死循環執行了。
作者: 小貓電子    時間: 2021-3-17 19:29
去找任何一個開發板的例程,流水燈都是基礎中的基礎




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1