用c语言对8255编程初始化,单片机的C语言程序设计与应用-第4章(PPT)
时间: 2024-03-10 16:51:24 浏览: 119
好的,我可以为你提供一份8255的初始化程序示例,以下是代码:
```c
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit WR = P3^5; // WR写入控制信号
sbit RD = P3^6; // RD读取控制信号
sbit CS = P3^7; // CS芯片选择信号
void delay(uint i) // 延时函数
{
while(i--);
}
void init8255() // 8255初始化函数
{
WR = 1; // 先置WR为高电平
RD = 1; // 先置RD为高电平
CS = 0; // 先置CS为低电平,选择8255
P0 = 0x80; // 将P0口置为1000 0000B,表示初始化模式
WR = 0; // 写入模式控制字
delay(10); // 延时
WR = 1; // 停止写入
P0 = 0x00; // 将P0口置为0000 0000B,表示A寄存器值
WR = 0; // 写入A寄存器初始值
delay(10); // 延时
WR = 1; // 停止写入
P0 = 0x00; // 将P0口置为0000 0000B,表示B寄存器值
WR = 0; // 写入B寄存器初始值
delay(10); // 延时
WR = 1; // 停止写入
P0 = 0x00; // 将P0口置为0000 0000B,表示C寄存器值
WR = 0; // 写入C寄存器初始值
delay(10); // 延时
WR = 1; // 停止写入
CS = 1; // 释放8255
}
void main()
{
init8255(); // 调用初始化函数
while(1); // 循环等待
}
```
这份程序使用了单片机51系列的寄存器来控制8255芯片的初始化,通过P0口对8255进行写操作。需要注意的是,8255的写入控制信号WR和读取控制信号RD以及芯片选择信号CS需要通过单片机的3口控制。
阅读全文