电子系统设计与创新基础训练

电子系统设计课程组

目录

  • 1 实训管理
    • 1.1 实训动员
    • 1.2 实训大纲
    • 1.3 实训流程
    • 1.4 实训课表
    • 1.5 实训考核
      • 1.5.1 课程成绩评定方法
      • 1.5.2 课程成绩评定方法-清单
      • 1.5.3 课程出勤要求
    • 1.6 实训安排
      • 1.6.1 带班老师-助教-班级负责人-教室安排
      • 1.6.2 考勤表-助教每日记录并上报助管
      • 1.6.3 实训教室卫生与安全
      • 1.6.4 工具箱、实验板、元器件领用-
      • 1.6.5 焊接分组-表格-维修填表保修
      • 1.6.6 焊接流程与注意事项
    • 1.7 实训作业
      • 1.7.1 作业1-“STC-B“学生用测试记录表
      • 1.7.2 作业2:STC-B案例测试作业
      • 1.7.3 作业3:实训中期总结
      • 1.7.4 作业4:学习板制作质量管理与分析报告(每班一份)
      • 1.7.5 作业5:创新设计选题
      • 1.7.6 作业6:创新设计(大作业)报告
  • 2 学习板制作
    • 2.1 焊接前准备
    • 2.2 按键焊接
    • 2.3 晶体1焊接
    • 2.4 电池座焊接
    • 2.5 无源蜂鸣器焊接
    • 2.6 数码管焊接
    • 2.7 红外发射管焊接
    • 2.8 红外接收管焊接
    • 2.9 霍尔传感器焊接
    • 2.10 温度传感器焊接
    • 2.11 光敏电阻焊接
    • 2.12 振动传感器焊接
    • 2.13 32768Hz晶体2焊接
    • 2.14 拓展接口插座焊接
    • 2.15 电路板底座安装
  • 3 贴片生产流程介绍
    • 3.1 贴片生产流程介绍(一)
    • 3.2 贴片生产流程介绍(二)
    • 3.3 贴片生产流程介绍(三)
    • 3.4 一些生产过程
  • 4 学习板功能示例
    • 4.1 相关软件与使用说明
      • 4.1.1 STC-B学习板常用软件
      • 4.1.2 常用软件安装说明
      • 4.1.3 STC-ISP软件的使用
      • 4.1.4 学习板概况、STC-B学习板原理图和STC15F2K60S2数据手册
    • 4.2 第一类案例
      • 4.2.1 流水灯
      • 4.2.2 八位数码管动态扫描
      • 4.2.3 三按键测试
      • 4.2.4 步进电机测试
      • 4.2.5 振动传感器
      • 4.2.6 霍尔磁场检测
      • 4.2.7 蜂鸣器测试
      • 4.2.8 导航按键测试
      • 4.2.9 温度与光照测量
      • 4.2.10 串口通信
      • 4.2.11 485双机通信
      • 4.2.12 红外测试
      • 4.2.13 非易失性存储器
      • 4.2.14 实时时钟测试
      • 4.2.15 FM收音机
      • 4.2.16 双通道电压表
    • 4.3 第二类案例
      • 4.3.1 八位数码管滚动显示
      • 4.3.2 八位数码管+流水灯
      • 4.3.3 可变亮度的数码管显示
      • 4.3.4 扫描频率可改变的电子钟
      • 4.3.5 可控步进电机
      • 4.3.6 直流电机控制
      • 4.3.7 可变调的蜂鸣器
      • 4.3.8 电子音乐
      • 4.3.9 导航按键与数字按键综合控制数码管
      • 4.3.10 红外通信1
    • 4.4 第三类案例
      • 4.4.1 按键消抖计数
      • 4.4.2 乒乓球游戏
      • 4.4.3 可切换内容的电子音乐
      • 4.4.4 可振动感应的电子音乐
      • 4.4.5 振动声光报警器
      • 4.4.6 可同步显示歌词的ABC英文歌
      • 4.4.7 看谁手速快
      • 4.4.8 光照报警器
      • 4.4.9 光敏开关
      • 4.4.10 光敏计数
      • 4.4.11 红外通信2
      • 4.4.12 便携式温度采集器
      • 4.4.13 可校准的实时时钟
      • 4.4.14 多功能电子钟
      • 4.4.15 可与PC通信的实时时钟
      • 4.4.16 多功能收音机
      • 4.4.17 超声波测距
      • 4.4.18 倒车雷达
      • 4.4.19 电子秤
      • 4.4.20 电子尺
      • 4.4.21 电子转角测量
      • 4.4.22 双通道秒表
      • 4.4.23 比赛发令与双通道计时
      • 4.4.24 基于PC的数据采集系统
      • 4.4.25 基于红外多机通信系统
      • 4.4.26 红外Ir组网示例
      • 4.4.27 基于485多机通信系统
      • 4.4.28 基于Andriod的数据采集系统
      • 4.4.29 RFID读卡器
    • 4.5 第四类案例
      • 4.5.1 格力空调遥控器
      • 4.5.2 三轴加速度测试(电子水平尺)
      • 4.5.3 基于485总线的评分系统
  • 5 基础编程
    • 5.1 流水灯
    • 5.2 八位数码管动态扫描
    • 5.3 八位数码管+流水灯
    • 5.4 八位数码管滚动显示
    • 5.5 可变亮度的数码管显示
    • 5.6 扫描频率可改变的电子钟
    • 5.7 按键消抖计数
    • 5.8 三按键测试
    • 5.9 霍尔磁场检测
    • 5.10 数码管显示DEMO
    • 5.11 步进电机
    • 5.12 可控步进电机
    • 5.13 蜂鸣器
    • 5.14 可变调的蜂鸣器
    • 5.15 振动传感器
  • 6 基础综合
    • 6.1 电子音乐
    • 6.2 可切换内容的电子音乐
    • 6.3 可振动感应的电子音乐
    • 6.4 振动声光报警器
  • 7 外设编程
    • 7.1 导航按键与数字按键结合
    • 7.2 温度与光照测试
    • 7.3 光照报警器
    • 7.4 光敏开关
    • 7.5 串口通信
    • 7.6 485双机通信
    • 7.7 红外测试
    • 7.8 红外通信1
    • 7.9 红外通信2
    • 7.10 非易失存储器测试
    • 7.11 三轴加速度测试
    • 7.12 实时时钟测试
    • 7.13 可校准的实时时钟
    • 7.14 FM收音机
    • 7.15 扩展接口测试(双通道电压表)
    • 7.16 超声波测距
  • 8 创意综合
    • 8.1 乒乓游戏
    • 8.2 显示歌词的ABC英文歌
    • 8.3 看谁手速快
    • 8.4 光敏计数
    • 8.5 格力空调遥控器
    • 8.6 多功能电子钟
    • 8.7 可与PC通信的实时时钟
    • 8.8 多功能收音机
    • 8.9 倒车雷达
    • 8.10 电子秤
    • 8.11 电子尺
    • 8.12 电子转角测量
    • 8.13 基于PC的数据采集系统
    • 8.14 基于红外多机通信系统
    • 8.15 基于485多机通信系统
    • 8.16 基于485总线的评分系统
    • 8.17 基于Android的数据采集系统
    • 8.18 RFID读写实验
    • 8.19 多功能MODBUS节点案例
    • 8.20 仓库实时监测系统-案例演示
      • 8.20.1 节点1使用说明
      • 8.20.2 节点2使用说明
      • 8.20.3 节点3使用说明
    • 8.21 大棚蔬菜-安防系统+收菜系统
  • 9 系列讲座
    • 9.1 计算机系统硬件与软件的 实践、认识、开发、创新(徐成)
    • 9.2 单片机学习入门(刘三一)
    • 9.3 软件测试与开发(刘峰)
    • 9.4 硬件仿真步骤
    • 9.5 ADC应用(张洪杰)
    • 9.6 51单片机定时器和中断(钱彭飞)
    • 9.7 串口通信(骆坚)
  • 10 直播讲座
    • 10.1 第一讲:课程介绍与安排(徐成)
    • 10.2 ​第二讲:学习板原理(徐成)
    • 10.3 ​第三讲:软件开发与测试(刘峰)
    • 10.4 第四讲:开关量检测与仿真(张洪杰)
    • 10.5 第五讲:单片机介绍(刘三一)
    • 10.6 第六讲:STC-B单片机BSP概述(徐成)
    • 10.7 第七讲:基于STCBSP的应用程序设计(徐成)
    • 10.8 第八讲:STC-B DEMO BSP(张洪杰)
  • 11 FPGA选修部分
    • 11.1 学习板使用步骤
    • 11.2 固件烧写步骤
    • 11.3 FPGA学习板及案例说明
    • 11.4 EP1C3学习板原理图
    • 11.5 系列讲座
      • 11.5.1 电子钟实例设计与验证(方恺晴)
      • 11.5.2 vhdl到verilog(潘建军)
      • 11.5.3 VHDL硬件描述语言(凌纯清)
  • 12 实训管理(2019)
    • 12.1 实训动员
      • 12.1.1 2017工程训练总动员
      • 12.1.2 (2017级)夏季学期实训管理
      • 12.1.3 第三届电子系统工程技能培训竞赛介绍(2019)
    • 12.2 实训管理制度
      • 12.2.1 夏季小学期硬件实训----学生手册
      • 12.2.2 夏季小学期硬件实训---助教手册
      • 12.2.3 夏季小学期硬件实训---教师手册
      • 12.2.4 夏季小学期硬件实训---事务主管手册
    • 12.3 课程相关通知
      • 12.3.1 通知1-助教动员会
      • 12.3.2 通知2-实训前2周时间调整通知
      • 12.3.3 通知3-7月1日实训动员通知
      • 12.3.4 通知4-背板总工艺师检查
      • 12.3.5 新建课程目录
      • 12.3.6 提交“EP1C3学习板”申请书
      • 12.3.7 中期验收安排
    • 12.4 实训大纲
    • 12.5 课表
      • 12.5.1 电子系统设计(1,2周)
      • 12.5.2 软件设计(3,4周)
    • 12.6 实训安排
      • 12.6.1 实训安排整体说明
      • 12.6.2 实训期间实验室工作安排
      • 12.6.3 老师-助教-班级学生负责人(2021)
      • 12.6.4 教室分配与名单(序号为学生座位编号)
    • 12.7 实训流程图
    • 12.8 实训所需表格
    • 12.9 实训考核
      • 12.9.1 课程出勤要求
      • 12.9.2 实训成绩评定方法
      • 12.9.3 课程成绩评定方法_清单_2019
        • 12.9.3.1 焊接质量检查与评分
      • 12.9.4 期末验收评分标准(2019)
      • 12.9.5 实训总验收要求与成绩汇总(2019)
    • 12.10 实训竞赛
      • 12.10.1 第三届电子系统工程技能培训竞赛方案书
      • 12.10.2 第三届电子系统工程技能培训竞赛报名通知
      • 12.10.3 附件
    • 12.11 2016级评优作品汇总
    • 12.12 实训上交资料目录
      • 12.12.1 硬件实训资料第二册(封面)-模板(计科1703)
      • 12.12.2 硬件实训资料第二册目录-模板(计科1703)
      • 12.12.3 硬件实训资料第三册-模板(大作业报告封面目录)
      • 12.12.4 硬件实训资料第四册-封面与目录-模板
  • 13 实训管理2020夏季学期
    • 13.1 实训大纲
    • 13.2 实训课表
    • 13.3 2020年实训流程(18级)
    • 13.4 实训考核
      • 13.4.1 课程成绩评定方法
      • 13.4.2 课程成绩评定方法_清单_2020
      • 13.4.3 课程出勤要求
    • 13.5 实训安排
      • 13.5.1 带班老师-助教-班级联络人安排
      • 13.5.2 实训教室以及座位号安排
      • 13.5.3 考勤表-助教每天记录并上报
      • 13.5.4 实训教室安全与卫生-
      • 13.5.5 工具箱、实验板、元器件领用-
      • 13.5.6 焊接与维修-
      • 13.5.7 焊接流程与维修-
      • 13.5.8 第一阶段在线验收
      • 13.5.9 实训第二阶段安排
      • 13.5.10 考勤与考核细则变更(8-29)
      • 13.5.11 亚克力背板时间安排
    • 13.6 实训作业
      • 13.6.1 作业1(stc-b测试记录表)-2021
      • 13.6.2 作业2(stc-b案例测试作业)-2021
      • 13.6.3 作业3(质量分析报告)2021
      • 13.6.4 作业3(阶段实验总结)-2021
      • 13.6.5 作业4(创新设计选题表)
      • 13.6.6 作业5(创新设计报告)
      • 13.6.7 作业6(背板logo设计)
  • 14 亚克力背板设计
    • 14.1 产品背板
    • 14.2 安排与表格
    • 14.3 法律与承诺授权
    • 14.4 软件环境
    • 14.5 绘制标识
    • 14.6 极简设计
    • 14.7 任务规划设计
    • 14.8 任务讨论
    • 14.9 激光非金属加工
    • 14.10 亚克力背板生产
  • 15 电路板检测
    • 15.1 介绍
    • 15.2 任务规划设计
