- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AVR外设汇总之8x8点阵屏
1. 8*8点阵屏
//原理与MAX7219数码管差不多,故沿用其函数。解释详情请参见本文集中的AVR
设汇总之MAX7219数码管.doc文档。
//将PA3位置0
#defineMAX7219_LOAD2_0 {DDRA|=_BV(PA3);PORTA=~_BV(PA3);}
//将PA3位置 1
#defineMAX7219_LOAD2_1 {DDRA|=_BV(PA3);PORTA|=_BV(PA3);}
使用方法与数码管基本相同。
例子:
#includeavr/io.h
#includeutil/delay.h
#defineMAX7219_LOAD_0 {DDRA|=_BV(PA3);PORTA=~_BV(PA3);}//将PA3位置零
#defineMAX7219_LOAD_1 {DDRA|=_BV(PA3);PORTA|=_BV(PA3);}
#defineMAX7219_CLK_0 {DDRA|=_BV(PA2);PORTA=~_BV(PA2);}
#defineMAX7219_CLK_1 {DDRA|=_BV(PA2);PORTA|=_BV(PA2);}
#defineMAX7219_DIN_0 {DDRA|=_BV(PA0);PORTA=~_BV(PA0);}
#defineMAX7219_DIN_1 {DDRA|=_BV(PA0);PORTA|=_BV(PA0);}
//向7219发送地址和数据或控制
voidWrite7219(unsignedcharaddr,unsignedchardata)
{
unsignedchari=0;
MAX7219_LOAD_0;
MAX7219_CLK_0;
for(i=0;i8;i++)
{
if(addr0x80){MAX7219_DIN_1;}
else {MAX7219_DIN_0;}
_delay_us(2);
MAX7219_CLK_1;
_delay_us(2);
MAX7219_CLK_0;
addr=1;
}
MAX7219_CLK_0;
for(i=0;i8;i++)
{
if(data0x80){MAX7219_DIN_1;}
else {MAX7219_DIN_0;}
_delay_us(2);
MAX7219_CLK_1;
_delay_us(2);
MAX7219_CLK_0;
data=1;
}
MAX7219_LOAD_1;
}
voidinit7219(void)
{
Write7219(0x9,0x00);
Write7219(0xa,0x7);
Write7219(0xb,0x7);
Write7219(0xc,0x1);
}
unsignedcharfan[8]={0x5A,0xFF,0x5A,0xFF,0x18,0x7E,0x18,0x66};
unsignedcharchuang[8]={0x21,0x51,0xFD,0x55,0x75,0x55,0x4D,0x7F};
unsignedcharhong[8]={0x18,0xFF,0x89,0x7E,0x10,0x28,0x52,0xBF};
intmain(void)
{
init7219();
inti,j;
/* while(1){
for(j=0;j33;j++)
{
for(i=0;i8;i++)
{
if(j9){
Write7219(i+1,fan[i](8-j));}
elseif(j17){
Write7219(i+1
文档评论(0)