利用51单片机和4片74HC595,让16*16点阵滚动显示文字,16*16点阵由4片8*8点阵并联
#include<reg52.h>//包含头文件,对IO进行定义,可以选中后右击,查看里面具体定义。#defineUCHARunsignedchar#defineUINT...
#include<reg52.h> //包含头文件,对IO进行定义,可以选中后右击,查看里面具体定义。#define UCHAR unsigned char#define UINT unsigned intUCHAR table_gyang[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x90};UCHAR table_gying[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x6f};UCHAR table_we[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};sbit H595_DATA=P1^0;sbit H595_RCK=P1^1;sbit H595_SCK=P1^2;sbit H595_DATA1=P1^3;sbit H595_RCK1=P1^4;sbit H595_SCK1=P1^5;//***********延时z毫秒***********///delay usvoid Delay595_us(UCHAR us) //5,7,9{ while(--us);}//delay msvoid Delay595_ms(UINT iMs){ UINT i,j; for(i=0;i<iMs;i++) { for(j=0;j<65;j++);; }}void Init74hc595(){ H595_DATA=0; H595_RCK=0; H595_SCK=0; H595_DATA1=0; H595_RCK1=0; H595_SCK1=0;}void hang_595(UCHAR dah,UCHAR dal){ UCHAR i; H595_RCK1=0; Delay595_us(10); for(i=0;i<8;i++) { H595_SCK1=0; Delay595_us(1); if(dah&(0x80>>i)) {H595_DATA1=1;} else{H595_DATA1=0;} Delay595_us(1); H595_SCK1=1; Delay595_us(1); } for(i=0;i<8;i++) { H595_SCK1=0; Delay595_us(1); if(dal&(0x80>>i)) {H595_DATA1=1;} else{H595_DATA1=0;} Delay595_us(1); H595_SCK1=1; Delay595_us(1); } H595_RCK1=1; Delay595_us(10);}void lie_595(UCHAR dah,UCHAR dal){ UCHAR i; H595_RCK=0; Delay595_us(10); for(i=0;i<8;i++) { H595_SCK=0; Delay595_us(1); if(dah&(0x80>>i)) {H595_DATA=1;} else{H595_DATA=0;} Delay595_us(1); H595_SCK=1; Delay595_us(1); } for(i=0;i<8;i++) { H595_SCK=0; Delay595_us(1); if(dal&(0x80>>i)) {H595_DATA=1;} else{H595_DATA=0;} Delay595_us(1); H595_SCK=1; Delay595_us(1); } H595_RCK=1; Delay595_us(10);}void main(){ hang_595(0xff,0xff); lie_595(0x00,0x00);} 这让它全亮。。。
展开
3个回答
展开全部
你这不是有原理图和程序了吗,有什么问题吗?是实物,还是仿真的。
那这些程序是从网上找的吗?
有问题追问,别发评论。
那这些程序是从网上找的吗?
有问题追问,别发评论。
追问
就想知道程序怎么编写
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
实现了?
懂事电子设计 Vgz
懂事电子设计 Vgz
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的问题是什么?
追问
怎么显示汉字
追答
不知道你现在是什么水平,也就不知道应该从哪一层开始说
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询