/********************************************************************
* 本程序为STC89C52控制数码循环显示学号,身份证号的实验
* P2口为位码,P0口为段码
********************************************************************/
#include <reg52.h>
#include <intrins.h>
#define STU_END 10 //学号的位数
#define ID_END 18 //身份证位数
//sbit P1_0 = P1^0; //led0
unsigned int cnt = 0;
unsigned char index = 0; //数组的索引
unsigned char pos = 0xfe; //the first position to display
unsigned char const seg_table[10]={0xC0,0xF9,0xA4,0xB0,0x99
,0x92,0x82,0xF8,0x80,0x90}; //段码
unsigned char const stu_num[] = {0, 8, 0, 1, 0, 5, 4, 1, 0, 6}; //学号
unsigned char const id_num[] = {2, 1, 1, 4, 0, 2, 1, 9, 9, 0,
0, 5, 2, 5, 1, 6, 2, 2}; //身份证号
unsigned char change_sign = 0; //身份证号与学号改变标志
unsigned char end_sign = 0; //数组的计数
/**************************************************/
/*P0 is segment code, P2 is position code。
/**************************************************/
void main(void)
{
TMOD = 0x01;
TH0 = (65536-1000)/256;
TL0 = (65536-1000)%256;
// P1_0 = 1;
EA = 1;
ET0 = 1;
TR0 = 1;
P2 = 0xff; //close all digital tubes
while(1);
}
void timer0() interrupt 1 using 1
{
TH0 = (65536-1000)/256;
TL0 = (65536-1000)%256;
cnt++;
if(cnt == 50)
{
cnt = 0;
//P1_0 = ~P1_0; //led0 display
if(change_sign == 0)
{
P2 = pos;
P0 = seg_table[stu_num[index]];
end_sign++;
index++;
pos = _crol_(pos, 1);
if(pos == 0xbf)
pos = 0xfe;
if(end_sign == STU_END) //student number ends and change the sign for ID number
{
change_sign = 1;
index = 0;
pos = 0xfe;
end_sign = 0;
}
}
else
{
P2 = pos;
P0 = seg_table[id_num[index]];
end_sign++;
index++;
pos = _crol_(pos, 1);
if(pos == 0xbf)
pos = 0xfe;
if(end_sign == ID_END) //ID number ends and change the sign for student number
{
change_sign = 0;
index = 0;
pos = 0xfe;
end_sign = 0;
}
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Smg_display.rar_SMG_Display_smg display
共18个文件
bak:3个
lst:2个
obj:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 72 浏览量
2022-09-19
20:18:43
上传
评论
收藏 29KB RAR 举报
温馨提示
STC89C52单片机,LCD屏上滚动显示学号。滚动的速度快慢可以调节,通过改变延时大小来实现速度调节。
资源推荐
资源详情
资源评论
收起资源包目录
Smg_display.rar (18个子文件)
Smg_display
stu_num_show.c 2KB
shownum 4KB
uart_com.uvopt 53KB
shownum.M51 7KB
stu_num_show.OBJ 4KB
STARTUP.LST 14KB
shownum_uvproj.bak 13KB
shownum.lnp 67B
shownum.uvopt 54KB
uart_com_uvproj.bak 0B
uart_com.plg 161B
shownum.hex 1KB
STARTUP.A51 6KB
shownum.uvproj 13KB
STARTUP.OBJ 749B
stu_num_show.LST 6KB
shownum.plg 180B
shownum_uvopt.bak 54KB
共 18 条
- 1
资源评论
APei
- 粉丝: 63
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功