历史上的今天
今天是:2024年10月15日(星期二)
2019年10月15日 | 51单片机+74HC138驱动16*96点阵显示汉字的Proteus仿真+源代码
2019-10-15 来源:eefocus
16*96点阵仿真原理图如下
单片机源码如下:
#include #define uchar unsigned char #define uint unsigned int #define ulong unsigned long #define CTRL_PORT P2 #define DATA_PORT P0 #define ADDR_PORT P1 uchar code *p; uchar code zifu[12][32]={ {0x00,0x01,0x00,0x01,0x3F,0x01,0xA0,0x7F,0xA1,0x20,0x52,0x12,0x14,0x02,0x08,0x02, 0x18,0x02,0x18,0x06,0x24,0x05,0x24,0x09,0x82,0x18,0x61,0x70,0x1C,0x20,0x00,0x00}, {0x02,0x00,0x84,0x01,0x6C,0x3E,0x24,0x22,0x20,0x22,0x20,0x22,0x27,0x22,0x24,0x22, 0xA4,0x22,0x64,0x2A,0x24,0x12,0x04,0x02,0x04,0x02,0x0A,0x00,0xF1,0x7F,0x00,0x00}, {0x80,0x00,0x80,0x00,0xFC,0x3F,0x80,0x00,0x90,0x0C,0xA0,0x04,0xC0,0x02,0xFE,0x7F, 0x80,0x01,0xC0,0x02,0xA0,0x04,0x90,0x18,0x8C,0x70,0x83,0x20,0x80,0x00,0x80,0x00}, {0x60,0x02,0x1C,0x0A,0x10,0x12,0x10,0x12,0x10,0x02,0xFF,0x7F,0x10,0x02,0x10,0x12, 0x70,0x14,0x1C,0x0C,0x13,0x04,0x10,0x0A,0x90,0x49,0x10,0x50,0x14,0x60,0x08,0x40}, {0x40,0x00,0x80,0x00,0xFE,0x7F,0x02,0x40,0x21,0x22,0x10,0x04,0x08,0x08,0x04,0x10, 0xF8,0x0F,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xFE,0x3F,0x00,0x00}, {0x04,0x00,0xC8,0x3F,0x08,0x20,0x02,0x20,0xE2,0x27,0x22,0x24,0x22,0x24,0xE2,0x27, 0x22,0x24,0x22,0x24,0xE2,0x27,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x28,0x02,0x10} }; uchar select_hc138[][4]= { {0x20,0x21,0x22,0x23}, {0x24,0x25,0x26,0x27}, {0x10,0x11,0x12,0x13}, {0x14,0x15,0x16,0x17}, {0x18,0x19,0x1a,0x1b}, {0x1c,0x1d,0x1e,0x1f} }; void delay(void) { uchar i; for(i=0;i<20;i++); } void plany(void) { uchar i,j,k; for(k=0;k<6;k++) { for(j=0;j<1;j++) { for(i=0;i<8;i++) { CTRL_PORT=select_hc138[k][0]; DATA_PORT=zifu[k][2*i]; ADDR_PORT=i; delay(); CTRL_PORT=select_hc138[k][1]; DATA_PORT=zifu[k][2*i+1]; ADDR_PORT=i; delay(); } for(i=8;i<16;i++) { CTRL_PORT=select_hc138[k][2]; DATA_PORT=zifu[k][2*i]; ADDR_PORT=i-8; delay(); CTRL_PORT=select_hc138[k][3]; DATA_PORT=zifu[k][2*i+1]; ADDR_PORT=i-8; delay(); } } } } void PORT_init()//可放main中,初始化分开放main看起来简节一些 { TMOD=0x01; TH0=0xb1; TL0=0xe0; ET0=1; EA=1; } void main() { PORT_init(); while(1) { p=zifu; plany();//此处加一定的延时,让P=另外一个定义数组,就能达到换内容的效果 } } void timer0() interrupt 1 using 3 { TF0=0; TH0=0xb1; TL0=0xe0; }
上一篇:51单片机按键控制舵机
史海拾趣
|
AT89C51如何通过(USB-HOST)ISP1362读取U盘MP3数据 C程序 本人想利用AT89C51SND1C单片机读取U盘的数据。不知道怎么读取。。。请教高手指点一二,最好是C语言写的,我的编译器是Keil C … 查看全部问答> |
|
大家好, 关于wifi的配置, 下面黑体部分: g_dwOutput & INTF_BSSID == 0????为什么啊?望高人指教! 部分打印信息: In flags used = [0x7fffffff] dwOutput 打印信息 = [0x000fffff] ...… 查看全部问答> |
|
【MSP430共享】基于高温热裂解的SF6 环境监测系统设计 为了对作为绝缘气体广泛用于G I S( 气体绝缘全封闭组合电器)设备室等环境中的S F 6 气体实时监控,设计一套集S F 6 气体浓度、氧气含量、温度、湿度等参数为一体的S F 6 环境监测系统,阐述 目前广泛使用的几种S F 6 气体浓度检测方法的原理并对比 ...… 查看全部问答> |
|
MSP430 LaunchPad msp430g2553串口问题 MSP430 LaunchPad是TI新推出的一个超值开发板。这个开发板不但带有一个USB编程器,同时还有USB转TTL串口功能,对于调试非常方便。它不但可以调试LaunchPad的串口,还可以调试外部目标板的TTL串口(3.3V系统)。在需要调试别的系统的目标板上的TTL串 ...… 查看全部问答> |
|
本帖最后由 dontium 于 2015-1-23 12:40 编辑 在TI E2E社区中发现了几篇不错的文章,特意翻译过来分享给大家,其中Bruce Trump系列关于放大器有很好的见解,特此供大家参考。 摘要:虽然 Bode 图是一种很不错的分析工具,但是您可能还没有发现, ...… 查看全部问答> |