八位数码管滚动显示

 “八位数码管滚动显示”程序设计说明

1 工程文件下载:

2 程序设计思路

8位数码管动态扫描是经典的测试数码管是否正常工作和学习使用数码管显示的案例,首先要理解段选和位选概念,段选是选择一个数码管上哪个发光二极管发光,而位选则是选择八个数码管中哪个数码管来显示。

8位数码管动态扫描电路连接示意图

3 关键代码设计说明

3.1公共变量定义及说明

            sbit Sel0=P2^0;//                   

            sbit Sel1=P2^1;//

            sbit Sel2=P2^2;//位选的三个引脚控制位

            uchar show_w1;

            uchar show_w2;

            uchar show_w3;

            uchar show_w4;

            uchar show_w5;

            uchar show_w6;

            uchar show_w7;

            uchar show_w8;//show_wi(i=1,2,3,4,……,8)分别是对应左到右的各个数码管上的显示的数字

            uchar flag;//分频作用,同时用作位选下标

            uchar count;//分频作用的变量

            uchar duanxuan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,

                                            0x39,0x5e,0x79,0x71,0x40,0x00}; //段选,显示0-f

            uchar weixuan[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07}; //位选,选择是0-7中的一个数码管            3.2 Init():完成初始化配置;

1P0P2口需要设置成推挽模式输出,以驱动LED数码管正常显示。

