LED點陣實驗 實驗現象: 16*16點陣顯示相關程序的功能 實驗步驟: 如圖: 注意:滾動(左右上下)這個程序里,綠色和紅色的切換,只要把J11接到J19(綠色),或者J11接到J20(紅色)。 點陣顯示數字這個程序,綠色是用P1口,紅色是用P2口。 注意另一個例程是不一樣的。不清楚的可以看下程序源碼,里面都端口IO的定義。 程序下載成功后自動運行 常見問題解決方法: 請您檢查下JP595跳線帽有沒有連接上,將單片機重新安裝下,重啟開發板。 請您將排線重新插拔下,或者換根排線試試。
單片機源程序如下:
- /*****************************************************************************************
- * *
- * LED點陣實驗 (左右上下流動顯示) *
- * 說明 通過P0 P1和 P2 作為點陣接口 *
- *要求學員掌握 LED點陣的工作原理和 各點陣腳的定義及接法,具體接線請參考接線說明 *
- *我們采用的LED點陣式是低功耗,在做實驗時可以用單片機腳直接驅動 *
- ******************************************************************************************/
- #include <REG51.H>
- unsigned char code taba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //縱條表
- unsigned char code tabb[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //衡條表
- /*************延時函數*********************/
- void delay1(void)
- {
- unsigned char i,j,k;
-
- for(k=10;k>0;k--) //循環時間是 10*20*248次
- for(i=20;i>0;i--)
- for(j=248;j>0;j--);
-
- }
- /*************主函數*****************************/
- void main(void)
- {
- unsigned char i,j;
-
- while(1)
- {
- for(j=0;j<3;j++) //從左到右3次
- {
- for(i=0;i<8;i++) //循環8次逐條點亮8個LED點陣燈
- {
- P2=taba[i];
- P0=0xff;
- delay1();
- }
- }
-
- for(j=0;j<3;j++) //從右到左3次
- {
- for(i=0;i<8;i++) //循環8次逐條點亮8個LED點陣燈
- {
- P2=taba[7-i];
- P0=0xff;
- delay1();
- }
- }
-
- for(j=0;j<3;j++) //從上到下3次
- {
- for(i=0;i<8;i++) //循環8次逐條點亮8個LED點陣燈
- {
- P2=0x00;
- P0=tabb[7-i];
-
- delay1();
- }
- }
-
- for(j=0;j<3;j++) //從下到上3次
- {
- for(i=0;i<8;i++) //循環8次逐條點亮8個LED點陣燈
- {
- P2=0x00;
- P0=tabb[i];
-
- delay1();
- }
- }
- }
- }
復制代碼
所有資料51hei提供下載:
9、 LED點陣.rar
(2.44 MB, 下載次數: 44)
2018-4-2 19:14 上傳
點擊文件名下載附件
LED點陣源碼及教程
|