资源描述:
《单片机程序 动态显示自己的名字.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、//动态显示自己的名字//*****************************************************************************#include//头文件typedefunsignedcharbyte;//声明byte代替unsignedchartypedefunsignedintword;//声明word代替unsignedintsbitdatah595=P1^0;//datah595为P1中的P1.0引脚sbitdatal595=P1^1;//datal595为P1中的P1.1引脚sbitclk595=P1^2;//
2、clk595为P1中的P1.2引脚sbitoe595=P1^3;//oe595为P1中的P1.3引脚sbitstr595=P1^4;//str595为P1中的P1.4引脚worddatadatah,datal;//声明整体数据变量bytecodedistab[]=//字的代码,先低位,后高位{0x00,0x40,0x08,0x20,0x28,0x10,0x49,0x08,0x8A,0x04,0x0C,0x03,0xC8,0x06,0x38,0x38,0x08,0x10,0x00,0x00,0xF8,0x07,0x00,0x20,0x00,0x40,0xFF,0x3F,0x00,0x00,0
3、x00,0x00,//"刘",00x20,0x00,0x10,0x04,0x08,0x04,0xFC,0x05,0x03,0x04,0x02,0x04,0x10,0x04,0x10,0xFF,0x7F,0x04,0x88,0x04,0x88,0x04,0x84,0x04,0x86,0x04,0xE4,0x04,0x00,0x04,0x00,0x00,//"华",10x00,0x00,0x04,0x00,0x04,0x20,0xC4,0x18,0xB4,0x0E,0x8C,0x04,0x87,0x20,0x84,0x40,0xF4,0xFF,0x84,0x00,0x84,0x02,0x84,
4、0x04,0x84,0x18,0x04,0x30,0x00,0x00,0x00,0x00//"东",2};voiddelay(wordi)//延时子函数{while(i--);//i=0时才跳出循环}voidsenddata(worddatah,worddatal)//读取数据子函数{bytei;//声明变量iwordm,n;//声明变量m,noe595=0;//oe595置低电平(oe595低电平有效)str595=0;//str595置低电平,不输出数据(str595上升沿时输出数据)for(i=0;i<16;i++)//循环16次{clk595=0;//clk595置低电平,不读数据
5、(clk595上升沿时读取数据)m=datah;//数据datah给m,作用保护数据datahn=~datal;//取反运算,取反后把数据datal给n,作用保护数据datalm&=0x8000;//与运算,只要m的最高位数据n&=0x8000;//与运算,只要n的最高位数据datah595=(bit)m;//取位运算,取m的最高位datal595=(bit)n;//取位运算,取n的最高位datah<<=1;//左移一位datal<<=1;//左移一位clk595=1;//clk595置高电平,读取数据(clk595上升沿时读取数据)}str595=1;//str595置高电平,输出数据(
6、str595上升沿时输出数据)}voiddisplay(wordn,wordtime)//显示子函数{wordi,j,k,t,x;//声明变量byte*p;//定义指针pt=n*32;//t代表代码的地址,即是第n个字的开头代码的首地址p=&distab[t];//p指向第n个字的开头代码首地址for(x=0;x