- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
七段数码管的字型代码表如下表:
显示字形
g
f
e
d
c
b
a
段码
0
0
1
1
1
1
1
1
3fh
1
0
0
0
0
1
1
0
06h
2
1
0
1
1
0
1
1
5bh
3
1
0
0
1
1
1
1
4fh
4
1
1
0
0
1
1
0
66h
5
1
1
0
1
1
0
1
6dh
6
1
1
1
1
1
0
1
7dh
7
0
0
0
0
1
1
1
07h
8
1
1
1
1
1
1
1
7fh
9
1
1
0
1
1
1
1
6fh
A
1
1
1
0
1
1
1
77h
b
1
1
1
1
1
0
0
7ch
C
0
1
1
1
0
0
1
39h
d
1
0
1
1
1
1
0
5eh
E
1
1
1
1
0
0
1
79h
F
1
1
1
0
0
0
1
71h
程序框图:
开始
开始
输出位选通信号
初始化显示参数
延时
关所有位显示
位选通信号移位
取显示数据
指向下一个显示数据
输出段码数据
否
6 位完成
是
返回
实验线路:
实验步骤:
设定工作模式为模式 2,即程序空间在仿真器上,数据空间在用户板上。把第“40”号模块“键盘显示”的片选信号 CS40 孔接第“ 36”号模块“片选信号” YS0
(08000-08FFFH)孔。
连线连接孔
连线
连接孔 1 连接孔 2
1
CS40
YS0
程序清单:
八段数码管显示
#define LEDLen 6
xdata unsigned char OUTBIT _at_ 0x8002; // 位控制口
xdata unsigned char OUTSEG _at_ 0x8004; xdata unsigned char IN _at_ 0x8001;
unsigned char LEDBuf[LEDLen]; code unsigned char LEDMAP[] = {
0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71
// 段控制口
// 键盘读入口
// 显示缓冲
// 八段管显示码显示内容 0~F
};
void Delay(unsigned char CNT)
{
unsigned char i;
while (CNT-- !=0)
for (i=100; i !=0; i--);
}
void DisplayLED()
{
unsigned char i; unsigned char Pos; unsigned char LED;
Pos = 0x20;
for (i = 0; i LEDLen; i++)
{
OUTBIT = 0; LED = LEDBuf[i]; OUTSEG = LED; OUTBIT = Pos;
Delay(5); Pos = 1;
}
OUTBIT = 0;
}
// 从左边开始显示
// 关所有八段管
// 显示一位八段管
// 显示下一位
// 关所有八段管
void main()
{
unsigned char i = 0; unsigned char j;
while(1) {
LEDBuf[0] = LEDMAP[ i 0x0f]; // 数码管显示内容
LEDBuf[1] = LEDMAP[(i+1) 0x0f]; LEDBuf[2] = LEDMAP[(i+2) 0x0f]; LEDBuf[3] = LEDMAP[(i+3) 0x0f]; LEDBuf[4] = LEDMAP[(i+4) 0x0f]; LEDBuf[5] = LEDMAP[(i+5) 0x0f];
i++;
for(j=0; j30; j++) DisplayLED();
}
}
// 延时
原创力文档


文档评论(0)