沈阳理工大学:《单片机C语言应用程序设计》课程PPT教学课件(单片机C语言编程)04 C51编程设计(廉哲)

课程主要内容: 51单片机硬件结构 C51基础知识及其基本程序设计 C51函数、数组、指针定义及应用 c单片机内部资源及其C语言编程 单片机资源扩展及其C语言编程 综合程序设计 考试
单片机C语言应用程序设计 51单片机硬件结构 C51基础知识及其基本程序设计 C51函数、数组、指针定义及应用 单片机内部资源及其C语言编程 单片机资源扩展及其C语言编程 综合程序设计 考试

四c51编程设计 41MCS-51内部资源使用的C语言编程 42MCS-51片外扩展的C语言编程 4.3频率量测量的C语言编程
单片机C语言应用程序设计 四 C51编程设计 4.1 MCS-51内部资源使用的C语言编程 4.2 MCS-51片外扩展的C语言编程 4.3 频率量测量的C语言编程

4IMCS51内部资源使用的C语言编程 411中断应用的C语言编程 C51编译器支持在C源程序中直接开发中断程序。中断服务 程序是通过按规定语法格式定义的一个函数 中断服务程序的函数定义的语法格式如下: 返回值函数名([参数] interrupt musing n
单片机C语言应用程序设计 4.1 MCS-51内部资源使用的C语言编程 4.1.1 中断应用的C语言编程 C51编译器支持在C源程序中直接开发中断程序。中断服务 程序是通过按规定语法格式定义的一个函数。 中断服务程序的函数定义的语法格式如下: 返回值 函数名([参数]) interrupt m[using n] { } …

表41MCS51中断源编号 编号 中断源 入口地址 外部中断0 0003H 定时器/计数器0 00OBH 外部中断1 0013H 定时器/计数器1 001BH 串行口中断 0023H
单片机C语言应用程序设计 表4.1 MCS-51中断源编号 编 号 中 断 源 入 口 地 址 0 外部中断0 0003H 1 定时器/计数器0 000BH 2 外部中断1 0013H 3 定时器/计数器1 001BH 4 串行口中断 0023H

ingn选项用于实现工作寄存器组的切换,n是中断服务子 程序中选用的工作寄存器组号(0~3)。在许多情况下,响应中断 时需保护有关现场信息,以便中断返回后,能使中断前的源程序 从断点处继续正确地执行下去。这在MCS-51单片机中,能很方便 地利用工作寄存器组的切换来实现。即在进入中断服务程序前的 程序中使用一组工作寄存器,进入中断服务程序后,由" using n" 切换到另一组寄存器,中断返回后又恢复到原寄存器组。这样互 相切换的两组寄存器中的内容彼此都没有被破坏
单片机C语言应用程序设计 using n 选项用于实现工作寄存器组的切换,n是中断服务子 程序中选用的工作寄存器组号(0 ~ 3)。在许多情况下,响应中断 时需保护有关现场信息,以便中断返回后,能使中断前的源程序 从断点处继续正确地执行下去。这在MCS-51单片机中,能很方便 地利用工作寄存器组的切换来实现。即在进入中断服务程序前的 程序中使用一组工作寄存器,进入中断服务程序后,由"using n" 切换到另一组寄存器,中断返回后又恢复到原寄存器组。这样互 相切换的两组寄存器中的内容彼此都没有被破坏

例1图75所示是利用优先权解码芯片,在单片机8031的 外部中断INT1上扩展多个中断源的原理电路图。图中是以开 关闭合来模拟中断请求信号。当有任一中断源产生中断请求,能 给8031的INT1引脚送一个有效中断信号,由Pl的低3位可得对应 中断源的中断号。 5V 8031 74LS148 P1.2 A2 A P10 AO 432 AS E ⅠNo 图41扩展多个中断源
单片机C语言应用程序设计 图 4.1 扩展多个中断源 例1 图7.5所示是利用优先权解码芯片,在单片机8031的一 个外部中断INT1上扩展多个中断源的原理电路图。图中是以开 关闭合来模拟中断请求信号。当有任一中断源产生中断请求,能 给8031的INT1引脚送一个有效中断信号,由P1的低3位可得对应 中断源的中断号

在中断服务程序中仅设置标志,并保存IO口输入状态。 Franklin c51编译器提供定义特定MCS-51系列成员的寄存器头文 件。MCS-51头文件为reg51h。C51程序如下: include unsigned char status bit flag: void service int1( interrupt2 using2/*NTl中断服务程序,使用第2组工 作寄存器* i flag=1; /*设置标志* status=pI /*存输入口状态* void main ( void) P=0x04; /*置INTl为高优先级中断* /*INT1开中断,CPU开中断*
单片机C语言应用程序设计 在中断服务程序中仅设置标志,并保存I/O口输入状态。 Franklin C51编译器提供定义特定MCS-51系列成员的寄存器头文 件。MCS-51头文件为reg51.h。C51程序如下: # include unsigned char status; bit flag; void service_int1( ) interrupt 2 using 2 /* INT1中断服务程序,使用第2组工 作寄存器 */ { flag=1; /* 设置标志 */ status=p1; /* 存输入口状态*/ } void main(void) { IP=0x04 ; /* 置INT1为高优先级中断 */ IE=-0x84 ; /* INT1开中断,CPU开中断 */

for(: f if( flag) /*有中断* i switch(status) /*根据中断源分支* i case0: break; /*处理ⅠNO* case 1: break /*处理ⅠN1*/ case 2: break: /*处理IN2* case 3: break /*处理ⅠN3* default flag=0 /*处理完成清标志*
单片机C语言应用程序设计 for(; ;) { if(flag) /* 有中断 */ { switch(status) /* 根据中断源分支 */ { case 0 : break ; /* 处理IN0 */ case 1 : break ; /* 处理IN1 */ case 2 : break; /* 处理IN2 */ case 3 : break; /* 处理IN3 */ default : ; } flag=0 ; /* 处理完成清标志 */ } } }

412定时器计数器(T/C应用的C语言编程 例2设单片机的foS=12MHz晶振,要求在P1.0脚上输出周期 为2ms的方波。 周期为2ms的方波要求定时时间隔1ms,每次时间到P10取反。 机器周期=12fosc=1us 需计数次数=1000(12fsc=10001=1000 由于计数器是加1计数,为得到1000个计数之后的定时器溢 出,必须给定时器置初值为-1000即1000的补数)
单片机C语言应用程序设计 4.1.2 定时器/计数器(T/C)应用的C语言编程 例2 设单片机的fosc=12 MHz晶振,要求在P1.0脚上输出周期 为2 ms的方波。 周期为2 ms的方波要求定时时间隔1 ms,每次时间到P1.0取反。 机器周期=12/fosc=1 μs 需计数次数=1000/(12/fosc)=1000/1=1000 由于计数器是加1计数,为得到1000个计数之后的定时器溢 出,必须给定时器置初值为-1000(即1000的补数)

(1)用定时器0的方式1编程,采用查询方式,程序如下 include sbit p1 0=P1 0 void main(void I TMOD= I /*设置定时器1为非门控制方式1*/ TR0=1 /*启动TC0* for( TH0=(1000256);/*装载计数器初值* IL0=-(1000%256) do{} while(TFO);/*查询等待TFO置位 P10=P10 /*定时时间到P1.0反相* TF0=0 /*软件清TFO*
单片机C语言应用程序设计 (1) 用定时器0的方式1编程,采用查询方式,程序如下: # include sbit P1_0=P1^0 ; void main(void) { TMOD=0x01 ; /* 设置定时器1为非门控制方式1*/ TR0=1 ; /* 启动 T/C0 */ for( ; ;) { TH0= -(1000/256) ; /* 装载计数器初值 */ TL0= -(1000%256) ; do { } while (!TF0) ; /* 查询等待TF0置位*/ P1_0=!P1_0; /* 定时时间到P1.0反相*/ TF0=0; /* 软件清 TF0 */ } }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 中国科学技术大学:《信号与图像处理基础 Signal and Image Processing》课程教学资源(PPT课件讲稿)傅里叶分析与卷积 Fourier Analysis and Convolution.pptx
- 北京科技大学:物联网知识体系和学科建设(PPT讲稿,王志良).ppt
- 香港理工大学:Discovering Classification Rules.ppt
- 《软件质量与测试》课程教学资源(PPT大纲课件,目录版).pptx
- 安徽理工大学:《汇编语言》课程教学资源(PPT课件讲稿)第七章 高级汇编语言技术(主讲:李敬兆).ppt
- 《Vb程序设计教程》课程教学资源(PPT课件讲稿)第三章 VB语言基础.pps
- 吉林大学:《C语言》课程教学资源(PPT课件讲稿)第6章 利用数组处理批量数据.ppt
- 《计算机组成原理》课程教学资源(PPT课件讲稿)第4章 处理器(CPU).ppt
- 北京大学:人工神经网络(PPT课件讲稿)Artificial Neural Networks,ANN.ppt
- 西安电子科技大学:《神经网络与模糊系统》课程教学资源(PPT课件讲稿)Chapter 6 结构和平衡 Architecture and Equilibria.ppt
- 清华大学:A Feature Weighting Method for Robust Speech Recognition(Speech Activities in CST).ppt
- 北京师范大学现代远程教育:《计算机应用基础》课程教学资源(PPT课件讲稿)第2章 计算机网络应用.ppsx
- 《Java网站开发》教学资源(PPT讲稿)第9章 过滤器和监听器技术.ppt
- 长春大学:《计算机应用基础》课程教学资源(PPT课件讲稿)第一章 计算机基础知识(崔天明).ppt
- 合肥工业大学:《网络安全概论》课程教学资源(PPT课件讲稿)第2讲 密码学简介(主讲:苏兆品).ppt
- 《计算机网络与因特网 Computer Networks and Internets》课程教学资源(PPT课件讲稿)Part II 物理层(信号、媒介、数据传输).ppt
- 东南大学:《数据结构》课程教学资源(PPT课件讲稿)第三章 栈与队列.ppt
- 清华大学:An Efficient Trie-based Method for Approximate Entity Extraction with Edit-Distance Constraints.pptx
- 四川大学:《操作系统 Operating System》课程教学资源(PPT课件讲稿)Chapter 5 互斥与同步(Mutual Exclusion and Synchronization)5.4 Monitors 5.5 Message Passing 5.6 Readers/Writers Problem.ppt
- 上海交通大学:《程序设计》课程教学资源(PPT课件讲稿)第6章 过程封装——函数.ppt
- 《软件工程 Software Engineering》教学资源:课程教学大纲.pdf
- 上海交通大学:《编译器构造》课程教学资源(PPT讲稿,马融)Compiler.pptx
- 《数字图象处理》课程教学资源(PPT课件讲稿)第七章 邻域运算.ppt
- 北京航空航天大学:《数据挖掘——概念和技术(Data Mining - Concepts and Techniques)》课程教学资源(PPT课件讲稿)Chapter 03 Data Preprocessing.ppt
- 电子工业出版社:《计算机网络》课程教学资源(第五版,PPT课件讲稿)第一章 概述(谢希仁).ppt
- 上海交通大学:Mining Massive Datasets(PPT讲稿).ppt
- 东南大学:《数据结构》课程教学资源(PPT课件讲稿)动态规划.pptx
- 《数据结构》课程教学资源:课程教学资源(PPT课件讲稿)第九章 查找表.ppt
- 南京大学:《面向对象技术 OOT》课程教学资源(PPT课件讲稿)抽象数据类型 Abstract Data Types.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)并行编译简介.ppt
- 《单片机原理及应用》课程教学资源(PPT课件讲稿)第6章 AT89S52单片机的串行口.ppt
- 上海交通大学:《程序设计》课程教学资源(PPT课件讲稿)第4章 循环控制.ppt
- 上海交通大学:《通信网络》课程PPT教学课件(Communication Networks)Introduction(主讲:叶通).pptx
- 北京师范大学:《多媒体技术基础》课程教学资源(PPT课件讲稿)第二章 数字图像(曾兰芳).ppt
- 利用EXCEL进行数据分析与图表处理(PPT讲稿).pptx
- 上海交通大学:《程序设计》课程教学资源(PPT课件讲稿)第9章 模块化开发.ppt
- 《计算科学基础研究》课程教学资源(PPT课件讲稿)类的定义.ppt
- 南京大学:《编译原理》课程教学资源(PPT课件讲稿)第九章 机器无关的优化(赵建华).ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第一章 电子商务基础知识(主讲:贾朝辉).pptx
- 《操作系统》课程教学资源(PPT课件讲稿)内存管理 Memory Management.ppt