61单片机项目 - 使用C语言实现A口作为输入口、B口作为输出口

来源:互联网 发布:网络监测工具 编辑:程序博客网 时间:2024/06/16 01:55

实现功能:IOA低八位端口作为按键输入口,IOB低八位端口作为输出口,控制8个发光二极管,实现键控LED灯(发光二极管)的显示。

实验现象:不同的发光二极管点亮表示有不同的键按下。当第一个按键按下时,第一个发光二极管点亮,第i(1≤i≤8)个按键按下时,第i(1≤i≤8)个发光二极管点亮。

拓展:A口作为输出、B口作为输入,其他要求同上。

这里大家尤其注意上拉电阻输入以及下拉电阻输入的区别,上拉电阻输入大家可以理解为IO口出为高电压,那么要输入信息必须是使输入口出现低电平,那么就会导致IO口的电压减少,从而检查出信号

而下拉电阻则是接地,接地大家都知道,那么该IO口为负极,想一想,为负极的话,如果提供给他负极肯定没有用因为都是负极,那么我们需要提供给他正极,让他带上正电荷,那么就可以检测出信息了。

#include "SPCE061A.H"#define uint unsigned int#define uchar unsigned charuint GetKeys(void);int main(void){    uint Keys;    *P_IOB_Dir = 0x00ff;//IOB低电平输出    *P_IOB_Attrib = 0x00ff;    *P_IOB_Data = 0x0000;    *P_IOA_Dir = 0x0000;//IOA上拉电阻输入    *P_IOA_Attrib = 0x0000;    *P_IOA_Data = 0x00ff;    while(1)    {        Keys = GetKeys();        if(Keys != 0x0000)        {            *P_IOB_Data = Keys;        }        *P_Watchdog_Clear = C_WDTCLR;    }    return 0;}uint GetKeys(){    uint nKeys;    nKeys = *P_IOA_Data;    nKeys = ~nKeys;    nKeys &= 0x00ff;    return nKeys;}


0 0
原创粉丝点击