- 5
- 0
- 约1.25万字
- 约 60页
- 2017-05-13 发布于湖北
- 举报
单片机基础与实践简介
* KEIL C51 程序设计 C51数据声明的一般格式: [类型说明符][修饰符] 标识符[=初值]…… 例如:unsigned char code Flag = 0x0f; 就是声明一个无符号的char型变量Flag,并给他赋初值为0x0f;并且声明他所在的存储空间在片内统一编址的ROM中。声明中,如果没有修饰符,则数据默认的存储空间为data型,也就是在片内RAM中。 * KEIL C51 程序设计 一般简单程序的结构 包含头文件 宏定义 公共变量 子函数 int function1( unsigned int x) { 变量定义 语句执行 } …… main() { …… } main() { 变量定义 初始化寄存器 do { …… } while(1) } 复杂一些的程序? * + - * / (加 减 乘 除) = = (大于 大于等于 小于 小于等于) == != (测试等于 测试不等于) || ! (逻辑与 逻辑或 逻辑非 ) (位右移 位左移) | (按位与 按位或) ^ ~ (按位异或 按位取反) C-51的运算符与基本语句 if 选择语句 switch/case 多分支选择语句 while 循环语句 do-while 循环语句 for 循环语句 KEIL C51 程序设计 * 最简系统与演示程序 * 示例-行列式键盘接口 # include reg51.h # define uchar unsigned char # define uint unsigned int void dlms( void ); uchar kbscan( void ); void main ( void ) { uchar key ; while(1) { key =kbscan ( ) ; dlms( ) ; } } void dlms( void ) { uchar i ; for ( i=200; i0; i- -) { } } * uchar kbscan ( void ) /* 键扫描函数 */ { uchar scode, recode; P1=oxf0 ; if ( ( P1 0xf0 ) ! =0xf0 ) /* 若有键按下 */ { dlms ( ) ; /* 延时去抖动 */ if (( P1 0xf0 )! = 0xf0 ) { scode =0xfe ; /* 逐行扫描初值 */ while (( scode 0x10 ) !=0 ) { P1=scode ; /* 输出扫描码 */ if (( P1 0xf0 )! =0xf0 ) /* 本行有键按下 */ { recode= ( P1 0xf0 ) | 0x0f ; return (( ~scode ) + (~ recode ) ) ; /* 返回特征字节码 */ }
您可能关注的文档
最近下载
- 珍惜战友情谊 密切内部关系.docx VIP
- PowerFlex 700变频器用户手册(中文).pdf
- 2025年厦门事业编考试真题及答案 .pdf VIP
- 2025年湖南科技大学中国近现代史纲要期末考试模拟题必考题.docx VIP
- 2025年宁夏大学微生物学专业《微生物学》期末试卷及答案.docx VIP
- 宁夏大学土壤学笔记.docx VIP
- 2025年山东劳动职业技术学院单招语文测试模拟题库附答案.docx VIP
- 2025(人教2019版)化学必修第二册 第五章单元解读课件.pptx
- 厦门市同安区事业单位招聘考试题目及答案2025.docx VIP
- 建筑工程论文8000字.pdf VIP
原创力文档

文档评论(0)