- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)
您可能关注的文档
最近下载
- 第15章量子物理-效应.pptx VIP
- 精品解析:浙江省杭州市余杭区2024-2025学年八年级10月月考语文试题(原卷版).docx VIP
- 镧热还原法年产35吨稀土金属钐的工艺设计.docx VIP
- 镧热还原法年产25吨稀土金属钐的工艺设计.docx VIP
- 2024年江西省南昌市保安员上岗资格证考试题库及答案(真题) .pdf VIP
- 2025年北师大版一年级数学上册月考试卷含答案.doc VIP
- 劳动教案(全册)五年级上册——人民出版社(表格式).pdf VIP
- 2025年部编版七年级 语文(上下全册)字词拼音及解释 .pdf VIP
- 安全标识中英文可直接打印.doc VIP
- 退役士兵驾驶技能培训服务投标方案(技术标).pdf VIP
文档评论(0)