
pic18f4520单片机c语言编程 程序问题
我用c语言编写的键盘控制一位数码管显示程序如下:#include<p18cxxx.h>#include"top.h"voidmain(void){constunsigne...
我用c语言编写的键盘控制一位数码管显示程序如下:
#include<p18cxxx.h>
#include"top.h"
void main (void)
{
const unsigned char SE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,
0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
TA1=0;
PA1=1;
TD=0;
PB=0b11111111;
TB=0b11111111;
PD=SE[0];
while(1)
{
if (PPB2==0) PD=SE[1];
if (PPB4==0) PD=SE[2];
if (PPB5==0) PD=SE[3];
}
}
头文件如下:
#define TA1 DDRAbits.RA1
#define PA1 PORTAbits.RA1
#define TD TRISD
#define PD PORTD
#define TB TRISB
#define PB PORTB
#define PPB0 PORTBbits.RB0
#define PPB2 PORTBbits.RB2
#define PPB4 PORTBbits.RB4
#define PPB5 PORTBbits.RB5
说明:
数码管显示用PA及PD控制,这里没有问题,PPB2、4、5管脚设为输入,检测高低电平。
问题:
只有PP5按键按下的时候,显示正常,PPB2和4不管怎么设都检测为低电平,万用标检测2、4管脚有4.8v电压,按下后0.6v电压,没有问题。软件仿真2、4管脚始终为0,不知什么原因。 展开
#include<p18cxxx.h>
#include"top.h"
void main (void)
{
const unsigned char SE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,
0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
TA1=0;
PA1=1;
TD=0;
PB=0b11111111;
TB=0b11111111;
PD=SE[0];
while(1)
{
if (PPB2==0) PD=SE[1];
if (PPB4==0) PD=SE[2];
if (PPB5==0) PD=SE[3];
}
}
头文件如下:
#define TA1 DDRAbits.RA1
#define PA1 PORTAbits.RA1
#define TD TRISD
#define PD PORTD
#define TB TRISB
#define PB PORTB
#define PPB0 PORTBbits.RB0
#define PPB2 PORTBbits.RB2
#define PPB4 PORTBbits.RB4
#define PPB5 PORTBbits.RB5
说明:
数码管显示用PA及PD控制,这里没有问题,PPB2、4、5管脚设为输入,检测高低电平。
问题:
只有PP5按键按下的时候,显示正常,PPB2和4不管怎么设都检测为低电平,万用标检测2、4管脚有4.8v电压,按下后0.6v电压,没有问题。软件仿真2、4管脚始终为0,不知什么原因。 展开
若以下回答无法解决问题,邀请你更新回答
3个回答
展开全部
PB=0b11111111; 在keilc中怎么这样赋值啊 赋值应该是0XFF吧
更多追问追答
追问
我是过,这两种方法都能识别,之前其他程序都验证过了,这个没问题
追答
单片机上电是高电平 按下与地连了所以低了 2 4按下显示不正常是什么不正常 调用se时候给的值没对应相应的数码管?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
PB=0b11111111;
这是什么意思?这句话有问题吧
这是什么意思?这句话有问题吧
追问
其实把PB=0b11111111去掉还是有这个问题。我先把数据寄存器内的内容输入为1,软件检测RB内容为竟然是0b11100000而不是0b11111111,不知道为什么直接给数据1,RB0~4都为0。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
开关S3是不是拨到ON了? 那样的话就与地相接了 ,就是0了。
追问
s3的四个开关都关掉了,万用表测没有短路,测片子的管脚电压开始都为高,按下sw开关后也都为低,但就是只有sw3单片机才识别高低电平。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询