历史上的今天
今天是:2024年09月16日(星期一)
2020年09月16日 | P10点阵屏C51单片机程序
2020-09-16 来源:51hei
P10点阵屏C51程序
1/4扫描,四扫下行,1路16行,数据低OE高(04-P16-08)
适用于HUB12接口单色P10
串口模式0,普通左移,亮度速度可调,6个IO口,用的STC8F1K08,最多231个字
制作出来的实物图如下:

单片机源程序如下:
#include #include #include #define DATA P30 // #define CLOCK P31 //↑ ↓ #define ADDR_A P32 //↑ #define ADDR_B P33 // #define LATCH P54 //↓ ↓ #define ENABLE P55 //↓ unsigned char Offset_Bit,Offset_String; unsigned char code String[]= { #include <0.h> }; /*----------------------------延时10us@STC-Y6@11.0592MHz----------------------------*/ void Delay_10us(void) { unsigned char i; i=35; while(--i); } /*----------------------------延时x10us----------------------------*/ void Delay_x10us(unsigned char x) { while(x--) Delay_10us(); } void Line_Driver(unsigned char temp) { switch(temp) { case 0: ADDR_A=0; ADDR_B=0; break; case 1: ADDR_A=1; ADDR_B=0; break; case 2: ADDR_A=0; ADDR_B=1; break; case 3: ADDR_A=1; ADDR_B=1; break; default: break; } ENABLE=1; } void Send_One_Byte(unsigned char temp) { unsigned char i,temp1; for(i=0;i<8;i++) { temp1<<=1; if(temp&0x01) temp1|=0x01; temp>>=1; } SBUF=~temp1; while(!TI); TI=0; } void Send_Display(unsigned char line) { unsigned char i,j,a,b; unsigned int c,d; b=2*line; for(i=0;i<4;i++) { c=(Offset_String+i)*32; for(j=0;j<8;j++) { if(j<4) { a=(3-j)*8; d=a+b+c; if(Offset_Bit<=8) Send_One_Byte((String[d]< else Send_One_Byte((String[d+1]<<(Offset_Bit-8))|(String[d+32])>>(8-(Offset_Bit-8))); } else { a=(7-j)*8; d=a+b+c; if(Offset_Bit<=8) Send_One_Byte((String[d+1]< else Send_One_Byte((String[d+32]<<(Offset_Bit-8))|(String[d+33])>>(8-(Offset_Bit-8))); } } } LATCH=0; LATCH=1; } void Display(unsigned char brightness) { unsigned char line; for(line=0;line<4;line++) { Send_Display(line); Line_Driver(line); Delay_x10us(brightness); ENABLE=0; Delay_x10us(10-brightness); } } void Init(void) { AUXR|=0x20; P3M0=0x0f; P3M1=0x00; P5M0=0x30; P5M1=0x00; Offset_Bit=0; Offset_String=0; } void main(void) { unsigned char i; Init(); while(1) { for(i=0;i<10;i++) { Display(1); } Offset_Bit++; if(Offset_Bit==16) { Offset_Bit=0; Offset_String++; } if(Offset_String==159) { Offset_String=0; } } }
史海拾趣
|
1、判断极性首先将万用表拨在R×1KΩ挡,用万用表测量时,若某一极与其它两极阻值为无穷大,调换表笔后该极与其它两极的阻值仍为无穷大,则判断此极为栅极(G)。其余两极再用万用表测量,若测得阻值为无穷大,调换表笔后测量阻值较小。在测量阻值 ...… 查看全部问答> |
|
很奇怪的问题 wince 串口测试应用程序 writefile(...)函数没有执行完就失败了,然后程序死掉了。 串口测试的writefile(...)函数没有执行完就失败了,没有任何返回结果。writefile的下一个语句做断点,没有执行到。 if(hComm!=INVALID_HANDLE_VALUE&&dwCharToWrite!=0) { &nbs ...… 查看全部问答> |
|
异常是导致处理器脱离正常运行转向执行特殊代码的任何事件,如果系统不及时处理,系统轻则出错,重着导致系统毁灭性的瘫痪。所以正确地处理异常避免错误的发生是提高软件的鲁棒性重要的一方面,对于嵌入式系统更加如此。 异常可以分成两类 ...… 查看全部问答> |
|
DIY导航避障车小组今日下午展开第一次例会,在本次例会中大家集中讨论了无线的选择,避障的选择等等部分,并对小车进行了前景规划,以谷歌的自动驾驶车为终极目标,大家积极发言例会持续了一个半小时,并表示未来会采用各种新技术。下次再来把细节 ...… 查看全部问答> |
|
您知道“软文”的含义吗?什么,不知道。赶紧百度一下吧,别被OUT了 [ 本帖最后由 longxtianya 于 2011-11-6 20:19 编辑 ]… 查看全部问答> |
|
4月24日阴雨天气,阿牛哥上午9点去北京朝阳区五洲皇冠大酒店参加泰克2012年度春季创新论坛。热情的工程师们朋友已经在会场里聆听泰克的测试测量行业趋势观点,泰克领先测试测量方案,还有一些工程师朋友在展厅参观泰克最新 ...… 查看全部问答> |




