完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
回复本帖可获得 2 分积分奖励! 每人限 1 次 |
这是程序:
#include "include.h" #include "sys.h" #define DZ_DATA P4OUT //573位选信号的输入管脚 #define CLK_H P6OUT|=BIT2 //595时钟信号的输入置高 #define CLK_L P6OUT&=~BIT2 //595时钟信号的输入置低 #define ST_H P6OUT|=BIT3 //595锁存信号置高 #define ST_L P6OUT&=~BIT3 //595锁存信号置低 #define DATA_H P6OUT|=BIT1 //595数据信号输入置高 #define DATA_L P6OUT&=~BIT1 //595数据信号置低 #define LED_E0 P5OUT|=BIT7 //数码管 573使能置高 #define LED_E1 P5OUT&=~BIT6 //点阵 573使能置低 //点阵数据显示数组 uchar DZDataTab[80]={ 0x00,0x00,0x3E,0x41,0x41,0x41,0x3E,0x00, //0 0x00,0x00,0x01,0x21,0x7F,0x01,0x01,0x00, //1 0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00, //2 0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00, //3 0x00,0x00,0x0C,0x14,0x24,0x7F,0x04,0x00, //4 0x00,0x00,0x72,0x51,0x51,0x51,0x4E,0x00, //5 0x00,0x00,0x3E,0x49,0x49,0x49,0x26,0x00, //6 0x00,0x00,0x40,0x40,0x40,0x4F,0x70,0x00, //7 0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00, //8 0x00,0x00,0x32,0x49,0x49,0x49,0x3E,0x00}; //9 void Portinit(); void Lv595WriteData(uchar dat); void main() { uchar i=0,j=0,t=0; uchar wx; //位选信号控制 ClockInit(); WDTInit(); PortInit(); while(1) { if(i==80) i=0; while(t!=100) //在此可修改每个数字显示的持续时间 { t++; wx=0x01; for(j=i;j { Lv595WriteData(DZDataTab[j]); DZ_DATA=wx; DelayMs(1); wx<<=1; } } t=0; i+=8; } } /* **************************************************************************** * PortInit() * 功能说明 ;IO初始化 * 参数 :无 * 返回值 :无 **************************************************************************** */ void PortInit() { P4SEL=0X00; P4DIR=0XFF; P6SEL=0X00; P6DIR=0XFF; P5SEL=0X00; P5DIR=0XFF; LED_E1; LED_E0; P1SEL=0X00; P1DIR=0XFF; P1OUT=0X01; } /* **************************************************************************** * Lv595WriteData(uchar dat) * 功能说明 ;向595发送一个字节的数据 * 参数 :dat:发送的数据(一个字节) * 返回值 :无 **************************************************************************** */ void Lv595WriteData(uchar dat) { uchar i; CLK_H; DelayUs(1); ST_H; for(i=8;i>0;i--) //循环八次,写一个字节 { if(dat&0x01) //发送BIT0 位 DATA_H; else DATA_L; CLK_L; DelayUs(1); CLK_H; //时钟上升沿 dat=dat>>1; //要发送的数据右移,准备发送下一位 } ST_L; DelayUs(1); ST_H; //锁存数据 } |
|
相关推荐
1个回答
|
|
回帖奖励 +2 分积分
显示什么错误呢》?
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
4961 浏览 3 评论
6255 浏览 1 评论
6521 浏览 0 评论
Protues中自己封装的芯片元件无Program File、Clock Frequency选项怎么解决,求求大神了!
8269 浏览 1 评论
基于51单片机的车辆倒车雷达报警系统,HC-SR04超声波测距,全套资料
1245 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-2 14:57 , Processed in 0.654548 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号