⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c51编程一个max7219的c程序.mht

📁 MAX7219的C源码
💻 MHT
📖 第 1 页 / 共 5 页
字号:
<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 &lt;avr/io.h&gt; <BR><BR>#include =
&lt;avr/io2313.h&gt;=20
        <BR><BR>#include &lt;avr/interrupt.h&gt; <BR><BR>#include=20
        &lt;avr/signal.h&gt; <BR><BR>#include &lt;inttypes.h&gt;=20
        <BR><BR>#include &lt;avr/eeprom.h&gt; <BR><BR>#include=20
        &lt;avr/pgmspace.h&gt;=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 &amp;=3D ~DIN_PIN =
<BR><BR>#define=20
        SET_CLK SOFT_SERIAL_PORT |=3D CLK_PIN <BR><BR>#define CLR_CLK=20
        SOFT_SERIAL_PORT &amp;=3D ~CLK_PIN <BR><BR>#define SET_LOAD=20
        SOFT_SERIAL_PORT |=3D LOAD_PIN <BR><BR>#define CLR_LOAD =
SOFT_SERIAL_PORT=20
        &amp;=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 &amp; cData) ? (SET_DIN) : =
(CLR_DIN);cData&lt;&lt;=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 &amp;~ <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')+'&amp;iu=3D'+encodeURIComponent(location.href)+'&amp;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 + -