1.了解大板单片机的应用,了解烧录软件和keil的使用
2.汉字“后来的你”的显示
keil代码
//该板子上的点阵为8*8,只能显示简单的一些汉子,如果要显示真正的汉字//通过取模软件取的可以选择16*16点阵的板子#include#includesbit SRCLK=P3^6;sbit RCLK=P3^5;sbit SER=P3^4;//--定义要使用的IO口--//#define COMMONPORTSP0//--列选通控制--//unsigned char code TAB[8] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//--点阵字码--//unsigned char code CHARCODE[4][8]={0x0e,0x10,0x37,0x55,0x55,0x57,0x50,0x90, //后0x02,0x54,0x78,0xff,0xFF,0x78,0x54,0x02, //来0x3F,0x55,0x95,0x1f,0x20,0xc8,0x45,0x7f, //的{0x20,0x7f,0xa4,0x4a,0xff,0x58,0x64,0x40} //中};void delay(unsigned int time){ unsigned int i,j; for(i=0;i>7;
dat<<=1;
SRCLK=1;
_nop_();
_nop_();
SRCLK=0;
}
RCLK=1;
_nop_();
_nop_();
RCLK=0;
}
/*******************************************************************************
* 函数名 : main
* 函数功能 : 主函数
* 输入 : 无
* 输出 : 无
*******************************************************************************/
void main()
{
unsigned char tab, j;
unsigned int i;
while(1)
{
for(i= 0; i<50; i++ ) //两个字之间的扫描间隔时间
{
for(tab=0;tab<8;tab++)
{
Hc595SendByte(0x00); //消隐
COMMONPORTS = TAB[tab]; //输出字码
Hc595SendByte(CHARCODE[j][tab]);
delay(2);
}
}
j++;
if(j == 4)
{
j = 0;
}
}
}
点阵的设计和实现
遇到的问题:16进制转换不熟练,上课没有好好听讲所以对于原理是临时抱佛脚学的,索幸在设计和实现上没有遇到太多问题,可是也少了很多自我探索的过程。感谢技术支持王政同学