内容正文:
项目六、电子广告牌的制作与电子课件 高教版 中职 单片机c语言程序设计及仿真
项目六、电子广告牌的制作与实现
任务1 LED8*8点阵显示数字
任务描述:
在LED8*8点阵上显示数字“0”,完成程序设计和仿真。
1.8*8点阵结构
知识链接
2. 8*8点阵动态显示原理
知识链接
1.任务分析
任务实施
8*8点阵行连接单片机P0端口,列通过锁存器连接单片机P2端口。通过动态扫描方式,P0端口轮流输出高电平;P2端口输出“0”的编码。
2.程序流程
任务实施
3.程序编写
任务实施
/*8*8点阵写编码程序*/
void LED8x8(uchar x)
{
P2=zimo[x];
LE=1;LE=0;
}
void main()
{ uchar i,row;
while(1)
{ row=0x01;
for(i=0;i<8;i++)
{ P0=row;
LED8x8(i);
delayms(5);
row=row<<1; }
}
}
4.程序电路仿真——绘制电路图
任务实施
3.程序电路仿真——仿真
任务实施
任务2 LED16*16点阵显示汉字
任务描述:
在LED16*16点阵上显示汉字“国”。
1.16*16点阵的结构
知识链接
2.汉字取模软件的使用
知识链接
首先打开软件,现在来到了软件首页,单击选择下面的“参数设置。
对文字输入区字体的设置,单击“文字输入区字体选择”。
对其它选项进行设置,单击“其它选项”。
本任务的取模方式为:横向取模,字节倒序。设置完成后单击“确定”。
在“文字输入区”输入一个你要取模的文字,文字输入完成后,同时按下Ctrl+Enter进行结束文字输入。
单击“取模方式”,选择“C51格式”完成字模生成。再把生成的字模编码复制出来即可。
3.汉字取模原理
知识链接
1.任务分析
任务实施
LED16*16点阵由4块8*8点阵拼接而成。分为16行(X0——X15)由锁存器U2和U3驱动;16列(Y0——Y15)由锁存器U4和U5驱动。
单片机P0端口轮流为16*16点阵行输出高电平,P2端口为列输出字模,即可实现汉字的显示。
2.程序流程
任务实施
3.程序编写——点阵程序
任务实施
void LED16x16()
{uchar i,we;
//上半屏显示
we=0x01;
for(i=0;i<9;i++)
{P0=we;R0=1;R0=R1=0;//上半屏开显示
P2=~zim[2*i];C0=1;C1=C0=0;
//调用左上字库
P2=~zim[2*i+1];C1=1;C1=C0=0;
//调用右上字库
delayms(1);
we=we<<1;}
//下半屏显示
we=0x01;
for(i=0;i<9;i++)
{P0=we;R1=1;R0=R1=0;//下半屏开显示
P2=~zim[2*i+16];C0=1;C1=C0=0;
//调用左下字库
P2=~zim[2*i+17];C1=1;C1=C0=0;
//调用右下字库
delayms(1);
we=we<<1; }
}
3.程序编写——主程序
任务实施
void main( )
{
/*初始化清屏*/
P0=0X00;
R0=R1=C0=C1=1;
R0=R1=C0=C1=0;
while(1)
{
LED16x16();//调用16*16显示函数
}
}
4.程序电路仿真——绘制16*16点阵
任务实施
4.程序电路仿真——绘制电路
任务实施
4.程序电路仿真——仿真
任务实施
任务3 电子广告牌的制作与实现
任务描述:
在LED16*32点阵上轮流显示“爱国敬业诚信友善”,完成电子广告牌的制作与实现。
LED16*32点阵结构
知识链接
LED16*32点阵由8个8*8点阵构成,上面4块构成上半屏,下面4块构块下半屏。可以将点阵看成二行和四列,分别由锁存器74HC573锁存器控制16*32点阵的行和列。
1.任务分析
任务实施
电路如图6-3-1所示,16*32点阵的行由两个锁存器U2、U3驱动控制,列由四个锁存器U4、U5、U6、U7驱动控制。单片机轮流为电阵行输出高电平,为列输出汉字字库编码;本任务程序编写采用定时器T0方式,不用长时间占用CPU资源,提高了CPU利用率和解决了点阵显示闪烁的问题。
多个汉字同时取模的时候,需定义一个二维数组,32个字节构成一个汉字,所以数组里面的元素的长度为32。
uchar code zimo[][32]={ };
2.程序流程
任务实施
3.编写程序——点阵初始化
任务实施
void LED16x32CSH(