【单片机】热敏打印机的经验
来源:互联网 发布:c语言 for括号声明变量 编辑:程序博客网 时间:2024/06/03 00:41
这个是我刚毕业的06年的时候写的。。。。
作微型热敏打印机,虽然看似简单的一个东西,做起来可是相当的吃力。把一些经验贴上把~以后相信会有用的
1、刚开始做的是打印头电机驱动部分,调了满久的时间。电机是二相的步进电机。实现走纸功能。关键是程序的时序要对,电机一共以下几个状态:启动,RUSH DRIVE,正常,RUSH DRIVE,停止。电机的两步才把一个点行走完。还有就是用PIC的C编译器PICC18的时候发现似乎SWITCH语句的效率不如IF的高。很是奇怪。。。。
2、打印头的电流一般要求比较高,基本在2A以上,达不到要求的话。。。就会出现打不出点,或者点不均匀的情况。因此供电电流要大!否则就够你郁闷的!
3、做字库读取其实满简单的,有公式。要把读出的点阵数据的每个点行取出来凑成一个缓冲区送打印头。
3、操作外部FLASH和RAM最郁闷,本来应该满简单,可是改来改去就没弄出来。后来发现PIC18的IO口方向的配置有问题。TIRSJ=0;我晕在这里了。。。当初真是超傻!正确的应该是TIRSJ=0x00;FLASH比RAM复杂一些,因为相对比较慢,比如写数据,在几个写周期做写入的准备后,真正写入数据完要判断DQ6或者DQ7的状态,来确认数据写入正确了。有另外一个办法,就是不写入地址,而是连续读两次FLASH的数据输出端数据。两次都一样是写入的DATA,那就OK了。做存储器的时候还有一个让我郁闷到的。因为有FLASH和RAM,他们的地址有些是复用的,使能通过一个译码器。由单片机的两个IO确定。比如。RG5和RG6.RG5=1 RG6=0时使能RAM。但是我们不能这样分两次配置,会出错,因为会和前一次的配置发生错位。使能时要用字节操作。整个字节进行一次性操作。
4、最近做串口通信,哇靠!本来也是个超级简单的东西,可是发现收的一次正确后后面全是FF,应该是没收到了。发送也奇怪,只能发一次,后面就发不了了。通过MPLAB的WATCH查看,发现发送缓冲器有数据,可是TSR,就是发送移位寄存器(数据是送到缓冲器再由硬件送寄存器的)居然一直处于满状态,这样的话,新的数据就没办法送到串口了。而发送中断标志位也就不能清零了(发送的中断标志位不能由软件清)。程序就一直在中断里跑啊跑……永远出不来了:(到底是怎么回事,暂时还是没搞清楚。。。。
5、配置寄存器时,一位一位的配置比整个字节配置要直观而且安全的多,可读性也好。
6、串口通信不正常的问题。一个不稳定的电路导致时不时的复位。因此发送的数据出现了发24组左右后就自动复位了。另外,接收出现FF的问题也找到了,改正复位后发现,接收的问题是因为ICD2在线调试模式下,串口接收有问题,直接烧进去就OK了
- 【单片机】热敏打印机的经验
- 热敏打印机的工作原理
- 热敏打印机
- 打印机 针式打印机 热敏打印机
- 热敏打印机相关资讯
- 热敏打印机工作原理
- 热敏打印机驱动研究
- 热敏打印机打印图片
- 热敏打印机原理
- 热敏小票打印机
- 解剖热敏打印原理—热敏打印机真的没墨水了吗?
- #驱动任意COM接口的小票机(POS热敏打印机)
- 利用树莓派完成热敏打印机的无驱打印
- 热敏打印机通过自检 查看支持的打印字符
- 有关热敏打印机接口程序
- java热敏POS打印机编程
- iOS 热敏打印机打印位图
- 热敏打印机打印二维码图片
- 有些。
- Ubuntu8.10更新源整
- jar数字签名
- 如何让windows media player 自动播放视频文件
- 把.NET程序部署到没有安装.NET Framwork的机器上
- 【单片机】热敏打印机的经验
- 按钮按下事件的处理
- 远程网络安装RedHat Linux系统的方法
- 电容的用途
- 简单的混合四则运算
- 深入浅出C# 中文版 图文皆译 第三章 page105
- 骑士问题
- 将Word嵌入到自己的程序中
- YModem协议的源代码下载网址(资源收藏)