- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中断应用举例打印机接口设计程序
8.7 中断应用举例——打印机接口设计
打印机功能:计算机的主要外围设备之一,用来把测量、运算结果或程序清单打印出来,有些打印机还可以打印表格和图形。
打印机的种类:有字符式、针式、激光、笔描和热灼式等,工作原理也各不相同,价格由100元到几万元不等,其内部由一些单片机、集成电路、机械机构和微电机等部分组成的机电一体化系统。但其与计算机接口方法基本上是相近的。
目前打印机与单片机的接口大多采用标准的Centronic打印机接口。Centronic接口的打印机一般采用:
8位数据线
和三根基本的应答控制线:、BUSY、。为选通信号,由单片机发出,可把数据线上的打印机数据存入打印机的缓冲区中,送满一行后启动打印机打印一行字符。BUSY表示打印机是否处于忙的状态,如它等于1(处于忙状态),则不能接受新的数据,如等于0(处于空闲状态),则可以接收新的打印数据。是打印机完成一次打印后的应答信号。
以PP40彩色绘图打印机为例,PP40与主机的通讯接口时序如图8.1所示。如下:
图8.2 8535与PP40接口电路
若打印如下两行字符: t: 32 ℃
P: 102kPa
则要把以下ASCⅡ码送给打印机:$74(t)、$3A(:)、$20(空格)、$33(3)、$32(2)、$6F(°)、$43(C )、$0A(换行)、$50(P)、$3A(:)、$20(空格)、$31(1)、$30(0)、$32(2)、$6B(k)、$50(P)、$61(a)、$0A(换行)。
事先已将这些ASCⅡ码放在SRAM中$100开始的单元中。
一、采用查询的方法
给打印机送数据可以采用查询的方法,单片机每送一个数据,发选通脉冲后,打印机忙线变高,同时接收处理该数据,完成后忙线变低,单片机查到忙线变低后再送下一个数据。采用查询的方法程序如下:
采用查询的方法程序如下:
.include 8535def.inc
RESET: ldi r16,low(ramend) ;栈指针置初值
out spl,r16
ldi r16,high(ramend)
out sph,r16
ldi r16,$ff;定义C口为输出
out ddrc,r16
ldi r16,$01 ;定义PD0为输出,PD2为输入
out ddrd,r16
sbi portd,0;先使PD0输出为高()
ldi xh,$01;X指向打印缓冲区首址
ldi xl,$00
ldi r25,18 ;要打印的字符数
loop: ld r24,x+ ;向打印机数据口送一个字符
out portc,r24
cbi portd,0 ;发选通脉冲()
rcall t1us
sbi portd,0
rcall t1us ;延时3us
rcall t1us
rcall t1us
loop1: sbic pind,2;等待忙线变低
rjmp loop1
dec r25 ;字节数是否发完
brne loop;没发完再发下一个
here: rjmp here
二、采用中断的方法
打印机中的微电机和机械的动作是一个慢过程,需要几十ms才能传送一个字节数据,用查询的方法送一组数据给打印机有时需要数秒钟。这样单片机在这段时间内就不能干别的事情,有些情况是不允许的,常采用中断的方法,其工作过程如下。
主程序送第一个数据给打印机数据口,接着发选通脉冲,打印机接收处理该数据时,忙线变高,直到处理好此数据后忙线变低,BUSY的下降沿产生一个INT0中断;
在中断服务子程序中再送下一个数据,发送选通脉冲后立即返回主程序。这样,送字符和发选通信号是在外中0服务子程序中完成,单片机主程序照常执行,每送一个字符,只打断几微秒。
采用中断的方法主程序如下:
.include 8535def.inc
.org $000
rjmp RESET
rjmp EXT_INT0
RESET: ldi r16,low(ramend);栈指针置初值
out spl,r16
ldi r16,high(ramend)
out sph,r16
ldi r16,$ff ;定义C口为输出
out ddrc,r16
ldi r16,$01 ;定义PD0输出,PD2输入
out ddrd,r16
sbi portd,0 ;先使PD0输出为高
ldi r16,$02;定义INT0下降沿申请中断
out mcucr,r16
clr r16 ;清中断标志寄存器
out gifr,r16
ldi xh,$01;
您可能关注的文档
最近下载
- 第二版--医学伦理学经典案例分析100.pdf VIP
- fanuc发那科机器人编程手册.pptx VIP
- 2025年华医网继续教育“痔”的精准微创治疗技术题库及答案.docx VIP
- 大疆无人机御3航拍摄影与后期从入门到精通第9章 焦点跟随:无人机自动跟随拍大片.pptx VIP
- 计算机应用基础教程(Windows10+Office2016)PPT全套完整教学课件.pptx VIP
- 2025年交管学法减分考试题库以及答案(160题完整版) .pdf VIP
- 施工人员入场安全教育手册(一人一档).doc VIP
- 美的热水器F80- A20GA2(H)专项试验报告.pdf VIP
- 大学生创业生涯规划书.pdf VIP
- 人教版(2025)八年级上册14.2三角形全等的判定(课时1)(教学课件)(32张PPT)(含音频+视频).pptx VIP
原创力文档


文档评论(0)