- 18
- 0
- 约4.65千字
- 约 5页
- 2016-08-21 发布于贵州
- 举报
第十讲
课题:MCS-51单片机控制与C语言二
教学目的:掌握C51的语法和编程方法
学习C51程序设计:常用程序设计
教学难点、重点:C51程序设计
课程复习、引入
已经复习了C语言的基本语法,学习了一些C51程序的编程,了解了C51程序的侧重点还是在针对MCS-51应用系统编程,在C51程序中对硬件的控制是学习本部分编程的重点。
C51对I/O的操作:对I/O口(P口)的操作通常就是I/O的控制,与常规C语言程序中的输入输出程序有区别。
接口的读写——
输入时需要先预置高电平
C51关于SFR的数据类型:
sbit :预定义SFR位标识符=可按位寻址的预定义SFR标识符^常量;
例:sbit LED=P1^3; sbit TR1 = 1;
Sfr ;特殊功能寄存器预定义标识符=绝对地址;REG51.H
例:sfr P1 = 0x90;
数据长度:
unsigned char/int/ long——8/16/32
signed char/int/ long——8/16/32
float——32
double——64
一般指针——24位
本课内容
第七章 MCS-51单片机控制与C语言
7.2.2 C语言对MCS-51单片机位处理器的运用
标准C语言中是没有比特变量的,8051单片机中有强大的位处理功能,如果不用将对编程效率是个很大的损失。Keil C51扩展了标准C语言,很好地支持了8051特有的位处理功能。如上文提到的sbit关键字,除了定义引脚以外还可以定义所有的特殊功能寄存器中可以位寻址的变量。如定义
sbit spcialbit=0xe1;
这时spcialbit就代表了累加器的第一位ACC.1。
Keil C51也可以通过扩展关键字bit来定义位变量。如
bit bitval;
这时bitval的值是0或1,它的实际物理地址将位于8051内部20H~2FH的可位寻址区。
使用举例:
Bitval=spcialbit;//将ACC.1的值赋给了bitval
If(bitval)button=0;else button=1;
Button=! Bitval;//含义同上一句
C语言管理MCS-51单片机内部定时器
两个定时器进行初始化C语言函数,给定时器1设置初始值,并启动定时器1:
Void InitTimer1(void)
{
TMOD=0x15; /*初始化定时器1为定时器工作方式,即对由系统晶振决定的机器周期进行计数,模式1,16位计数,由TMOD的高4位决定。
初始化定时器0为定时器工作方式,即对T0(P3.4)引脚上的脉冲进行计数,模式1,16位计数,由TMOD的低4位决定*/
TH1=0;TL1=0;//定时器1设初始值
TR1=1;//位处理指令,启动定时器1
}
TMOD复位值00H
7 6 5 4 3 2 1 0 GATE1 C/T M1 M0 GATE0 C/T M1 M0 TCON复位值00H
7 6 5 4 3 2 1 0 TF1 TR1 TF0 TR0 IE0 IT1 IE0 IT0 如果要在运行中查询定时器1是否溢出,就必须用位处理指令查询TF1。下面的程序段用查询方法在LED口上输出10Hz的方波。
例7-2 用查询方法在LED口上输出10Hz的方波。
//文件名:TF1.c
//定时器查询.系统晶体频率11.0592MHz
#include reg51.h
Sbit LED=P1^3;
Void INIT-TMR1(void)
{ TMOD=0x11;
TH1=0x4C; //(65536-50000us/(12cyc/11.0592 MHz))/256
TL1=0; //(65536-50000us/(12cyc/11.0592 MHz))%256
TR1=1;}
Void main(void)
{
INIT-TMR1( );
While(1)
{
If(TF1= =1)
{ LED=~LED;
TF1=0;
TH1=0x4C;
TL1=0; //TL0在溢出时正好为0,可以不写
}
}
}
注意:注释中的定时器时间常数计算公式,这个方式在模式1,即16位定时或计数模式可用:
THX=(65536-定时时长[us]/(机器周期数/时钟频率(MHz))/256
TLX=(65536-定时时长[us]/(机器周期数/时钟频率(MHz))%256
在定时器重装载过程中,TL1=0可以不写,有利于提高定时精度。
再举一计算定时器常数的例子:
已知P89C51RD2的机器周期为6个时钟周期,晶体用12 MHz,要求产生10ms定时,计算如下
您可能关注的文档
最近下载
- 2026年高中物理重庆试题及答案.docx VIP
- Unit 6 Numbers in life Part A Let's learn课件 三年级英语下册 人教PEP版.pptx VIP
- 高考数学极值点偏移练习题(含答案).pdf VIP
- 2014年江苏省盐城市中考历史试卷及答案网页版_中学试卷1892.doc VIP
- 《中国居民营养与慢性病状况报告(2025)》新闻发布会文字实录.docx VIP
- 2025年高考英语真题完全解读(全国二卷)(真题解读).docx VIP
- UG(三维造型设计)课程标准.pdf VIP
- 卫生法律法规教案 第一章 卫生法律法规概述.doc VIP
- 专题18 近代物理(知识清单)(全国通用)(解析版)-2026年高考物理一轮复习讲练.docx
- 断裂力学讲义.pdf VIP
原创力文档

文档评论(0)