跪求,8255控制数码管,单片机c语言程序;
答案:3 信息版本:手机版
解决时间 2021-04-29 04:56
已解决
2021-04-28 12:39
8255 PA口——数码管的段选,8255PB口——数码管的位选,让前两位数码管动态显示00;急。。。。。。。。。。。。。。。。。。。。。。
最佳答案
2021-04-28 13:24
8255 管脚图的链接:
http://baike.baidu.com/image/58af236d558d92ce43169488
下面是8255 管脚设置,具体代码要看原理图中各管脚的连接情况。
reset = 0; 禁止复位
cs = 0;wr = 0;//允许CPU将数据或控制字写入8255
//
A1=1.A0=1;选择.控制寄存器
//假设00001111控制D口的数据,从A口输出;11110000控制D口的数据,从B口输出;实际情况由实际管脚连接决定。
d0 = d1=d2= d3=0;
d4 = d5=d6=d7 = 1;
A1=0;A0=0;选择PA口
//pa口--数码管的段选
//根据原理图设置pa口各引脚,假设使pa输出00000001控制第1个数码管
pa0 = pa1=pa2=pa3=pa4=pa5=pa6= 0;
pa7 = 1;
A1=0;A0=1;选择PB口
//PB口--数码管的位选
//根据原理图设置pb口各引脚,假设使pb输出00000001控制数码管显示0
pa0 = pa1=pa2=pa3=pa4=pa5=pa6= 0;
pa7 = 1;
//=========
A1=1.A0=1;选择.控制寄存器
//假设00001111控制D口的数据,从A口输出;11110000控制D口的数据,从B口输出;实际情况由实际管脚连接决定。
d0 = d1=d2= d3=1;
d4 = d5=d6=d7 = 0;
A1=0;A0=0;选择PA口
//pa口--数码管的段选
//根据原理图设置pa口各引脚,假设使pa输出00000010控制第2个数码管
pa0 = pa1=pa2=pa3=pa4=pa5=pa7= 0;
pa6 = 1;
A1=0;A0=1;选择PB口
//PB口--数码管的位选
//根据原理图设置pb口各引脚,假设使pb输出00000001控制数码管显示0
pa0 = pa1=pa2=pa3=pa4=pa5=pa6= 0;
pa7 = 1;
全部回答
1楼
2021-04-28 15:32
额...
这个问题...
首先要我们要分析一下74ls164的工作方式,是有一出一,还是有1出0..还是全一出1.了解了工作方式后
我们先要将单片机与之相连的管脚进行初始化.全设成输出.然后在程序里进行置位是置1还是置0.
在点数码管的时候要看清楚你的数码管是共阴还是共阳的,共阴公共端低电平才能点亮,共阳要高电平
给你一段简单的程序你自己改改吧,很简单的.
该例用于令与portd口相连的8个发光二极管前4个点亮,后4个熄灭。在调试程序前,应使与portd口相连的8位拔码开关拔向相应的位置。
例5.1
portd输出
#include <pic.h>
main()
{
trisd=0x00;
while(1);
{
portd=0xf0;
}
}
2楼
2021-04-28 14:14
PA口8位接8个开关K1~ K8,PB口8位接8个发光二极管,从PA口读入8位开关量送PB口显示。拨动K1~ K8
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
大家都在看
推荐资讯