P2M1=0x00;  P2M0=0xff;       P0M1=0x00;  P0M0=0xff;

2TMOD=0x01; //定时器0采用模式1

3)打开中断并允许定时器0中断

                            EA=1;//打开总中断

                            ET0=1;//允许定时器0中断    

                            TR0=1;//启动定时器0

4)设置定时器初始值

               TH0=(65535-1000)/256;  TL0=(65535-1000)%256;

        (5)设置位选位flag初始值为0;

6)为每个数码管要显示的内容赋初值

show_w1=0;show_w2=1;show_w3=2;show_w4=3;show_w5=4;show_w6=5;show_w7=6;show_w8=7;

        3.3   void timer0() interrupt 1

    当定时器0初始值不断加一最终溢出时激发的处理方法。

            (1)       重设TH0TL0

            (2)       flag加一;如果flag等于8,则赋值flag0

            (3)       P0要显示的值为0

            (4)       P2为位选结果,下标为flag

            (5)       如果位选为0,则显示段选下标为show_w1%10对应的数值;如果位选为1,则显示段选下标为show_w2%10对应的数值,以此类推。由于定时时间为1ms用于处理显示内容,而下一个1ms很快就会到,因此,虽然实际上并不是同时选通相应的数码管位,但是由于人眼有时延,因此感觉是同时显示。

    3.4   void main()

