液晶电视维修入门教程简单-液晶电视维修快速入门
作为一电子爱好者,如你不懂单片机的话,不管你是搞维修的,还是搞开发的,在现在以及将来最起码你不算一位合格的电子爱好者.我是99年6月开始学的单片机,算是还可以吧(自我感觉良好)!
要想学好单片机必须对它有兴趣,这是必然的!也是最重要的!在这基础上你从一个不知单片机是个什么东东到自己能做一些单片机的东东----三个月用你的业余时间搞定,要知道到那时你是个镀了金的"电子爱好者"(学校刚学完的本科生不过如此),那样的兴奋啊...!呵呵!
想学单片机从MCS-51开始,那是公认的,不必研究了.但单片机是一个很系统的学科,我们作为自学的,不可能象学校那样很系统的学,那样的话可能要倍上它三五年了.那么怎么才能在三个月而且是业余的时间学好它呢?我个人认为是---怎么样使自己尽快的入门是主要的,一旦入了门就什么都好说!虽说不必等系统的学了计算机系统再来学单片机,但有的一些你必须要了解的,那就必须要学,必须要懂.学单片机要对数字逻辑(数字电路),数制,汇编语言等等---必须懂!头开始大了吧!呵呵!谁叫你对它感兴趣呢!但话也得说回来,感兴趣归感兴趣,要是真的让你买来几本书,那感兴趣的也是每本书的前面几页,或许用来作睡前摧眠罢了!可是应该要懂的就必须得学,怎么办呢?办法是有的,因为我就是这么过来的!
首先:你对必须有电脑,我想你能上网电脑不是大问题,况且学单片机也是离不开电脑的,没电脑你还是别动那个脑筋了!视频教程应该听说过吧!对了,就是视频教程,这样我们就不必看那摧眠的书了,就象看电视一样的看教程,好的教师讲的课程比较通俗易懂,容易理解,也就不象书那样容易摧眠了.一旦你听得下去了,你的兴趣就更上来了,而且比在学校里听老师讲课还方便,听不懂的地方你可以倒到前面重新来过,看了一次不明白的地方还可以重看N次,没人会烦你!结合网上多得不能再多的有关内容做一些东东,你不想学会都难(真的不想学除外)!呵呵!不是吹牛!问题是怎么学?从那儿学起?什么教程好?怎么按排好教程课时?
单片机是计算机的一个分支,是计算机一个系统的.它的硬件是一系列逻辑时序电路的组合."逻辑 时序"那就是数字电路啊!那数字电路原理也就必须要了解的啰!况且单片机里的什么锁存器啊,寄存器啊,译码器啊,计数器啊,等等.都是数字电路里的东东,了解了数字电路你也就一只脚进了单片机的大门.我有幸看了刘润华老师的<数字电子电路基础>的视频教程,他可是一位很不错的教授!通俗易懂,容易理解!教程30 个课时,我想如果你有一点点的电子基础(那怕你一点不懂,你只要有兴趣就行),这里面的东东你只要理解便是了.它比模拟电子电路要好理解的多得多,我是三天看完的.给你一个星期吧!怎么样?呵呵!一个星期就能把前脚踏进单片机的大门,不错吧!
你的一只脚已经进了单片机的门,那么我们就来考虑你的另外一只脚吧!
我们假设你没有太多的空时间,刘润华老师的<数字电子电路基础>的视频教程,你用了15天,学这个东西最好是连着看,可不要断断续续的,三天打鱼二天晒网的后果你是知道的!三个月是90天,你用了15天,那就再有75天了,我们怎么按排这75天呢?总不能把入门的后一只脚用了75天再把它拖进来吧!!呵呵!那还算叫“搞定”啊!入门后还要学会怎么站起来走路,然后是怎么跑着走路,这样才是刚刚“搞定”!呵呵!晕了吧!不急,不是说过吗,只要入了门什么都好说,“跑”算什么,“飞”都没问题!我们走进门吧!
武庆生老师的《单片机原理及接口技术》视频教程是个很不错的选择,武庆生老师是很敬业的教师,他把单片机中的很多技术难点,技术细节讲得透透彻彻!明明白白!清清楚楚!尽管武庆生老师讲得这么好,可对我们从来没有听过什么是微机原理,什么是计算机接口技术,什么是计算机汇编语言等等的人来说,还是感到头大!没有刘润华老师的<数字电子电路基础>的视频教程来得轻松了,我的过程是:买一本笔记,每一课时先认真的看一遍,然后再认真的重新看一遍,并把重要的记下来.这样的话,有了<数字电子电路基础>已经打了底的基础,应该没多大问题了,我是说让后面的那只脚进得门来没多大问题了!呵呵!
<单片机原理及接口技术>整个课程33课时,我用了大概半个月吧!我是很认真很认真对待它的!整个课程我都做了笔记,而且我发现做笔记有很多好处,首先你会知道自己已经学到那儿了,学得怎么样了(最起码是你懂了你才会记下来吧)!其次是课程里有很多很多经典的汇编程序,你记下来后可作会日后写程序的范典.就算你不小心用了20天吧!这样说来大概是35天后,你也就不小心进了单片机的大门.呵呵!我用"不小心"是很有意思的,我就是不经意间看完的.在这过程中每天都有"原来是这样"和"缘来如此而已"!那种感受,你慢慢体会吧!
我再来说说细节问题,课程里一开始说得是单片机的内脏,你有了刘润华老师的<数字电子电路基础>的视频教程的过程,应该没有太大问题的!接下是汇编语言的指令部分,整个过程武庆生老师用了大量的实例,这部分你得十二份的认真对待,日后你要用这些语言写东东的!往下是"定时器/计数器","串行接口","中断系统"这三部分可谓是单片机的核心,有了"定时器/计数器"单片机才会自动控制,有了"中断系统"单片机才会有了"智慧",有了"串行接口"单片机才会知道外面的世界有多大!再往下是"系统扩展"和"接口技术",尽管我是很认真的看完的,这里边的"I/O口的扩展","键盘接口","A/D","D/A"等等,在<数字电子电路基础>里有的已有交待,比较轻松的!有的也只限于了解就可以了,因为将来的单片机里象"A/D","D/A"等等是芯片自带的,你可以有选择的应用便可!
好了!到了这里我们算是完全进得门来了!不错吧!只用了你大概一个月的时间.相当于学校一年多的本科生的时间.我不是说要三个月才能算是"搞定"吗?是的,我们只不过是刚刚入门.接下来是怎么"跑"的问题.
动手吧!花钱了!到网上多看看买一个带ISP下载线的单片机开发板,100元左右.注意的是你学的是MCS-51,你就得买MCS-51的开发板.须要注意的是:
1/ 自带程序的在线烧录(自下载)功能.这会让你省下了买编程器的费用!
2/ 带标准RS232接口.看看板子上有没有RS232芯片和24C**系列的EEPROM芯片,"串行接口","中断系统"这两部分的内容可以得到练习.
3/ 提供16*2字符显示液晶板接口了吗!以后用得着.
4/ 精确标准的时钟电路.找找有没有DS1302芯片,好东东!"定时器/计数器"可以得到练习.
其它的应该一般的开发板都会有的,就不必多说了!
KEIL 是美国Keil Software公司出品的51单片机软件开发系统.不管你是用汇编的还是C语言的,它都能帮你产生目标代码,生成的文件你再把它用ISP下载线写进芯片,呵呵!你的东东就出来了!算是"跑"起来了吧!这跟锻炼身体有点相似,跑得越多你的身体就越好,你的身体越好就跑得越快!到底能不能"跑"起来,或"跑"得快不快,那是你的事情了!至少你已经"走"起来了!
在这里我再说一些细节问题:学"跑"时,最好找一些简单的现存的小程序玩玩!然后想办法改程序,看看能不能再"跑"起来,我就是这样"跑"起来的!玩比较大一些程序时尽量找现存的子程序(就是一些大虾们说的"模块")作为你的子程序,这样就比较可靠了!我们假设你已经"跑"起来了("跑"不起来才怪)!就算你学"跑"用了30天左右的时间吧.入门用了你30天,看看学"跑"和入门的比例:占了一半啊!是的学单片机就是练出来的!必须练,练,练,再练!最好在入门的时候就练!这一点很重要哦!
到了这里你的单片机已经算是基本上"搞定"了!如果你只是搞维修的,那你毕业了!呵呵!如果你是想搞单片机开发,并且想用单片机养家糊口的,那你离"搞定"还有一点距离.一些大的工程一般不是一个人能完成得了的,可能要几个人甚至几十个程序员一起合作.这时候你还用汇编语言就有点说不过去了!汇编语言优点是很多,可是它也有致命的弱点:很难交流,很难移值等等!C语言是个不错的选择,与汇编语言相比,C语言在功能,结构性,可读性,可维护性上有明显的优势!生成的目标代码效率非常高,多数语句生成的汇编代码很紧凑!C语言的优势还体现在你将来搞MCS-51以外的单片机的开发时,你只要对这种单片机的硬件结构有一个大概的了解就可以了!就是说C语言编程时对硬件结构的了解要求不是太高的!学C语言相比是比较容易的,我是网上找到的多媒体学习光盘!十天就能知道大概了!然后也是练,练,练!呵呵,没这么容易吧!就这么容易!有的东西我们只是被它的外表吓住了,就象漂亮的MM不是你想象的那么难搞定一样!自信很重要哦!!!!!!!
学了C语言就算把单片机"搞定"了吧!是的"搞定"了!但"搞定"是要你自己感觉的,这时候我建议你看看朱清新老师的<软件工程>,这里会跟你说说什么是编程!看过后你就有了一种更上一层楼的惊喜!什么是结构化编程,什么是面向对象编程!使你对程序结构和你的编程水平有了质的提升!罗克露老师的<计算机组成原理>,按照常规的教学是先学这里面的内容,然后才是《单片机》.因为我要在这里提出来,如你能再系统的看一遍罗克露老师的<计算机组成原理>,也是有质的升华的!到那时再加上你从网上积累的东西,和你的实操经验!呵呵!算是“搞定”了!算算吧!这样的话三个月没透支吧!
以上只是我的一家之言!有什么不当的地方,请多多包含!
画画用需要买什么样的笔记本电脑。
第一,尽量全内置考虑到使用场合和应用特点,应该以全内置机型为首选。因为不必经常携带笔记本电脑外出,体积和重量影响不大,最重要的是全内置机型有功能齐全、接口丰富的特点,可以省却不必要的抽换,轻松插接外围周边设备,如并口打印机、USB扫描仪、鼠标、键盘、摄像头、外接显示器,甚至有S端子可外接显示到电视机上等,充分满足学生的周边应用,注意处理器按需购买。
第二,量力而定的处理器追求太高等级的处理器,会带来不必要的价格成本。建议选购处理器等级在PentiumⅢ600以上,且为笔记型电脑专用处理器(支持SpeedStep变频省电技术,含32KB一级和256KB二级高速缓存),PentiumⅢ650、PentiumⅢ700、PentiumⅢ750等都是现在的物美价廉之选,在此需要提醒用户,目前国内品牌中有很多万元以下笔记本电脑采用的是FC-PGA封装(台式电脑)处理器和笔记型Celeron处理器,其效能与PentiumⅢ-M相比要逊色一些,选购时应审慎。
第三,硬盘内存能大则大硬盘容量40GB是必须的,80GB容量是目前比较理想的选择。笔记本电脑目前普遍配备512MB内存,但有很多品牌的笔记本电脑是通过内存槽扩充上去的,并非主板上内建,这样对将来的扩容不利。建议选择主板内建128MB内存的笔记本电脑,当然如果你认为256MB内存足够使用,也可不必在意是否内建,因为将来笔记本电脑内存极有可能还要大幅掉价,买一条新的内存也不用花太多的钱。
第四,笔记本不是游戏机13.3英寸显示屏是较理想的选择,1024×768分辨率可以满足机械图形细节处理的要求。笔记本电脑的显示系统由于受空间的限制,没有台式电脑显示卡那样出色,但还是建议选择显存容量在8MB以上为宜。
第五,网络通讯功能必须完备如今,网络生活已经是不可或缺的重要内容,考虑到网络学习、网页浏览、通讯联络(包括收发E-mail、网上聊天)、连网游戏娱乐等需要,选择内建Modem和局域网卡的笔记本电脑可省却另外添置的麻烦。
第六,注意完备附件附件是否完备可以从侧面看出厂商对用户感受的关注程度。建议留意以下附件:简体中文用户手册、驱动程序安装手册、系统恢复光盘或附赠软件盘、驱动程序光盘、保修卡,这些都是必需的,另外要注意,应该配套附赠品,如笔记本电脑包、鼠标、软件礼包等,不但多多益善,还要实用好用。
第七,优质快捷服务的品牌服务理所当然是应该注意的问题,选择有实力完成维修的知名厂商是很重要的,这一点可以透过相关的介绍或是朋友的介绍去了解,在此应指出的是,笔记本电脑的原始生产厂商在维修品质方面占有一定的优势。
第八,选择符合自己年轻特质的产品时尚、动感、前卫已经成为年轻一族的代名词。所以要多了解IT媒体对各品牌机型的客观评价,并亲身去卖厂感受和体验,才能找到真正适合自己风格的笔记本电脑,否则拿一笔不小的花销草率选择一款外观并不太招人喜爱的笔记本电脑就太不值了,也会影响你在使用时的热情。
在LED显示汉字,怎么做到可以三个汉字循环显示?怎么添加代码?
画画用需要买笔记本电脑有荣耀MagicBook锐龙版、惠普Envy X360锐龙版、联想小新Air13增强版等。
1、荣耀MagicBook锐龙版
荣耀MagicBook锐龙版是今年3500-4000价位最热销的笔记本之一,搭载AMD锐龙R5-2500U四核处理器、8GB内存、256GB固态硬盘,APU处理器本身也内置了不错的核心显卡,能够较好的满足一般的入门3D网络游戏需求。另外这款笔记本可以做到10个小时的续航,在续航上可以满足一整天的工作需求。
其它方面,荣耀MagicBook锐龙版整体做工、设计在低价位产品中属于非常不错的。全金属机身、两侧窄边框、四扬声器、背光键盘……荣耀MagicBook的优势相当明显。
2、惠普Envy X360锐龙版
惠普Envy X360锐龙版搭载的同意是AMD锐龙R5-2500U四核处理器、8GB内存和256GB固态硬盘,价位上相比前面荣耀款贵了不少,不过这款笔记本主打设计,做工非常到位,还支持360°翻转、触屏等操作。
另外这款笔记本前不久还是售价5699元,初期价格明显虚高,但如今降至4899元,价位上相对容易让人接受不少,适合追求做工、反转屏、触控体验的用户推荐。
3、联想小新Air13增强版
联想小新Air13增强版搭载Intel八代酷睿i5-8265U四核处理器、8G内存和 512G 大容量固态硬盘,同时还搭载了 MX150 独立显卡,在品牌轻薄笔记本中,配置无疑达到了比较高的水准。
其它方面,联想小新Air13增强版采用全金属机身设计,做工表现不错,另外也具备很好的续航,良好的键盘手感、不错的屏幕素质等,是一款有着均衡表现的轻薄本,价位在同配置产品中适中,感兴趣的小伙伴也可以考虑下。
另外同等配置、售价的小米笔记本Pro也可以考虑下。
4、炫龙毁灭者KP2
炫龙毁灭者KP2是一款游戏本,主打高性价比,适合追求性能的游戏用户推荐。
炫龙毁灭者KP2游戏本搭载了桌面级Intel八代酷睿i5 8400六核处理器,8GB内存、256GB固态硬盘,另外还搭载了甜品级GTX1060游戏显卡,结合15.6英寸1080P 72% NTSC色域屏幕,可以畅玩目前市面上各类3D游戏,愉快吃鸡等。
5、小米游戏本
小米游戏本搭载Intel八代标压i5-8300H移动处理器、8G内存、1T+256G双硬盘以及GTX1060甜品级游戏显卡,性能出众,市场畅玩各类3D游戏大作。
此外,小米八代游戏本采用全金属机身设计,做工比较精致,此外散热模组比较强,性能释放非常出色,能够很好的将处理器和显卡的性能释放出来。不足的地方则在于,性能释放出色,使得风扇高转速下的噪音比较大。
扩展资料里需要注意的是,新的笔记本电脑电池充电应该不超过3次,电量应该不高会于3%。而且一般试机的时候经销商都不会插入电池,而是直接接在电源插座上。
电量太高或是充放电次数太多证明至少是被人用过的机器。Sony、IBM的电池管理软件还能看出来电池已经充过几次电了。另外也有一些专用的检测软件可以帮助我们检查,比如BatteryMon等,这个一定要当场检验以防后患。
百度百科-小米游戏本
百度百科-荣耀MagicBook
百度百科-联想小新Air13增强版
一般是要应用软件实现的,有一款show电子资讯发布系统,很强大,可以播室外全彩屏,图文视频都可以,最牛的是它可以多点联网同步实现,而且可以像电视一样编辑节目单什么,很好用!不过是收费的哦!!!
控制系统里面设置,有的有这个选项,勾上就可以循环,没有这个选项的一般都过调整文字的播放时间,使之循环播放,总之,基本上所有的控制系统都有这个功能。建议多多看下你显示屏供应商给你提供的使用说明书。
t;
#include "toppic.h"
unsigned int num=0;
void LED4_display(unsigned int i);
void PIC18F_High_isr(void);/*中断服务函数声明*/
void PIC18F_Low_isr(void);
#pragma code high_vector_section=0x8
/*高优先级中断响应时,会自动跳转到0x8处*/
/*利用预处理器指令#pragma code来指定后面的程序在ROM中的起始地址为0x08,*/
/*它是告诉连接器定位到特定的代码段,HIGH_INTERRUPT_VECTOR 是该特定代码段的段名*/
void high_vector (void)
{
_asm goto PIC18F_High_isr _endasm/*通过一条跳转指令(汇编指令),跳转到中断服务函数(中断服务程序)处*/
}
#pragma code low_vector_section=0x18
/*低优先级中断响应时,会自动跳转到0x18处*/
void low_vector (void)
{
_asm goto PIC18F_Low_isr _endasm
}
#pragma code
/*这条语句不是多余的,它是告诉连接器回到默认的代码段,*/
/*如果不加的话,连接器就会傻傻地把后面的代码紧跟着上面的代码一直放下去。*/
/*而18f4520.lkr文件里定义了向量区地址最多到0x29,所以如果没加此句通常会报错*/
/*---高优先级中断服务程序---*/
#pragma interrupt PIC18F_High_isr
/*利用预处理器指令#pragma interrupt来声明后面的函数是低优先级中断服务函数(中断服务程序),*/
/*注意:关键字是interrupt,和低优先级中断时不同*/
/*一旦指定后面的函数是低优先级中断服务程序,系统在进入该函数时,会自动保护现场,退出前自动恢复现场,*/
/*同时中断服务程序执行完毕后,会自动返回断点,*/
/*中断服务函数前必须加该语句*/
void PIC18F_High_isr (void)
{
TMR0H=0X67;/*TMR0置初值,先写高字节,后写低字节*/
TMR0L=0X69;
num++;
if (num>9999) num=0;
INTCONbits.TMR0IF=0;/*TMR0溢出标志清零*/
}
/*---低优先级中断服务程序---*/
#pragma interruptlow PIC18F_Low_isr
/*注意:关键字是interruptlow,和高优先级中断时不同*/
void PIC18F_Low_isr (void)
{
}
void main(void)/*主函数*/
{
RCONbits.IPEN=1; /*使能中断优先级*/
toppic_init();/*TOPPIC开发板初始化*/
T0CON=0b00000101;/*TMR0设置:停止运行、16位定时,预分频1:64*/
TMR0H=0X67;/*TMR0置初值,先写高字节,后写低字节*/
TMR0L=0X69;
INTCONbits.TMR0IE=1;/*允许Timer0溢出中断*/
T0CONbits.TMR0ON=1;/*启动TMR0*/
INTCONbits.GIE=1;/*开全局中断*/
while(1)
{
LED4_display(num);/*完成4位数码管的一次动态扫描*/
}
}
/*0-F共阴字形码表*/
const rom uchar DB[17]={0x3f , 0x06 , 0x5b , 0x4f , 0x66 ,
0x6d ,0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c ,
0x39 , 0x5e , 0x79 , 0x71 , 0x00};
void LED4_display(unsigned int i)
{
unsigned int a,bit1000,bit100,bit10,bit1;
a=i;
bit1000=a/1000;//提取千位
a=a%1000;
bit100=a/100;//提取百位
a=a%100;
bit10=a/10;//提取十位
bit1=a%10;//提取个位
COL4=0;
PORTD=DB[bit1];
COL1=1; //个位的位选
delayms(5);/*延时5mS*/
COL1=0;
PORTD=DB[bit10];
COL2=1; //十位的位选
delayms(5);/*延时5mS*/
COL2=0;
PORTD=DB[bit100];
COL3=1; //百位的位选
delayms(5);/*延时5mS*/
COL3=0;
PORTD=DB[bit1000];
COL4=1; //千位的位选
delayms(5);/*延时5mS*/
}
另外,虚机团上产品团购,超级便宜
LED显示屏作为户外大屏的领导者,显示性能以高清,色彩丰富,高亮度,维护简单等特点,受到市场青睐。而汉字是最常用文字之一。下面给大家展示LED显示屏汉字的设计过程及方案。
LED显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。它具有发光率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。并广泛的用于公交汽车、商店、体育场馆、车站、学校、银行、高速公路等公共场所的信息发布和广告宣传。LED显示屏发展较快,本文讲述了基于AT89C51单片机16×16LED汉字点阵滚动显示的基本原理、硬件组成与设计、程序编写与调试、Proteus软件仿真等基本环节和相关技术。
1 硬件电路组成及工作原理
本产品采用以AT89C51单片机为核心芯片的电路来实现,主要由AT89C51芯片、时钟电路、复位电路、列扫描驱动电路(74HCl54)、16×16LED点阵5部分组成,如图1所示。其中,AT89C51是一种带4kB闪烁可编程可擦除只读存储器(Falsh Programmable and Erasable Read OnlyMemory,FPEROM)的低电压、高性能CMOS型8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,工业标准的MCS一5l指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,能够进行1 000次写/擦循环,数据保留时间为10年。他是一种高效微控制器,为很多嵌人式控制系统提供了一种灵活性高且价廉的方案。因此,在智能化电子设计与制作过程中经常用到AT89C51芯片。时钟电路由AT89C5l的18,19脚的时钟端(XTAI l及XTAL2)以及12 MHz晶振X、电容C2、C3组成,采用片内振荡方式。复位电路采用简易的上电复位电路,主要由电阻R,R2,电容C,开关K组成,分别接至AT89C51的RST复位输入端。LED点阵显示屏采用16×16共256个象素的点阵,可通过万用表检测发光二极管的方法测试判断出该点阵的引脚分布。
我们把行列总线接在单片机的I/0口,然后把上面分析到的扫描代码送入总线,就可以得到显示的汉字了。但是若将LED点阵的行列端口全部直接接入89S5 1单片机,则需要使用32条I/0口,这样会造成I/0口资源的耗尽,系统也再无扩充的余地。因此,我们在实际应用中只是将LED点阵的16条行线直接接在P0口和P2口,至于列选扫描信号则是由4—16线译码器74HCl54来选择控制,这样一来列选控制只使用了单片机的4个I/O口,节约了很多I/O口资源,为单片机系统扩充使用功能提供了条件。考虑到P0口必需设置上拉电阻,我们采用4.7 kΩ排电阻作为上拉电阻。汉字扫描显示的基本过程是这样的:通电后由于电阻R,电容c1的作用,使单片机的RST复位脚电平先高后低,从而达到复位;之后,在C、C3、X以及单片机内部时钟电路的作用下,单片机89C51按照设定的程序在P0和P2接口输出与内部汉字对应的代码电平送至LED点阵的行选线(高电平驱动),同时在P1.1,P1.2,P1.3,P1.4接口输出列选扫描信号(低电平驱动),从而选中相应的象素LED发光,并利用人眼的视觉暂留特性合成整个汉字的显示。再改变取表地址实现汉字的滚动显示。
2 汉字的点阵显示原理及字库代码获取方法
我们以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。即国标汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个象素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在256象素范围内的任何图形。如查用8位的AT89C51单片机控制,由于单片机的总线由8位,一个字需要拆分为2个部分。
为了弄清楚汉字的点阵组成规律,首先通过列扫描方法获取汉字的代码。汉字可拆分为上部和下部,上部由8×16点阵组成,下部也由8×16点阵组成。本例通过列扫描方法首先显示左上角的第一列的上半部分,即第0列的P00~P07口,方向为P00到P07,显示汉字“我”时,为全灭,第一列的下半部分也为全灭。第二列的上半部分P06、点亮,由上往下排列,为:PO.0灭,PO.1灭,P0.2灭PO.3灭,PO.4灭,P0.5灭,P0.6亮,P0.7灭。即二进制00000010,转换为十六进制为02h。上半部第二列完成后,继续扫描下半部的第二列,为了接线的方便,我们仍设计成由上往下扫描,即从P27向P20方向扫描,从图3可以看到,这一列P23亮,即为00001000,十六进制则为08h。依照这个方法转向第三列、第四列,……,直至第十六列的扫描,一共扫描32个8位,可以得出汉字“我”的扫描代码为:
00H,02H,08H,06H,28H,02H,24H,22H
0FCH,3FH,24H,2 1H,20H,10H,3CH,08H
0E2H,07H,20H,0AH,0E4H,11H,0A8H,20H
20H,30H,00H,00H,00H,00H,00H,00H
由这个原理可以看出,无论LED显示屏显示何种字体或图像,都可以用这个方法来分析出他的扫描代码从而显示在屏幕上。上述方法虽然能够让我们弄清楚汉字点阵代码的获取过程,但是依靠人工方法获取汉字代码是一件非常繁琐的事情。为此,我们经常采用字库软件查找字符代码,软件打开后输入汉字,点“检取”,十六进制数据的汉字代码即可自动生成,把我们所需要的竖排数据复制到程序中即可。
可见,汉字点阵显示一般有点扫描、行扫描和列扫描3种。为了符合视觉暂留要求,点扫描方法的扫描频率必须大于16×64—1 024 Hz,周期小于1 ms即可。行扫描和列扫描方法的扫描频率必须大于16×8一128 Hz,周期小于7.8 ms即可,但是一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。
3 在Keil环境中程序设计与调试
软件程序主要由开始、初始化、主程序、字库组成。
在keil软件中完成程序编写、调试和编译之后,生成能让单片机运行的Hex文件。
4 运用Proteus软件仿真LED汉字显示屏
Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机外围电路或没有单片机参与的其它电路的工作情况,也能仿真单片机CPU的工作情况。因此在仿真和程序调试时,是从工程的角度直接看程序运行和电路工作的过程和结果。从某种意义上讲Proteus仿真,基本接近与工程应用。本次基于AT89C51单片机16×16LED汉字滚动显示屏的设计已运用Proteus软件仿真实现。
虽然本设计只使用了一块16×16LED点阵,电路简单,但是已经包涵了LED汉字滚动显示屏的电路基本原理、基本程序和Proteus软件仿真,只要扩展单片机的10接口,并增加一些LED点阵和相关芯片,就能设计出更大面积、更多花样的LED显示屏。因此本文对同类设计具有一定的理论和实践参考价值。
国内LED显示屏的汉字滚动是常见的播放方式之一,只要扩展单片机的IO接口,就可以增加LED显示屏的点阵,随着LED点阵的增加,显示屏的面积就可以自动增加。当设计汉字,需要针对显示屏的面积来做最合适的设计。
能把带字库12864液晶显示汉字了,程序如下,以供参考
显示三屏汉字,每屏显示三秒,来回循环显示
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define lcd_data P0
uchar code table1[]="钟山风雨起苍黄毛""百万雄师过大""亦将剩勇追穷寇东""不可沽名学霸王七";
uchar code table2[]="学习技术天天向上""努力学习才有提高""总结经验不断前进""电子设计一路领先";
uchar code table3[]="爱一个人难却还爱""交结朋友可路更宽""诚实守信加油努力""成功做人成功做事";
sbit lcden=P2^7;
sbit rd=P2^6;
sbit wr=P2^5;
sbit psb=P3^2; //并/串方式选择
void delay(uint z) //延迟函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--)
;
}
void write_com(uchar com) //写指令
{
rd=0;
wr=0;
lcden=0;
P0=com;
delay(5); //这个延迟函数必须要有,因为读数据时当E为高时,数据必须保持稳定
lcden=1;
lcden=0;
}
void write_date(uchar date) //写数据
{
rd=1;
wr=0;
lcden=0;
P0=date;
delay(5); //这个延迟必须要有
lcden=1;
lcden=0;;
}
void write_word(uchar *add) //用指针
{
uchar i;
write_com(0x80); //从第一行开始显示
for(i=0;i<64;i++) //一个汉字占两个字节
{
write_date(*add);
add++; //指针加,指向下一个字节
}
}
void init() //初始化
{
psb=1; //设置并口方式
write_com(0x 0c); //显示状态 整体显示开
write_com(0x01); //游标左移
write_com(0x30); //功能设定基本指令操作
write_com(0x10); //游标左移
}
void main()
{
init();
while(1)
{
write_word(table1);
delay(3000); //每一屏显示秒钟
write_word(table2);
delay(3000);
write_word(table3);
delay(3000);
}
}
我那时候用的是吴鉴鹰单片机开发板,各方面还是不错的。
从刚开始接触单片机,到现在已经有4年的时间了,在这期间学习和使用了51单片机、飞思卡尔单片机,LPC2138,PIC16F887等系列的单片机,每接触一款单片机,都会经历熟悉其基本开发,然后将其用于项目中的过程,对于如何学习一款单片机,自己做了如下的总结。
大家都知道,51单片机是最容易入门的,不仅因为其编程简单,更重要的是网上的资料非常丰富。所以一般学习单片机开发的都将51单片机作为入门开发的首选。我学习51单片机的时候是采用这样的一个步骤进行学习的:
第一步(熟悉的过程):买了一款51单片机开发板,然后就开始了我的学习之旅,刚开始的时候没有去看视频教程,而是对着一本实验教材进行学习,那本实验教材的名字记不清楚了,但是其内容就是围绕单片机的LED灯进行控制,将51单片机内部的各个功能部件全部都使用到了,这样就能使我在很短的时间内,通过控制LED灯的亮、灭熟悉了51单片机的内部的各种资源,这时对51单片机也就没有感到陌生了。所以,个人觉得,学习单片机,要从实验入手,先熟悉单片机再说,开发语言开始使用的是C语言。
第二步(进阶的过程):有了第一步的基础之后,接下来的便是进阶的过程,当时,我看的是郭天祥十天学会单片机的视频教程,因为这个教程从基础到复杂的编程慢慢深入,讲的比较的全面,而且也生动,所以那一阶段,也是我学习单片机进步最快的阶段,每次听课的时候,按照上面的实验,以及课堂上面调试程序时出现的一些问题,自己认真的在电脑上进行调试,并分析产生故障的原因,让我有了一定的开发基础。在看完了视频教程之后,后面又对基础的知识进行了下补习,主要是看单片机原理性的教材,因为有些细节性的东西还是要从教材上面获得。
第三步(项目实战的阶段):学习单片机的时候,虽然也编写了一些程序,但是那些都是一些很小的模块程序,并没有起到综合应用的目的,所以在这之后,我和另外一个学习硬件的同学一起组成了一个小的团队,进行项目实践开发,那时候,实验室的条件比价好,有很多的器件可以自己使用。所以,我们就设计了我们的第一个作品,基于单片机的液体点滴监控系统。做这个系统时,就将以前单片机所学的知识,做了一个综合的应用,包括有LCD1602控制,串口的控制等。
经过以上三个步骤的学习之后,对于51单片机的开发基本上就算入门了。而对于其他类型的单片机,如飞思卡尔单片机,LPC2148 ARM7单片机,PIC16F887等,虽然每个系列的功能不一样,但是最基本的编程思想还是一样的,不同的可能就是编译器,程序下载的软件等差别,所以有了51单片机的开发基础之后,学习其他单片机所采用的方法就是一个差异化的学习,学习各种单片机不同的地方,这样,就能很快的熟悉一款新的型号的单片机。
如在学习PIC16F887这个系列的单片机时,我首先做的工作不是去阅读数据手册,而是先拿着DEMO代码,在编译软件中编译、链接、生成HEX文件,然后将其下载到开发板中跑起来,这个过程主要就是学习其软件的基本操作,有了这个基础之后,就能自己进行编程、测试。之后就是熟悉其编程的模式,所谓其编程模式,就是寄存器的控制,中断程序的编写,熟悉了这个操作,也就能控制其他的功能模块了,如串口的控制、I2C硬件控制器的控制。这些基本的开发熟悉了之后,接下来便是学习差异的部分,例如PIC单片机C语言中,其堆栈深度不能超过8级,超过了之后,将会使得程序出现跑飞的现象。而且内存的分配完全要靠自己来控制,分成了4个BANK的数据,BANK0,BANK1,BANK2,BANK3 等。这些就是每个系列单片机所独有的一些东西,这些东西需要详细的了解,因为它们可能为你的编程带来很大的便利。
以上就是我学习单片机的总结,如果大家有更好的学习方法,希望大家能够提出来,一起讨论,共同进步。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。