资讯详情

基于STC12C5A60S2单片机的点阵屏完工

通过几天的工作点阵屏终于完工,不过因为缺少元件只能算完成了一半。。。。。。 不想多说直接上C51程序代码 //行扫1#74hc154芯片对应数据输入口:P0^0->P0^3数据输入控制口:P0^4低电平有效;行扫输出为互斥低电平输出; //列扫1#74hc595芯片对应数据输入口:P0^5时钟信号;P0^6存储寄存器数据更新时钟;P0^7数据输出使能,低电平时输出有效; //P2^0串行数据输入 #include<reg52.h>//包函头文件 #include<intrins.h>//包函_nop_延时函数的头文件 #define uchar unsigned char//宏定义 #define uint unsigned int//宏定义 //////////////////////////////////////////////////////////////////////////////// uchar code ZM000[]= { //源文件 / 文字: 祝 0x00,0x00,0x20,0x00,0x11,0xF8,0x01,0x08, 0x79,0x08,0x09,0x08,0x11,0x08,0x11,0xF8, 0x38,0x90,0x54,0x90,0x10,0x90,0x10,0x90, 0x11,0x14,0x11,0x14,0x12,0x0C,0x00,0x00, }; uchar code ZM001[]= { //源文件 / 文字: 荣 0x00,0x00,0x08,0x20,0x7F,0xFC,0x08,0x20, 0x00,0x00,0x7F,0xFC,0x40,0x04,0x01,0x00, 0x01,0x00,0x7F,0xFC,0x03,0x80,0x05,0x40, 0x19,0x30,0x61,0x0C,0x01,0x00,0x00,0x00, }; //////////////////////////////////////////////////////////////////////////////// sbit HC154_A=P0^0;//HC154数据输入口 sbit HC154_B=P0^1;//HC154数据输入口 sbit HC154_C=P0^2;//HC154数据输入口 sbit HC154_D=P0^3;//HC154数据输入口 sbit G1=P0^4;//HC154使能端控制 sbit SH=P0^5;//HC595移位控制 sbit =P0^6;//HC595存更新显示 sbit OE=P0^7;//HC595使能端控制 sbit DS=P2^0;//HC595串行数据输入 //////////////////////////////////////////////////////////////////////////////// void chushihua() //硬件初始化 { OE=1; //关闭HC595输出 G1=1; //关闭HC154输出 } //////////////////////////////////////////////////////////////////////////////// void delay(uint ms)//延时子程序 { uint x,y; for(x=ms;x>0;x--) for(y=0;y<240;y++); } //////////////////////////////////////////////////////////////////////////////// //低位先入 void sendbyte(uchar Rdate)//HC595串口输入一个字节 { uchar a; uchar date=Rdate; for(a=0;a<8;a++) { SH=0; if(date&0x01)//先将最低位移入 { DS=1; SH=1; } else { DS=0; SH=1; } date=date>>1;//输入的字节位右移 } } //////////////////////////////////////////////////////////////////////////////// void HC595_GX() //HC595锁存数据更新并输出 { ST=0; _nop_(); _nop_(); ST=1; //HC595锁存数据更新 _nop_(); _nop_(); OE=0; //HC595输出 } //////////////////////////////////////////////////////////////////////////////// void HC154_HS(uint x)//X行低电平输出 { G1=0; switch(x) { case 1: HC154_A=0; HC154_B=0; HC154_C=0; HC154_D=0; break; case 2: HC154_A=1; HC154_B=0; HC154_C=0; HC154_D=0; break; case 3: HC154_A=0; HC154_B=1; HC154_C=0; HC154_D=0; break; case 4: HC154_A=1; HC154_B=1; HC154_C=0; HC154_D=0; break; case 5: HC154_A=0; HC154_B=0; HC154_C=1; HC154_D=0; break; case 6: HC154_A=1; HC154_B=0; HC154_C=1; HC154_D=0; break; case 7: HC154_A=0; HC154_B=1; HC154_C=1; HC154_D=0; break; case 8: HC154_A=1; HC154_B=1; HC154_C=1; HC154_D=0; break; case 9: HC154_A=0; HC154_B=0; HC154_C=0; HC154_D=1; break; case 10: HC154_A=1; HC154_B=0; HC154_C=0; HC154_D=1; break; case 11: HC154_A=0; HC154_B=1; HC154_C=0; HC154_D=1; break; case 12: HC154_A=1; HC154_B=1; HC154_C=0; HC154_D=1; break; case 13: HC154_A=0; HC154_B=0; HC154_C=1; HC154_D=1; break; case 14: HC154_A=1; HC154_B=0; HC154_C=1; HC154_D=1; break; case 15: HC154_A=0; HC154_B=1; HC154_C=1; HC154_D=1; break; case 16: HC154_A=1; HC154_B=1; HC154_C=1; HC154_D=1; break; default: break; } } //////////////////////////////////////////////////////////////////////////////// void OUT16x16(uchar code ZM[31])//输出一个16x16点阵字模子程序 { uint y;//行扫数据控制 uint x_H;//列高位数据控制 uint x_L;//列低位数据控制 for(y=1,x_H=0,x_L=1;y<=16;y++) { sendbyte(ZM[x_L]); sendbyte(ZM[x_H]); HC595_GX(); HC154_HS(y); x_H+=2; x_L+=2; delay(1); } } //////////////////////////////////////////////////////////////////////////////// void main() //主函数 { uint x; while(1) { //输出祝字 for(x=0;x<5000;x++) { OUT16x16(ZM000); } //输出荣字 for(x=0;x<5000;x++) { OUT16x16(ZM001); } } }

-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台