【Proteus仿真】51单片机+8255并行口扩展流水灯演示
【Proteus仿真】51单片机+8255并行口扩展流水灯演示
- Proteus仿真

程序实例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| #include<regx52.h> #include<intrins.h> #include<absacc.h>
#define uchar unsigned char #define uint unsigned int #define PA XBYTE[0x3fff] #define PB XBYTE[0x7fff] #define PC1 XBYTE[0xbfff] #define CTL XBYTE[0xffff]
sbit reset=P2^5;
void delay(uchar t); void display();
void main() { EA=1; ET0=1; TMOD=0x01; reset=1; \_nop\_(); reset=0; CTL=0x80; //写8255控制字,设置PA,PB,PC为输出口 while(1) { display(); } }
void display() { uchar outdata=0xfe,i; for(i=0;i<8;i++) {PA=outdata; delay(200); outdata=\_crol\_(outdata,1); } PA=0xff; outdata=0xfe; for(i=0;i<8;i++) {PB=outdata; delay(200); outdata=\_crol\_(outdata,1);} PB=0xff; outdata=0xfe; for(i=0;i<8;i++) {PC1=outdata; delay(200); outdata=\_crol\_(outdata,1);} PC1=0xff; }
void delay(uchar t) { for(;t>0;t--) { TH0=(65536-1000)/256;//定时1ms TL0=(65536-1000)%256; TR0=1; while(TF0==0) ; TF0=0; } TR0=0; }
|
程序源码和仿真资源
1 2 3
| 链接:https://pan.baidu.com/s/1-qbU3YjZ7oay5oMSanaoZQ 提取码:spg5
|
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!