目录1 课程设计的任务与要求 (1)1.1 课程设计的任务 (1)1.2 课程设计的要求 (1)2 热敏打印机设计方案制定 (1)2.1 热敏打印机的原理 (1)2.2 热敏打印机的技术方案 (1)3 热敏打印机的方案实施 (3)3.1 热敏打印机电路元器件选择 (3)3.2 热敏打印机系统整体电路图 (5)3.3 元器件清单 (6)4 热敏打印机的实现与调试 (7)4.1 热敏打印机设计系统测试 (7)4.2 热敏打印机设计数据分析 (8)5 总结及心得体会 (8)6参考文献 (9)热敏打印机1 课程设计的任务与要求1.1 课程设计的任务熟练运用上课时老师讲解的知识,了运用STM32的知识,并熟知Keil5的操作,学会STM32GPIO口的高低位寄存器配置原理和方法:学会新建工程步骤和利用软件编写程序;并且能够熟悉热敏打印机的工作原理及使用方法;最终学会使用热敏打印机打印出成品。
1.2 课程设计的要求熟练掌握STM32GPIO口的特点,学会使用数据手册(学会配置寄存器的管脚打印机原理图及Keil uVision5软件编写LED、蜂鸣器、步进电机、时间定时器、按键、检测器以及主函数的程序,最终学会用热敏打印机打印图片,字符,和超市小票。
2 热敏打印机设计方案制定2.1 热敏打印机的原理所谓蓝牙打印机,就是指在主机端用一单片机来仿真打印机进行工作,截取从主机并口传出的数据及控制信号,并通过蓝牙无线连接传送到打印机端。
在打印机侧的单片机则根据所收到的蓝牙数据来仿真主机对打印机进行控制操作,从而实现打印机与主机的蓝牙无线连接。
由于大部分的移动设备(手机、笔记本、平板电脑)都置有蓝牙芯片,不需要数据线连接即可快速被识别,操作简单,连接方便。
热敏打印机的原理是用加热的方式使涂在打印纸上的热敏介质变色。
热敏微型打印机式也式比较常见的微型打印机,但比针式微型打印机出来得要晚。
热敏打印机打印速度快,噪音小,打印头很少出现机械损耗,并且不需要色带,免去了更换色带的麻烦。
但它也有缺点,因为其使用的是热敏纸,所以不能无限期保存,在避光的条件下可以保存一年到五年,也有长效热敏纸可以保存十年。
2.2 热敏打印机的技术方案将一行384个点对应的数据按顺序输入,控制加热信号STB1、STB2、STB3、STB4、STB5、STB6,加热打印头,写入的数据中,对应二进制bit为1的点就会加热成黑点,时不会发生危险。
对应二进制数据为0的bit则不会变色;与此同时,输入步进电机激励相序信号,转动一步(加热和步进电机转动同时进行);紧接着输入第二行点的数据……,依次循环24次(24*24字体),完成一整行字符、汉字打印。
其内部电路示意图如图1所示。
图1 热敏打印机打印头内部结构图在主机端用一单片机来仿真打印机进行工作,截取从主机并口传出的数据及控制信号,并通过蓝牙无线连接传送到打印机端。
在打印机侧的单片机则根据所收到的蓝牙数据来仿真主机对打印机进行控制操作,从而实现打印机与主机的蓝牙无线连接。
主机端的蓝牙作为主设备进行查询和发起连接,打印机端的蓝牙则作为从设备等待连接的建立。
热敏打印机设计如下图2所示。
图2热敏打印机打印头内部结构图3 热敏打印机的方案实施3.1 热敏打印机电路元器件选择(1)单片机STM32F103C8增强型系列由意法半导体集团设计,使用高性能的ARMCortex-M332位的RISC内核,工作频率为72MHz,内置高速存储器(高达128K字节的闪存和20K 字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。
所有型号的器件都包含2个12位的ADC、3个通用16位定时器和一个PWM定时器,还包含标准和先进的通信接口:多达2个I2C和SPI、3个USART、一个USB和一个CAN。
内核:ARM 32位的Cortex™-M3 CPU1)最高72MHz工作频率,在存储器的0等待周期访问时可达1.25DMips/MHz(Dhrystone2.1)2)单周期乘法和硬件除法存储器:1)从64K或128K字节的闪存程序存储器2)高达20K字节的SRAM时钟、复位和电源管理:1)2.0~3.6伏供电和I/O引脚2)上电/断电复位(POR/PDR)、可编程电压监测器(PVD)3)4~16MHz晶体振荡器4)内嵌经出厂调校的8MHz的RC振荡器5)内嵌带校准的40kHz的RC振荡器6)产生CPU时钟的PLL7)带校准功能的32kHzRTC振荡器(2)步进电机步进电机是将电脉冲信号转变为角位移或线位移的开环控制电机,是现代数字程序控制系统中的主要执行元件,应用极为广泛。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。
可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
步进电机是一种感应电机,它的工作原理是利用电子电路,将直流电变成分时供电的,多相时序控制电流,用这种电流为步进电机供电,步进电机才能正常工作,驱动器就是为步进电机分时供电的,多相时序控制器。
步进电机的结构图如下图3所示。
图3 步进电机结构图(3)热敏打印头该热敏打印机打印头采用的型号为富士通FTP-628,如下图4所示。
图4 热敏打印头实物图打印头技术参数:1)打印方式:行式热敏2)打印宽度:48mm3)打印纸宽度:58mm4)点密度:384点/行5)打印速度:40~80mm/s6)打印头温度侦测:热敏电阻7)缺纸侦测:红外反射光传感器8)打印头加热器工作电压(DCV):3.13~8.5,典型值(7.4v)9)逻辑工作电压(DCV):2.7-5.25,典型值(5v)10)步进电机工作电压(DCV):3.5-8.5,典型值(5v)11)工作温度:+0℃-50℃(不许有凝露)12)工作湿度:20%-85%RH(不许有凝露)13)胶辊开合次数:大于5000 次14)工作寿命:机构与打印头的耐磨>50km,打印头的电机寿命为 10^8个脉冲15)重量(克):40.73.2 热敏打印机系统整体电路图图5硬件配置图图6输入/输出模式及管脚配置3.3 元器件清单表1 元器件清单元器件名称数量单位产品参数单片机 1 个STM32F103C8 步进电机1个/打印纸1卷宽度为58mm 打印机主板 1 个/USB数据线 2 根/电源头 1 个/4 热敏打印机的实现与调试4.1 热敏打印机设计系统测试图7热敏打印机图片图8 SW模式连接打印机图9 打印机打印图片4.2 热敏打印机设计数据分析在老师的讲解和帮助下,我顺利打印出了黑白图片,可是打印出来的图片效果与原图片相差甚远,这使我非常懊恼,老师一再强调尽量不要打印人像或风景图这些显示细节特别多的图片,但我一开始总是想试试,后来,我发现通过调整图片对比度,能够使打印出来的图片轮廓清晰,更突出。
还有可能是因为打印头不够干净,而且热敏打印机无法打印出彩色图片,只能将彩色图片通过灰度值变换为黑白图片后打印,这样打印出来的图片才会更加清楚。
后来我发现我打印的图片仍然有些中断,打开打印机内部查看,发现有一段打印头有些断开,那段就开始中断了。
我借用了隔壁小组的打印机,让我图片更方便的打印成功。
5 总结及心得体会为期十天的热敏打印机课程设计实训已经结束了,老师带着我们学习了许多关于的关于寄存器管脚配置等ARM 知识。
虽然我的C语言和单片机的有关知识特别欠缺,但在陆老师的认真教导下,我还是学到了很多关于编写程序比较实用的知识。
在这次热敏打印机的课程设计的过程中,我们最先学会的是关于软件的安装,虽然很简单,但是我们却花了大量时间去解决安装过程中出现的问题,在这个过程中,真的很感谢王丽老师对我们的耐心的指导。
接下来的两天我们便接着对LED、蜂鸣器、监视器、定时器、按键等硬件的配置以及对软件的编写,这个过程由于我们对于C 语言知识的缺乏,让我们在编写程序上几乎花了大量时间和精力。
而老师把基础知识讲述的特别详细和细致,并且不断的询问我们能否理解,以便大家有问题可以及时被坚决,让我每天上课结束后,都有满满的成就感。
最后的一天的时候,我们开始在使用热敏打印机打印图片,字符,二维码,超市小票,其中,我对于打印图片,感到很多的兴趣。
在这次学习过程中,发现C语言里面的知识是很重要的基础知识,自我感觉掌握的还不到位,我觉得必须要将所学知识融汇到实践操作中,才是自己真正的突破,另外,我觉得学习是个积累的过程,这中间需要我们不断的去花时间和精力来努力,才能真正有所成就。
总的来说,在这次热敏打印机项目中我真正学到了很多,收获很多,但也明白了自己仍然存在很多不足的地方,敢于承认自己的不足,真正在今后的学习中去实践来改进,让自己取得更大的进步。
最后真的很感谢这次课程设计的指导老师王丽老师,一直不厌其烦的为我们修改课程设计,耐心的讲解注意事项以及格式要求,真的很谢谢,我会继续努力的!6 参考文献[1]王幸之,钟爱琴,王雷,王闪. AT89系列单片机原理与接口技术[M].北京:北京航空航天大学出版社,2004.5.[2]邓红等,用字位显示接口驱动步进电机的设计方法[J],微计算机信息 2005年第8-1期[3]汪明填.电子元器件和材料[M].北京:北京理工大学出版社,2010:167-172.[4]张会生.基于77E58的高速行式热敏打印机控制板研制[J].电子技术应用,2004(1):37-39.[5]王昊.集成运放应用电路设计360例[M].北京:电子工业出版社,2007:157-160.[6]余道衡.电子电路手册[M].北京:北京大学出版社,1996:195-199.[7]金纯,蓝牙技术[M].电子工业出版社,2010.[8]李华,MCS-51系列单片机实用接口技术[M].北京航空航天大学出版社,2003.7 附录程序:1.#include "stm32f10x.h"#include "led.h"#include "beep.h"#include "key.h"#include "time.h"#include "motor.h"int main(){key_init();led_init();beep_init();motor_init();//TIM3_init(7200,10000);TIM3_init(72,1000);LED=1;while(1){int key;key=key_scan();if(key==1){TIM3->CR1 |= 1;}}}int main(){int key;int i=0;int mode=1;;key_init();led_init();beep_init();TIM3_init(7200,10000);LED=1;while(1){key=key_scan();if(key==1){mode=!mode;}i++;if(i>50000+100000*mode){i=0;LED=!LED;BEEP=!BEEP;}}}2.#include "stm32f10x.h"#include "led.h"#include "motor.h"void TIM3_init(u16 psc,u16 arr){RCC->APB1ENR |= (1<<1);TIM3->PSC = psc; TIM3->ARR = arr; TIM3->DIER |= 0x1;NVIC_EnableIRQ(TIM3_IRQn);TIM3->CR1 &= 0;}void TIM3_IRQHandler(){static int i=0;TIM3->SR &= ~(1<<0);GPIOA->ODR ^=(1<<1);motor_run();i++;if(i>5000){i=0;motor_stop();TIM3->CR1 &=0;学院分管领导签字:二级学院盖章:年月日。