已知共阳极8段LED数码管的显示数字的字形码如下(求详解!)已知共阳极8段LED数码管的显示数字的字形码如下,若累加器A中的内容为00H~09H中的一个数,请用查表指令得到相应字形的字形码。(求详解!最好是发图给我!)
指令为:
MOV DPTR,#LEDTAB
MOVC A,@A+DPTR
MOV P0,A ;假设段码接在P0口。
当A为某一个数时,查表就得到这个数编号的段码,比如A为1,那么就是“1”的编码,F9H。
PS:累加器(accumulator)是一种暂存器,它用来储存计算所产生的中间结果。如果没有像累加器这样的暂存器,那么在每次计算(加法,乘法,移位等等)后就必须要把结果写回到内存,然后再读回来。然而存取主内存的速度是比从数学逻辑单元(ALU)到有直接路径的累加器存取更慢。
标准的例子就是把一列的数字加起来。一开始累加器设定为零,每个数字依序地被加到累加器中,当所有的数字都被加入后,结果才写回到主内存中。
数码管定义如下图:共阳极数码管编码为:
LEDTAB:
DB 0C0H ;"0" 00H
DB 0F9H ;"1" 01H
DB 0A4H ;"2" 02H
DB 0B0H ;"3" 03H
DB 99H ;"4" 04H
DB 92H ;"5" 05H
DB 82H ;"6" 06H
DB 0F8H ;"7" 07H
DB 80H ;"8" 08H
DB 90H ;"9" 09H
DB 88H ;"A" 0AH
DB 83H ;"B" 0BH
DB 0C6H ;"C" 0CH
DB 0A1H ;"D" 0DH
DB 86H ;"E" 0EH
DB 8EH ;"F" 0FH
DB 0FFH ;" " 10H
当A为某一个数时,查表就得到这个数编号的段码,比如A为1,那么就是“1”的编码,F9H。
追问所以答案应该怎么写??
不是要用查表指令得到相应字形的字形码吗
指令为:
MOV DPTR,#LEDTAB
MOVC A,@A+DPTR
MOV P0,A ;假设段码接在P0口
感谢!
本回答被提问者和网友采纳