c51 74ls164--165--595

发布者:JoyfulHearted最新更新时间:2016-11-24 来源: eefocus关键字:c51  74ls164 手机看文章 扫描二维码
随时随地手机看文章

164跑马灯,

#include
#include
#define uint unsigned int
#define uchar unsigned char
sbit dat=P2^6;
sbit clk=P2^7;
uchar ii;
uchar code seg7code[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0xff};//0-9,-,全灭
void sendbyte(uchar seg)

 uchar num,c; 
 num=seg7code[seg];
 for(c=0;c<8;c++)
 {
 dat=num&0x80;
 num=_crol_(num,1);
 clk=0;
 clk=1;
 }
}
void delayms(int ms)
{
 uchar mi,mj;
 for(;ms>0;ms--)
  for(mi=6;mi>0;mi--)
   for(mj=82;mj>0;mj--);
}
void main()
{
 for(ii=0;ii<10;ii++)
 {
 sendbyte(ii);
 delayms(200);
 }
}

 

 

 

 

 

 

 

////////*****************以下为参考

#include
#define uint unsigned int
#define uchar unsigned char
sbit dat=P2^6;
sbit clk=P2^7;
uchar ii;
uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};//0-9,-,全灭
void sendbyte(uchar byte)

 uchar num,c; 
 num=tab[byte];
 for(c=0;c<8;c++)
 {
 dat=num&0x80;
 num=num<<1;
 clk=0;
 clk=1;
 }
}
void display(uint i) //显示字符序号
{
 uchar j,k;
 j=i/10;
 k=(i-10*j);
 sendbyte(k);
 sendbyte(j);
}
void delayms(int ms) //1ms delay
{
 uchar mi,mj;
 for(;ms>0;ms--)
  for(mi=6;mi>0;mi--)
   for(mj=82;mj>0;mj--);
}
void main()
{
 while(1)
 {
 for(ii=12;ii>0;ii--)
 {
 display(tab[ii]);
 delayms(200);
 }
 }
}

参考以下资料

作者:龙啸苍天
发表时间:2007-1-6 16:44:18

 

74hc595的c51驱动程序

带锁存功能的串入并出芯片。这里给出74hc595的c51驱动程序。

//作者:晒太阳的小猪
//个人blog:http://emcu.c51bbs.com
//转载使用请注明

//定时器晶体振荡器11.0592M.
#i nclude
#i nclude
#define uint unsigned int
#define uchar unsigned char
#define nop() _nop_();_nop_();

sbit CLK=P2^0;
sbit DAT=P2^1;
sbit RCLK=P2^2;
//sbit CS=P2^3;


uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};//0-9,-,全灭

 

void sendbyte(uchar byte)

 uchar num,c; 
 num=tab[byte];
 
 for(c=0;c<8;c++)
 {
 CLK=0;
 DAT=num&0x80;
 num=num<<1;
 
 CLK=1;
 }
// RCLK=0;
// nop();
// nop();
// RCLK=1;
 
}

void out595(void)
{
 RCLK=0;
 nop();
 RCLK=1;
}

void display(uchar word)
{
uchar i,j;
i=word/10;
j=word-10*i;
sendbyte(j);
sendbyte(i);
out595();
}


main()

 while(1)
 { 
 display(19);
 display(86);
 }
 while(1);
 
}

74hc165的驱动程序

//74hc165是常用的并入串出芯片,这里给出74hc165的驱动程序

//作者:晒太阳的小猪
//个人blog:http://emcu.c51bbs.com
//转载使用请注明

