標題: 單片機驅動漢字LED點陣相關問題解答 [打印本頁]
作者: ynag 時間: 2017-12-25 14:18
標題: 單片機驅動漢字LED點陣相關問題解答
efan 23:04:26
有對漢字LED點陣顯示熟悉的朋友嗎?
要下雨了 23:04:51
什么問題
typhoon 23:04:54
恩
efan 23:05:11
有段程序看不太懂
efan 23:05:26
#include <reg52.h>
#define int8 unsigned char
#define int16 unsigned int
#define int32 unsigned long
int8 flag;
int8 n;
int8 code table[][32]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*
" " */
{0x04,0x28,0x08,0x24,0x32,0x22,0xC2,0x21,0xC2,0x26,0x34,0x38,0x04,0x04,0x08,0x18,0x30,0xF0,0xC0,0x17,0x60,0x10,0x18,0x10,0x0C,
0x14,0x06,0x18,0x04,0x10,0x00,0x00},/*"歡",0*/
{0x02,0x02,0x04,0x82,0xF8,0x73,0x04,0x20,0x02,0x00,0xE2,0x3F,0x42,0x20,0x82,0x40,0x02,0x40,0xFA,
0x3F,0x02,0x20,0x42,0x20,0x22,0x20,0xC2,0x3F,0x02,0x00,0x00,0x00},/*"迎",1*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}/*
" " */
};
void delay(void);
int16 offset;
void main(void)
{
int8 i;
int8 *p;
flag=0x10;
n=0;
TMOD=0x01;
TH0=0xb1;
TL0=0xe0;
ET0=1;
EA=1;
TR0=1;
p=&table[0][0];
while (1)
{
for (i=0;i<8;i++) //顯示左半邊屏幕
{
P0=*(p+offset+2*i);
P2=i|0x08; //P2.4=0,P2.3=1 選中U2, 輸出掃描碼給U6
delay();
P0=*(p+offset+2*i+1);
P2=i|0x10; //P2.4=1,P2.3=0 選中U3, 輸出掃描碼給U7
delay();
}
for (i=8;i<16;i++) //顯示右半邊屏幕
{
P0=*(p+offset+2*i);
P2=(i-8)|0x20; //P2.5=1 P2.4=0,P2.3=0 選中U4,輸出掃描碼U8
delay();
P0=*(p+offset+2*i+1);
P2=(i-8)|0x40; //P2.6=1 P2.5=0,P2.4=0 選中U5,輸出掃描碼U9
delay();
}
}
}
void delay(void)
{
int16 i;
for (i=0;i<50;i++)
;
}
void timer0() interrupt 1 using 3
{
TF0=0;
TH0=0xb1;
TL0=0xe0;
if (n<10)
{
n++;
}
else
{
offset+=2;
if (offset>1100)
offset=0;
n=0;
}
}
efan 23:05:57
程序有兩個地方不太明白
1. P0=*(p+offset+2*i);
為什么要乘以2,原理是什么?
2.void timer0() interrupt 1 using 3
這個中斷是為了產生offset的原理是什么,為什么能實現漢字的移動顯示(從右至左)
efan 23:07:31
這段程序實現漢字從左到右滾動顯示
╄→狂人╰☆ 23:07:38
1 16*16的點陣
2 每掃一次偏移地址加2
efan(6939780) 23:08:35
能具體一點嗎?
efan(6939780) 23:09:22
1。里面還加了個 offset, 為什么能實現跑馬顯示
╄→狂人╰☆(63637313)23:09:23
每行16個led,當然要用2個字節,這個明白吧
efan(6939780) 23:09:38
這個懂了
╄→狂人╰☆(63637313)23:10:33
中斷一次,數據整體下移一行,有問題嗎?
efan(6939780) 23:10:51
我想想。。。
efan(6939780) 23:12:23
不理解,是不是指offset+=2?
要下雨了(422583941)23:12:58
是吧
╄→狂人╰☆(63637313)23:13:11
我沒仔細看 太長了
你明白了原理再看程序就簡單了
efan(6939780) 23:13:39
他是左跑馬,為何下移動阿?
╄→狂人╰☆(63637313)23:14:09
我隨便說的
efan(6939780) 23:14:18
╄→狂人╰☆(63637313)23:14:58
要下雨了(422583941)23:15:00
向左跑 就是說逐步去掉左邊的一些代碼不要
要下雨了(422583941)23:15:44
第一列的數據逐步往右邊取
efan(6939780) 23:17:17
對照漢字碼看一下
{0x04,0x28,0x08,0x24,0x32,0x22,0xC2,0x21,0xC2,0x26,0x34,0x38,0x04,0x04,0x08,0x18,0x30,0xF0,0xC0,0x17,0x60,0x10,0x18,0x10,0x0C,
0x14,0x06,0x18,0x04,0x10,0x00,0x00},/*"歡",0*/
起始為 0x04,0x28
中斷一次,跳到哪個了?是不是0x08,0x24?
要下雨了(422583941)23:17:38
是的
要下雨了(422583941)23:17:51
第一列就顯示了0x08,0x24
要下雨了(422583941)23:18:18
你這個程序運行對了沒有
efan(6939780) 23:19:03
跑了,proteus沒問題
要下雨了(422583941)23:19:12
哦
要下雨了(422583941)23:19:12
哦
要下雨了(422583941)23:19:36
明白了嗎
╄→狂人╰☆(63637313)23:20:18
你單步跑下就更清楚了
efan(6939780) 23:20:20
程序還有點點不明白,原理曉得了
efan(6939780) 23:38:59
我說一下算了,電路很簡單,p0口發漢字碼,p1口輸出掃描碼
-
-
漢字LED點陣顯示.doc
2017-12-25 14:18 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
26.5 KB, 下載次數: 5, 下載積分: 黑幣 -5
漢字led
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
cao在线|
久久com|
中文字幕亚洲视频
|
亚洲国产二区
|
国产精品美女一区二区
|
999精品在线|
国产日韩欧美在线观看
|
一区二区国产精品
|
人人干人人舔
|
北条麻妃一区二区三区在线观看
|
岛国av在线免费观看
|
男人的天堂亚洲
|
欧美日韩精品免费
|
久久久久久亚洲欧洲
|
亚洲成人免费视频在线观看
|
国产成人精品午夜
|
91久久精品日日躁夜夜躁欧美
|
瑟瑟免费视频
|
xx性欧美肥妇精品久久久久久
|
日韩免费视频一区二区
|
日韩精品久久
|
国产成人福利在线观看
|
亚洲欧美一区二区三区在线
|
精品日韩一区二区
|
在线免费观看色
|
一级黄色淫片
|
国产一区二区日韩
|
色橹橹欧美在线观看视频高清
|
欧美一区视频在线
|
中文字幕亚洲精品
|
亚洲国产精久久久久久久
|
av永久
|
成人免费视频
|
欧美专区日韩
|
欧美日韩成人在线
|
亚洲永久
|
国产精品国产成人国产三级
|
亚洲一区国产精品
|
少妇无套高潮一二三区
|
国产传媒在线观看
|
蜜桃精品视频在线
|