- 博客(0)
- 资源 (2)
空空如也
双汉字16X16_LED点阵广告屏
目 录
第1节 引 言………………………………………………………………………3
1.1 LED点阵显示屏概述…………………………………………………………………3
1.2 LED显示屏控制技术状况……………………………………………………………4
1.2.1串行传输与并行传输技术………………………………………………………4
1.2.2动态扫描与静态锁存技术……………………………………………4
1.2.3自动检测及远程控制技术……………………………………………………4
1.3设计任务……………………………………………………………………………… 4
第2节 总体方案论证与设计……………………………………………………5
2.1 LED驱动模块…………………………………………………………………………5
2.2数据存储模块…………………………………………………………………………5
2.3总体硬件组成框图……………………………………………………………………6
第3节 系统硬件设计……………………………………………………………6
3.1 LED驱动模块的硬件设计………………………………………………………………6
3.1.1 74 LS154芯片介绍……………………………………………………………6
3.1.2 驱动电路的设计………………………………………………………………7
3.2数据存储电路的设计…………………………………………………………………8
3.3 PC机通信模块的设计…………………………………………………………………9
第4节 系统的软件设计 ………………………………………………………9
4.1下位机软件流程……………………………………………………………………9
4.2上位机软件…………………………………………………………………………10
第5节 系统调试与测试结果分析………………………………………………12
5.1使用的仪器仪表……………………………………………………………………12
5.2系统调试……………………………………………………………………………12
5.2.1硬件调试…………………………………………………………… 12
5.2.2软件调试…………………………………………………… 12
5.2.3硬件软件联调……………………………………………… 13
5.3测试结果…………………………………………………………………13
附录 ………………………………………………………………………………14
1. 实物图……………………………………………………………………14
2. 电路总设计原理图…………………………………………………………15
3. PCB图……………………………………………………………………16
2010-05-11
12864数字温度计
#include "lcd12864.h"
#include "zimo.h"
void lcd_cmd_wr(unsigned char cmdcode,right);
void lcd_dat_wr(unsigned char ldata,right);
void lcd12864_init(void);
void lcd12864_clr(void);
void loop_lcd_is_busy(unsigned char right);
void lcd_asci_wr(uchar posx,uchar posy,uchar number);
void lcd_dzheng_wr(uchar posx,uchar dx,uchar posy,uchar *pRam);
void lcd_hanzi_wr(uchar posx,uchar posy,uchar *hanzi);
// void lcd12864_draw_bmp(unsigned char *bmp);
void lcd_cmd_wr(unsigned char cmdcode,right)
{
loop_lcd_is_busy(right);
if(right) LCD_RCW = cmdcode;
else LCD_LCW = cmdcode;
}
void lcd_dat_wr(unsigned char ldata,right)
{
loop_lcd_is_busy(right);
if(right) LCD_RDW = ldata;
else LCD_LDW = ldata;
}
void lcd12864_init(void)
{
lcd_cmd_wr(DISPON,0);
lcd_cmd_wr(DISPFIRST,0);
lcd_cmd_wr(ORGY,0);
lcd_cmd_wr(ORGX,0);
lcd_cmd_wr(DISPON,1);
lcd_cmd_wr(DISPFIRST,1);
lcd_cmd_wr(ORGY,1);
lcd_cmd_wr(ORGX,1);
lcd12864_clr();
}
void lcd12864_clr(void)
{
unsigned char i,j;
for(i=0;i<8;i++)
{
lcd_cmd_wr(ORGY+i,0);
lcd_cmd_wr(ORGX,0);
lcd_cmd_wr(ORGY+i,1);
lcd_cmd_wr(ORGX,1);
for(j=0;j<64;j++)
{
lcd_dat_wr(0,0);
lcd_dat_wr(0,1);
}
}
}
void loop_lcd_is_busy(unsigned char right)
{
unsigned char tmp,counter=0;
do
{
if(right) tmp = LCD_RCR;
else tmp = LCD_LCR;
if(counter++>50) break;//超时跳出
}
while ((tmp|0x7f)==0xff);
}
//在指定位置写入点阵数据,要求指定点阵数
void lcd_dzheng_wr(uchar posx,uchar dx,uchar posy,uchar *pRam)
{
unsigned char i;
lcd_cmd_wr(ORGY+posy,0);
lcd_cmd_wr(ORGY+posy,1);
for(i=0;i<dx;i++)
{
if (posx+i<64)
{
lcd_cmd_wr(ORGX+posx+i,0);
lcd_dat_wr(pRam[i],0);
}
else
{
lcd_cmd_wr(ORGX+posx+i-64,1);
lcd_dat_wr(pRam[i],1);
}
}
}
//16x16点阵汉字写入
void lcd_hanzi_wr(uchar posx,uchar posy,uchar *hanzi)
{
lcd_dzheng_wr(posx,16,posy,hanzi);
lcd_dzheng_wr(posx,16,posy+1,hanzi+16);
}
//16x8 字符写入
void lcd_asci_wr(uchar posx,uchar posy,uchar number)
{
lcd_dzheng_wr(posx,8,posy,NUM+number*16);
lcd_dzheng_wr(posx,8,posy+1,NUM+8+number*16);
}
/*图片写入函数*/
void lcd12864_draw_bmp(unsigned char *bmp)
{
unsigned char i,j;
for(i=0;i<8;i++)
{
lcd_cmd_wr(ORGY+i,0);
lcd_cmd_wr(ORGX+0,0);
for(j=0;j<64;j++) lcd_dat_wr(bmp[128*i+j],0);
lcd_cmd_wr(ORGY+i,1);
lcd_cmd_wr(ORGX+0,1);
for(j=64;j<128;j++) lcd_dat_wr(bmp[128*i+j],1);
}
}
2010-05-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人