下面是单片机电路图
16乘32点阵仿真电路及程序下载:
16乘32点阵仿真电路图及程序.rar
(120.18 KB, 下载次数: 75)
源程序预览:
- //本仿真电路为8分之1扫描方式
- #include<reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
- sbit DS=P3^0;
- sbit SH=P3^1;
- sbit ST=P3^2;
- sbit AA=P3^3;
- sbit BB=P3^4;
- sbit CC=P3^5;
- uchar code ziku[][32];
- //延时函数
- void delay(uint z)
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- //往595中写入一个字节数据
- void write_595(uchar date)
- {
- uchar i;
- ST=0;
- for(i=0;i<8;i++)
- {
- SH=0;
- if(date&0x80)
- DS=1;
- else
- DS=0;
- date=date<<1;
- SH=1;
- }
- ST=1;
- }
- //138译码器通道选择
- void xuanze(uchar num)
- {
- switch (num)
- {
- case 0:CC=0;BB=0;AA=0;break;
- case 1:CC=0;BB=0;AA=1;break;
- case 2:CC=0;BB=1;AA=0;break;
- case 3:CC=0;BB=1;AA=1;break;
- case 4:CC=1;BB=0;AA=0;break;
- case 5:CC=1;BB=0;AA=1;break;
- case 6:CC=1;BB=1;AA=0;break;
- case 7:CC=1;BB=1;AA=1;break;
- }
- }
- //主函数
- void main()
- {
- uchar k;
- while(1)
- {
- for(k=0;k<8;k++)
- {
- write_595(ziku[1][24+k]);
- write_595(ziku[1][16+k]);
- write_595(ziku[1][8+k]);
- write_595(ziku[1][0+k]);
- write_595(ziku[0][24+k]);
- write_595(ziku[0][16+k]);
- write_595(ziku[0][8+k]);
- write_595(ziku[0][0+k]);
- xuanze(k);
- delay(5);
- }
- }
- }
- uchar code ziku[][32]={
- /*0xFF,0x80,0xFE,0xFE,0xFE,0xFE,0xC0,0xFE,
- 0xFE,0xFE,0xFE,0xFE,0xFE,0x00,0xFF,0xFF,
- 0xFF,0x03,0xFF,0xFF,0xFF,0xFF,0x07,0xFF,
- 0xBF,0xDF,0xCF,0xEF,0xFF,0x01,0xFF,0xFF,/*"玉",0*/
- /*0xEF,0xEF,0xEF,0xEF,0x02,0xEF,0xEF,0xC7,
- 0xCB,0xAB,0xAE,0x6D,0xEB,0xEF,0xEF,0xEF,
- 0xDF,0xDF,0xDF,0xDF,0x01,0xDF,0x9F,0x8F,
- 0x4F,0x57,0xD7,0xD9,0xDB,0xDF,0xDF,0xDF,/*"林",1*/
- 0xFF,0x01,0x7F,0x7F,0x7F,0x7F,0x03,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x00,0xFF,0xFF,
- 0xFF,0xC0,0xFF,0xFF,0xFF,0xFF,0xE0,0xFF,0xFD,0xFB,0xF3,0xF7,0xFF,0x80,0xFF,0xFF,/*"玉",0*/
- 0xF7,0xF7,0xF7,0xF7,0x40,0xF7,0xF7,0xE3,0xD3,0xD5,0x75,0xB6,0xD7,0xF7,0xF7,0xF7,
- 0xFB,0xFB,0xFB,0xFB,0x80,0xFB,0xF9,0xF1,0xF2,0xEA,0xEB,0x9B,0xDB,0xFB,0xFB,0xFB,/*"林",1*/
- };
复制代码
|