//--------------3片74hc165级连读程序---------
/*void read74hc165m(void)
{
 uchar basic,basic1,basic2,basic3,c;
 PL=1;
 nop();
 PL=0;
 nop();
 PL=1;
 basic=0;
 basic=basic<<1;
 if(SETBSC) basic|=0x01;
 for(c=0;c<7;c++)
 {
 CLOCK=0;
 nop();
 CLOCK=1; 
 basic=basic<<1;
 if(SETBSC) basic|=0x01;
 }
 basic1=basic;
 
 basic=0;
 for(c=0;c<8;c++)
 {
 CLOCK=0;
 nop();
 CLOCK=1; 
 basic=basic<<1;
 if(SETBSC) basic|=0x01;
 }
 basic2=basic;

 basic=0;
 for(c=0;c<8;c++)
 {
 CLOCK=0;
 nop();
 CLOCK=1; 
 basic=basic<<1;
 if(SETBSC) basic|=0x01;
 }
 basic3=basic;

}

74hc164的驱动程序

74hc64很简单的串入并出芯片。经常用于单片机端口的扩展。这里给出使用74hc164驱动数码管,做静态显示的程序。可以直接调用

//作者:晒太阳的小猪
//个人blog:http://emcu.c51bbs.com
//转载使用请注明
#i nclude
#define uint unsigned int
#define uchar unsigned char
sbit dat=P2^6;
sbit clk=P2^7;
uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};//0-9,-,全灭
void sendbyte(uchar byte)

 uchar num,c; 
 num=tab[byte];
 for(c=0;c<8;c++)
 {dat=num&0x80;
 num=num<<1;
 clk=0;
 clk=1;
 }

}

void display(uint i)
{uchar j,k,l,m;
j=i/10;
 k=(i-10*j);
 sendbyte(k);
 sendbyte(j);

}


关键字:c51  74ls164 引用地址:c51 74ls164--165--595

上一篇:51P0,P1左右移
下一篇:1602 时钟

推荐阅读最新更新时间:2024-03-16 15:22

C51的编程规范简介
简介:编程首要是要考虑程序的可行性,然后是可读性、可移植性、健壮性以及可测试性。这是总则。但是很多人忽略了可读性、可移植性和健壮性(可调试的方法可能歌不相同),这是不对的。 1.当项目比较大时,最好分模块编程,一个模块一个程序,很方便修改,也便于重用和便于阅读。 2.每个文件的开头应该写明这个文件是哪个项目里的哪个模块,是在什么编译环境下编译的,编程者(/修改者)和编程日期,值得注意的是一定不要忘了编程日期,因为以后你再看文件时,会知道大概是什么时候编写的,有些什么功能,并且可能知道类似模块之间的差异(有时同一模块所用的资源不同,和单片机相连的方法也不同,或者只是在原有的模块上加以改进)。 3.一个C源文件配置一个h头
[单片机]
C51系统上实现YAFFS文件系统
随着NAND Flash存储器作为大容量数据存储介质的普及,基于NAND闪存的文件系统YAFFS(Yet Another Flash File System)正逐渐被应用到各种嵌入式系统中。本文将详细阐述YAFFS文件系统在C51系统上的实现过程。 1 NAND Flash的特点   非易失性闪速存储器Flash具有速度快、成本低、密度大的特点,被广泛应用于嵌入式系统中。Flash存储器主要有NOR和NAND两种类型。NOR型比较适合存储程序代码;NAND型则可用作大容量数据存储。NAND闪存的存储单元为块和页。本文使用的Samsung公司的K9F5608包括2 048块,每一块又包括32页,一页大小为528字节,依次分为2个2
[单片机]
C51---10 DS1302实时时钟
DS1302介绍✨ DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能 RTC(Real Time Clock): 实时时钟,是一种集成电路,通常称为时钟芯片 引脚定义和应用电路 内部结构框图 寄存器定义 时序定义 BCD码 DS1302时钟
[单片机]
C51---10 DS1302实时时钟
C51编程8-数码管(工作原理2)
从共阴与共阳的数码管上看,对数码管的控制与控制LED一样,只需要控制数码管的两端高低电平(位选引脚与段选引脚的电平),数码管便可以被点亮。 静态显示与动态显示 静态显示:各数码管处于恒电压或者恒电流状态,硬件电路复杂成本高; 动态显示:各数码管被分时选通,利用人的视觉暂留特性显示,成本低,需要占用CPU运行时间。 驱动电路 虽然数码管的使用只需要设置控制位选与段选引脚,便可以使其工作。但数码管工作需要电流比较大,51单片机的P0双向I/O(没有高电平输出),而P1~P3为准双向I/O口(驱动电流很小)。这些端口不能直接驱动数码管,都需要外接上拉电阻提供电流给数码管。 下图的数码管控制电路,为P0口接上拉电阻
[单片机]
<font color='red'>C51</font>编程8-数码管(工作原理2)
74LS164(74HC164)单片机C51驱动
#include reg51.h #define uchar unsigned char #define uint unsigned int sbit AB =P1^0; sbit CLK=P1^1; sbit RET=P1^2; //延时函数 void mDelay(uchar Delay) { // 延时子程序 uchar i; while(Delay--) { for(i = 0; i 123; i++); } } void uDelay(uchar Delay) { // 延时子程序 for(;Delay 0;Delay--); } void
[单片机]
Keil C51对C语言的关键词扩展之十三: sfr
sfr用来定义特殊功能寄存器。用法如下: sfr name = address; name 为寄存器名字 address 为寄存器的地址 示例: sfr P0 = 0x80; /* P0口,地址为0x80 */ sfr P1 = 0x90; /* P1口,地址为0x90 */ sfr P2 = 0xA0; /* P2口,地址为0xa0 */ sfr P3 = 0xB0; /* P3口,地址为0xb0 */ 等号右边必须为数字常量,不能包含+ -等操作符,数值也不是随意的,传统类型8051单片机支持的地址范围为0x80 - 0xFF。NXP 80C51MX提供扩展地址范围0x180 - 0x1FF。 假如8个发
[单片机]
C51语言中如何嵌入汇编语言
keil C 语言中嵌入汇编语言进行混合编程,方法如下: 1、在C 文件中要嵌入汇编代码片以如下方式加入汇编代码 #pragma ASM ; Assembler Code Here #pragma ENDASM 2、在Project 窗口中包含汇编代码的C 文件上右键,选择“Options for ...” 在弹出的对话框中,点击右边的 “Generate Assembler SRC File” 和“Assemble SRC File” 使检查框由灰色变成黑色(有效)状态 3 、根据选择的编译模式, 把相应的库文件( 如Small 模式时, 是 KeilC51LibC51S.Lib)加入工程中, 该文件必须作为工程的最
[单片机]
在<font color='red'>C51</font>语言中如何嵌入汇编语言
两种MCU间的串行通信协议设计
ANLA,Rn;A与Rn中的值按位'与',结果送入A中 ANLA,direct;A与direct中的值按位'与',结果送入A中 ANLA,@Ri;A与间址寻址单元@Ri中的值按位'与',结果送入A中 ANLA,#data;A与立即数data按位'与',结果送入A中 ANLdirect,A;direct中值与A中的值按位'与',结果送入direct中 ANLdirect,#data;direct中的值与立即数data按位'与',结果送入direct中。 这几条指令的关键是知道什么是逻辑与。这里的逻辑与是指按位与
[单片机]
热门资源推荐
热门放大器推荐
  •  pdf文件硅光子设计(从器件到系统)
  •  pdf文件控制系统设计指南 (埃利斯)
  •  pdf文件软硬件融合 (黄朝波 著)
  •  pdf文件射频电路基础 (赵建勋,邓军)
  • 系统发生错误

    系统发生错误

    您可以选择 [ 重试 ] [ 返回 ] 或者 [ 回到首页 ]

    [ 错误信息 ]

    页面错误!请稍后再试~

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved