74ls164程序

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>=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;
}

直线电机生产厂家解读“中国成数一数二的机器人市场”
英特尔重塑体验,成就游戏英雄!
因北美严寒与暴风雪 Linux 5.12合并窗口被迫暂停
如何设计一款原汁机行星齿轮箱减速电机?
韩国研发出柔性锂离子电池!柔性屏幕手机不远矣
74ls164程序
区块链将成为金融公司的灵丹妙药
教你们如何鸿蒙系统如何回退安卓系统
中科慧眼基于AI平台的全新立体视觉方案实现产品化落地
英伟达拓展中国自动驾驶团队 高通能否战胜英伟达
汇编各类指令用法及含义分析
工业物联网由大量的工业系统组成,它有哪些作用
4D毫米波雷达发展到哪一步了?国内18家供应商技术盘点
电压电流控制模式介绍
浅谈超高清显示发展的四个主要趋势
电感式传感器的基本原理是什么,它的应用案例介绍
ABB机器人焊接编程程序详细介绍
Uber创始人计划入局区块链 推全新的数字货币Eco
骨传导耳机真的不伤耳吗?带你细数骨传导蓝牙耳机优缺点
武汉力源与英国艺莱创公司签署代理协议