;************************************************************************** ; 标题: 数码管显示数字的基本实验(汇编) ; 作者: wentao http://blog.liuwentao.net ; http://wentao.programfan.com ; 日期: 2007.2.21 ; 软件: Keil A51 V8.00 ; 芯片: AT89X51 ; 说明: 实验板实测通过,数码管为8位共阳 ; 声明: 自用存档!另仅供需要的朋友参考,请勿用做不道德转载及商业用途! ;************************************************************************** org 0000h ajmp start org 0030h start: mov dptr,#table ;段码表首址 mov a,#6 ;要显示的值 movc a,@a+dptr ;取段码表中元素值 mov p0,a ;段码送入P0口 mov p2,#0xfe ;选通P2.0口的数码管 ajmp start ;循环显示 table: db 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8 ;段码表 ; 0 1 2 3 4 5 6 7 对应内容 db 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e ; 8 9 a b c d e f end /************************************************************************** * 标题: 数码管显示数字的基本实验(C51) * 作者: wentao http://blog.liuwentao.net http://wentao.programfan.com * 日期: 2007.2.19 * 软件: Keil C51 V8.02 * 芯片: AT89X51 * 说明: 实验板实测通过,数码管为8位共阳 * 声明: 自用存档!另仅供需要的朋友参考,请勿用做不道德转载及商业用途! **************************************************************************/ #include <reg51.h> #define uchar unsigned char uchar code dis_code[16] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, //段码表 // 0 1 2 3 4 5 6 7 //对应内容 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; // 8 9 a b c d e f void main() { while(1) { P2 = 0xfe; // 选通P2.0口数码管 P0 = dis_code[6]; // 段码表中取欲显示值送P0口 } }

评论