主体功能,主要用于控制数码管循环显示

(1)    调用Init()完成程序初始化;

(2)    单纯一个死循环即可

4   寄存器知识补充说明

MCS51系列的单片机通常有216位可编程定时/计数器,即定时器01MCS52系列还有一个定时/计数器2。可编程的意思是指其功能(如工作模式、定时时间、启动方式等)可由指令来确定和改变。通常都是赋值指令给相关的寄存器。与定时/计数器相关的有两个特殊功能寄存器(模式控制寄存器TMOD和控制寄存器TCON)。且定时器往往在中断中使用,以便当时间到了完成相应处理。MCS51单片机定时/计数器工作原理示意图如图6所示。

 MCS51单片机定时/计数器工作原理示意图

每个16位定时/寄存器又分别由两个8位专用寄存器组成。其中TH0TL0(对应定时器0)、TH1TL1(对应定时器1),其访问地址依次为8AH-8DH。它们可单独访问,主要用于装载定时或计数的初始值。

定时/计数器01要正常工作,需要先设置好8位模式控制寄存器TMOD89H)和8位控制寄存器TCON88H)。TMOD主要用于设定定时/计数器的工作模式;TCON主要用于控制定时/计数器的启动/停止,保存T0T1的溢出和中断标志。当定时器工作在计数方式时,外部事件可通过引脚P3^4(对应T0)或P3^5(对应T1)进行输入。本程序使用的是内部计时及相应处理,不是外部事件激活。

