📄 c51编程一个max7219的c程序.mht
字号:
<BR><BR>DisBuffer[3]=3Di;=20
<BR><BR>DisBuffer[4]=3Di; <BR><BR>DisBuffer[5]=3Di; =
<BR><BR>DisBuffer[6]=3Di;=20
<BR><BR>DisBuffer[7]=3Di; <BR><BR><BR><BR>WriteWord =
(Digit0,DisBuffer[0]);=20
<BR><BR>WriteWord (Digit1,DisBuffer[1]); <BR><BR>WriteWord=20
(Digit2,DisBuffer[2]); <BR><BR>WriteWord (Digit3,DisBuffer[3]);=20
<BR><BR>WriteWord (Digit4,DisBuffer[4]); <BR><BR>WriteWord=20
(Digit5,DisBuffer[5]); <BR><BR>WriteWord (Digit6,DisBuffer[6]);=20
<BR><BR>WriteWord (Digit7,DisBuffer[7]); <BR><BR>} =
<BR><BR><BR><BR>}=20
<BR><BR><BR><BR><BR><BR>} <BR><BR><BR><BR></P>
<P><BR><BR></P>
<UL>
<LI style=3D"LIST-STYLE-TYPE: none"><BR><BR>
=
<LI><STRONG>=CE=D2=D5=FD=BA=C3=D3=D0=B8=F67219=A3=AC=D2=BB=D6=B1=CF=EB=D1=
=A7=D2=BB=CF=C2=A3=AC51=BD=DA=BE=CD=B4=EE=B8=F6=B5=E7=C2=B7=BF=B4=BF=B4=A3=
=AC=D0=BB=D0=BB=A1=A3 [=B5=E7=C0=D3=CC=FA] <SPAN=20
style=3D"COLOR: #d5d5d5">2005-4-22 18:00:21</SPAN></STRONG> =
<BR><BR>
<P><BR><BR></P><BR><BR><BR><BR>
<LI><STRONG>=CE=D2=D3=D0=B8=FC=BC=F2=B5=A5=B5=C4 [rq88] <SPAN =
style=3D"COLOR: #d5d5d5">2005-4-22=20
18:38:00</SPAN></STRONG> <BR><BR>
<P>=CE=D2=D3=D0=B8=FC=BC=F2=B5=A5=B5=C4 =
<BR><BR><BR><BR></P><BR><BR><BR><BR>
=
<LI><STRONG>=C4=C7=BE=CD=B7=A2=C9=CF=C0=B4=B4=F3=BC=D2=B6=BC=BF=B4=BF=B4=C2=
=EF [bush636] <SPAN style=3D"COLOR: #d5d5d5">2005-4-22=20
21:19:13</SPAN></STRONG> <BR><BR>
<P><BR><BR></P><BR><BR><BR><BR>
<LI><STRONG>=CE=D2=D3=D0AVR C++=B5=C4 =
AT90S2313=CD=A8=B9=FD=A3=A8=D3=D0=CD=BC=A3=A9(=B8=BD=CD=BC) =
[Sunnyyonkers] <SPAN=20
style=3D"COLOR: #d5d5d5">2005-4-23 14:27:58</SPAN></STRONG> =
<BR><BR>
=
<P>=D2=AA=D7=A2=D2=E2=B5=BD=CA=B1=D0=F2=D5=FD=C8=B7=BE=CD=D0=D0=C1=CB=A3=AC=
=C1=ED=CD=E2=B5=E7=D1=B9=D2=BB=B6=A8=D2=AA=B9=BB=A3=AC=B7=F1=D4=F2=D2=BB=B6=
=A8=BB=E1=B3=F6=CF=D6=C2=D2 <BR><BR>=C2=EB=A1=A3=20
=
<BR><BR><BR><BR>=CE=D2=CF=C8=B8=F8=B3=F6=D2=BB=B8=F6=CE=D2=D7=F6=B5=C4=D2=
=BB=B8=F6=CD=A8=D3=C3=C7=FD=B6=AF=A1=A3=20
=
<BR><BR>//---------------------------------------------------------------=
---------------=20
<BR><BR>//Author:SunnyYonkers <BR><BR>//Date: 2005y-03m-18d =
13:00=20
=
<BR><BR>//---------------------------------------------------------------=
---------------=20
<BR><BR>#include <avr/io.h> <BR><BR>#include =
<avr/io2313.h>=20
<BR><BR>#include <avr/interrupt.h> <BR><BR>#include=20
<avr/signal.h> <BR><BR>#include <inttypes.h>=20
<BR><BR>#include <avr/eeprom.h> <BR><BR>#include=20
<avr/pgmspace.h>=20
=
<BR><BR>//---------------------------------------------------------------=
---------------=20
<BR><BR>//Hardware Define <BR><BR>//=D2=FD=BD=C5=B6=A8=D2=E5 =
<BR><BR>#define=20
SOFT_SERIAL_PORT PORTB <BR><BR>#define SOFT_SERIAL_DDR DDRB=20
<BR><BR>#define SOFT_SERIAL_PIN PINB=20
=
<BR><BR>//---------------------------------------------------------------=
---------------=20
<BR><BR>#define LOAD_PIN 0b00000100 <BR><BR>#define DIN_PIN =
0b00001000=20
<BR><BR>#define CLK_PIN 0b00010000=20
=
<BR><BR>//---------------------------------------------------------------=
---------------=20
<BR><BR>//=B6=A8=D2=E5=D2=FD=BD=C5=B2=D9=D7=F7 <BR><BR>#define =
SET_DIN SOFT_SERIAL_PORT |=3D DIN_PIN=20
<BR><BR>#define CLR_DIN SOFT_SERIAL_PORT &=3D ~DIN_PIN =
<BR><BR>#define=20
SET_CLK SOFT_SERIAL_PORT |=3D CLK_PIN <BR><BR>#define CLR_CLK=20
SOFT_SERIAL_PORT &=3D ~CLK_PIN <BR><BR>#define SET_LOAD=20
SOFT_SERIAL_PORT |=3D LOAD_PIN <BR><BR>#define CLR_LOAD =
SOFT_SERIAL_PORT=20
&=3D ~LOAD_PIN=20
=
<BR><BR>//---------------------------------------------------------------=
---------------=20
<BR><BR>#define TRUE 0x01 <BR><BR>#define FALSE 0x00=20
=
<BR><BR>//---------------------------------------------------------------=
---------------=20
<BR><BR>#define DISPLAY_ADD_0 0x01 <BR><BR>#define DISPLAY_ADD_1 =
0x02=20
<BR><BR>#define DISPLAY_ADD_2 0x03 <BR><BR>#define DISPLAY_ADD_3 =
0x04=20
<BR><BR>#define DISPLAY_ADD_4 0x05 <BR><BR>#define DISPLAY_ADD_5 =
0x06=20
<BR><BR>#define DISPLAY_ADD_6 0x07 <BR><BR>#define DISPLAY_ADD_7 =
0x08=20
=
<BR><BR>//---------------------------------------------------------------=
---------------=20
<BR><BR>#define DECODE_ADDRESS 0x09 <BR><BR>#define =
LIGHT_ADDRESS 0x0a=20
<BR><BR>#define SCAN_WIDE 0x0b <BR><BR>#define SLEEP_ADDRESS =
0x0c=20
<BR><BR>#define TEST_ADDRESS 0x0d=20
=
<BR><BR>//---------------------------------------------------------------=
---------------=20
<BR><BR>#define SLEEP_MODE 0x00 <BR><BR>#define UN_SLEEP_MODE =
0x01=20
=
<BR><BR>//---------------------------------------------------------------=
---------------=20
<BR><BR>#define NO_DECODE 0x00 <BR><BR>#define DECODE_0_ 0x01=20
<BR><BR>#define HALF_DECODE 0x0f <BR><BR>#define DECODE_ALL 0xff =
=
<BR><BR>//---------------------------------------------------------------=
---------------=20
<BR><BR>#define _CHAR_0 0b00000000 <BR><BR>#define _CHAR_1 =
0b00000001=20
<BR><BR>#define _CHAR_2 0b00000010 <BR><BR>#define _CHAR_3 =
0b00000011=20
<BR><BR>#define _CHAR_4 0b00000100 <BR><BR>#define _CHAR_5 =
0b00000101=20
<BR><BR>#define _CHAR_6 0b00000110 <BR><BR>#define _CHAR_7 =
0b00000111=20
<BR><BR>#define _CHAR_8 0b00001000 <BR><BR>#define _CHAR_9 =
0b00001001=20
<BR><BR>#define _CHAR_- 0b00001010 <BR><BR>#define _CHAR_E =
0b00001011=20
<BR><BR>#define _CHAR_H 0b00001100 <BR><BR>#define _CHAR_L =
0b00001101=20
<BR><BR>#define _CHAR_P 0b00001110 <BR><BR>#define _NO_CHAR =
0b00001111=20
<BR><BR>#define _DOT 0b10000000=20
=
<BR><BR>//---------------------------------------------------------------=
---------------=20
<BR><BR>class max7219drv <BR><BR>{ <BR><BR>public: =
<BR><BR>max7219drv();=20
<BR><BR>private: <BR><BR>void write(unsigned char cData);=20
<BR><BR>public: <BR><BR>void send(unsigned char address,unsigned =
char=20
ndata); <BR><BR>};=20
=
<BR><BR>//---------------------------------------------------------------=
---------------=20
<BR><BR>//=B9=B9=D4=EC=BA=AF=CA=FD =
<BR><BR>max7219drv::max7219drv() <BR><BR>{=20
<BR><BR>SOFT_SERIAL_PORT |=3D =
0b11111111;//=B3=F5=CA=BC=D7=B4=CC=AC=B8=DF=B5=E7=C6=BD =
<BR><BR>SOFT_SERIAL_DDR=20
|=3D 0b11111111;//=D7=B4=CC=AC=20
<BR><BR>/////////////////////////////////////////////// =
<BR><BR>}=20
=
<BR><BR>//---------------------------------------------------------------=
---------------=20
=
<BR><BR>//---------------------------------------------------------------=
---------------=20
<BR><BR>//=D0=B4=CA=FD=BE=DD=CE=A2=B3=CC=D0=F2:=CB=BD=D3=D0 =
<BR><BR>void max7219drv::write(unsigned char cData)=20
<BR><BR>{ <BR><BR>unsigned char nloop=3D0x07;=20
<BR><BR>///////////////////////////////////////////// =
<BR><BR>do{=20
<BR><BR>(0x80 & cData) ? (SET_DIN) : =
(CLR_DIN);cData<<=3D1;//=CA=FD=BE=DD=D2=C6=20
<BR><BR>=B3=F6 <BR><BR>CLR_CLK; =
<BR><BR>SET_CLK;//=B2=FA=C9=FA=D2=BB=B8=F6=CA=B1=D6=D3=D0=C5=BA=C5=20
<BR><BR>}while(nloop--); <BR><BR>}=20
=
<BR><BR>//---------------------------------------------------------------=
---------------=20
<BR><BR>//=D0=B4=CA=FD=BE=DD=D7=D3=B3=CC=D0=F2:=B9=AB=D3=D0 =
<BR><BR>void max7219drv::send(unsigned char=20
address,unsigned char ndata) <BR><BR>{ <BR><BR>write(address);=20
<BR><BR>write(ndata); <BR><BR>CLR_LOAD; <BR><BR>SET_LOAD; =
<BR><BR>}=20
=
<BR><BR>//---------------------------------------------------------------=
---------------=20
<BR><BR>int main(void) <BR><BR>{ <BR><BR>max7219drv drv;=20
=
<BR><BR>/////////////////////////////////////////////////////////////////=
=20
<BR><BR>for(;;) <BR><BR>{=20
=
<BR><BR><BR><BR>/////////////////////////////////////////////////////////=
////=20
<BR><BR>//Init MAX7219 =
<BR><BR>drv.send(SLEEP_ADDRESS,UN_SLEEP_MODE);=20
<BR><BR>drv.send(SCAN_WIDE,0x07); =
<BR><BR>drv.send(LIGHT_ADDRESS,0xf9);=20
<BR><BR>drv.send(DECODE_ADDRESS,DECODE_ALL);=20
=
<BR><BR><BR><BR>/////////////////////////////////////////////////////////=
////=20
<BR><BR>drv.send(DISPLAY_ADD_0,_CHAR_1 | _DOT);=20
<BR><BR>drv.send(DISPLAY_ADD_1,_CHAR_2 | _DOT);=20
<BR><BR>drv.send(DISPLAY_ADD_2,_CHAR_3 | _DOT);=20
<BR><BR>drv.send(DISPLAY_ADD_3,_CHAR_4 | _DOT);=20
<BR><BR>drv.send(DISPLAY_ADD_4,_CHAR_5 | _DOT);=20
<BR><BR>drv.send(DISPLAY_ADD_5,_CHAR_6 | _DOT);=20
<BR><BR>drv.send(DISPLAY_ADD_6,_CHAR_7 | _DOT);=20
<BR><BR>drv.send(DISPLAY_ADD_7,_CHAR_8 | _DOT);=20
=
<BR><BR><BR><BR>/////////////////////////////////////////////////////////=
////=20
<BR><BR>//=C8=A5=B5=F4=D0=A1=CA=FD=B5=E3=CA=B9=D3=C3 =
drv.send(DISPLAY_ADD_7,_CHAR_8 &~ <BR><BR>_DOT);=20
<BR><BR>//=CC=ED=BC=D3=D0=A1=CA=FD=B5=E3=CA=B9=D3=C3 =
drv.send(DISPLAY_ADD_7,_CHAR_8 | <BR><BR>_DOT);=20
=
<BR><BR><BR><BR>/////////////////////////////////////////////////////////=
////=20
<BR><BR><BR><BR>} <BR><BR>return 0; <BR><BR>}=20
=
<BR><BR>//---------------------------------------------------------------=
---------------=20
<BR><BR><IMG=20
src=3D"http://www.c51bbs.com/c51bbs/upload/11341589.jpg"></IMG>=20
<BR><BR><BR><BR></P><BR><BR><BR><BR>
<LI><STRONG>AVRGCC =
=CF=C2=CD=A8=B9=FD=A3=AC=D7=D4=BC=BA=D0=DE=B8=C4Makefile =
=B5=F7=CA=D4=BB=B7=BE=B3=3DMS VC IDE [Sunnyyonkers] <SPAN=20
style=3D"COLOR: #d5d5d5">2005-4-23 14:31:53</SPAN></STRONG>=20
<BR><BR></LI></UL>
<P><BR><BR></P></DIV></TD></TR></TBODY></TABLE><BR>
<DIV class=3Dopt><A =
title=3D=B2=E9=BF=B4=B8=C3=B7=D6=C0=E0=D6=D0=CB=F9=D3=D0=CE=C4=D5=C2=20
href=3D"http://hi.baidu.com/duuboo/blog/category/duuboo.com">=C0=E0=B1=F0=
=A3=BAduuboo.com</A> |=20
<A =
title=3D=BD=AB=B4=CB=CE=C4=D5=C2=CC=ED=BC=D3=B5=BD=B0=D9=B6=C8=CB=D1=B2=D8=
=20
onclick=3D"window.open('http://cang.baidu.com/do/add?it=3D'+encodeURIComp=
onent('C51=B1=E0=B3=CC:=D2=BB=B8=F6MAX7219=B5=C4c=B3=CC=D0=F2'+'_=B0=D9=B6=
=C8=BF=D5=BC=E4')+'&iu=3D'+encodeURIComponent(location.href)+'&fr=
=3Dsp#nw=3D1','_s','scrollbars=3Dno,width=3D600,height=3D450,right=3D75,t=
op=3D20,status=3Dno,resizable=3Dyes'); return false;"=20
href=3D"http://cang.baidu.com/do/add" =
target=3D_blank>=CC=ED=BC=D3=B5=BD=CB=D1=B2=D8</A> | =E4=AF=C0=C0(<SPAN=20
id=3Dresult></SPAN>) </DIV>
<DIV class=3Dline></DIV>
<SCRIPT language=3DJavaScript>
allkey=3Dallkey+"5100cafc2bdcc1fdfc037f41_4956af345fe33ab7d0a2d310_";
</SCRIPT>
<DIV id=3Din_comment><A name=3Dcomment></A>
<DIV class=3Dtit>=CD=F8=D3=D1=C6=C0=C2=DB=A3=BA</DIV>
<SCRIPT>
function writecmt(type,id,cmtname,cmturl,cmttime){
var html1=3D"";
if(type=3D=3D1){
if(cmturl=3D=3D""){
html1=3D"<a name=3D'"+id+"'>"+cmtname+"</a> - <span =
class=3D'date'>"+cmttime+"</span> ";
}else{
html1=3D"<a name=3D'"+id+"' href=3D'"+cmturl+"' target=3D'_blank' =
title=3D'"+cmturl+"'>"+cmtname+"</a> - <span =
class=3D'date'>"+cmttime+"</span> ";
}
}else{
if(cmtname=3D=3D"=C4=E4=C3=FB=CD=F8=D3=D1"){
if(cmturl=3D=3D""){
html1=3D"<a name=3D'"+id+"'>"+cmtname+"</a> - <span =
class=3D'date'>"+cmttime+"</span> ";
}else{
html1=3D"<a name=3D'"+id+"' href=3D'"+cmturl+"' target=3D'_blank' =
title=3D'"+cmturl+"'>"+cmtname+"</a> - <span =
class=3D'date'>"+cmttime+"</span>";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -