实验10:-74ls164-串入并出实验.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验 10: 74LS164 串入并出实验 在单片机系统中, 如果并行口的 IO 资源不够,而串行口又没有其他的作用, 那么我们可以用 74LS164 来 扩展并行 IO 口,节约单片机资源。 74LS164 是一个串行输入并行输出的移位寄存器。并带有清除端。 其中: Q0—Q7 并行输出端 。 A,B 串行输入端。 MR 清除端, 为 0 时,输出清零。 CP 时钟输入端。 74LS164 引脚定义: 74LS164 逻辑表:   相关原理: 程序运行照片: 接线方法: 1、用一个 2PIN 数据排线一端插入 CPU 部份 JP53 (P3 口)的P3.0,P3.1。另外一端插入 74LS164 部份的输 入端 JP20。 2、用一根 8PIN 的数据排线, 一端插入 74LS164 部份的输出端 JP26, 另一端插入 8 路指示灯的 JP32。 程序流程序图: 汇编语言参考程序: org 0080h mov scon, ;设定 UART 方式 MODE0 start: mov dptr,#table ;数据指针指到 TABLE loop: clr a ;清除 ACC movc a,@a+dptr ;到 TABLE 取数据 cjne a,#03,a1 ;到结束码 03 了么?不是到A1 jmp start ;是则重新开始 a1: cpl a ;取到的数据反向 mov 30h,a ;A 存入 30H mov sbuf,30h ;30H 的值存入 SBUF loop1: jbc ti,loop2 ;监测 TI=1?是则跳到LOOP2 jmp loop1 ;否则继续监测 loop2: call delay ;延时 inc dptr ;数据指针加 1 jmp loop DELAY: ;延时程序 MOV R5,#255 D3:MOV R2,#255 D4: DJNZ R2,D4 DJNZ R5,D3 RET table : db 01h,02h,04h,08h ;左移 db 10h, 20h,40h,80h db 01h,02h,04h,08h db 10h, 20h,40h,80h db 80h,40h,20h,10h ;右移 db 08h, 04h,02h,01h db 80h,40h,20h,10h db 08h, 04h,02h,01h db 00h,0ffh,00h,0ffh ;闪烁 db 03h END c 语言参考程序: #include reg52.h //51 芯片管脚定义头文件 #include intrins.h //内部包含延时函数 _nop_(); sbit data_164 = P3 ^ 0; sbit clk_164 = P3 ^ 1; char code SST516[3] _at_ 0x003b; //仿真器保留 /********************************************************** 延时 10 毫秒 **********************************************************/ void delayms(unsigned int t) { unsigned char k; while (t--) { for (k = 0; k 114; k++) ; } } /********************************************************** 发送数据子函数 **********************************************************/ void wr_byte(unsigned char num) { SBUF = num; //发送数据 while (!TI) ; //等待数据输出完毕 TI = 0; //发送完毕,清中断标志 } /********************************************************** 主函数 **********************************************************/ void main(void) { unsigned char n, temp; SCON = 0x00; //设置串行口工作方式 0,发送 delayms(1); while (1)

文档评论(0)

LF20190802 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档