8 单片机系统扩展设计
- 格式:ppt
- 大小:2.54 MB
- 文档页数:41
V1.0请注意以下有关芯联发公司知识产权政策:(一)芯联发公司已申请了专利,享有绝对的合法权益。
与芯联发公司MCU或其他产品有关的专利权并未被同意授权使用,任何经由不当手段侵害芯联发公司专利权的公司、组织或个人,芯联发公司将采取一切可能的法律行动,遏止侵权者不当的侵权行为,并追讨芯联发公司因侵权行为所受的损失、或侵权者所得的不法利益。
(二)芯联发公司的名称和标识都是芯联发公司的注册商标。
(三)芯联发公司保留对规格书中产品在可靠性、功能和设计方面的改进作进一步说明的权利。
然而芯联发公司对于规格内容的使用不负责任。
文中提到的应用其目的仅仅是用来做说明,芯联发公司不保证和不表示这些应用没有更深入的修改就能适用,也不推荐它的产品使用在会由于故障或其它原因可能会对人身造成危害的地方。
芯联发公司的产品不授权适用于救生、维生器件或系统中作为关键器件。
芯联发公司拥有不事先通知而修改产品的权利。
目录1.产品概述 (1)1.1功能特性 (1)1.2系统结构框图 (2)1.3管脚分布 (3)1.3.1SC8F8121引脚图 (3)1.3.2SC8F8122引脚图 (3)1.4系统配置寄存器 (4)1.5在线串行编程 (5)2.中央处理器(CPU) (6)2.1内存 (6)2.1.1程序内存 (6)2.1.1.1复位向量(0000H) (6)2.1.1.2中断向量 (7)2.1.1.3跳转表 (8)2.1.2数据存储器 (9)2.2寻址方式 (12)2.2.1直接寻址 (12)2.2.2立即寻址 (12)2.2.3间接寻址 (12)2.3堆栈 (13)2.4工作寄存器(ACC) (14)2.4.1概述 (14)2.4.2ACC应用 (14)2.5程序状态寄存器(STATUS) (15)2.6预分频器(OPTION_REG) (16)2.7程序计数器(PC) (18)2.8看门狗计数器(WDT) (19)2.8.1WDT周期 (19)3.系统时钟 (20)3.1概述 (20)3.2系统振荡器 (21)3.2.1内部RC振荡 (21)3.3起振时间 (21)3.4振荡器控制寄存器 (21)4.复位 (22)4.1上电复位 (22)4.2掉电复位 (23)4.2.1掉电复位概述 (23)4.3看门狗复位 (24)5.休眠模式 (25)5.1进入休眠模式 (25)5.2从休眠状态唤醒 (25)5.3使用中断唤醒 (25)5.4休眠模式应用举例 (26)5.5休眠模式唤醒时间 (26)6.I/O端口 (27)6.1I/O口结构图 (28)6.2PORTB (29)6.2.1PORTB数据及方向 (29)6.2.2PORTB模拟选择控制 (30)6.2.3PORTB下拉电阻 (30)6.2.4PORTB上拉电阻 (31)6.2.5PORTB电平变化中断 (31)6.3I/O使用 (33)6.3.1写I/O口 (33)6.3.2读I/O口 (33)6.4I/O口使用注意事项 (34)7.中断 (35)7.1中断概述 (35)7.2中断控制寄存器 (36)7.2.1中断控制寄存器 (36)7.2.2外设中断允许寄存器 (37)7.2.3外设中断请求寄存器 (37)7.3中断现场的保护方法 (38)7.4中断的优先级,及多中断嵌套 (38)8.定时计数器TIMER0 (39)8.1定时计数器TIMER0概述 (39)8.2TIMER0的工作原理 (40)8.2.18位定时器模式 (40)8.2.28位计数器模式 (40)8.2.3软件可编程预分频器 (40)8.2.4在TIMER0和WDT模块间切换预分频器 (40)8.2.5TIMER0中断 (41)8.3与TIMER0相关寄存器 (41)9.定时计数器TIMER2 (42)9.1TIMER2概述 (42)9.3TIMER2相关的寄存器 (44)10.PWM模块(PWM1和PWM2) (45)10.1PWM (45)10.2PWM模式 (46)10.2.1PWM周期 (47)10.2.2PWM占空比 (48)10.2.3PWM分辨率 (48)10.2.4休眠模式下的操作 (48)10.2.5系统时钟频率的改变 (48)10.2.6复位的影响 (49)10.2.7设置PWM操作 (49)11.触摸按键 (50)11.1触摸按键模块概述 (50)11.2与触摸按键相关的寄存器 (51)11.3触摸按键模块应用 (53)11.3.1用查询模式读取“按键数据值”流程 (53)11.3.2判断按键方法 (54)11.4触摸模块使用注意事项 (55)12.电气参数 (56)12.1极限参数 (56)12.2直流电气特性 (56)12.3LVR电气特性 (57)12.4AC交流 (57)13.指令 (58)13.1指令一览表 (58)13.2指令说明 (60)14.封装 (76)14.1SOT23-6 (76)14.2SOP8 (77)15.版本修订说明 (78)1. 产品概述1.1功能特性型号说明◆ 内存- ROM :2K ×16Bit- 通用RAM :128×8Bit ◆ 工作电压范围:3.5V —5.5V@16MHz2.0V —5.5V@8MHz工作温度范围:-20℃—75℃ ◆ 8级堆栈缓存器◆ 一种振荡方式 ◆ 简洁实用的指令系统(68条指令) - 内部RC 振荡:设计频率8MHz/16MHz ◆ 指令周期(单指令或双指令) ◆ 2路PWM 模块 ◆ 查表功能- 可通过系统配置分配在不同位置 ◆ 内置低压侦测电路 ◆ 定时器◆ 内置WDT 定时器 -8位定时器TIMER0,TIMER2◆ 中断源 ◆ 内置触摸按键模块 - 2个定时中断 - 内置2.4V LDO - RB 口电平变化中断 - 其它外设中断1.2 系统结构框图2048×16 Program Memory Instruction Reg Instruction Decode and Control Timing GenerationPCStack1..Stack8128×8Data MemoryAddr MuxFsr RegACCMuxALUVDD,GNDTIMER0I/O PORTPWM1-2 Device Reset TimerPower-on ResetWatch Dog TimerOSC TIMER2 Touch1.3 管脚分布1.3.1 SC8F8121引脚图654123RB0/KEY0/PWM/ICSPDATA VDDRB4/PWM/VPPICSPCLK/PWM/KEY1/RB1GND CAP/RB5SOT23-6SC8F81211.3.2 SC8F8122引脚图RB0/KEY0/PWM/ICSPDATA87651234RB3/KEY3/T0CKI/PWM RB2/KEY2/PWMRB1/KEY1/PWM/ICSPCLK VPP/PWM/RB4CAP/RB5VDD GNDSC8F8122管脚名称 IO 类型 管脚说明VDD,GND P 电源电压输入脚,接地脚RB0-RB3,RB5 I/O 可编程为输入脚,推挽输出脚,带上拉电阻功能、带下拉电阻功能、电平变化中断功能RB4I/O 可编程为输入脚,开漏输出脚,带上拉电阻功能、带下拉电阻功能、电平变化中断功能ICSPCLK/ICSPDAT I/O 编程时钟/数据脚 KEY0-KEY3 I 触摸按键输入脚PWM I/O PWM 输出功能,可通过系统配置寄存器选择在不同I/O 口 T0CKI I TIMER0外部时钟输入 CAP I 触摸按键基准电容引脚 VPPI高电压烧写输入1.4 系统配置寄存器系统配置寄存器(CONFIG)是MCU初始条件的ROM选项。
✧─数据存储器:多达1K字节真正的数据EEPROM;可达30万次擦写✧RAM:多达2K字节时钟、复位和电源管理✧ 3.0~5.5V工作电压,内核电压1.8V✧灵活的时钟控制,4个主时钟源✧–低功率晶体振荡器✧–外部时钟输入✧–用户可调整的内部16MHz RC✧–内部低功耗128kHz RC✧带有时钟监控的时钟安全保障系统电源管理:✧–低功耗模式(等待、活跃停机、停机)✧–外设的时钟可单独关闭✧永远打开的低功耗上电和掉电复位中断管理✧带有32个中断的嵌套中断控制器✧ 6个外部中断向量,最多37个外部中断定时器✧2个16位通用定时器,带有2+3个CAPCOM通道(IC、OC 或PWM)✧高级控制定时器:16位,4个CAPCOM✧通道,3个互补输出,死区插入和灵活的自动唤醒定时器✧2个看门狗定时器:窗口看门狗和独立看门狗通信接口✧带有同步时钟输出的UART ,智能卡,红外IrDA,LIN接口✧SPI接口最高到8Mbit/s✧I2C接口最高到400Kbit/s2.2 STM8S系列MCU内部结构 P222.2.1 STM8内核CPU P24PC为24位,可寻址224=16Mb累加器(A) ,堆栈指针(SP),索引寄存器(X和Y),条件码寄存器(CC):2.2.2 STM8S封装与引脚排列2.3掌握通用I/O口GPIO初始化P31●可选择的输入模式:悬空输入(缺省状态)和带上拉输入●可选择的输出模式:推挽式输出和开漏输出PB_DDR,PB_CR1,PB_CR22.3.1 I/O引脚结构2.3.2 I/O端口数据寄存器与控制寄存器2.3.3输入模式2.3.4输出模式每一个端口都有一个输出数据寄存器 (ODR),一个引脚输入寄存器(IDR)和一个数据方向寄存器(DDR) 总是同相关的。
控制寄存器1(CR1)和控制寄存器2(CR2)用于对输入/输出进行配置。
任何一个I/O引脚可以通过对DDR,ODR,CR1和CR2寄存器的相应位进行编程来配置。
西南石油年夜学之迟辟智美创作实习总结陈说 实习类型生产实习 实习单元 西南石油年夜学实习基地 实习起止时间 2018 年 7 月 7 日至 2018 年 7 月 16 日 指导教师刘东明、孙鉴 所在院(系) 电子科学学院 班 级电子科学与技术 15-2 学生姓名 学 号 15090124022018 年 7 月 16 日目录第 1 章 按键控制流水灯设计 1 1.1 实习目的错误!未定义书签。
1.2 实习要求错误!未定义书签。
第 2 章 电路工作原理 22.5 本章小结 6 第 3 章 C 法式设计 73.1 法式设计流程图 73.3 本章小结 9 总结及体会 10 参考文献 11 附录 12第1章 按键控制流水灯设计1.1 实习目的本次实习以 STC89C52 单片机为控制核心.通过它实现对八盏 LED 灯的亮灭进 行设定,并在设定完成之后能够依照之前的设定实现流水灯效果.外部电路为按键 控制流水灯.P0 口控制八盏灯,P1 口控制矩阵键盘,P2 口控制自力按键,法式利 用单片机内部计时器中断实现流水效果.要求流水灯能够自行设定、暂停、复位, 工作稳定,可靠性高.生产实习的主要目的是培养理论联系实际的能力,提高实际入手把持能力.本 专业的生产实习旨在广泛了解实际单片机电子产物工作的全过程,熟悉电子产物 的主要技术管理模式,并在实习的把持过程中学习掌握电子产物的焊接装置调试 的实际把持技能.巩固和加深理解所学的理论,开阔眼界,提高潜力,为培养高素 质年夜学本科人才打下需要的基础.透过学习,是理论与实际相结合,能够使学生 加深对所学知识的理解,并为后续专业课的学习带给需要的感性知识,同时直接 了解本业的生产过程和生产资料,为将来走上工作岗位带给需要的实际生产知识.1.2 实习要求1.深入学习单片机开发软件 Keil 的使用,熟悉单片机电路设计,根据实际应 用电路对法式进行调试.2.熟悉单片机硬件开发平台的应用,掌握单片机编程器、仿真器的使用,能 检查和分析软硬件故障.3.体会单片机内部资源的功能使用,以单片机开发板现有资源进行应用性设 计.掌握单片机经常使用外围器件的使用.4.对去年生产实习焊接的 51 开发板的法式有更深入的了解.第2章 电路工作原理2.1 STC89C52 单片机工作原理单片机(Microcontrollers)是一种集成电路芯片,是采纳超年夜规模集成电路 技术把具有数据处置能力的中央处置器 CPU、随机存储器 RAM、只读存储器 ROM、 多种 I/O 口和中断系统、按时器/计数器等功能(可能还包括显示驱动电路、脉宽 调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个 小而完善的微型计算机系统.例如 STC89C52 单片机是通过 32 个输入输出口的高低电平变动来实现对外部 电路的控制,痛过相应的法式实现对 32 个输入输出口的控制,这就是单片机工作 的最基来源根基理.如图 2-1 所示为 STC89C52 单片机工作的最小系统电路图.图 2-1 STC89C52 最小工作系统 整个电路使用 5V 直流电源供电,其中复位电路能够使单片机复位;晶振电路 相当于单片机的心脏,为单片机提供 12MHz 的高频脉冲使单片机正常工作; MAX232 是将单片机输出的 TTL 电平转换成 PC 机能接收的 232 电平或将 PC 机输 出的 232 电平转换成单片机能接收的 TTL 电平,实现单片机与 PC 机之间的通信, 以便于下载法式.2.2 LED 工作原理LED(light-emitting diode),即发光二极管,俗称 LED 小灯,51 开发板使用 的是普通贴片发光二极管.这种二极管通常的正向导通电压是 1.8~2.2V 之间,工作 电流一般在 1~20mA 之间.其中当电流在 1~5mA 之间变动时,随着通过 LED 的电 流越来越年夜,肉眼会感觉到这个灯越来越亮,而当电流从 5~20mA 变动时,看 到的发光二极管的亮度变动不明显了.当电流超越 20mA 时,LED 就有烧坏的危险. 所以在 51 开发板的使用中需要根据相应的电流参数设计一个与 LED 串连的限流 电阻.如图 2-2 所示为单片机 I/O 口控制 LED 的电路原理图.图 2-2 单片机控制 LED 电路图 图中 PR2 为排阻,在电路中起到限流作用,防止 LED 被烧毁.因为单片机是可 以编程控制的,即 P00~P07 的高低电平也是能够控制的,所以对应的 8 个 LED 的 亮灭状态也是能够控制的,这就到达了单片机控制 LED 的目的.2.3 按键工作原理 2.3.1 自力按键工作原理自力式按键比力简单,它们各自与自力的输入线相连接,如图 2-3 所示.图 2-3 自力式按键原理图 4 条输人线接到单片机的 I/O 口上,当按健 K1 按下时,+5V 通过电阻然后再 通过按键 K1 最终进人 GND 形成一条通路,这条线路的全部电压都加到这个电阻 上,P20 这个引脚就是个低电平.当松开按健后,线路断开,就不会有电值通过, P20 和+5V 就应该是等电位,是个高电平.我们就可以通过 P20 这个 10 口的高低电 平来判断是否有按键按下.2.3.2 矩阵按键工作原理在某一个系统设计中,如果需要使用很多按键时,做成自力按键会占用年夜 量 I/O 口,因此引用了矩阵键盘的设计.如图 2-4 所示为 51 开发板上的矩阵按键电 路原理图,使用 8 个 I/O 口来实现 16 个按键.图 2-4 矩阵按键原理图 在法式设计中分别用四个 I/O 口扫描 4 行,另外 4 个扫描 4 列,确定了按键在 哪行哪列也就确定了按键的具体位置.2.4 整体电路图如图 2-5 所示为键盘控制 LED 流水灯整体电路图.图 2-5 总电路原理图2.5 本章小结本章主要介绍了单片机最小系统、LED 工作原理、按键工作原理.并从硬件电 路的设计动身,简单分析单片机控制 LED 的工作过程.理论分析基本完成,接下来 就是具体的法式设计与调试,通过具体的法式来实现相应的功能,这也是单片机 开发中最具技术含量的环节之一.第3章 C 法式设计3.1 法式设计流程图如图 3-1 所示为主法式流程图.开始 开计时器中断K1 是否按下 否是扫描矩阵键盘选 择需要点亮的 LED是K2 是否按下 否K3 是否按下 否是保管选择的数据 择需要点亮的 LED计时器中断法式选择 数据实现 LED 流水灯图 3-1 法式设计框图 主法式由 3 个自力按键控制,K1,K2 和 K3.开始从主函数执行法式语句,不 竭循环扫描按键,当 K1 按下时,进入选择状态,法式会不竭地扫描矩阵键盘,通 过矩阵键盘选择需要点亮的 LED;选择结束后按下 K2,法式会将选定后的数据送 入中断法式,中断法式根据接收的数据选泽对应的 LED 实现流水灯效果;当按下K3 后法式又会进入矩阵键盘扫描重新选择 LED.3.2 实验结果如图 3-2 所示,当按下 K1 后进入选择定状态.图 3-2 选择 LED 如图 3-2,控制矩阵键盘分别选择了第 1,6,8 盏灯. 再按下 K2 键,让选择的第 1,6,8 盏灯实现流水灯效果.如图 3-3 所示.图 3-3 流水灯 如图 3-3,按下 K2 之后,LED 由之前第 1,6,8 盏灯亮酿成第 1,2,7 盏灯 亮,实现了流水灯右移的效果. 当按下 K3 键,实验结果如图 3-4 所示.图3-4回到初始状态由图3-4可知,当按下K3键之后,法式又回到了设定LED的状态.3.3本章小结由实验结果可以看出,本次单片机课程设计已到达预期要求,电路工作稳定,满足设计要求.在整个设计过程中,法式设计与调试最为复杂,呈现过按键灯不亮,没有呈现滚动流水等现象等一系列法式问题.但最终在不竭地检查、调试之后,问题也逐渐获得解决.最终实现按键控制流水灯的效果.总结及体会本次设计通过对单片机进行编程控制,进而控制外部电路,胜利地设计了八个按键控制八盏灯亮灭实现流水灯的效果.深入了解到单片机开发软件Keil的使用,熟悉单片机电路设计,根据实际应用电路对法式进行调试.熟悉单片机硬件开发平台的应用,掌握了单片机编程器、仿真器的使用,能检查和分析软硬件故障.体会到单片机内部资源的功能使用,以单片机开发板现有资源进行应用性设计.通过这次实习使我进一步弄懂所学到的课本知识,巩固和深化对单片机的结构、指令系统、中断系统、键盘/显示系统、接口技术、系统扩展、按时/控制、法式设计、应用开发、等基本理论知识的理解,提高单片机应用于技术的实践把持技能,掌握单片机应用系统设计、研制的方法,培养利用单片机进行科技革新、开发和立异的基天性力,为结业后从事与单片机相关的工作打下一定的基础.参考文献[1]童诗白,华成英.模拟电子技术基础(第四版)[M].北京:高等教育出书社,2006.[2]阎石.数字电子技术基础(第五版)[M].北京:高等教育出书社,2006.[3]韩建,全星慧,周围.电子技术课程设计指导[M].哈尔滨:哈尔滨工程年夜学出书社,2014.[4]黎小桃.数字电子电路分析与应用[M].北京:北京理工年夜学出书社,2014.[5]高吉祥. 电子技术基础实验与课程设计[M].北京:电子工业出书社,2002.[6]陈明义.电子技术课程设计实用教程(第3版) [M]. 长沙:中南年夜学出书社,2010.[7]程春雨. 模拟电子技术实验与课程设计[M].北京:电子工业出书社,2016.[8]宋雪松,李东明,崔长胜. 手把手教你学51单片机(C语言版)[M]. 北京:清华年夜学出书社,2014.附录:#include <reg52.h>#include <intrins.h>#define KEY P1sbit k1=P2^0;sbit k2=P2^1;sbit k3=P2^2;sbit k4=P2^3;unsigned char LED=0x00,LED1=0x00;unsigned char x=0;unsigned char KeyValue;unsigned char A1=0x00,A2=0x00,A3=0x00,A4=0x00,A5=0x00,A6=0x00,A7=0x00,A8=0x00;void Delay10ms(unsigned int c);void KeyDown(); //矩阵键盘检测void kongzhil();void kongzhi2();void main(void){ TMOD=0x01; //按时器工作状态为1 TH0=(65536-50000)/256;TL0=(65536-50000)%6;EA=1; //开总中断ET0=1; //开按时器中断TR0=1; //开启按时器while(1){ int n=0;if(k1==0){Delay10ms(1);if(k1==0)n=1;}if(k3==0){Delay10ms(1);if(k3==0)n=3;}if(k4==0){Delay10ms(1);if(k4==0)n=4;}switch(n){case 1:KeyDown();break;case 3:kongzhil();break;case 4:kongzhi2();break;default:break;}}}void KeyDown(void){ int k=1;while(k){char a=0;KEY=0x0f;if(KEY!=0x0f){Delay10ms(1); //延时消抖if(KEY!=0x0f){KEY=0X0F;switch(KEY) //扫描行{case(0X07): KeyValue=0;break;case(0X0b): KeyValue=4;break;case(0X0d): KeyValue=8;break;case(0X0e): KeyValue=12;break;}KEY=0XF0;switch(KEY) //扫描列{case(0X70): KeyValue=KeyValue+3;break;case(0Xb0): KeyValue=KeyValue+2;break;case(0Xd0): KeyValue=KeyValue+1;break;case(0Xe0): KeyValue=KeyValue;break;}while((a<50) && (KEY!=0xf0)) //松手检测{Delay10ms(1);a++;}switch(KeyValue) //选择需要亮的灯{case(0):A1=~A1;break;case(1):A2=~A2;break;case(2):A3=~A3;break;case(3):A4=~A4;break;case(4):A5=~A5;break;case(5):A6=~A6;break;case(6):A7=~A7;break;case(7):A8=~A8;break;default:break;}}}if (A1==0xff) //保管数据(LED1=LED1|0x80);else if(A1==0x00)(LED1=LED1&0x7f);if (A2==0xff)(LED1=LED1|0x40);else if(A2==0x00)(LED1=LED1&0xbf);if (A3==0xff)(LED1=LED1|0x20);else if(A3==0x00)(LED1=LED1&0xdf);if (A4==0xff)(LED1=LED1|0x10);else if(A4==0x00)(LED1=LED1&0xef);if (A5==0xff)(LED1=LED1|0x08);else if(A5==0x00)(LED1=LED1&0xf7);if (A6==0xff)(LED1=LED1|0x04);else if(A6==0x00)(LED1=LED1&0xfb);if (A7==0xff)(LED1=LED1|0x02);else if(A7==0x00)(LED1=LED1&0xfd);if (A8==0xff)(LED1=LED1|0x01);else if(A8==0x00)(LED1=LED1&0xfe);LED=LED1;if(k2==0){Delay10ms(1);if(k2==0){k=0;LED=LED1;};};if(k4==0){Delay10ms(1);if(k4==0){k=0;kongzhi2();};};}}void kongzhil(void){int m=1;LED1=LED,LED=0x00;while(m){if(k3==0){Delay10ms(1);if(k3==0){m=0,LED=LED1;};}}}void kongzhi2(void){LED1=0x00;LED=0x00;A1=0;A2=0;A3=0;A4=0;A5=0;A6=0;A7=0;A8=0;}void timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%6;x++;if(x==6) //6*50MS=300MS{x=0;P0=LED;LED = _crol_(LED,1);//if(++i==8) i=0;}}void Delay10ms(unsigned int c) {unsigned char a, b;for (;c>0;c--){for (b=38;b>0;b--){for (a=130;a>0;a--);}}}。
《单片机原理及应用技术》思考题1 单片机概述1-1、单片机与PC机有何区别?它的特点是什么?1-2、MCS-51系列单片机与AT89系列单片机有什么相同和差异?1-3、单片机的主要技术指标有哪些?这些指标的作用如何?1-4、对于一个具体的单片机应用系统,选择单片机的原则是什么?1-5、举一个单片机的应用例子,并画出原理框图,说明工作过程。
1-6、单片机I/0端口数目的多少反映了什么。
2 单片机结构和原理2-1、8051单片机内部包含那些主要逻辑功能部件?2-2、8051的EA端有何用途?2-3、8051单片机存储器的组织结构是怎样的?2-4、8051如何确定和改变当前工作寄存器组?2-5、8051单片机有哪几个特殊功能寄存器?可位寻址的SFR有几个?2-6、(SP)=30H 指什么?2-7、ALE信号有何功用?一般情况下它与机器周期的关系如何?在什么条件下ALE信号可用作外部设备的定时信号。
2-8、有那几种方法能使单片机复位?复位后各寄存器的状态如何?复位对内部RAM有何影响?2-9、程序状态寄存器PSW的作用是什么?常用标志有哪些位?作用是什么?2-10、位地址7CH与字节地址7CH如何区别?位地址7CH具体在片内RAM中什么位置?3 指令系统3-1、MCS-51指令系统主要有哪几种寻址方式?试举例说明。
3-2、设A=0FH,R0=30H,内部RAM的(30H)=0AH、(31H)=0BH、(32H)=0CH,请指出在执行下列程序段后上述各单元内容的变化。
MOV A,@R0MOV @R0,32HMOV 32H,AMOV R0,#31HM0V A,@R03-3、请用数据传送指令来实现下列要求的数据传送。
(1)R0的内容传送到R1。
(2)内部RAM 20H单元的内容传送到A中。
(3)外部RAM 30H单元的内容送R0(4)外部RAM 30H单元内容送内部RAM 20H单元(5)外部RAM 1000H 单元内容送内部RAM 20H单元(6)程序存储器ROM 2000H单元内容送R1(7)RAM 2000H单元内容送内部RAM 20H单元。
电子产品世界基于STC8单片机兼容传统51开发板设计及双语言编程的教学探究*Teaching exploration based on STC8 MCU compatible with traditional 51 development board design and dual language programming刘光乾1,陈 熙,刘 庆,陈 丹,马兴茹 (西南科技大学城市学院,四川 绵阳 622651)摘 要:本文以STC8H8K64U单片机兼容STC89C52传统开发板及发挥引脚最大化资源配置设计核心板,结合与Keil C兼容的图形化编程语言,以项目开发和教学应用为基础讲解对51单片机的软硬件开发应用,以更好地推进单片机教学和项目开发实践应用。
关键词:单片机核心板;STC8H8K64U;STC89C52;图形化编程;Keil C*课题项目:2020年度西南科技大学城市学院校级教学质量与改革项目课题2020XJXM03单片机原理及应用线上课程建设与教学改革项目研究实施。
2021年度西南科技大学城市学院校级教学研究与改革项目课题CC-JJ2120现代学徒制创新创业课程项目在高校职业教育教学的实施研究项目研究实施。
0 引言单片机教学在很多高职院校的很多专业都有涉及,不同层次专业水平的学生,在学习单片机与实践开发应用中难以过渡,特别是单片机硬件结构和软件编程基础较差时更是难以入门。
本文基于众多单片机教学与应用研究及学徒制教学改革与探索,从单片机应用与教学现状分析、STC8H8K64U单片机简介、STC8H8K64U兼容STC89C52开发板的核心系统设计及图形化编程与仿真等五个方面进行讲述,供单片机教学教改及单片机爱好者学习研究之用。
1 单片机应用与教学模式及现状简介单片机作为智能电子产品开发设计及嵌入式基础,业内项目式入门资料包括:郭天祥老师的“新概念51单片机”,及相关的单片机开发经验与分享[1];以51单片机课程为例的创客式项目教学在编程类课程中的应用研究[2];邵华[3]老师以项目为导向的课程创新机制,在《单片机编程与实训》课程中的实践和对比效果显著;陈育群[4]老师在面向单片机初学者的编程方法探究中采用基于编程字典的方法能使单片机初学者快速掌握单片机的编程。
第8章思考与练习题解析【8—1】简述单片机系统扩展的基本原则和实现方法。
【答】系统扩展是单片机应用系统硬件设计中最常遇到的问题。
系统扩展是指单片机内部各功能部件不能满足应用系统要求时,在片外连接相应的外围芯片以满足应用系统要求。
80C5 1系列单片机有很强的外部扩展能力,外围扩展电路芯片大多是一些常规芯片,扩展电路及扩展方法较为典型、规范。
用户很容易通过标准扩展电路来构成较大规模的应用系统。
对于单片机系统扩展的基本方法有并行扩展法和串行扩展法两种。
并行扩展法是指利用单片机的三组总线(地址总线AB、数据总线DB和控制总线CB)进行的系统扩展;串行扩展法是指利用SPI三线总线和12C双线总线的串行系统扩展。
1.外部并行扩展单片机是通过芯片的引脚进行系统扩展的。
为了满足系统扩展要求,80C51系列单片机芯片引脚可以构成图8-1所示的三总线结构,即地址总线AB、数据总线DB和控制总线CB。
单片机所有的外部芯片都通过这三组总线进行扩展。
2.外部串行扩展80C51.系列单片机的串行扩展包括:SPI(Serial Peripheral Interface)三线总线和12C双总线两种。
在单片机内部不具有串行总线时,可利用单片机的两根或三根I/O引脚甩软件来虚拟串行总线的功能。
12C总线系统示意图如图8—2所示。
【8—2】如何构造80C51单片机并行扩展的系统总线?【答】80C51并行扩展的系统总线有三组。
①地址总线(A0~A15):由P0口提供低8位地址A0~A7,P0 口输出的低8位地址A0~A7必须用锁存器锁存,锁存器的锁存控制信号为单片机引脚ALE输出的控制信号。
由P2口提供高8位地址A8~A1 5。
②数据总线(DO~D7):由P0 口提供,其宽度为8位,数据总线要连到多个外围芯片上,而在同一时间里只能够有一个是有效的数据传送通道。
哪个芯片的数据通道有效则由地址线控制各个芯片的片选线来选择。
③控制总线(CB):包括片外系统扩展用控制线和片外信号对单片机的控制线。