您的当前位置:首页正文

8255A可编程并行接口实验

2024-09-12 来源:我们爱旅游
班级:######### 学号:3333333 姓名: $$$$$$ 实验题目: 8255A

可编程并行接口实验

一、实验目的

1、了解8255A芯片的结构及编程方法。

2、掌握通过8255A并行口读取开关数据的方法。 3、数码管应用 二、实验设备

EL-8051-III型单片机实验箱 三、实验内容

利用8255A可编程并行接口芯片,重复实验内容,实验可用B通道作为开关量输入口,A通道作为显示输出口 四、实验原理

设置好8255A各端口的工作模式。实验中应当使三个端口都工作于方式0,并使A口味输出口,B口为输入口。 五、电路图设计

六、程序设计

#include \"REG51.H\" #include \"ABSACC.H\"

unsigned int PA_PORT=0xCFA0; unsigned int PB_PORT=0xCFA1; unsigned int PC_PORT=0xCFA2;

unsigned int PCTL_PORT=0xCFA3;

unsigned char data_seg[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//共阴数码管段码

unsigned char t1,t2; void init_t0( ) {

TR0 =0;//T0禁止计数定时

TMOD =0x01;//T0方式1(16位),定时 TH0 =0x0b; TL0 =0xdc;

ET0 =1;//T0允许中断 }

void Int0Demo(void) interrupt 1//C/T0溢出中断服务函数 {

TH0 =0x0b; TL0 =0xdc; t1 =t1+1; if(t1>=8) {

t1=0; t2=t2+1; if(t2>=60) { t2=0; } } }

void main( ) {

unsigned char i;

XBYTE[PCTL_PORT]=0x80;//8255的PA、PB都工作在方式0,输出 init_t0( ) ; TR0 =1; EA =1; while(1) {

XBYTE[PB_PORT]=0xff; //数码管熄灭 XBYTE[PB_PORT]=0xfd; for(i=0;i<10;i++) { XBYTE[PA_PORT]=data_seg[t2/10]; //显示十位 } XBYTE[PB_PORT]=0xff; //数码管熄灭 XBYTE[PB_PORT]=0xfe;

for(i=0;i<10;i++) { XBYTE[PA_PORT]=data_seg[t2%10]; //显示个位 } } }

七、实验结果 数码管循环闪亮 八、实验总结 1、通过本次实验,进一步了解了可编程并行接口8255的基本知识点,了解了该芯片的应用。 2、通过编程实现,熟悉了8255方式控制字,了解了三种工作方式和基本工作原理。 3、在做实验前,一定要将课本上的知识吃透,因为这是做实验的基础,否则,在老师讲解时就会听不懂,这将使你在做实验时的难度加大,浪费做实验的宝贵时间。做实验时,一定要亲力亲为,务必要将每个步骤,每个细节弄清楚,弄明白,实验后,还要复习,思考,这样,你的印象才深刻,记得才牢固,否则,过后不久你就会忘得一干二净,这还不如不做。做实验时,老师还会根据自己的亲身体会,将一些课本上没有的知识教给我们,拓宽我们的眼界,使我们认识到这门课程在生活中的应用是那么的广泛。

因篇幅问题不能全部显示,请点此查看更多更全内容