- 1、本文档共83页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C51速成1.ppt
常见显示数码管问题 静态显示 动态显示 软件译码如何? 软件译玛的字形表 D p g f e d c b a P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 “0” 1 1 0 0 0 0 0 0 C0H “1” 1 1 1 1 1 0 0 1 F9H “2” 1 0 1 0 0 1 0 0 A4H “3” 1 0 1 1 0 0 0 0 B0H “4” 1 0 0 1 1 0 0 1 99H “5” 1 0 0 1 0 0 1 0 92H “6” 1 0 0 0 0 0 1 0 82H “7” 1 1 1 1 1 0 0 0 F8H “8” 1 0 0 0 0 0 0 0 80H “9” 1 0 0 1 0 0 0 0 90H “P.” 0 0 0 1 0 0 0 0 10H 动态显示技术分析 善于分解任务 适合计算机运行的特点 确定关键算法 指针pHandle=0~9同步循环变化 1 2 3 4 5 6 数据缓冲器 字 形 表 段码 01h 02h 04h 08h 10h 20h While(!PressKey) { pHandle++; // 硬件操作, 延时 If(pHandle=6)Handle=0; } 数码管动态显示技术 原理是什么? 字形表的作用? 查表指令是哪一条?怎样使用? 怎样实现延时? 怎样使用定时器实现硬件延时? 定时5ms中断服务程序需要做什么? 按键与矩阵键盘 调整电子时钟; 调整仪表的显示比例、报警值等 智能小家电的按钮。 机械按键的抖动极其克服 硬件方法 软件方法(降低“采集速度”) 延时,等待 通过定时的ms级中断 在定时中断服务程序中处理 定时中断服务程序中附带进行,因为定时器有固定的时间间隔; 每次采集按键信号线; 如果本次结果与上次相同,则按键未动作 如果连续的两次采集结果不同,本次为低,为键按下;本次为高,则为键释放。 实际波形 矩阵键盘 1.6串行口 方式0——串行移位I/0 方式1——8位异步串行通信(波特率可变) 方式2——9位异步串行通信(波特率固定) 方式3——9位异步串行通信(波特率可变 串行口控制字寄存器: SM0 SM1 SM2 REN TB8 RB8 TI RI MCS-51串行口工作方式 异步串行通信的编程参考图 fosc /12 T1 or T2 PCON.7 0 1 /2 波特率 SBUF BUS TxD SBUF RxD BUS TI RI 并/串 串/并 应用要点 串行通信的初试化 查询方式的发送 查询方式的接收 中断方式的数据通信 C51与宏汇编连接 宏汇编的一整套格式、伪指令 调用约定(参数传递、返回值) 函数名的命名规则 C51函数的参数传递与返回值 简单的C51参数传递和返回值 这里只讲一个参数的情形; 一个字节,通过R7 两个字节,通过R6,R7 四字节,通过R4~R7 为什么需要知道这个? ——利用现成的汇编语言的子程序 ——稍微修改一下,就可以成为有用的模块 ——编51程序时,我们已经为此作了一定准备 汇编语言中定义函数名的规则 无参数时,名称无特殊要求 带输入参数时,名称前带下划线 在使用时再强调。 寄存器 PSW 中的PS1,PS0用于选择当前的寄存器组(R0~R7),指令是 SETB RS0 CLR RS0 SETB RS1 CLR RS1 Option_Target Xtal中选晶体频率,影响指令执行时间的显示 核选Use On-Chip ROM(0x0-ox1FFF) Off-Chip选项… Option_Output 如果需要,预先建立一个文件夹以存放中间文件,这里点击 “Select Fold for Objects…” 如果目标代码需要下载到芯片中运行,就需要核选 Create Hex File 控制语句 switch(运算表达式) { case value1: 语句1; 语句2; break; case value2: 语句3; 语句4; break; default: 语句n; } 函数 返回值类型: void , int , unsigned char, float… 参数 int fun(int x,bit y,unsigned char cs ) 调用 fun(0,0,0x54); y = fun(0,0,0x54); z = funx(); 定义函数的理由: 经常重复使用的一组语句、关联性很强的一组语句(也许每次启动只运行一遍); 为了使主程序更加整洁(象提纲一样); 建函数库,提供给他人使用(避免提供源代码) MCS-51片上的基本部件 并行口 定时器 中断 串行口 MCS-51概述 2K~64K ROM(
文档评论(0)