基于stm32f107的智能电子秤的设计内容摘要:
可选择 10Hz 或 80Hz 的 输出数据速率 • 同步抑制 50Hz 和 60Hz 的电源干扰 • 耗电量(含稳压电源电路):典型工作电流: , 断电电流: 1181。 A • 工作电压范围: ~ • 工作温度范围: 40 ~ +85℃ • 16 管脚的 SOP16 封装 图 7 3 系统软件设计 stm32 的介绍 STM32F107 是意法半导体推出全新 STM32 互连型( Connectivity)系列微控制器中的一款性能较强产品,此 芯片集成了各种高性能工业标准接口,且 STM32不同型号产品在引脚和软件上具有完美的兼容性,可以轻松适应更多的应用。 新 STM32 的标准外设包括 10 个定时器、两个 12 位 1Msample/s AD(模数转换器 ) (快速交替模式下 2M sample/s)、两个 12 位 DA(数模转换器 )、两个 I2C 接 9 口、五个 USART 接口和三个 SPI 端口和高质量数字音频接口 IIS,另外STM32F107 拥有全速 USB( OTG)接口,两路 接口,以及以太网 10/100 MAC 模块。 此芯片可以满足工业、医疗、楼宇自动 化、家庭音响和家电市场多种产品需求。 主程序设计 电子秤的最基本功能为称重功能,程序设计的出发点必须是保证称重的准确性。 但是由于没有用压力传感器无法测出物体实重,因此在本设计中设定了一个重量初始值,再通过按键调整它的大小,并设定了一个上限值当重量到达上限值时蜂鸣器就会发出响声。 通过 k5按键可以实现其加减 的功能,同样单价也是这样调整的。 通过切换键 k8 可以使显示结果在单价、重量、总价钱之间切换,切换键的使用减少了按键的使用,节省了资源。 显示模块采用的是 12864LCD液晶显示器,这种显示器自 带字符发生器,因此可直接写要显示的字符如“ dj”、“ zl”、“ jq”,或者写它们的 ASCII 值都会有正确的显示,大大的简化了程序的编写。 在编程时,只需把字符(数据)写进 12864 液晶,在指定的位置将结果显示出来即可,再通过按键实现调整切换等功能。 如下图 所示: 10 开始 系统初始化 while 大循环 采集传感器数据 量程判断 蜂鸣器报警 按键值 LCD 显示 11 按键处理程序 在 stm32F107 系统中,键盘按连接形式可分为独立连接键盘、矩阵式键盘和薄膜开关。 本设计中用的是独立连 接式键盘。 当键没有按下时,所有的数据输入线都为高电平;当有一按键被按下时,与之相连的数据输入线将变为低电平;通过相应指令,可以判断是否有按键按下。 按键要正确发挥作用必须消除抖动。 所谓抖动,是一种由于按键是机械式的弹性开关,通常在按键按下和抬起的时候会出现多次闭合或者断开的现象,如图 33 所示。 通常抖动时间为 5ms~10ms,稳定闭合区的时间由按键动作决定, CPU 往往会在闭合抖动时检测到多次电平的变化。 消除硬件抖动有硬件和软件两种方式。 硬件消抖方法是在按键输入通道上添加去抖动电路,从根本上避免电压抖动的产生。 软件消抖方法则采用延迟5~10ms 时间,待电压稳定后,再进行状态输入。 在本设计中用延时的方法就足够了。 图 8 按键时波 形 当抖动的问题消除以后,还必须判断按键者是否将按键释放。 通常按键的稳定闭合区的时间最少也有上百毫秒,是抖动时间的数十倍,如果按键者持续按下按键不松手,那么按键一直处于闭合状态。 这种状态会导致 CPU 误以为按键被按多次,为了避免这种错误,程序需要判断按键被松开,这样才是一个完整的按键动作。 用等待查询的方法就可以判断了。 12864 液晶简介 12 液晶显示模块是 128 64 点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置 8192 个中文汉字( 16X16 点阵)、 128 个字符( 8X16 点阵)及 64X256点阵显示 RAM( GDRAM)。 可与 CPU 直接接口,提供两种界面来连接微处理机:8位并行及串行两种连接方式。 具有多种功能:光标显示、画面移位、睡眠模式等。 压力传感器介绍 将压力转换为电信号输出的传感器。 通常把压力测量仪表中的电测式仪表称为压力传感器。 压力传感器一般由弹性敏感元件和位移敏感元件(或应变计)组成。 弹性敏感元件的作用是使被测压力作用于某个面积上并转换为位移或应变,然后由位移敏感元件(见位移传感器)或应变计(见电阻应变计、半导体应变计)转换为与压力成一定关系的电信号。 有时把这两种 元件的功能集于一体,如压阻式传感器中的固态压力传感器。 压力是生产过程和航天、航空、国防工业中的重要过程参数,不仅需要对它进行快速动态测量,而且还要将测量结果作数字化显示和记录。 13 结 论 本设计的研究课题为智能电子秤的设计,要求在学习并掌握单片机的工作原理、编程方法及系统设计的前提下分析电子秤的工作原理、基本功能,最后编写软件程序连接硬件电路来实现功能。 电子秤基本功能包括显示和调节,需要单价、质量、总价的正确显示和单价大小调整功能。 系统以 stm32 单片机 为控制芯片,显示模块用12864LCD 液晶显示器显示实现,调节单价模块和显示切换模块采用13 个独立按键的方式。 设计以结构性、可读性、功能性强的 C 语言作为编程语言,在 Keil uVision 开发环境下编写应用程序,采用模块化编程思想,结合硬件电路作整体调试,最终实现电子秤的基本功能。 作为单片机初学者,通过这次实践,了解了电子秤的用途及工作原理,熟悉了用 KEIL 编程、 ISP 下载总线验证程序编写是否正确的步骤、 PROTEL 软件的使用等,不仅锻炼了工程设计实践能力,也培养了独立设计能力。 巩固了所学知识,掌握单片机工 作原理,熟习硬件、软件系统设计的过程,锻炼动手能力、查阅资料能力、综合运用知识的能力,以及培养团队合作的精神,为今后工作打下了一定的基础。 但是此次毕业设计也暴露出自己专业基础的很多不足之处,比如缺乏综合应用专业知识的能力,对材料的不了解,缺乏对与专业相关知识的了解,遇困难容易烦躁,没耐心实际动手能力差等。 14 参考文献 [1] 赵茂泰 .智能仪器原理及应用 [M].北京:电子工业出版社 .. [2] 马忠梅等. stm32F107 的 C语言应用程序设计 [M].北京:北 京航空航天大学出版社,2020. [3] 刘瑞新 .stm32F107 原理及应用教程 [M].机械工业出版社, . [4] 王东峰等. stm32F107C 语言应用 100例 [M].北京:电子工业出版社, 2020. [5] 李平等. stm32F107入门与开发 [M].北京:机械工业出版社, 2020. [6] 张毅刚等. MCS51stm32F107应用设计 [M].哈尔滨:哈尔滨工业大学出版社, 1997. [7] 沙占友等 .智能传感器系统设计与应用 [M].北京:电子工业 出版社, . [8] 王伟,刘晓平 .高精度数字电压表方案设计 [J].仪表技术 ,2020,(4): 3639. [9] 江思敏等. Altium Designer(Protel)原理图与 PCB设计教程 [M].北京:机械工业出版社, 2020. [10] 刘守义等. stm32F107 技术基础 [M].西安:西安电子科技大学出版社, 2020. [11] 陈海宴等. 51stm32F107 原理及应用 [M].北京:北京航空航天大学出版社, 2020. [12] TINSHARP. TC1602B01 Specification For Approval[EB/OL]. ,2020. [13] Dallas Semiconductor Corp. Programmable Resolution 1Wire Digital Thermometer [EB/OL]. , 2020. [14] Atmel Corporation. AT24C02A/04A/08A/16A[EB/OL]. , 2020. [15] Lance Hammond, Basem , Kunle Olukotun. A SingleChip Multiprocessor[J]. Stanford University, 1997. [16] 钟富昭等. 8051stm32F107典型模块设计与应用 [M].北京:人民邮电出版社, 2020. 15 致 谢 非常感谢王焕友老师在我大学的最后学习阶段 毕业设计阶段给我的指导,从最初的定题,到资料收集,到写作、修改,到论文定稿,他都给 了我耐心的指导和无私的帮助。 为了指导我的毕业论文,他花费了大量的时间和精力,这种无私奉献的敬业精神令人钦佩,在此我向他表示我诚挚的谢意。 同时,感谢所有任课老师和所有同学在这四年来给自己的指导和帮助,是他们教会了我专业知识,教会了我如何学习,教会了我如何做人。 正是由于他们,我才能在各方面取得显著的进步,在此向他们表示我由衷的谢意,并祝所有的老师培养出越来越多的优秀人才,桃李满天下 ! 通过这一阶段的努力,我的毕业论文《 基于 stm32F107 的智能电子秤的设计 》终于完成了,这意味着大学生活即将结束。 在大学 阶段,我在学习上和思想上都受益非浅,这除了自身的努力外,与各位老师、同学和朋友的关心、支持和鼓励也是分不开的。 再次表示十分感谢。 16 附录 源代码 主程序 include include include include char weight[10]。 unsigned int index=0,x_flag=0,x_i=0。 float price=0。 unsigned int key_in_value[10]。 char send_message[10]。 float temp=0。 int wht=0。 extern unsigned long HX711_Read(void)。 extern void int_to_str(int n,unsigned char ch[])。 void Dout_IO_configuration(int flag) { GPIO_InitTypeDef GPIO_InitStructure。 if(flag ==1) { = HX711_DOUT。 = GPIO_Mode_IN_FLOATING。 = GPIO_Speed_50MHz。 GPIO_Init(GPIOA, amp。 GPIO_InitStructure)。 }。基于stm32f107的智能电子秤的设计
相关推荐
行模块化应用,而不要求使用人员了解其内部结构。 如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。 如:音乐信号以数字的形式存于存储器中(类似于 ROM),由微控制器读出,转化为模拟音乐电信号(类似 于声卡)。 在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。 汽车电子。
宣教工作的门外汉成为业务能手。 而过去宣教工作中的两项内容 — 幸福家庭建设、性别比治理现划归家庭发展科,再加上利益导向组成了现在的家庭发展科全部工作内容。 其中两项工作都是我所从事数年、经验丰富且受到好评的,因此,最 新精 品 资料推荐 提 供全程指导服务 2020 全新精品资料 全新公文范文 全程指导写作 –独家原创 22 / 70 我认为,我担任家庭发展科科长职务是有优势的。
( 1)利用故障点距离值在 GIS 输电网上拓扑分析定位 ( 2)在 GIS 图上直观显示故障测距的位置,并以地理图为背景,自动推出故障点位置图。 ( 3)自动分析抢修车到达故障点的最佳路径 11 (八) 故障抢修最短路径分析 系统为巡视和抢修车辆提供一点到多点和多点到一点的最优路径分析以及供电最短路径分析。 地理信息系统和抢修车连为一体,抢修车的位 置从地理信息图上可反映,出现抢修任务时
图 26 其它元件图 11 3 软件设计 程序流程图 主程序开始初始化,然后扫描键盘、复位电路和计数器。 当键盘按键有按下时,调整计数器值, LCD 显示新值。 当复位键有按下时,计数器复位为 开机画面 ,当计数器值倒计为 0 时,蜂鸣器发出声音,计数器停止倒计,程序结束。 主程序流程图 、 lcd 显示流程图和按键流程图分别如下图 3图 32 和图 33 所示。 蜂 鸣 器 发 声初 始 化调
达到自身控制。 电机驱动电路采用 H桥驱动模块 双 L298步进 /直流电机驱动板 ,能同时驱动 4个直流电机和 2 个步进电机 [3]。 避障和避悬崖采用红外光电开关来完成 ,自动寻迹采用红外发射管和接收管光电对管寻迹传感器完成 ,超声波测距采用超声波发射器和接收器经锁相环电路检波完成 ,最后由控制单元处理数据后通过编程有序合理的将各模块信号整合在一起并完成相应动作 ,实现了智能控制
下,有序地进行工作。 本设计中使用单个按键 实现单个功能 ,属于较为简单的控制方式。 电路图见图 34。 图 34 按键接口电路图 在多功能系统设计的实验中中我们使用四个按键分别与单片机的 、 、 相连,按键 K_1 控制数据的增加, 按键 K_2 控制 控制数据的减少, 按键 K_3 五种模式的转制, 按键 K_4 有两个作用,在北京时间下 是关闭闹钟,在闹钟时间下是 遍历所有闹钟。