目录

  • 1 2025秋季学期课堂项目教学案例
    • 1.1 教学参考书及历年考题
    • 1.2 项目一 无刷直流电机控制模块的初步应用
    • 1.3 项目二 数控系统主轴电机的按键受控运行
    • 1.4 项目三  数控系统主轴电机的多模式控制
    • 1.5 项目四 数控系统主轴电机的急停控制
    • 1.6 项目五 数控系统主轴电机PWM调速控制
    • 1.7 项目六  数控系统主轴电机速度检测
    • 1.8 项目七 数控系统主轴电机的速度PID控制
    • 1.9 项目八  数控系统主轴电机网络控制功能开发
  • 2 常用的接口电路简介
    • 2.1 LED灯接口电路
    • 2.2 独立按键的接口电路
    • 2.3 重温很有用的三极管
    • 2.4 继电器控制接口电路
    • 2.5 蜂鸣器接口电路
    • 2.6 八段数码管接口电路
    • 2.7 作业及第一次直播课视频回放
  • 3 单片机开发软件的安装和基础知识回顾
    • 3.1 学完本课程,你将能独立设计开发这些项目!
      • 3.1.1 我的LED我做主!
      • 3.1.2 单键复用的LED控制
      • 3.1.3 推乒乓球模拟游戏
      • 3.1.4 计数液晶显示系统开发
      • 3.1.5 秒表设计,你可以拥有!
      • 3.1.6 简易电子琴设计
      • 3.1.7 一曲“送别”献给你
      • 3.1.8 可设置鸣叫参数蜂鸣器系统开发
      • 3.1.9 测温自动门禁系统开发
      • 3.1.10 测速报警系统开发
      • 3.1.11 工作台运动控制系统开发
      • 3.1.12 步进电机控制系统开发
      • 3.1.13 数控系统设计初步
      • 3.1.14 网络数控系统开发初步
    • 3.2 新建课程目录
    • 3.3 KEIL、STC编程器及通信驱动软件的安装
    • 3.4 开发调试软件的初步使用
    • 3.5 从传统的开关控制到信号控制
    • 3.6 认识开发板
    • 3.7 单片机入门基础知识之数制转换
    • 3.8 单片机入门基础知识之逻辑运算
    • 3.9 单片机入门基础知识之C程序入门基础
  • 4 德硕开发板项目教程
    • 4.1 奔跑吧!LED!
      • 4.1.1 狂奔的花式LED
      • 4.1.2 简单的输出控制连接在P1口上的LED
      • 4.1.3 给大家引荐一个很有用的sbit定义
      • 4.1.4 闪烁LED控制的实现
        • 4.1.4.1 让LED给大家送给个秋波吧!--LED闪烁控制的实现
        • 4.1.4.2 一开又一闭,逝者如斯夫,取反再取反,也能复开闭
        • 4.1.4.3 多个灯错开时间闪烁,猜猜会是什么样子?
        • 4.1.4.4 原来逻辑运算还可以这么玩!
      • 4.1.5 奔跑吧!LED!
      • 4.1.6 两条鱼儿游来又游去
      • 4.1.7 我们曾经的说过的大BOSS来了
      • 4.1.8 学完本讲,你能干这个!
    • 4.2 敞开心扉,给你我的全部!
      • 4.2.1 你很快就能掌握的40个引脚功能
      • 4.2.2 单片机内部结构简单介绍
      • 4.2.3 单片机的时钟和复位电路介绍
      • 4.2.4 P1口内部电路介绍
      • 4.2.5 P3口第二功能简介
      • 4.2.6 优秀学习报告展示
        • 4.2.6.1 19机电班
    • 4.3 我的LED,我做主!
      • 4.3.1 单个LED灯的按键点亮控制
      • 4.3.2 针对前一个案例的程序优化设计
      • 4.3.3 led灯的单键复用控制
        • 4.3.3.1 只用一个按键控制LED的亮灭
        • 4.3.3.2 按键的消抖处理
        • 4.3.3.3 引入一个重要的设计方法-标志位管理
        • 4.3.3.4 消抖的简单程序设计处理
      • 4.3.4 led灯的开关两键控制
      • 4.3.5 单个LED不过瘾,多个LED跑起来!
        • 4.3.5.1 两个按键,控制跑马灯启动和停止
        • 4.3.5.2 单键复用控制,继续干!
        • 4.3.5.3 加入方向的单键复用控制
        • 4.3.5.4 启用一种新的实用的查按键方法
        • 4.3.5.5 修正其中的BUG
      • 4.3.6 优秀学习报告
        • 4.3.6.1 19机电班
        • 4.3.6.2 液晶显示,丰富我的情感表达
          • 4.3.6.2.1 1602LCD的基本使用方法
          • 4.3.6.2.2 用LCD显示一个给定的数
          • 4.3.6.2.3 设计一个简单的按键计数系统
          • 4.3.6.2.4 继续优化设计
          • 4.3.6.2.5 带启动停止控制的计数显示
          • 4.3.6.2.6 再加上清零控制
          • 4.3.6.2.7 尝试进行减量技术模式的设计
          • 4.3.6.2.8 按键计数综合系统开发
          • 4.3.6.2.9 第五次课线下教学项目设计
          • 4.3.6.2.10 优秀学习报告
            • 4.3.6.2.10.1 19机电班
    • 4.4 我和中断有个约会
      • 4.4.1 引入中断
      • 4.4.2 中断源
      • 4.4.3 单片机的五个中断源
      • 4.4.4 中断允许机制
      • 4.4.5 中断优先级机制
      • 4.4.6 中断程序的处理过程
      • 4.4.7 采用中断解决跑马灯控制的BUG
      • 4.4.8 跑马灯控制的优化设计
      • 4.4.9 推乒乓球模拟游戏设计
      • 4.4.10 次数检测案例的再设计
      • 4.4.11 第六次课线下案例设计及课后作业
      • 4.4.12 19机电班第六次优秀学习报告
      • 4.4.13 第七次课线下案例设计及课后作业
      • 4.4.14 19机电班优秀学习报告(第七次)
        • 4.4.14.1 优秀报告展示
    • 4.5 定时器是啥玩意?
      • 4.5.1 干嘛要用定时器?
      • 4.5.2 定时器就那么点事
      • 4.5.3 单片机定时器工作机制
      • 4.5.4 定时器机制的设置方法
  • 5 用上定时器,以前的难题再也不难了!
    • 5.1 感觉一下LED闪烁的新玩法
    • 5.2 50毫秒闪烁有些快,慢点,再慢点
    • 5.3 把按键加进去控制,定时检测按键
    • 5.4 按键的长按与短按控制,学完你也能干了!
    • 5.5 设计秒表,你值得拥有!
    • 5.6 第八次课线下案例设计及课后作业
    • 5.7 优秀报告展示
  • 6 尽情歌唱吧----单片机!
    • 6.1 从蜂鸣器到音乐播放器的设计
    • 6.2 简易电子琴设计
    • 6.3 清清嗓子,让单片机先唱一个调试试:
    • 6.4 高歌一曲献给你!
    • 6.5 单片机的计数器工作原理
    • 6.6 按键计数显示系统开发的新玩法
    • 6.7 计数器扩展为外部中断的用法
    • 6.8 第九次课线下案例设计及课后作业
    • 6.9 第九次课优秀学习报告展示
  • 7 串口通信
    • 7.1 完成国家精品在线课程内容学习
    • 7.2 串行通信基础知识(课堂实录)
    • 7.3 单片机发送一个字符到PC机
    • 7.4 把按键按下的计数次数值发送到PC机
    • 7.5 定时把按键按下的计数次数值发送到PC机
    • 7.6 单片机接收一串从PC机发来的字符
    • 7.7 建立PC机与单片机之间的通信协议
    • 7.8 第十四次课  网络数控加工的设计与实现
    • 7.9 课程大实验:单轴数控工作台控制系统开发设计
  • 8 矩阵按键的设计和应用
    • 8.1 矩阵按键的设计原理
    • 8.2 矩阵按键的应用
    • 8.3 矩阵按键头文件的制作
    • 8.4 EEprom的使用
    • 8.5 第十次课线下案例设计
    • 8.6 第十次课优秀学习报告展示
  • 9 八段数码管的应用
    • 9.1 数码管显示一个简单的数
    • 9.2 数码管显示两位数
    • 9.3 按键次数的计数的数码管显示
    • 9.4 消灭BUG
  • 10 期中测试
    • 10.1 项目开发:小盆栽自动浇花系统开发
    • 10.2 期中测试优秀设计报告展示
  • 11 课程大作业
    • 11.1 课程大作业课题
  • 12 课程考试要求及相关结课事宜
    • 12.1 期末考试要求
    • 12.2 课程学习效果自评问卷
  • 13 数控系统开发
    • 13.1 第十一次课线下项目设计
    • 13.2 数控系统开发 II (课堂现场实录)
  • 14 历史文物展示台控制系统开发(教材样章)
    • 14.1 项目导入
    • 14.2 旋转展示台控制系统方案设计
    • 14.3 系统软件的架构
    • 14.4 step by step 程序设计
      • 14.4.1 step1--开机显示及蜂鸣器鸣叫
      • 14.4.2 step2--密码输入的显示与控制
      • 14.4.3 step3—系统运行各界面的人机交互显示
      • 14.4.4 step4—旋转台电机的手动控制模块设计
      • 14.4.5 step5—旋转台电机的串行通信控制程序模块设计
      • 14.4.6 step6—速度和密码参数设置程序模块设计
      • 14.4.7 step7—意外触碰的处理
  • 15 单片机仿真软件安装
    • 15.1 完成国家精品在线课程内容学习
    • 15.2 Proteus 软件安装过程
    • 15.3 Proteus电路图打开及仿真调试过程
    • 15.4 Proteus仿真调试练习
    • 15.5 使用Keil软件的程序编译及仿真运行
    • 15.6 练习:在给定电路上对给定程序完成编译和仿真。
  • 16 2020秋季学期课堂教学项目案例
    • 16.1 第一次课堂教学案例
    • 16.2 第二次课堂教学案例
    • 16.3 第三次课堂教学案例
    • 16.4 第四次课堂教学案例
    • 16.5 第五次课堂教学案例
    • 16.6 第六次课堂教学案例
    • 16.7 第七次课堂教学案例
    • 16.8 第八次课堂教学案例
  • 17 2021春季学期课堂教学案例
    • 17.1 第一次课堂教学案例
    • 17.2 第二次课堂教学案例
    • 17.3 第三次课堂教学案例
    • 17.4 第四次课堂教学案例
    • 17.5 第十五周课堂教学案例
  • 18 2022春季学期课堂项目设计
    • 18.1 第一次项目设计任务
    • 18.2 第二次项目设计任务
    • 18.3 第三次项目设计任务
    • 18.4 第四次项目设计任务
    • 18.5 第五次项目设计任务
    • 18.6 第六次项目设计任务
    • 18.7 第七次项目设计任务
    • 18.8 第八次项目设计任务
    • 18.9 第九次项目设计任务
  • 19 2022秋季学期课堂教学案例
    • 19.1 第一次项目设计任务(顺序控制)
    • 19.2 第二次项目设计任务(前后台控制)
    • 19.3 第三次项目设计任务(同级多任务控制)
    • 19.4 第四次项目设计任务(外部中断应用)
    • 19.5 第五次项目设计任务(分层分级多任务控制)
    • 19.6 期中项目化测试
    • 19.7 第六次项目设计任务(定时器应用)
    • 19.8 第七次项目设计任务(定时器计数器综合应用)
    • 19.9 第八次项目--数控工作台控制系统开发(矩阵按键、EEPROM的综合应用)
    • 19.10 第九次项目--网络数控系统开发(串行通信技术应用)
  • 20 2023春季学期课堂项目设计
    • 20.1 第一次项目设计任务
    • 20.2 第四次项目设计任务
    • 20.3 第二次项目设计任务
    • 20.4 第五次项目设计任务
    • 20.5 第六次项目设计任务
    • 20.6 第七次项目设计任务
    • 20.7 第八次项目设计任务
    • 20.8 期中考试
    • 20.9 第三次项目设计任务
  • 21 2023秋季学期课堂教学案例
    • 21.1 第一次项目设计任务
    • 21.2 第二次项目设计任务
    • 21.3 第三次项目设计任务
    • 21.4 第四次项目设计任务
    • 21.5 第五次项目设计任务
    • 21.6 第六次项目设计任务
    • 21.7 第七次项目设计任务
    • 21.8 第八次项目设计任务
    • 21.9 第九次项目设计任务
  • 22 2024春季学期课堂教学案例
    • 22.1 2024春季学期课堂教学案例
      • 22.1.1 项目一 模拟洗衣机洗衣过程的软件模块设计
      • 22.1.2 项目二  国旗升降自动控制系统开发
      • 22.1.3 项目三 一种旋转喷漆工作台控制系统开发
      • 22.1.4 项目四 对项目三 增加报警检测控制(应用外部中断处理)
      • 22.1.5 项目五  数控系统设计之---主轴电机测速与PWM调速控制
      • 22.1.6 项目六  数控系统设计之--数控机床工作台控制系统设计
      • 22.1.7 项目七  南海卫士
      • 22.1.8 项目八  国旗升降系统改进设计
      • 22.1.9 项目九 数控系统设计之---网络控制 I
      • 22.1.10 项目十 数控系统设计之---手轮控制步进电机的程序模块设计
      • 22.1.11 课程大作业设计要求
  • 23 2025年春季学期项目教程
    • 23.1 开发板调试电机的初步应用
    • 23.2 ​数控系统主轴电机的按键受控运行
    • 23.3 数控系统主轴电机的多模式控制
    • 23.4 数控系统主轴电机的急停控制
    • 23.5 数控系统主轴电机的PWM控制
    • 23.6 数控系统主轴电机的速度检测
    • 23.7 数控系统主轴电机的PID控制
    • 23.8 数控系统主轴电机网络控制功能开发
  • 24 数智课程申报
    • 24.1 申报书
    • 24.2 申报汇报视频
  • 25 太空电梯控制系统开发
    • 25.1 太空电梯实现效果
第八次项目设计任务

单片机课堂第八次项目设计任务

一、项目:国旗升降自动控制系统开发

二、功能要求:

作为一名机械工程师,穿越回到1949年的开国大典,贡献专业才干。请为国旗班设计一个升降国旗自动控制系统,助力开国大典升旗仪式圆满完成。要求如下:

(1)升旗----步进电机以给定的速度(选用每5ms步进电机专一个步距角的速度),运行给定的时长(国歌演奏的时长)后自动停止。

(2)降旗—--步进电机以给定速度(每毫秒转一个步距角)下降,在旗杆底部装有限位传感器(外部中断触发,用开发板P3.2端口的按键K1按下替代),降旗时遇限位停止运行。                                 

 

本项目使用矩阵按键布局

 
 

升旗

 
 

7

 
 

8

 
 

9

 
 

降旗

 
 

4

 
 

5

 
 

6

 
 

暂停

 
 

1

 
 

2

 
 

3

 
 

发送

 
 

/

 
 

0

 
 

确定

 

(3)采用矩阵按键,按键的功能如下图定义:

(4)在升旗或降旗状态,可按下暂停键,暂停旗杆动作,再次按下暂停键,恢复原来动作继续执行。

(5)在停止状态(初始转态或降旗到达限位的状态,而非暂停状态)可设置升旗时间(两位数,单位为秒),按确定后保存设定的数值。

(6)系统具有串行通信的控制功能,每1秒将当前的系统工作状态(升旗、降旗、暂停、到达、停止)等状态发送至PC机。

(7)系统接收PC机发来的指令信号,编码格式含义如下:

    (起始   动作   参数1     参数2   结束)    

编码: 05    01   时间十位   时间个位   04  ------ 升旗  时长参数

      05     02     xx         xx     04------  降旗  任意参数

      05     03     xx         xx     04------  暂停  任意参数  单片机接到编码信息后,译码输出控制电机做相应动作。

(8)液晶显示信息自定,各按键的定义和选用自行安排。


三、学习目标:

1.能结合控制功能对矩阵按键进行自定义设计和子程序开发、调用;

2.能应用串行通信功能实现双机通信、信息识别和单片机输出控制;

3.能有效综合应用定时器、外部中断、串行通信等功能开发控制系统;

 

四、step by  step系统开发设计:

   0步(准备):讲解上次课后作业,优化定时器设置;

   1步:在独立独立按键的基础上,加入暂停控制;

   2步:将升旗、降旗、暂停控制应用矩阵按键实现

   3步:应用矩阵按键实现升旗时长设定控制(1位数) 

   4步:应用矩阵按键实现升旗时长设定控制(2位数)

   5步:应用串行通信,发送系统当前状态至上位机(单个字符和字符串两类信息)

   6步:每隔1秒发送系统当前状态至上位机(字符串信息) 

   7步:串行中断方式接收上位机单个字符(数、数字或字母)信息

   8步:按串行通信格式接收上位机多个带有信息的字符串

 

四、调试实践说明:

1.  在第3步将电机控制的端口顺序配置到P3.4---P3.7

2.  P0端口作为液晶输出端口, P1端口作为矩阵按键输入端口,P36 P37配置到电机输出,为防止信号干扰,将右下脚全部跳线帽偏插。

基础设计程序:

  第0步:优化定时器设置   


项目最后执行的HEX代码:

  各步骤程序设计: