|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
单片机的 IO扩展-8255 仿真及源程序7 u- V3 I+ n f7 ~: M0 T% J) z
2 W/ i( |! y% x# P7 z- a5 D5 u& B1 u6 @# K- I# B
51单片机的IO扩展-8255仿真图:
9 M1 r1 T- Y( q7 h
, z' U' A- `" `+ H( Z; T- |- L$ ]- a+ W8 a, Q1 M3 n1 N
/ S0 u8 |) ? c
/*
! L z6 n/ ^3 _. X) q) q' ^在应用系统中扩展1片8255, 使A口接8个发光二极管,B口接8个开关,& ]' x) i; R5 k# d
A口工作在方式1输出, B口工作在方式0输入0 B% \# F+ p& d, t# ]9 ~
要求: 将开关状态赋值到LED灯上
1 K' I0 G' I2 P1 N4 F" P*/
8 s& |8 Z1 g& P9 ^#include<reg51.h>
1 ^( S( O! k8 C+ f/ E; Q/ W9 G#include<absacc.h>
& ]4 s0 |/ O. A4 @#define uchar unsigned char) M" o! c& D3 {# j8 S* A V) {
#define uint unsigned int
! ]4 B' n; L1 p! ?9 w+ z//PA、PB、PC端口及命令端口地址定义
, W) |5 C; }( s! g9 o: {- S//#define PA XBYTE[0x0000]
4 ` A: E% K& p8 i7 U3 a6 n! J6 A//#define PB XBYTE[0x0001]
+ b8 y0 g* T' p9 I, A//#define PC XBYTE[0x0002]
1 {* |6 ~! n' ]# O: `& U6 u( F! Y//#define COM XBYTE[0x0003]
! I/ X) |+ ^; g" ~6 u5 x# k* `* `& r t
2 q: M9 Q" y) X8 Z: Duchar xdata * PA = 0x0000;
$ t1 o' e$ U+ u& T7 B, a( Xuchar xdata * PB = 0x0001;9 O& V [0 U$ E( c( k0 I$ a x
uchar xdata * PC = 0x0002;% y" Y1 S% m0 z/ H, O" Z
uchar xdata * COM = 0x0003;
/ M! z! S8 t4 r2 c- k! R7 o' T+ J' u3 @# Z, W+ Z
# I I; @) q( e
void delay(uint ms)
/ F' }) a( B9 y* o& q& _$ O{% s! T$ Y! Q: f u: P
uchar i;8 q: d4 o# u0 X" |
while (ms--)
. V2 e+ Q e% [" J6 E2 m$ E for (i = 0; i<120; i++);3 N7 d' [! m8 [
}2 X# A6 S$ H9 a
//主程序7 E4 J" c, K' R5 D6 \
void main()
0 b5 O, {/ Q4 U$ F( y{
9 L( w3 | v8 v" o0 L *COM = 0xA2; //8255工作方式选择: A口工作在方式1输出, B口工作在方式0输入 1010 0010
: R+ P/ g9 k- L4 J! I: o( v while (1)
6 m# h+ `: Z. Q" @# ^ {
8 B$ r* v, J/ u *PA = *PB;
+ c0 N2 U5 ^8 e/ I delay(10);
( M; v5 O9 `$ P2 b9 m1 O
; c) z8 w* f3 P* j3 ~/ [; t, U+ F3 G
…………限于本文篇幅 余下代码请从论坛下载附件…………
% E3 i5 S( M" ]. S, A) Q4 F7 g7 l8 F' Z( v% e
2 [, c; s5 @7 g5 u
|
|