文档详情

汽车单片机原理及应用第五章 程序设计.ppt

发布:2018-06-24约8.07千字共54页下载文档
文本预览下载声明
键值消抖子程序 名称:Keychat, 功能:按键消抖, 入口参数: ①M_keycode_new : 新键值; ②M_keycode_old : 旧键值,内部参数:M_keychat : 键消抖计数器, 出口参数: ①F_keychat_end : chat 完; ②F_key_valid : 键有效 键按下时间计时处理子程序 名称:Timer_key_proc, 功能:键时间处理(10ms调用), 入口参数: M_keypress_timer : 键按下时间计时器, 出口参数: F_keypress_2s : 键按下2秒标志 键值译码子程序 名称:Key_decode, 功能:键值译码(将键盘键值1-16转换成对应遥控键码), 入口参数: A = 键盘键值, 出口参数: A = 遥控键值 C程序设计概述 与标准C兼容。但涉及标准C语言的相关内容在此不作具体介绍。这里只介绍一些NEC 78K0系列扩展C的相关内容。 NEC 78K0系列微处理器可以使用CC78K0(C 编译器)进行C程序的编译。CC78K0是一个通用、可移植的C编译器,它能有效的减少开发时间和降低开发费用。除了支持标准的C语言规范以外,CC78K0还支持78K0系列产品特有的规范。这不仅增加了它的可用性,也拓宽了在C语言中的应用。 C语言程序设计 C编译器CC78K0的功能与特性 ANSI-C兼容性:CC78K0与标准C语言规范兼容。 支持78K0系列产品特有的扩展规范 CC78K0提供了78K0系列中扩展的规范,以易于用C语言描述集 成在78K0系列产品内部的外围硬件的控制和中断服务例 程。扩展的规范还用来提高ROM / RAM 效率。 提高ROM/RAM效率 强大的优化特性可以使代码紧凑。 外部变量可以在saddr区定义(sreg 变量)。函数参数和自变量也 可以在saddr区或寄存器中定义(norec, noauto 函数)。代码 长度可以降低,程序执行速度可因此提高 使用78K0的位操作指令可以定义和操作1位数据。 可以描述短指令的功能(callt, callf 功能)。 C语言程序设计 C编译器CC78K0的功能与特性 进行嵌入式控制的注意事项 (1)78K0系列的外围设备可以用C语言直接控制。 (2)中断服务可直接用C语言描述(可切换寄存器组)。 (3)特殊指令,如开/关中断和循环操作指令,可以用嵌入式函数输出。 (4)C源程序中可以嵌入汇编语言。 支持嵌入式应用的库函数 除ANSI -C 确定的标准库函数外,CC78K0还提供适用于嵌入式应用的库函数。 函数信息输出 在将已定义的函数进行编译时,CC78K0可以输出静态数据信息(如堆栈的大小和数量)。 C语言程序设计 C程序的基本结构 组成C程序的基本元素有: 关键字、标识符、常数、字符串文字、运算符、分隔符、标题名、预处理编号、注释等。下面就以一个简单的C程序来说明C源程序的构成元素。 C语言程序设计 C程序的基本结构 #include “expand.h” Extern void Testb(void);………………………Extern:关键字 Extern void Chgb(void); Extern bit Data1; Extern bit Data2;…………………………….Data1,Data2:标识符(变量名) Void main() { Data1=1;…………………………………….……1:常数 Data2=2;……………………………………….…0:常数 While(Data1){………………………….……While:关键字 Data1=Data2;…………………...……{ }:分隔符 Testb();………………………………...=:运算符 } C语言程序设计 C程序的基本结构 If(Date1Data2){……………………………….If:关键字 Chgb();……………………………….:运算符 }………………………………………………….………….( ):运算符 } Void lprintf(char *s,int i)…………………………..lprintf:标识符(函数名) { int j;…………………………………………………...Char,Int:关键字 char *ss;…………………………………………….…..*:运算符 j=i;……………………………………………….……..s,i:标识符(变量名) ss=s; } ┇ C语言程序设计 产生高效率的目标代码 使用外部变量 使用位数据区 函数定义 (1)callt函数 callt函数使函数的入口地址定位在[40H~7FH]区(callt
显示全部
相似文档