一:实验目的
1:了解大板和小板的区别
2:实现独立按键大板移植到小板。
二:实验器材
1:共阴单片机(大板)和共阳单片机(小板)
2:电脑、keil软件、烧录软件。
三、实验步骤
1、共阴和共阳数码管的区别
共阳极数码管是指八段数码管的八段发光二极管的阳极(正极)都连在一起,而阴极对应的各段可分别控制,如图(B)所示:
共阴极数码管是指八段数码管的八段发光二极管的阴极(负极)都连在一起,而阳极对应的各段分别控制,如图(C)所示:
2、代码修改
(1)控制端口的修改
大板控制端口是k3而小板我们设置控制端口是int2
大板实验程序:
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;//引脚
sbit K3=P3^2;//独立按键
修改后 小板
sbit LSA=P2^0;
sbit LSB=P2^1;
sbit LSC=P2^2;
sbit LSD=P2^3;//引脚
sbit Init=P3^2;//独立按键
(2)数码管字符编码修改
数码管每个段均有0(不导通)和1(导通发光)两种状态,但共阳极数码管和共阴极数码管显然是不同的,它在程序中的应用是用一个八位二进制数表示,A为最低位,...,F为最高位(第八位)
共阴极数码管字符编码(大板):
u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0-9,A-F 字形码
拿0来说在共阴数码管中a、b、c、d、e、f 亮,因为是高电平有效所以二进制代码为00111111,用8421转换为16进制0x3f,同理其它也可以这样得到。
共阳极数码管字符编码(小板):
u8 code smgduan[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//0-9,A-F 字形码
拿0来说在共阳数码管中也是a、b、c、d、e、f 亮,但却是是低电平有效二进制代码为11000000,用8421转换为16进制0xc0,同理其它也可以这样得到。
(3)消隐修改
什么是消隐:消除数码管位选和段选产生的瞬态。
0x00改为0xff
原因推荐链接:http://forum.eepw.com.cn/thread/262583/1
(4)动态显示修改
switch(i)
{case(0):
LSA=0;LSB=0;LSC=0;break;
case(1):
LSA=1;LSB=0;LSC=0;break;
case(2):
LSA=0;LSB=1;LSC=0;break;
case(3):
LSA=1;LSB=1;LSC=0;break; }
switch(i)
{case(0):
LSA=1;LSB=1;LSC=1;LSD=0;break;
case(1):
LSA=1;LSB=1;LSC=0;LSD=1;break;
case(2):
LSA=1;LSB=0;LSC=1;LSD=1;break;
case(3):
LSA=0;LSB=0;LSC=1;LSD=1;break; }
四、实验结果
五、实验问题
在生成hex文件中,lnit1打成了lint1,一开始还以为步骤错了,后来才看到。