9.3LED点阵屏显示动画
#include REGX52.H#include Delay.h#include MatrixLED.h//动画数据unsigned char code Animation[]{0x3C,0x42,0xA9,0x85,0x85,0xA9,0x42,0x3C,0x3C,0x42,0xA1,0x85,0x85,0xA1,0x42,0x3C,0x3C,0x42,0xA5,0x89,0x89,0xA5,0x42,0x3C,};void main(){unsigned char i,Offset0,Count0;MatrixLED_Init();while(1){for(i0;i8;i) //循环8次显示8列数据{MatrixLED_ShowColumn(i,Animation[iOffset]);}Count; //计次延时if(Count15){Count0;Offset8; //偏移8切换下一帧画面if(Offset16){Offset0;}}}}#include REGX52.H#include Delay.hsbit RCKP3^5; //RCLKsbit SCKP3^6; //SRCLKsbit SERP3^4; //SER#define MATRIX_LED_PORT P0/*** brief 74HC595写入一个字节* param Byte 要写入的字节* retval 无*/void _74HC595_WriteByte(unsigned char Byte){unsigned char i;for(i0;i8;i){SERByte(0x80i);SCK1;SCK0;}RCK1;RCK0;}void MatrixLED_Init(){SCK0;RCK0;}/*** brief LED点阵屏显示一列数据* param Column 要选择的列范围0~70在最左边* param Data 选择列显示的数据高位在上1为亮0为灭* retval 无*/void MatrixLED_ShowColumn(unsigned char Column,Data){_74HC595_WriteByte(Data);MATRIX_LED_PORT~(0x80Column);Delay(1);MATRIX_LED_PORT0xFF;}#ifndef __MATRIX_LED_H_#define __MATRIX_LED_H_void MatrixLED_Init();void MatrixLED_ShowColumn(unsigned char Column,Data);#endif
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2483755.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!