永发信息网

用点阵显示一个静态 汉字 求高手检查一下

答案:2  悬赏:40  手机版
解决时间 2021-02-16 17:01
#include
#include
#define uint unsigned int
#define unchar unsigned char
unchar code tab[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x1f,0,0x1f};
sbit E=P1^4; //译码器154的使能信号
sbit LOCK=P2^0; //595的锁存信号
void delay();
void main()
{
uint i;
unchar w;
P1=0xFF;

while(1)
{

for(i=0;i<16;i++)

{
LOCK=0;
SCON=0;
while(!TI)
{
w=tab[2*i+1];

SBUF=w;
}

TI=0;

while(!TI)
{
w=tab[2*i];

SBUF=w;

}
TI=0;
while(!TI)
{

LOCK=1;
E=0;
P1=0;
P1=P1+i;
TI=1;
}

}

}

}

编译没错 就是仿真的时候 连续显示低8位2行的时候 只有一行亮,而显示高位两行的时候 两行都亮 求大神改正解答....
最佳答案
void main()
{
uint i;
SCON = 0;
while(1) {
for(i = 0; i < 16; i++) {
LOCK = 0;
SBUF = tab[2 * i + 1]; while(!TI); TI = 0;
SBUF = tab[2 * i + 0]; while(!TI); TI = 0;
LOCK=1;
P1 = i;
}
}
}

试试看。
全部回答
#include&lt;reg52.h&gt; //包含头文件 #define uint unsigned int //预定义一下 #define uchar unsigned char sbit rs=p3^5; //1602的数据/指令选择控制线 sbit rw=p3^6; //1602的读写控制线 sbit en=p3^7; //1602的使能控制线 uchar code table[]=&quot;????&quot;; //要显示的内容1放入数组tablel uchar code table1[]=&quot;????&quot;; //要显示的内容2放入数组table1 void delay(uint n) //延时函数 { uint x,y; for(x=n;x&gt;0;x--) for(y=110;y&gt;0;y--); } void lcd_wcom(uchar com) //1602写命令函数 { rs=0; //选择指令寄存器 rw=0; //选择写 p2=com; //把命令字送入p2 delay(5); //延时一小会儿,让1602准备接收数据 en=1; //使能线电平变化,命令送入1602的8位数据口 en=0; } void lcd_wdat(uchar dat) //1602写数据函数 { rs=1; //选择数据寄存器 rw=0; //选择写 p2=dat; //把要显示的数据送入p2 delay(5); //延时一小会儿,让1602准备接收数据 en=1; //使能线电平变化,数据送入1602的8位数据口 en=0; } void lcd_init() //1602初始化函数 { lcd_wcom(0x38); //8位数据,双列,5*7字形 lcd_wcom(0x0c); //开启显示屏,关光标,光标不闪烁 lcd_wcom(0x06); //显示地址递增,即写一个数据后,显示位置右移一位 lcd_wcom(0x01); //清屏 } void main() //主函数 { uchar n,m=0; lcd_init(); //液晶初始化 lcd_wcom(0x80); //显示地址设为80h(即00h,)上排第一位 for(m=0;m&lt;16;m++) //将table[]中的数据依次写入1602显示 { lcd_wdat(table[m]); delay(200); } lcd_wcom(0x80+0x44); //重新设定显示地址为0xc4,即下排第5位 for(n=0;n&lt;8;n++) //将table1[]中的数据依次写入1602显示 { lcd_wdat(table1[n]); delay(200); } while(1); //动态停机 }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
(37分)第二次世界大战以后,西方主要资本主
内乡县南阳安防监控怎么去啊,谁知道地址啊
韩奕紫菜包饭·寿司地址在什么地方,想过去办
乐心mambo-1怎么设置闹钟
步步盈有第三方资金托管吗?有风险保障金吗?
产后多少天报销生育险
2016扣字大神有哪些啊?
IT方面学什么好,我是小白
谁伴我闯荡 MP3链接qq空间背景音乐歌曲链接外
大连市沙河口区慈善超市怎么去啊,有知道地址
求助,副歌歌词有六句怎么办
【姥姥语录下载】...因为他们从没有弯腰割过
会兰副食店地址在哪,我要去那里办事
来凤县恩施来凤县酉水源生态中药材种植专业合
为什么领导不干活的啊
推荐资讯
【万丈】古代的万丈相当于现在的多高啊?就是
【道路设计】道路设计中R、T、E代表什么意思
百老泉鄂州市南塔专卖店在什么地方啊,我要过
天津市南开区有自行车零件批发市场吗
男孩在十二岁的时候算是成年么?
summer obsession
求未闻花名生肉高清资源(百度云)
开国上将方振东
樱桃小丸子美环演白雪公主在哪一集
大卫外贸友爱分店地址有知道的么?有点事想过
乖乖童装店地址有知道的么?有点事想过去
最后一句歌词有《的温柔》
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?