如何使51单片机通过HDMI接口让显示器显示图片
#include #define uint unsigned int#define uchar unsigned char#define x1 0x80#define x2 0x88#define y 0x80#define comm 0#define dat 1sbit rs = P3^0; //H=data; L=command;sbit rw = P3^1; //H=read; L=write;sbit e = P3^2; //input enable;sbit psb= P3^3; //H=并口; L=串口;sbit rst= P3^4; //Reset Signal 低电平有效sbit busy=P1^7; //lcd busy bitvoid wr_lcd (uchar dat_comm,uchar content);void chk_busy (void);void delay (uint us);void delay1 (uint ms);uchar code tab1[]={"锐显科技有限公司""ES:www.rxlcd.com""中文图形液晶模块""TEL:020-62619437"};unsigned char code tab5[]={/*------------------------------------------------------------------------------; 宽*高(像素): 128*64; 字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/1024字节------------------------------------------------------------------------------*/0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x60,0x00,0x00,0x00,0x00,0x0F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xF0,0x00,0x00,0x3F,0x8F,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xF8,0x00,0x00,0x3F,0x8F,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFC,0x00,0x00,0x3F,0x8F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFE,0x00,0x00,0x3F,0xCF,0xEF,0xC0,0xFF,0xC7,0xE3,0xE7,0xF0,0x00,0x00,0x00,0x0F,0xBF,0x03,0x00,0x1F,0xDF,0xCF,0xC3,0xFF,0xF7,0xF7,0xF3,0xF0,0x00,0x00,0x00,0x1F,0x1F,0x87,0x80,0x1F,0xDF,0xCF,0xC7,0xFF,0xFF,0xF3,0xF3,0xF0,0x00,0x00,0x00,0x3E,0x0F,0xCF,0xC0,0x1F,0xDF,0xCF,0xC7,0xE3,0xFB,0xFF,0xF7,0xE0,0x00,0x00,0x00,0x7C,0x07,0xFF,0xE0,0x0F,0xDF,0x8F,0xC7,0xFF,0xFB,0xFF,0xFF,0xE0,0x00,0x00,0x00,0xF8,0x03,0xFE,0xF0,0x0F,0xFF,0x8F,0xC7,0xFF,0xFB,0xFF,0xFF,0xE0,0x00,0x00,0x01,0xF0,0x01,0xFC,0x78,0x07,0xFF,0x0F,0xC7,0xE0,0x01,0xFF,0xFF,0xC0,0x00,0x00,0x03,0xE0,0x00,0xF8,0x3C,0x07,0xFF,0x0F,0xC7,0xEF,0xF9,0xFF,0xFF,0xC0,0x00,0x00,0x07,0xC0,0x01,0xF0,0x1E,0x03,0xFE,0x0F,0xC7,0xFF,0xF9,0xFF,0x7F,0xC0,0x00,0x00,0x0F,0x80,0x03,0xE0,0x0F,0x01,0xFE,0x0F,0xC3,0xFF,0xF0,0xFF,0x7F,0x80,0x00,0x00,0x1F,0x00,0x07,0xC0,0x07,0x81,0xFC,0x0F,0xC0,0xFF,0xC0,0xFE,0x7F,0x80,0x00,0x00,0x3F,0x00,0x0F,0x80,0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x80,0x0F,0x80,0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xC0,0x07,0xC0,0x07,0x87,0xFF,0x83,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x03,0xE0,0x0F,0x0F,0xFF,0xC3,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF0,0x01,0xF0,0x1E,0x3F,0xFF,0xE3,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xF8,0x03,0xF8,0x3C,0x3F,0x87,0xE3,0xFF,0xE1,0xFF,0xF0,0x7F,0xF1,0xFF,0xF8,0x00,0xFC,0x07,0xFC,0x78,0x3F,0xF8,0x03,0xFF,0xF3,0xFF,0xFC,0x7F,0xF1,0xFF,0xFC,0x00,0x7E,0x0F,0xFE,0xF0,0x3F,0xFF,0xC3,0xFF,0xF3,0xFF,0xFC,0x7F,0xF9,0xFF,0xFE,0x00,0x3F,0x1F,0x9F,0xE0,0x3F,0xFF,0xE3,0xFF,0xF0,0x03,0xFC,0x7E,0xF9,0xFF,0xFE,0x00,0x1F,0xBF,0x0F,0xC0,0x0F,0xFF,0xF3,0xF3,0xF1,0xFF,0xFC,0x7E,0xF9,0xFC,0xFE,0x00,0x0F,0xFE,0x07,0x80,0x07,0xFF,0xF3,0xF3,0xF3,0xFF,0xFC,0x7E,0x01,0xF8,0x7E,0x00,0x07,0xFC,0x03,0x00,0x00,0x0F,0xF3,0xF3,0xF3,0xF9,0xFC,0x7E,0x01,0xFC,0xFE,0x00,0x03,0xF8,0x00,0x00,0x3F,0xC7,0xF3,0xF3,0xF3,0xF9,0xFC,0x7E,0x01,0xFF,0xFE,0x00,0x01,0xF0,0x00,0x00,0x3F,0xFF,0xF3,0xF3,0xF3,0xFF,0xFC,0x7E,0x01,0xFF,0xFE,0x00,0x00,0xE0,0x00,0x00,0x3F,0xFF,0xE3,0xF3,0xF3,0xFF,0xFC,0x7E,0x01,0xFF,0xFC,0x00,0x00,0x40,0x00,0x00,0x07,0xFF,0x83,0xF3,0xF1,0xFF,0x7C,0x7E,0x01,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x1C,0x0F,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x38,0x1C,0x00,0x1E,0x0F,0x00,0x00,0x00,0x0E,0x00,0x38,0x00,0x07,0xFF,0x00,0x00,0x7C,0x0C,0x00,0x1E,0x07,0x00,0x00,0x00,0x0F,0x00,0x38,0x00,0xFF,0xFF,0x80,0x01,0xFC,0x0C,0x00,0x0E,0x07,0x00,0x00,0x00,0x0E,0x3C,0x78,0x00,0x70,0...
51串口通信通过单片机向PC发送图片吗?
你在xdata中定义了一个数组,并且在定义时就做了初始化,但这个数组中被初始化的元素超过了8K,编译器就会报这个错。
KEIL实际是将这些初始化数据保存在CODE中,在单片机上电时再拷贝到XDATA中的。
解决办法:1、如果这个数组并不是必须定义在XDATA中,那么定义在CODE区就不会报错了。
2、如果必须定义在XDATA区,那么可以如下:char xdata buf[10000];char code buf2[10000]={0,0,0,0,0.......};//上电后将数据复制到xdata处理memcpy(buf,buf2,10000);
单片机开发板原理图数码管原理怎么看?
单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,以广泛的应用领域拉动,表现出较微处理器更具个性的发展趋势。
科研成果保护是每一个科研人员最关心的事情,目的不使自己的辛苦劳动付注东流加密方法有软件加密,硬件加密,软硬件综合加密, 时间加密,错误引导加密,专利保护等措施有矛就有盾,有盾就有矛,有矛有盾,才促进矛盾质量水平的提高加密只讲盾,也希望网友提供更新的加密思路,现先讲一个软件加密:利用MCS-51 中A5 指令加密,(本人85 年发现的,名软件陷阱),其实世界上所有资料,包括英文资料都没有讲这条指令,其实这是很好的加密指令A5 功能是二字节空操作指令加密方法在A5 后加一个二字节或三字节操作码,因为所有反汇编软件都不会反汇编A5 指令,造成正常程序反汇编乱套,执行程序无问题仿制者就不能改变你的源程序,你应在程序区写上你的大名单位开发时间及仿制必究的说法,以备获得法律保护我曾抓到过一位获省优产品仿制者,我说你们为什么把我的名字也写到你的产品中?硬件加密:8031/8052 单片机就是8031/8052掩模产品中的不合格产品,内部有ROM(本人85年发现的),可以把8031/8052 当8751/8752 来用,再扩展外部程序器,然后调用8031 内部子程序当然你所选的同批8031 芯片的首地址及所需用的中断入口均应转到外部程序区。
硬件加密 用高电压或激光烧断某条引脚,使其读不到内部程序,用高电压会造成一些器件损坏,重要RAM 数据采用电池(大电容,街机采用的办法)保护,拔出芯片数据失去机器不能起动,或能初始化,但不能运行 用真真假假方法加密 擦除芯片标识 把8X52 单片机,标成8X51 单片机,并用到后128B的RAM 等方法,把AT90S8252 当AT89C52,初始化后程序段中并用到EEPROM 内容,你再去联想吧!用激光(或丝印)打上其它标识如有的单片机引脚兼容,有的又不是同一种单片机,可张冠李戴,只能意会了,这要求你知识面广一点 用最新出厂编号的单片机,如2000 年后的AT89C 就难解密,或新的单片机品种,如AVR 单片机 DIP 封装改成PLCC,TQFP,SOIC,BGA等封装,如果量大可以做定制ASIC,或软封装,用不需外晶振的单片机工作(如AVR 单片机中的AT90S1200),使用更复杂的单片机,FPGA+AVR+SRAM=AT40K系列 硬件加密与软件加密只是为叙说方便而分开来讲, 其实它们是分不开的,互相支撑,互相依存的软件加密:其目的是不让人读懂你的程序,不能修改程序,你可以.......利用单片机未公开,未被利用的标志位或单元,作为软件标志位,如8031/8051 有一个用户标志 位,PSW.1 位,是可以利用的程序入口地址不要用整地址,如:XX00H,XXX0H,可用整地址-1,或-2,而在整地址处加二字节或三字节操作码,在无程序的空单元也加上程序机器码,最好要加巧妙一点 用大容量芯片,用市场上仿真器不能仿真的芯片,如内部程序为64KB 或大于64KB 的器件,如:AVR 单片机中ATmega103 的Flash 程序存储器为128KB AT89S8252/AT89S53 中有EEPROM,关键数据存放在EEPROM 中,或程序初始化时把密码写 到EEPROM 中,程序执行时再查密码正确与否,然后....... 当然不能告说人家这是什么器件,尽量不让人家读懂程序,在这里说谎,骗人是正当防卫。
用真真假假, 假假真真,把几种不同品种的单片机放在同一设备中,如主芯片用AVR(说是MCS51),键盘显示用AT89C2051(说是GAL),I/O 口扩展驱动用PIC(说是AT90S1200)等,当然要求你知识面广一点如果你用高级语言C 编写程序就简单了,因为C 语言程序移植方便有些国家的产品能做到三年保修,三年保不坏,三年后保坏,或三年后保有故障,可能用什么技术?你去想吧例:每次开机或关机,EEPROM 某单元加1,也可二个三个单元连接起来计数,达到某值停止工作,硬件用软件代替,软件用硬件代替用大规模CPLD 可编程器件,关于单片机加密,讲到这里,就算抛砖引玉,下面请各位高手把玉亮出来吧。
对付购买你设备,想不付钱或想少付钱的人,你可采用先供限时(次)使用版软件,钱付清下载正式版软件(监控)。
数码管也称LED数码管,不同行业人士对数码管的称呼不一样,其实都是同样的产品。
数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是多一个小数点(DP)这个小数点可以更精确的表示数码管想要显示的内容;按能显示多少个(8)可分为1位、2位、3位、4位、5位、6位、7位等数码管。
按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。
共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。
共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相...
单片机汉字8x8点阵LED动态显示程序
展开全部 #include sbit ADDR0 = P1^0;sbit ADDR1 = P1^1;sbit ADDR2 = P1^2;sbit ADDR3 = P1^3;sbit ENLED = P1^4;unsigned char code image[11][8] = { {0xC3, 0x81, 0x99, 0x99, 0x99, 0x99, 0x81, 0xC3}, //数字0 {0xEF, 0xE7, 0xE3, 0xE7, 0xE7, 0xE7, 0xE7, 0xC3}, //数字1 {0xC3, 0x81, 0x9D, 0x87, 0xC3, 0xF9, 0xC1, 0x81}, //数字2 {0xC3, 0x81, 0x9D, 0xC7, 0xC7, 0x9D, 0x81, 0xC3}, //数字3 {0xCF, 0xC7, 0xC3, 0xC9, 0xC9, 0x81, 0xCF, 0xCF}, //数字4 {0x81, 0xC1, 0xF9, 0xC3, 0x87, 0x9D, 0x81, 0xC3}, //数字5 {0xC3, 0x81, 0xF9, 0xC1, 0x81, 0x99, 0x81, 0xC3}, //数字6 {0x81, 0x81, 0x9F, 0xCF, 0xCF, 0xE7, 0xE7, 0xE7}, //数字7 {0xC3, 0x81, 0x99, 0xC3, 0xC3, 0x99, 0x81, 0xC3}, //数字8 {0xC3, 0x81, 0x99, 0x81, 0x83, 0x9F, 0x83, 0xC1}, //数字9 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, //全亮};void main(){ EA = 1; //使能总中断 ENLED = 0; //使能U4,选择LED点阵 ADDR3 = 0; TMOD = 0x01; //设置T0为模式1 TH0 = 0xFC; //为T0赋初值0xFC67,定时1ms TL0 = 0x67; ET0 = 1; //使能T0中断 TR0 = 1; //启动T0 while (1);}/* 定时器0中断服务函数 */void InterruptTimer0() interrupt 1{ static unsigned char i = 0; //动态扫描的索引 static unsigned int tmr = 0; //1s软件定时器 static unsigned char index = 9; //图片刷新索引 TH0 = 0xFC; //重新加载初值 TL0 = 0x67; //以下代码完成LED点阵动态扫描刷新 P0 = 0xFF; //显示消隐 switch (i) { case 0: ADDR2=0; ADDR1=0; ADDR0=0; i++; P0=image[index][0]; break; case 1: ADDR2=0; ADDR1=0; ADDR0=1; i++; P0=image[index][1]; break; case 2: ADDR2=0; ADDR1=1; ADDR0=0; i++; P0=image[index][2]; break; case 3: ADDR2=0; ADDR1=1; ADDR0=1; i++; P0=image[index][3]; break; case 4: ADDR2=1; ADDR1=0; ADDR0=0; i++; P0=image[index][4]; break; case 5: ADDR2=1; ADDR1=0; ADDR0=1; i++; P0=image[index][5]; break; case 6: ADDR2=1; ADDR1=1; ADDR0=0; i++; P0=image[index][6]; break; case 7: ADDR2=1; ADDR1=1; ADDR0=1; i=0; P0=image[index][7]; break; default: break; } //以下代码完成每秒改变一帧图像 tmr++; if (tmr >= 1000) //达到1000ms时改变一次图片索引 { tmr = 0; if (index == 0) //图片索引10~0循环 index = 10; else index--; }}
跪求51单片机控制1602液晶显示时钟的protues原理图及c语言程序,...
#include #define uchar unsigned char#define uint unsigned intuchar code table[11]={0xc0,0xf9,0xa4,0xb0,0x99, 0x92, 0x82 ,0XD8,0x80,0x90,0xFF}; //不带小数点的显示段码表 uchar code table0[11]={0X40,0X79,0X24,0X30,0X19,0X12,0X02,0X78,0X00,0X10, 0xFF}; //带小数点的的显示段码表 uchar dis[3]={0x00,0x00,0x00}; //定义一个显示缓冲数组 void add(); //加函数void reduce(); //减函数void delay(uint t); //延时函数void display(); //显示函数void adc(); //AD转换函数void change(); //比较调整输出函数void init(); //显示值赋值函数sbit P3_4=P3^4;sbit P3_5=P3^5;sbit P3_0=P3^0;sbit P3_1=P3^1;sbit P3_2=P3^2;sbit wr=P3^3; sbit intr=P3^6; sbit rd=P3^7; uchar var=0;int var2;uchar num,out=0;void display(){ P3_0=1; P0=table[dis[0]]; delay(1); P3_0=0; P3_1=1; P0=table[dis[1]]; delay(1); P3_1=0;P3_2=1;P0=table0[dis[2]];delay(1);P3_2=0; }void init(){ var2=var*1.95; dis[0]=var2%10; //个位 dis[1]=var2/10%10; //十位 dis[2]=var2/100%10; //百位 }void main(){ P2=0; var=200; //预设初始值 P3_0=0; P3_1=0; P3_2=0; init(); if(P3_4==1 && P3_5==1) display(); while(1) { adc(); change(); if (P3_4==0) {add(); while(!P3_4) ; } if(P3_5==0) { reduce(); while(!P3_5); } if(P3_4==1 && P3_5==1) display(); } } void add() { var++; delay(1); init(); } void reduce() { var--; if(var==0xff) {var=0;} delay(1); init(); }void adc(){ wr=1; wr=0; delay(10); wr=1; while(intr==0) {} rd=0; delay(10); num=P1; }void change(){ if(var=10) { if(out>=10) { out=out-10; P2=out; } } else if (out>=1) { out--; P2=out;} } if(var>num) { if( (var-num)>=10) { if(out<=245) { out=out+10; P2=out; } } else if (out<=254) {out++; P2=out;} }}void delay (uint t){ uint i,j;for (i=0;i<t;i++)for (j=0;j<120;j++) ;}运行结果图: 运行结果不复制不过来,有什么问题可以找我,我再给你发到邮箱什么的都可以。
展开
转载请注明出处51数据库 » 51单片机显示图片软件