0、前言
参考:普中 51 单片机开发攻略 第13章
1、硬件
2、软件
mian.c
#include#include #include "delayms.h" typedef unsigned char u8; typedef unsigned int u16; //定义相应的IO口 #define LED_M P0//LED点阵,取0启动,取1关闭,0x00全亮 sbit RCLK_PIN = P3^5; //存储寄存器时钟输入 sbit SRCLK = P3^6; //移位寄存器时钟输入 sbit SER = P3^4; //串行数据输入 u8 ledduan[]={0x38,0x7c,0x7e,0x3f,0x3f,0x7e,0x7c,0x38}; //显示“0”,类似于动态数码管的段选 u8 ledwei[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; // 选择第几列显示,类似于动态数码管的位选 void LedMatrix(u8 line, u8 dat); //LED点阵实现显示“0”数字 void main() { while(1) { u8 i; for(i=0;i<8;i++) { LedMatrix(~ledwei[i], ledduan[i]); delayms(1); //延时,产生流水灯效果,防止视觉停留过短 } } } void LedMatrix(u8 line, u8 dat) //LED点阵实现显示“0”数字 { u8 i; SRCLK = 1; RCLK_PIN = 1; LED_M = line; for(i=0;i<8;i++) { SER = dat>>7; //将dat的最高位传给SER dat <<= 1; //将dat的数据右移一位 SRCLK = 0; //发送时序 _nop_(); //空函数,保证有时间发送时序 _nop_(); SRCLK = 1; } RCLK_PIN = 0; // _nop_(); //空函数,保证有时间发送时序 _nop_(); RCLK_PIN = 1; }
猜你喜欢
网友评论
- 搜索
- 最新文章
- 热门文章