这是我帮同学做的毕业设计中很重要的一部分内容,请勿拷贝或随意传播。谢谢
如有特别需要,请加QQ,我把仿真图或程序传给你。下载文档后再留言
#include "reg52.h"
#include "intrins.h"
#include "zimo.h"
#define uchar unsigned char
#define uint unsigned int
#define data P1
sbit h_273=P2^0;
sbit l_273=P2^1;
sbit e1=P2^2;
sbit e2=P2^3;
//bitline——6个字的总扫描列数; startline——开始扫描字的起始列; Bdr——六个字定位byte direction
uchar bitline=0,startline=0,Bdr=0;
uchar ziwei[]={0,1,0,0,1,1}; //显示的六个字的表代码
uchar cs_xunhuan=0;
void delay_us(unsigned char us)
{
for(cs_us=0;cs_us<=2;cs_us++)
}
void move()
{
e1=0;
e2=1;
if(startline>=16)
{
startline=0;
if(Bdr<5)
Bdr++;
else
}
else
{
switch(Bdr)
{
case 0:
P3=ci_m;
h_273=0;
data=hanzi[ziwei[0]*32+startline*2];
h_273=1;
l_273=0;
data=hanzi[ziwei[0]*32+startline*2+1];
l_273=1;
break;
case 1:
P3=ci_m;
h_273=0;
data=hanzi[ziwei[1]*32+startline*2];
h_273=1;
l_273=0;
data=hanzi[ziwei[1]*32+startline*2+1];
l_273=1;
delay_us(5);
break;
case 2:
P3=ci_m;
h_273=0;
data=hanzi[ziwei[2]*32+startline*2];
h_273=1;
l_273=0;
data=hanzi[ziwei[2]*32+startline*2+1];
l_273=1;
delay_us(5);
break;
case 3:
P3=ci_m;
h_273=0;
data=hanzi[ziwei[3]*32+startline*2];
h_273=1;
l_273=0;
data=hanzi[ziwei[3]*32+startline*2+1];
l_273=1;
delay_us(5);
break;
case 4:
P3=ci_m;
h_273=0;
data=hanzi[ziwei[4]*32+startline*2];
h_273=1;
l_273=0;
data=hanzi[ziwei[4]*32+startline*2+1];
l_273=1;
delay_us(5);
break;
case 5:
P3=ci_m;
h_273=0;
data=hanzi[ziwei[5]*32+startline*2];
h_273=1;
l_273=0;
data=hanzi[ziwei[5]*32+startline*2+1];
l_273=1;
delay_us(5);
break;
default:
Bdr=0;
bitline=0;
}
startline++;
e1=1;
e2=0;
if(startline>=16)
{
startline=0;
if(Bdr<5)
Bdr++;
else
}
else
{
switch(Bdr)
{
case 0:
P3=ci_m;
h_273=0;
data=hanzi[ziwei[0]*32+startline*2];
h_273=1;
l_273=0;
data=hanzi[ziwei[0]*32+startline*2+1];
l_273=1;
break;
case 1:
P3=ci_m;
h_273=0;
data=hanzi[ziwei[1]*32+startline*2];
h_273=1;
l_273=0;
data=hanzi[ziwei[1]*32+startline*2+1];
l_273=1;
delay_us(5);
break;
case 2:
P3=ci_m;
h_273=0;
data=hanzi[ziwei[2]*32+startline*2];
h_273=1;
l_273=0;
data=hanzi[ziwei[2]*32+startline*2+1];
l_273=1;
delay_us(5);
break;
case 3:
P3=ci_m;
h_273=0;
data=hanzi[ziwei[3]*32+startline*2];
h_273=1;
l_273=0;
data=hanzi[ziwei[3]*32+startline*2+1];
l_273=1;
delay_us(5);
break;
case 4:
P3=ci_m;
h_273=0;
data=hanzi[ziwei[4]*32+startline*2];
h_273=1;
l_273=0;
data=hanzi[ziwei[4]*32+startline*2+1];
l_273=1;
delay_us(5);
break;
case 5:
P3=ci_m;
h_273=0;
data=hanzi[ziwei[5]*32+startline*2];
h_273=1;
l_273=0;
data=hanzi[ziwei[5]*32+startline*2+1];
l_273=1;
delay_us(5);
break;
default:
Bdr=0;
bitline=0;
}
startline++;
}
void init()
{
}
void timer0(void) interrupt 1 using 0
{
TH0=0xd8;
TL0=0xf0;
if(cs_xunhuan>=20)
{
cs_xunhuan=0;
if(bitline<96)
bitline++;
else bitline=0;
}
}
void main()
{
{
}
Zimo.h
unsigned char code hanzi[]=
{
/*-- 文字: 美 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x80,0x84,0x80,0x84,0x44,0x94,0x44,0x95,0x24,0x96,0x14,0x94,0x0C,0xFC,0x07,
0x94,0x0C,0x96,0x14,0x95,0x24,0x94,0x,0x94,0xC4,0x84,0x44,0x80,0x00,0x00,0x00,
/*-- 文字: 玲 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x42,0x10,0x42,0x10,0xFE,0x0F,0x42,0x08,0x42,0x08,0x80,0x00,0x40,0x05,0x30,0x09,
0x0C,0x11,0x23,0x39,0xCC,0x65,0x10,0x03,0x20,0x01,0x40,0x00,0x40,0x00,0x00,0x00,
};
74154资料
线译码器74LS154引脚,参数,及功能介绍
--------------------------------------------------------------------------------
4 线-16 线译码器 74LS154/54LS154引脚图,参数,及功能介绍
74ls154功能简介:
54/74154 为 4 线-16 线译码器,当选通端(G1、G2)均为低电平时,可将地址端(ABCD)的二进制编码在一个对应的输出端,以低电平译出。 如果将G1和G2中的一个作为数据输入端,由ABCD对输出寻址,74LS154还可作1线-16线数据分配器。
74LS154管脚图:
引脚功能介绍
A、B、C、D 译码地址输入端(低电平有效)
G1、G2 选通端(低电平有效)
0-15 输出端(低电平有效)
74ls154真值表:
推荐工作条件
74ls154电气参数
极限值
电源电压: 7V
输入电压: 5.5V
工作环境温度
54154:-55~125℃
74154:0~70℃
贮存温度:-65~150℃
74ls154芯片资料
2007-08-20 20:48
74ls138译码器
74ls139 跟74ls138类似,区别在于139内部是2个的2-4译码器。
74ls154跟74LS138很类似,差别就在于,138是3-8译码器,154是4-16译码器。