第二课_51单片机C程序设计基础
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二课 51单片机C程序设计基础
教学内容:51单片机C程序基础知识
教学重点: 51单片机C程序基础知识
教学难点:51单片机C程序基础知识
教学目的:1、掌握51单片机C程序基础知识
2、掌握KEILC51软件使用
从一个例子开始:
/********************************************************
// 第一个发光管以间隔200ms闪烁
// 晶振为11.0592M
/*********************************************************/
#include
#define uint unsigned int //宏定义
#define uchar unsigned char //宏定义
sbit led1=P0^0; //单片机管脚位声明
void delay(uint z) //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms.
{ //delay(500);大约延时500ms.
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main() //主函数
{
while(1) //大循环
{
led1=0; //点亮小灯
delay(200); //延时200毫秒
led1=1; //熄灭小灯
delay(200); //延时200毫秒
}
}
●C-51与ASM-51相比,具有如下优点:
1)不需要了解51单片机的指令系统,仅仅要求对存储器结构有初步了解2)寄存器分配,存储器寻址以及数据类型等细节可由编译器管理
3)程序有规范的结构,课分为不同函数,使得程序结构化
4)程序更具可读性
5)高的编程及程序调试效率
6)提供的库包含许多标准子程序,具有较强的数据处理能力
7)程序易于做到模块化,便于移植
一、数据结构
●数据的不同格式称为数据类型
●数据按一定的数据类型进行的排列、组合、架构称为数据结构
1、数据类型
1)char(字符型):unsigned char 0~255
signed char -128~+127
例:#define uchar unsigned char
uchar i,j;
一般使用无符号数据类型,因为,有符号运算比无符号运算耗资源
2)int(整型):unsigned int 0~65535
Signed int -32767~+32768
例: #define uint unsigned int
uint x,y;
一般能用char就不用int,节省空间
3)* 指针型
*——地址——数据
类似于寄存器间接寻址
4)C-51的数据类型扩充定义
sfr :特殊功能寄存器声明
sfr16:16位特殊功能寄存器声明
sbit:特殊功能位声明
bit:位变量声明
例:sfr P0 = 0x80;
sfr P1 = 0x90;
sfr P2 = 0xA0;
sfr P3 = 0xB0;
sbit CY = PSW^7;
sbit AC = PSW^6;
sbit F0 = PSW^5;
sbit RS1 = PSW^4;
sbit RS0 = PSW^3;
sbit OV = PSW^2;
2、常量与变量
●常量:在程序运行过程中值不能改变的量
●变量:在程序运行过程中值不断能改变化的量
二、运算符与表达式
●>> 位右移
●<< 位左移补0
●i++ 使用后+1,i=1, i+1=2
●++i 使用前+1 , i+1=2, i=2
●== 测试等于
●!= 测试不等于
●&& 逻辑与
三、main 函数
●格式:void main()
●特点:无返回值,无参
任何一个C程序有且仅有一个main函数,它是整个程序开始执行的
入口
●例:void main()
{
总程序从这里开始;
其他语句;
}
四、小结:通过本次课的学习,学生必须掌握C-51的一些基本特点,能读懂一些简单的程序。
五、作业:1、用汇编语言写一个延时100ms的程序
2、用C-51语言写一个延时100ms的程序