可编程并行接口实验
一、实验目的
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、在做实验前,一定要将课本上的知识吃透,因为这是做实验的基础,否则,在老师讲解时就会听不懂,这将使你在做实验时的难度加大,浪费做实验的宝贵时间。做实验时,一定要亲力亲为,务必要将每个步骤,每个细节弄清楚,弄明白,实验后,还要复习,思考,这样,你的印象才深刻,记得才牢固,否则,过后不久你就会忘得一干二净,这还不如不做。做实验时,老师还会根据自己的亲身体会,将一些课本上没有的知识教给我们,拓宽我们的眼界,使我们认识到这门课程在生活中的应用是那么的广泛。
因篇幅问题不能全部显示,请点此查看更多更全内容