机电之家资源网
单片机首页|单片机基础|单片机应用|单片机开发|单片机文案|软件资料下载|音响制作|电路图下载 |嵌入式开发
培训信息
赞助商
单片机 74ls164 IO 口驱动程序 串入并出
单片机 74ls164 IO 口驱动程序 串入并出
 更新时间:2008-8-19 14:08:16  点击数:48
【字体: 字体颜色

单片机 74ls164 IO 口驱动程序 串入并出 源代码(C语言 附源文件及仿真程序)

因为89c2051总共才有20个引脚 所以在实现复杂功能的单片机应用中 节约针脚的使用显得尤为重要 我最近在做 单片机项目时已开始客户要求的功能少 所以采用 89c2051的p1口直接驱动 两个led数码管(外加两个扫描控制脚 p3_3 p3_4)这样光显示部分就占用了9个脚 开始的几个控制系统还可以满足需要 可是后来 客户要一次加 三个功能 1.水平开关输入 2.缺水开关输入 3.状态报警输出 因为之前做的程序 20个脚正好全部用上 所以这次再加功能 再不更换单片机芯片的情况下 就只能 把显示电路 改为其他方式考虑到成本问题 采用常用的 74ls164驱动led比较实用 (74LS164 是TTL 八位串行入/并行输出移位寄存器) 经过两天的研究 现在终于完成了该项目的程序编写工作再此次编写过程中 我发现 网上讲的大多数都是 74ls164 汇编程序的例子 c语言的 几乎没有

所以在此奉上74ls164的c语言的源代码 其中驱动共阴数码管 和驱动共阳数码管时 程序是不同的 这一点 其他地方 还有书上并未 明确说明 所以在这要重点提一下。

c51源码和 Proteus仿真程序下载请点击下面链接(压缩包包括 共阴、共阳源文件 及仿真文件)

#include "reg52.h"
#define uint unsigned int
#define uchar unsigned char
sbit DAT=P1^1;
sbit CLK=P1^2;
uchar code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0xe7f,0xff,0x00};//0-9,-,全灭

void sendbyte(uchar byte)
{    
         uchar num,c;
         num=tab[byte];
    for(c=0;c<8;c++)
         {
     CLK=0;
   DAT=num&0x01;
   CLK=1;
          num>>=1;
         
         
          }

}


void delay_50ms(unsigned int t)
{
unsigned int j;   
for(;t>0;t--)
   for(j=6245;j>0;j--)
{;}
}

main()
{


unsigned char h;
   while(1){
   for(h=0;h<10;h++){
        delay_50ms(1);
        sendbyte(h);
   delay_50ms(10);
   }
   h=0;
     }
    
}

  • 上一篇: C语言的重要概念
  • 下一篇: PCB电源供电系统的分析与设计
  • 发表评论   告诉好友   打印此文  收藏此页  关闭窗口  返回顶部
    热点文章
     
    推荐文章
     
    相关文章
    网友评论:(只显示最新5条。)
    关于我们 | 联系我们 | 广告合作 | 付款方式 | 使用帮助 | 机电之家 | 会员助手 | 免费链接

    点击这里给我发消息66821730(技术支持)点击这里给我发消息66821730(广告投放) 点击这里给我发消息41031197(编辑) 点击这里给我发消息58733127(审核)
    本站提供的机电设备,机电供求等信息由机电企业自行提供,该企业负责信息内容的真实性、准确性和合法性。
    机电之家对此不承担任何保证责任,有侵犯您利益的地方请联系机电之家,机电之家将及时作出处理。
    Copyright 2007 机电之家 Inc All Rights Reserved.机电之家-由机电一体化网更名-声明
    电话:0571-87774297 传真:0571-87774298
    杭州滨兴科技有限公司提供技术支持

    主办:杭州市高新区(滨江)机电一体化学会
    中国行业电子商务100强网站

    网站经营许可证:浙B2-20080178-1