- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
74LS164在单片机中的使用作者:huqin???来源:本站原创???点击数:406 ??更新时间:2014年02月15日?? 【字体:大 中 小】 在单片机系统中,如果并行口的IO资源不够,那么我们可以使用74LS164来扩展并行IO口,节约单片机IO资源。74LS164是一个串行输入并行输出的移位寄存器,并带有清除端。 74LS164的引脚可以查看数据手册。proteus仿真图和代码附上。#includereg51.h#define HIGH??????????????? 1#define LOW??????????????????? 0#define SEG_PORT??????????? P0sbit DATA = P0^4;sbit CLK = P0^5;unsigned char Timer0IRQEvent = 0;unsigned char Time1SecEvent = 0;unsigned int TimeCount = 0;unsigned char SegCurPosition = 0;code unsigned char SegCode[10] = {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F};code unsigned char SegPosition[4] = {0xFE,0xFD,0xFB,0xF7};unsigned char SegBuf[4] = {0};void LS164_DATA(unsigned char x){ if(x) { DATA = 1; } else { DATA = 0; }}void LS164_CLK(unsigned char x){ if(x) { CLK = 1; } else { CLK = 0; }}/***********************************************************函数名称:LS164Send*输??? 入:byte单个字节*输??? 出:无*功??? 能:74LS164发送单个字节***********************************************************/void LS164Send(unsigned char byte){ unsigned char j; for(j=0;j=7;j++) { if(byte(1(7-j))) { LS164_DATA(HIGH); } else { LS164_DATA(LOW); } LS164_CLK(LOW); LS164_CLK(HIGH); }}/***********************************************************函数名称:SegRefreshDisplayBuf*输??? 入:无*输??? 出:无*功??? 能:数码管刷新显示缓存***********************************************************/void? SegRefreshDisplayBuf(void){ SegBuf[0] = TimeCount%10; SegBuf[1] = TimeCount/10%10; SegBuf[2] = TimeCount/100%10; SegBuf[3] = TimeCount/1000%10;}/***********************************************************函数名称:SegDisplay*输??? 入:无*输??? 出:无*功??? 能:数码管显示数据***********************************************************/void SegDisplay(void){ unsigned char t; SEG_PORT = 0x0F; t = SegCode[SegBuf[SegCurPosition]]; LS164Send(t); SEG_PORT = SegPosition[SegCurPosition]; if(++SegCurPosition = 4) { SegCurPosition = 0; }}/***********************************************************函数名称:TimerInit*输??? 入:无*输??? 出:无*功??? 能:定时器初始化********************************************************
您可能关注的文档
- 2017中国人民大学MPAcc考研详细解析.doc
- 2017国家公务员时政热点:G20峰会,世界经济的“最忆是杭州”.doc
- 2017届湖南高三摸底考试试题--语文.doc
- 2017年北京电影学院中国电影教育研究中心院电影教育方向考研参考资料讲解.doc
- 2017年北京电影学院中国电影教育研究中心院电影教育方向考研重点讲义.doc
- 2017年在职研究生10大热门专业及院校推荐.docx
- 2017年清华大学金融专业硕士431《金融学综合》命题大纲-新祥旭考研辅导学校.doc
- 2017申美国前100名大学本科的托福最低分数线.doc
- 2017版《三年高考两年模拟》化学汇编专题:专题一 中学化学常用计量——物质的量.doc
- 2017年北京电影学院中国电影教育研究中心院电影教育方向考研重点资料讲解.doc
文档评论(0)