這是我最近學習單片機做的一個電陣,
附件含有源代碼和原理圖,
親測能用,適合新手觀看,大佬勿噴,
(本人新手一個,此文件新手可用來參考)
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
QQ圖片20190430200841.png (16.53 KB, 下載次數: 32)
下載附件
2019-4-30 20:08 上傳
單片機源程序如下:
- #include"reg51.h"
- #include"intrins.h"
- sbit sh1=P2^0;
- sbit st1=P2^1;
- sbit ser1=P2^2;
- unsigned char code lie[16]={0x08,0x88,0x48,0xc8,0x28,0xa8,0x68,0xe8,
- 0x10,0x14,0x12,0x16,0x11,0x15,0x13,0x17,};/*點亮每一列*/
- unsigned char code shu[][16]={
- 0x00,0x00,0x00,0x00,0x00,0x10,0x08,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x0F,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00, /*1*/
- 0x00,0x00,0x00,0x00,0x18,0x04,0x04,0x84,0x44,0x24,0x18,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x0C,0x0A,0x09,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00, /*2*/
- 0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0xF8,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x07,0x00,0x00,0x00,0x00,0x00, /*3*/};/*每一個字的數據*/
- void U1( unsigned char dat1, unsigned char dat2)
- { int a;
- unsigned char dat;
- dat=dat1; /*送入第一個數據*/
- sh1=0; /*讓11腳拉低*/
- for(a=0;a<8;a++)
- {
- ser1=dat>>7; /*把一個字節的低七位移掉*/
- dat=dat<<=1; /*右移一位*/
- sh1=1; /*在595芯片移位*/
- _nop_();
- _nop_();
- sh1=0;
- }
- dat=dat2; /*送入第二個數據*/
- sh1=0;
- for(a=0;a<8;a++)
- {
- ser1=dat>>7;
- dat=dat<<=1;
- sh1=1;
- _nop_();
- _nop_();
- sh1=0;
- }
- }
- void out595() /*595輸出*/
- {
- st1=0;
- _nop_();
- _nop_();
- st1=1;
- _nop_();
- _nop_();
- st1=0;
- }
- void main()
- {
- int i,j,y;
- while(1)
- {
- for(i=0;i<5;i=i+2)
- {
- y=50; /*顯示的時間*/
- while(y--)
- {
- for(j=0;j<16;j++)
- {
-
- U1(shu[i+1][j],shu[i][j]); /*具體看595級聯的用法*/
- P1=lie[j];
- out595();
- }
- P1=0xff; /*消隱*/
- }
- }
-
- }
- }
復制代碼
全部資料51hei下載地址:
138和595.zip
(53.06 KB, 下載次數: 52)
2019-4-30 20:10 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|