定时计数器工作原理:

16位的定时器/计数器实质上就是一个加1计数器。当定时器/计数器为定时工作方式时,计数器的加1信号由振荡器的12分频信号产生;每过一个机器周期,计数器加1,直至计满溢出为止。因此,定时器的定时时间与系统的振荡频率有关。

一个机器周期等于12个振荡周期,所以计数频率fcount=1/12osc。如果晶振为12MHz,则计数周期为:T=1/12×106Hz×1/12=1μs。这是最短的计数周期。若要延长定时时间,则需要改变定时器的初值,根据初始值需要选择适当的定时器长度(如8位、13位、16位等)。当定时器/计数器为计数工作方式时,通过引脚T0T1对外部信号计数,外部脉冲下降沿将触发计数。若一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。此后的机器周期S3P1期间,新的计数值装入计数器。所以检测一个由10的跳变需要两个机器周期,故外部事件的最高计数频率为振荡频率的1/24。例:如果选用12MHz晶振,则最高计数频率为0.5MHz。虽然对外部输入信号的占空比无特殊要求,但为了确保某给定电平在变化前至少被采样一次,外部计数脉冲的高电平与低电平保持时间均需在一个机器周期以上。

CPU用软件给定时器设置了某种工作方式之后,定时器就会按设定的工作方式独立运行,不再占用CPU的操作时间,除非定时器计满溢出,才可能中断CPU当前操作。CPU也可以重新设置定时器工作方式,以改变定时器的操作。

在定时器/计数器开始工作之前,CPU必须将一些命令(称为控制字)写入定时/计数器。将工作模式控制字写入模式控制寄存器,工作状态字(或相关位)写入控制寄存器,并给定时/计数器赋初值。

定时器赋初始值计算:

如果需要需要定时为50MS,则计算方式如下:如果晶振是12MHZ,则机器周期为12MHz除以12,就是1MHz,每秒1000000次机器周期,那么50ms就是50000次机器周期。65536-50000=15536(3cb0)TH0=0x3cTL0=0xb01ms就是1000次机器周期。(65536-1000/256是高位,(65536-1000%256是低位。

TMOD寄存器的设置依据如图7所示。

TMOD寄存器设置依据

TCON寄存器的设置依据如图8所示。

TCON寄存器设置依据

定时/计数器初始化基本流程如图9所示。

定时/计数器初始化流程

 

中断工作原理

中断的概念: CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。MCS51中断信息如表2所示。

 MCS51单片机中断信息表

与中断相关的寄存器包括:

    ①  中断允许控制寄存器IE

 中断允许控制寄存器IE

    说明:

在用到中断时,必须要开总中断EA,EA=1

EX0(EX1):外部中断允许控制位。EX0=1开外部0号中断,EX0=0关闭外部0号中断。

ET0(ET1):定时中断允许控制位。ET0=1,开内部定时器0号中断;ET0=0关闭定时器中断0号开关。

ES: 串口中断允许控制位。ES=1,开串口中断;ES=0 关闭串口中断。

    ②  中断优先控制寄存器IP

    说明:

  l PS:串行口中断优先级控制位。PS=1设定串行口为高优先级中断;PS=0为低优先级中断。

  l PT1T1中断优先级控制位。PT1=1设定定时器T1为高优先级中断;PT1=0为低优先级中断。

  l 外部中断1优先级控制位。PX1=1设定定时器外部中断1为高优先级中断;PX1=0为低优先级中断。

  l PT0T0中断优先级控制位。PT0=1设定定时器T0为高优先级中断;PT0=0为低优先级中断。

  l PX0:外部中断0优先级控制位。PX0=1设定定时器外部中断0为高优先级中断;PX0=0为低优先级中断。