這個例程是在液晶屏上顯示I ❥ U ,可以通過字符取模軟件,改變顯示內容,用來表白顯示逼格?
原理圖這里有:http://www.zg4o1577.cn/mcu/3015.html
單片機源程序如下:
- /*
- *******************************************************************************
- * 《手把手教你學51單片機(C語言版)》
- * 配套 KST-51 單片機開發(fā)板 示例源代碼
- * 文件名:main.c
- * 描 述:第7章 LED點陣顯示橫向移動的動畫(掉轉板子方向的取巧方式)
- * 版本號:v1.0.0
- * 備 注:詳情見第7章7.5.2節(jié)
- *******************************************************************************
- */
- #include <reg52.h>
- sbit ADDR0 = P1^0;
- sbit ADDR1 = P1^1;
- sbit ADDR2 = P1^2;
- sbit ADDR3 = P1^3;
- sbit ENLED = P1^4;
- unsigned char code image[] = { //圖片的字模表
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
- 0x7D,0x01,0x01,0x7D,0xFF,0xFF,0xE3,0xC1,
- 0x81,0x03,0x03,0x81,0xC1,0xE3,0xFF,0xFF,
- 0x81,0x01,0x3F,0x3F,0x3F,0x01,0x81,0xFF,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
- };
- void main()
- {
- EA = 1; //使能總中斷
- ENLED = 0; //使能U4,選擇LED點陣
- ADDR3 = 0;
- TMOD = 0x01; //設置T0為模式1
- TH0 = 0xFC; //為T0賦初值0xFC67,定時1ms
- TL0 = 0x67;
- ET0 = 1; //使能T0中斷
- TR0 = 1; //啟動T0
- while (1);
- }
- /* 定時器0中斷服務函數(shù) */
- void InterruptTimer0() interrupt 1
- {
- static unsigned char i = 0; //動態(tài)掃描的索引
- static unsigned char tmr = 0; //250ms軟件定時器
- static unsigned char index = 0; //圖片刷新索引
- TH0 = 0xFC; //重新加載初值
- TL0 = 0x67;
- //以下代碼完成LED點陣動態(tài)掃描刷新
- P0 = 0xFF; //顯示消隱
- switch (i)
- {
- case 0: ADDR2=0; ADDR1=0; ADDR0=0; i++; P0=image[index+0]; break;
- case 1: ADDR2=0; ADDR1=0; ADDR0=1; i++; P0=image[index+1]; break;
- case 2: ADDR2=0; ADDR1=1; ADDR0=0; i++; P0=image[index+2]; break;
- case 3: ADDR2=0; ADDR1=1; ADDR0=1; i++; P0=image[index+3]; break;
- case 4: ADDR2=1; ADDR1=0; ADDR0=0; i++; P0=image[index+4]; break;
- case 5: ADDR2=1; ADDR1=0; ADDR0=1; i++; P0=image[index+5]; break;
- case 6: ADDR2=1; ADDR1=1; ADDR0=0; i++; P0=image[index+6]; break;
- case 7: ADDR2=1; ADDR1=1; ADDR0=1; i=0; P0=image[index+7]; break;
- default: break;
- }
- //以下代碼完成每250ms改變一幀圖像
- tmr++;
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
源代碼.zip
(21.4 KB, 下載次數(shù): 8)
2017-11-18 13:17 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|