微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 点阵程序,关于c51取反的指令

点阵程序,关于c51取反的指令

时间:10-02 整理:3721RD 点击:


编译结果:

Build target 'Target 1'

compiling 1.c...

1.C(32): error C193: '~': bad operand type


Target not created

想问问为什么取反号在这里会是错误的?







#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
//待显示图形编码
uchar code M[][8]=
{
{0x00,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x00},  //图1
{0x00,0x38,0x44,0x54,0x44,0x38,0x00,0x00},  //图2
{0x00,0x20,0x30,0x38,0x3c,0x3e,0x00,0x00}  //图3
};
uchar i,j;
//主程序
void main()
{
P0=0xff;
P1=0xff;     
TMOD=0x01;    //T0 方式 1
TH0=(65536-2000)/256; //2ms 定时
TL0=(65536-2000)%256;
IT0=1;     //下降沿触发
IE=0x83;    //允许定时器0、外部0 中断
i=0xff;     //i 的初值设为 0xff,加1 后将从0 开始
while(1);
}
//T0 中断控制点阵屏显示
void Show_Dot_Matrix() interrupt 1
{
TH0=(65536-2000)/256; //恢复初值
TL0=(65536-2000)%256;
P0=0xff;    //输出位码和段码
P0=~M[j];
P1=_crol_(P1,1);   
j=(j+1)%8;
}
//INT0 中断(定时器由键盘中断启动)
void Key_Down() interrupt 0
{
P0=0xff;
P1=0x80;
j=0;
i=(i+1)%3;    //i在 0,1,2 中取值,因为只要 3 个图形
TR0=1;
}


在线等回复中。

M是二维数组,你那么写好像不对吧

就是把数组打丢了、。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top