- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
温度计代码(国外英文资料)
温度计代码(国外英文资料)
org 0
ljmp main
org 0bh; p0入口
ljmp int
count equ 60h
main:
mov count, # 60h
setb tr0
setb ea
setb et0
sjmp $
int: clr ea
djnz count, quit; 不等于零的时候跳到quit
lcall readwd; 读温度
mov r6, wdbufh
mov r7, wdbufl
mov r4, bufbh; 十六进制换算成十进制
mov r5, bufbh + 1
lcall hb2; 调用hb2子程序
mov bufbh, wdbufh
mov bufbh + 1, wdbufl
mov len, # 2; 字节
mov dot, # 20h; 小数点的位置
lcall display
mov count, # 60h
quit: setb ea; 总的中断
reti
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; 标号: display 功能: 8位led显示器模拟串口驱动程序
; p1.0 - data, p1.1-clk, 30h - 33h显示缓冲区,
; 34h - 3ch笔型码缓冲区, 3dh显示缓冲区长度
; 2fh小数点闪烁标志字节 (d7 - d0对应左到右的8位), 1亮 / 0暗
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
bufsz equ 34h; 显示缓冲区首址
bufbh equ 30h; 笔型码缓冲区首址
len equ 3ch; 显示缓冲区长度
dot equ 2fh; 小数点闪烁标志字节
the dta equ p1.1; 串行数据线
clk... equ p1.0; 串行时钟线
; ---------------------------------------------------------
display: nop; 模拟串口驱动串口不需设置
查找笔形码; * * * *
mov r7, len; 显示缓冲区长度
mov r0, # bufbh; 显示缓冲区首址
mov r1, # bufsz; 笔型码缓冲区首址
ds0: mov (a, @ r0
swap (a
anl (a, # 0fh; 取出缓冲区一位的高4位数据
lcall dl
inc r1; 移笔型码缓冲区指针
mov (a, @ r0
anl (a, # 0fh; 取出缓冲区一位的低4位数据
lcall dr
inc r1; 移笔型码缓冲区指针
inc r0; 移数据缓冲区指针
djnz r7, ds0
显示4位数据; * * * *
mov a, len
rl a
mov r7, a
mov r1, # bufsz; 笔型码首地址
dis4: mov (a, @ r1; 读一位笔型码
lcall disp0; 调用显示一位子程序
inc r1; 移一位读指针
djnz r7, dis4; 4位显示完否
ret
; * * 显示1位数据子程序, 入口参数: a * *
disp0: mov b, # 8h; 移位次数放入b中
disp1: rrc a; a中笔形码左移1位到cy
mov dta, c; 移位数据送出1位
the clr clk...; p1.0口送出1个时钟脉冲
setb clk...
djnz b, disp1;
8位笔型码送完否
right
dr: push acc
mov a, dot; 查右笔型码
clr c
rlc a
mov dot, a
jc dr0
mov dptr, # tabr1; 查右笔型码首地址 (小数点不亮)
ljmp dr1
dr0: mov dptr, # tabr2; 查右笔型码首地址 (小数点亮)
dr1: pop acc
movc a, @ a + dptr; 查出对应笔型码
mov @ r1, a; 存笔型码
right
dl: push acc
mov a, dot; 查左笔型码
clr c
rlc a
mov dot, a
jc dl0
mov dptr, # tabl1; 查左笔型码首地址 (小数点不亮)
ljmp dl1
dl0: mov dptr, # tabl2; 查左笔型码首地址 (小数点亮)
dl1: pop acc
movc a,
文档评论(0)