首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

单片机简单编程的小疑点

2012-07-15 
单片机简单编程的小问题#includereg52.h#define uint unsigned int#define uchar unsigned charsbit D1

单片机简单编程的小问题
#include<reg52.h>
#define uint unsigned int 
#define uchar unsigned char 
sbit D1=P1^0;
void delay(uint);
void main()
{
while(1)
{
D1=0;
delay(100);
D1=1;
delay(100);
}
}
/*
void delay()
{
uint x,y;
for(x=100;x>0;x--)
for(y=600;y>0;y--);
}*/
void delay(uint z)
{
uint x;
uchar y;
for(x=z;x>0;x--)
for(y=20;y>0;y--);
}
这是单片机编程中的一个很简单程序,想请教一下红色区域的y是uchar型,为什么可以相当于整数值一样递减?


[解决办法]
就是8位的无符号数字 最多可表示256
有符号就是-128到127
仅此而已
[解决办法]
其实最初的C教科书中将char翻译成字符型数据是不对的
[解决办法]
char 型和 int型是可以通用的,unchar范围0-255,就这样
[解决办法]
仅仅是取值范围上面的差异。

-128-127 
0 - 255

[解决办法]
字符是以ASCI码形式存储的 一个字符对应一个ASCI码 即一个数字 
uchar虽然称为字符型数据 其实还是整数 8位无符号整数
但是如果在printf函数中 以%d格式输出就是整数 以%c输出就是字符
编程的时候完全可以把它视为整数数据类型
[解决办法]
就是8位的无符号数字 最多可表示256
有符号就是-128到127
仅此而已
[解决办法]
C provides two unusual operators for incrementing and decrementing variables. The increment operator ++ adds 1 to its operand, while the decrement operator -- subtracts 1.

理论上,只要是变量,就可以使用

热点排行