目录

  • 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 太空电梯实现效果
1602LCD的基本使用方法

1602液晶显示器外形如图7-1所示,是广泛使用的一种字符型液晶显示模块,能够显示英文字母、阿拉伯数字、日文片假名和一般性符号,整屏的显示容量是两行,每行16个字符,故称为1602。该模块的其他详细信息大家可百度学习。

7-1 1602液晶显示器

       开发板上,液晶显示模块占用了单片机的P0口以及P2.0P2.1P2.211个口位。液晶显示的背景屏亮度调整可以用小一字螺丝刀尝试左右旋动图7-2中的指示的旋钮,直到显示为你感觉的最佳状态。从本章开始我们将使用液晶显示器来做为控制系统信息数据的显示。


7-2  1602液晶背景亮度旋钮


对于液晶显示,它只是一个功能模块,不用纠结它的内部工作原理,我们会用就可以了。那么怎么用呢?一般这类功能模块都会提供一些函数文件,或者说驱动程序,我们只需要搞清楚这个模块的功能,会用驱动程序里的函数来展示这些功能就可以了。将来大家还会不断使用其他的功能模块,用法都是类似。

对于我们这块1602液晶显示,它可以做两行16列字符的显示,可以显示数字、英语字符,这些字符数据都存储在模块里,可以直接调用函数去做显示。只需要调用相关的函数,告诉系统你想在液晶屏的什么位置显示什么字符,就能获得显示效果。

为了方便大家使用,我们专门为大家做了一个头文件1602LCD.h,大家下载到电脑上并放置到项目文件夹里。在本节我们通过几个实际的应用案例来说明怎么使用,请观看本节视频讲解。



把以下文件下载后,请解压缩。



液晶屏仿真调试使用电路:


大家可以发现,我们根据自己的设计需要调用驱动程序即可。这里再简单小结一下:

  • 在主程序头部里把1602LCD.h包含进去(当然这个程序文件要求事先已经复制到了项目文件夹里);

  • main()函数中调用液晶的初始化程序lcd_init();

  • 如要做液晶显示,先调用lcd_pos(x,y)函数明确显示的第几行第几列;

  • 再根据即将显示的内容调用相应的函数,比如显示数字就调用lcdwrite_sz(数字),显示字符就调用lcdwrite_zm(‘字母’),记得在字母前后要有单引号,不论数字还是字母都是显示1位。

  • 如果显示的一串多位的字符,可以实现用数组定义好,然后调用lcdwrite_string(数组名)

  • 调用lcd_clear()函数可以对液晶屏清屏处理。