我不止一次遇到骗子,得了答案走人了,分数只是诱饵。我不在意分数,但会有一种被人耍了的感觉。希望你不是那样的人。
C8051F系列是一款功能丰富、使用灵活的单片机,交叉开关是它的一个特色,为布板、编程提供了方便性。正因为灵活,初次使用或有些不适应。
就你的具体问题,传统单片机只有一种方法---查询。C8051F就不同了,有多种方法实现,查询、外部中断、端口比较中断、计数器中断都可以,对速度要求不高还可以使用ADC中断。这些你深入了解后会觉得C8051F真的很强大,要多看手册才能深入领会。
这里给你一种最简单的,查询方法。
//引用外部头文件
#include "\config\c8051f350h"
void main(void)
{
P1MDIN = 0XFF; //端口1输入方式配置寄存器,全部不配置为模拟输入
P1MDOUT = 0X00; //端口1输出方式配置寄存器,全部配置为漏极开路输出
P1 = 0XFF;
XBR0 = 0X00; //端口I/O 交叉开关控制0,外设不连接引脚
XBR1 = 0X40; //端口I/O 交叉开关控制1,交叉开关使能,弱上拉使能
while(1)
{
if (P1^3 = 0) //检查P13下降沿
{
//这里放入你要执行的程序
while(!P1^3) //等待上升沿
}
}
}
说好200分的……
#include "reg52h"
const unsigned char LED7Code[]={ //共阴极7段显示
0x3F, // 0
0x06, // 1
0x5B, // 2
0x4F, // 3
0x66, // 4
0x6D, // 5
0x7D, // 6
0x07, // 7
0x7F, // 8
0x6F // 9
};
void delay(unsigned int i) /延时1014i+13 机器周期/
{ int j;
for(;i>0;i--)
for(j=0;j<125;j++);
}
void delayus(unsigned char i) /延时8i+10 机器周期/
{while(i>0)
i--;
}
sbit start=P3^0;
sbit clk=P3^3;
sbit eoc=P3^2;
sbit oe=P3^1;
sbit add1=P3^4;
sbit add2=P3^5;
sbit add3=P3^6;
sbit key1=P2^5;
sbit key2=P2^6;
main()
{
unsigned char i,j=0;
long U=0;
unsigned char flag=0; //循环与否标志
unsigned char key1_tmp=1,key2_tmp=1; //两个按键状态暂存
while(1)
{
add1=j%2;add2=0;add3=0; //通道地址
clk=1;
start=0;
start=1;
start=0; //启动转换
eoc=1;
clk=0; delayus(5); //clk信号下降沿对eoc信号线进行检测
while(!eoc)
{
clk=1; delayus(5);
clk=0; delayus(5);
eoc=1;
}
oe=1; //0808输出允许
P0=0xff; //单片机从P0口读取数据
U=P05L100/256;
for(i=0;i<100;i++)
{
P1=LED7Code[j%2]; P2=0xfe; delay(1); P1=0;
P1=LED7Code[U/100]|0x80; P2=0xfd; delay(1); P1=0; //|0x80目的是加小数点
P1=LED7Code[U%100/10]; P2=0xfb; delay(1); P1=0;
P1=LED7Code[U%10]; P2=0xf7; delay(1); P1=0;
key1=1; //按键1
if(!key1&&key1_tmp)
{flag=!flag;key1_tmp=key1;break;} //当按键1检测到下降沿时,循环标志置取反
key2=1; //按键2
if(!key2&&key2_tmp)
{j++;key2_tmp=key2;break;} //当按键2检测到下降沿时,通道地址加一
key1_tmp=key1;
key2_tmp=key2;
}
if(flag)
j++; //通道地址加一
}
}
以上就是关于C8051F系列单片机如何检测IO口(P13)边沿触发变化全部的内容,包括:C8051F系列单片机如何检测IO口(P13)边沿触发变化、单片机双路数字电压表,之前一哥们给的程序如下可以实现循环测量显示IN0,IN1电压,现要求如下、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)