基于C51单片机的键盘及LCD显示
- 格式:doc
- 大小:37.50 KB
- 文档页数:8
基于51单片机的数字LCD显示摘要:基于89 C51单片机的数字显示标题硬件实现和软件设计,阐述了它的工作原理。
介绍了研制过程中遇到的问题和解决办法。
通过实验和运行,那头性能可靠,满足设计指标参数,LCD显示具有广阔的市场前景,然后是成熟和普及。
在显示领域,LED显示装置系列微电子技术、计算机技术和信息处理于一体,以其色彩鲜艳、动态范围、高亮度、清晰度高,低电压操作,能耗低、使用寿命长、耐冲击、色彩艳丽、工作可靠、稳定的优势,成为新一代的显示媒体,目前,LED显示屏已被广泛应用于大型广场,商业广告、信息传播、新闻发布、证券交易,能满足不同环境的需要。
由单片机外围电路系统,显示电路、单片机、最小的系统构成。
该系统的安装是容易的检测、软件功能完善、工作可靠、精度高的优点。
论述了单片机控制的液晶数字显示系统,阐述了软件的基本原理,实现您的系统使用的设计及模拟和系统的应用领域。
关键词: 单片机AT89C51、液晶数字显示, 凯尔软件ⅰBased on 51 SCM LCD digital displayAbstract Based on the 89 C51 SCM's digital display header hardware realization and the software design, expounds its principle of work. Introduces the developing process of the multiplier encounter problems and solving methods. Through the test and operation, that the header reliable performance, to meet the design index parameters, and has a broad market prospect, and then the mature and popularity. As in the display field, LED display set series microelectronics technology, computer technology and information processing in the integral whole, with its colourful, dynamic range, high brightness, high-definition, low voltage operation, low consumption, long service life, impact resistance, gorgeous colour and stable and reliable work, become the advantage of a new generation of show media, at present, the LED display has been widely used in large square, commercial advertising, information dissemination, press conference, securities trading, can satisfy the need of different environment. By single-chip microcomputer system, peripheral circuit and single-chip microcomputer and show circuit smallest system formed. This system is easy to install detection, software function is perfect, reliable operation, the advantages of high accuracy.This paper discusses the single-chip microcomputer control by the LCD digital display system, and expounds the basic principle of the Keil software to realize the system using design and simulation and the system applied fields.Keywords: single-chip microcomputer AT89C51, LCD digital display, Keil softwareii目录引言 (1)第一章初识系统 (2)1.1设计过程及工艺要求 (2)1.2设计的重点与难点 (2)第二章系统的设计 (3)2.1系统设计 (3)2.2芯片AT89C51介绍 (3)2.3 AT89S51单片机特性 (6)2.4 LCD显示屏介绍 (6)2.4.1 LCD的定义及作用 (6)2.4.2 LCD显示器的工作原理及主要参数 (6)2.4.3 LCD的分类 (10)2.4.4 LCD的特点 (10)第三章系统调试 (11)3.1 硬件的设计 (11)3.2原理分析 (13)3.3程序的调试与运行 (14)3.3.1 HEX文件的生成 (14)3.3.2 调试与仿真 (14)结论 (15)致谢 (16)参考文献 (17)iii引言目前,控制仪表经常使用的显示面板主要有LCD和LED两种类型,其中LCD比较美观,省电,显示方式灵活,但是价格比较昂贵,最重要的是它的醒目程度较低,可视角度也比较小;而LED数码管虽然功耗较大,但它亮度高,用作工业现场指示时更醒目,而且价格低。
普中51单⽚机按键-数码管显⽰基于普中单⽚机按键-数码管显⽰简介1.硬件部分普中单⽚机开发板 数码管 独⽴按键2.软件部分keil软件硬件部分普中单⽚机开发板数码管独⽴按键(这些都是开发板的最基本的配置)软件部分#include "reg52.h" //此⽂件中定义了单⽚机的⼀些特殊功能寄存器typedef unsigned int u16; //对数据类型进⾏声明定义typedef unsigned char u8;/*端⼝引脚定义*/sbit LSA=P2^2;sbit LSB=P2^3;sbit LSC=P2^4;sbit KEY1 = P3^0;sbit KEY2 = P3^1;/*变量定义*/int number;unsigned char KeyNum=0; //被触发的按键编号unsigned char KeyLock1=0;unsigned char KeyLock2=0;unsigned int cnt;/*函数声明部分*/void KEY_Scan();void KEY_Action();void Light_Scan();void delay(u16 i);void Display();void Time0Iint();/*数码管码表*/unsigned char code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//共阴数码管显⽰0~F的值unsigned char LightBuf[]={0xFF,0xFF,0xFF,0xFF,0XFF};/******************************************************************************** 函数名 : delay* 函数功能 : 延时函数,i=1时,⼤约延时10us*******************************************************************************/void delay(u16 i){while(i--);}/******************************************************************************** 函数名 : Display* 函数功能 : 数码管显⽰部分*******************************************************************************/void Display(){LightBuf[0]=smgduan[number%10];LightBuf[1]=smgduan[number/10%10];LightBuf[2]=smgduan[number/100%10];LightBuf[3]=smgduan[number/1000%10];LightBuf[4]=smgduan[number/10000%10];}/******************************************************************************** 函数名 : Light_Scan()* 函数功能 : 数码管扫描函数,选择显⽰的位置*******************************************************************************/void Light_Scan(){u8 i;for(i=0;i<8;i++){switch(i) //位选,选择点亮的数码管,{case(0):LSA=0;LSB=0;LSC=0;P0=LightBuf[4];break;//显⽰第0位case(1):LSA=1;LSB=0;LSC=0;P0=LightBuf[3];break;//显⽰第1位case(2):LSA=0;LSB=1;LSC=0;P0=LightBuf[2];break;//显⽰第2位case(3):LSA=1;LSB=1;LSC=0;P0=LightBuf[1];break;//显⽰第3位case(4):LSA=0;LSB=0;LSC=1;P0=LightBuf[0];break;//显⽰第4位default: break;}delay(100); //间隔⼀段时间扫描P0=0x00;//消隐}}/******************************************************************************* * 函数名 : KEY_Scan()* 函数功能 : 按键扫描函数*******************************************************************************/ void KEY_Scan(){static unsigned char cnt1 = 0xFF;static unsigned char cnt2 = 0xFF;cnt1 =(cnt1<<1)|KEY1;cnt2 =(cnt2<<1)|KEY2;if(cnt1 != 0x00){KeyLock1 = 0;}else if(KeyLock1==0){KeyNum = 1;KeyLock1 = 1;}if(cnt2 != 0x00){KeyLock2 = 0;}else if(KeyLock2==0){KeyNum = 2;KeyLock2 = 1;}}/******************************************************************************* * 函数名 : KEY_Action()* 函数功能 : 按键执⾏操作部分*******************************************************************************/ void KEY_Action(){switch(KeyNum){case 1:number++; KeyNum = 0; break;case 2:number--; KeyNum = 0; break;default:break;}}/******************************************************************************* * 函数名 :Time0Iint* 函数功能 :定时器0配置,定时器初始化函数*******************************************************************************/ void Time0Iint(){EA=1;TH0 = (65536-2000)/256;//定时2msTL0 = (65536-2000)%256;TMOD &= 0xFC;TMOD = 0x01;ET0 = 1;TR0 = 1;}/******************************************************************************* * 函数名 :void InterruptT0() interrupt 1* 函数功能 : 定时器0中断执⾏部分*******************************************************************************/ void InterruptT0() interrupt 1{TH0 = (65536-2000)/256;//定时2msTL0 = (65536-2000)%256;Light_Scan();KEY_Scan();}/******************************************************************************* * 函数名 : main* 函数功能 : 主函数* 输⼊ : ⽆* 输出 : ⽆*******************************************************************************/ void main(){Time0Iint();while(1){Display();KEY_Action();}}参考资料。
键盘与显示方案
一、简介
键盘与显示实验板有三种显示方式分别为LED显示、数码管显示、LCD1602显示,按键有三种方式分别是直扩按键、164外扩2*8扫描按键、红外遥控,通过硬件设计、制作,软件编程仿真,能够让我们深入理解与学习基本的显示与按键输入,为以后单片机系统的设计打下坚实基础
二、方案
1、方案简介
(1)LED显示简单实用可以用来玩各种花样流水灯,大量的LED灯可以显示字
符、汉字等各种符号,由于本实验板i/o口有限,故在P1口连接八个LED,制作一个简单的跑马灯
(2)数码管显示为静态显示,用两片164外扩(由于i/o较少)protuse仿真连接图如下(数码管为共阳极)
(3)、LCD1602为液晶显示带有字库,可以方便的显示数字、字符、一些特殊符号,故本实验板用1602做一个菜单显示和一个时钟系统,从中熟悉和理解1602的使用,由于1602显示速度较慢故采用数据从P0口并行输入,仿真连接图如下所示
(4)、按键2*8扫描用164扩展,硬件连接如图
二、原理图
1、硬件连接图(由于连线复杂故大多采用标号连接)
1、PCB图
2、软件流程图
(1)、跑马灯(八个LED+四个直扩按键)
(2)、键值显示0~16(数码管+2*8扫描)
(3)、时钟系统(1602+四个直扩按键)
(4)、红外遥控(模拟四个直扩按键)
(5)、菜单显示(1602+三个个直扩)
三、元件列表
名称规格数量备注
89C51 1
LCD1602 1
数码管 2 共阳
74HC164 3
晶振12MHZ 1
按键开关21
电源开关 1
发光二极管 2.2V/1MA 8 白色蓝光电阻若干
电位器1K 1
电容若干。
51单片机之LCD1602液晶显示与4×4矩阵键盘一、要求:液晶显示器第一行显示“Hello World!”;第二行显示键值和按键次数,且按键时间大于1.5秒时,识别为2次按键。
单片机型号:STC--12C5A16AD二、程序代码:#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intunsigned char code dis[]={"Hello World!"};unsigned char code dis1[]={"KEY:"};unsigned char code dis2[]={"TIME:"};ucharkey_val[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G'};uchar code key_code[]={0x77,0x7B,0x7D,0x7E,0xB7,0xBB,0xBD,0xBE,0xD7,0x DB,0xDD,0xDE,0xE7,0xEB,0xED,0xEE};uchar key,x,count;uint time=0;sbit U3_DS=P1^5;sbit U3_STCP=P1^4;sbit U3_SHCP=P1^3;sbit U4_DS=P1^2;sbit U4_STCP=P1^1;sbit U4_SHCP=P1^0;void delay(unsigned int n);//74HC595void U3_595(unsigned char num){unsigned char count1;for (count1=0;count1<=7;count1++){if ((num&0x80)==0x80)//最高位为1,则向SDATA_595发送1 {U3_DS=1;}else{U3_DS=0;}U3_SHCP=0;U3_SHCP=1;num<<=1;//左移}U3_STCP=0;U3_STCP=1;}void U4_595(unsigned char num)//发送指令到RS,RW,E(4,5,6位){unsigned char count2;for (count2=0;count2<=7;count2++){if((num&0x80)==0x80){U4_DS=1;}else{U4_DS=0;}U4_SHCP=0;U4_SHCP=1;num<<=1;}U4_STCP=0;U4_STCP=1;}//LCD延时子程序 n=1时延时1ms void delay(unsigned int n){unsigned int i;for(;n>0;n--)for(i=0;i<255;i++)_nop_();}//写指令到LCDvoid wcmd(unsigned char cmd) {U4_595(0x00);U3_595(cmd);U4_595(0x40);U4_595(0x00);}//写要显示的数据到LCDvoid wdat(unsigned char dat) {U4_595(0x10);U3_595(dat);U4_595(0x50);U4_595(0x10);}//初始化LCDvoid init(){wcmd(0x38);//设置8位总线双行显示,5*7点阵delay(20);wcmd(0x0C);//开显示,开光标,不闪烁delay(20);wcmd(0x06);//读写字符时地址加1delay(20);wcmd(0x01);//清屏delay(20);wcmd(0x80+2);for(x=0;x<12;x++) //第一行显示hello world! wdat(dis[x]);delay(20);wcmd(0xC2);for(x=0;x<4;x++)//第二行显示按键和次数wdat(dis1[x]);wcmd(0xC8);for(x=0;x<5;x++)wdat(dis2[x]);TMOD=0x01;//中断设置TH0=0x3C;//定时初值设置TL0=0xB0;EA=1;//开中断ET0=1;//定时器0中断允许}//键盘扫描子程序uchar keyscan(void){unsigned char hang,lie,keycode;char i;P0=0xf0;hang=P0;if((hang&0xf0)!=0xf0) //有键按下?{delay(50); //去抖动hang=P0;if((hang&0xf0)!=0xf0) //有键按下{P0=0x0f;lie=P0;keycode=hang|lie; //获得键码for(i=15;i>=0;i--){if(keycode==key_code[i]) //查找键码{key=i;return(key);}}}}else{P0=0xff; //按键弹起则关闭定时器TR0=0;count=0;return (16);}}void keydown() //判断按键按下和显示程序{P0=0xf0;if((P0&0xf0)!=0xf0){TR0=1; //开启定时器while(P0!=0xf0)keyscan(); //获得键码if(count<30){time++;count=0;}else //超过1.5秒计数2次{time+=2;count=0;}wcmd(0xC6); //设置键值显示位置wdat(key_val[16-key]);wcmd(0xCD); //设置次数显示位置if(time<10)wdat(0x30+time);if(time>9&&time<100){wdat(0x30+time/10);wdat(0x30+time%10);}if(time>99&&time<1000){wdat(0x30+time/100);wdat(0x30+time/10-(time/100)*10); wdat(0x30+time%10);}}}//中断函数void timer() interrupt 1{TH0=0x3C;TL0=0xB0;count++;}void main(void){init();for(;;){keydown();}}。
基于51单片机的液晶显示电子琴设计摘要单片机是一种集成电路芯片,是把中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口、中断系统和定时器/计数器等集成到一块硅片上构成一个小而完善的微型计算机系统。
单片机具有体积小、功耗低、速度快、控制能力强、扩展灵活和使用方便等优点,已渗透到我们生活的各个领域,广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制的领域。
音乐现在也成了人们生活的一部分,生活的压力,学习的压力,工作的压力,一切的不顺利可以在音乐声中放松下来,让人们心情舒畅,听着音乐放松心情,让我们提高生活质量。
本次课程设计是基于51单片机的简易电子琴系统设计。
电子琴是现代电子科技与音乐结合的产物,是一种键盘乐器。
本系统以STC89C52为主芯片,4*4矩阵键盘、1602液晶显示屏、扬声器等电路组成,完成显示输入信息、播放相应音符等基本功能。
关键词:STC89C52;LCD1602;电子琴系统Design Of Liquid Crystal Display Keyboard Based On51Single-chip MicrocomputerABSTRACTMCU is an integrated circuit chip,is the CPU,RAM,ROM,I/O interface, interrupt system and timer/counter,etc.integrated into a silicon chip to form a small and perfect micro-computer system.SCM has a small size,low power consumption,speed,control,strong,flexible and easy to expand and other advantages,has infiltrated all areas of our lives,widely used in instrumen -tation,household appliances,medical equipment,aerospace,special equipment of the intelligent management and process control areas.Music is now also a part of people's lives,the pressure of life,the pressure of learning,work pressure,everything is not smooth can relax in the music,let people feel comfortable,listening to music relax,let us improve the quality of life.This course design is based on the 51 single-chip simple keyboard system design.Keyboard is a combination of modern electronic technology and music products,is a keyboard instrument.This system is mainly composed of STC89C52 chip, 4*4 matrix keyboard,1602 LCD screen,speaker and other circuits to complete the display input information,play the corresponding notes and other basic functions.Keyword: STC89C52, LCD1602, keyboard system目录第一章引言 ........................................................................................................... - 1 -1.1 课题设计目的及其意义 ......................................................................... - 1 -1.2 课题设计的任务与主要内容 ................................................................. - 2 - 第二章系统总体方案设计.................................................................................. - 3 -2.1 系统设计要求 ......................................................................................... - 3 -2.2 系统电路框图 ......................................................................................... - 3 - 第三章硬件设计.................................................................................................. - 5 -3.1 STC89C52芯片 ....................................................................................... - 5 -3.2 1602LCD .................................................................................................. - 6 -3.3 矩阵键盘 ................................................................................................. - 7 -3.4 振荡电路 ................................................................................................. - 8 -3.5 复位电路 ................................................................................................. - 9 -3.6 扬声器模块 ........................................................................................... - 10 - 第四章软件设计与调试.................................................................................... - 11 -4.1 使用AltiumDesigner绘制电路图........................................................ - 11 -4.2 程序调试 ............................................................................................... - 11 - 第五章总结与致谢............................................................................................ - 13 -5.1 总结 ....................................................................................................... - 13 -5.2 致谢 ....................................................................................................... - 14 - 参考文献................................................................................................................ - 15 - 附录........................................................................................................................ - 17 - 附录A 实物图............................................................................................. - 17 - 附录B 程序代码......................................................................................... - 18 -第一章引言1.1 课题设计目的及其意义单片机(单片微型计算机)是大规模集成电路技术发展的产物,具有高性能、高速度、体积小、价格低廉、稳定可靠等特点。
摘要本课题以单片机为基础,以C语言为编程语言,以STC12C5608AD单片机芯片为核心。
本智能车显示系统分为手持端和服务端,手持端负责解析用户的操作,发送信息到服务端,并用LCD1602以友好的界面显示,显示内容涉及时间,当前车速,当前车子方向及当前温度等。
服务端负责响应手持端的消息,执行指定操作,如控制车子方向,速度等。
本设计对智能车进行仿真,对其速度,方向等进行模拟,然后进行本次设计的研制。
关键词STC12C5608AD;智能车;液晶显示ABSTRACT This topic to micro-based programming language C language to STC12C5608AD micro chip as the core. The smart car system is divided into the operation of the handheld client and server, the handheld terminal is responsible for parsing user to send a message to the server, and use Lcd1602 friendly interface, the display with respect to time, the current speed, the current direction of the car and the current temperature. . The server is responsible for responding to the handheld end of the message, perform the specified operation, such as control car direction, speed. The design of intelligent vehicle simulation, simulation of its speed, direction, and then proceed to the development of the design.KEY WORDS STC12C5608AD; Smart car;LCD目录1前言 (1)2系统总体设计 (3)2.1 设计思路 (3)2.2 主控芯片的选取 (4)2.2.1 单片机的特点 (4)3硬件电路设计 (7)3.1结构框图 (7)3.2服务端电路 (8)3.2.1驱动电路 (8)3.2.2传输电路 (9)3.2.3基础外围电路 (9)3.2.4速度模块 (11)3.3手持端模块 (12)3.3.1时钟模块 (12)3.3.2温度模块 (14)3.3.3显示模块 (15)3.3.4按键控制模块 (15)4软件系统设计方案 (16)4.1 手持端系统工作流程图: (16)4.2手持端系统代码分析: (17)4.3 服务端系统工作流程图: (22)4.3.1服务端系统代码分析: (23)5系统测试分析及改进 (26)5.1手持端测试分析: (26)5.1.1时钟模块测试: (26)5.1.2 Lcd1602显示模块测试: (26)5.1.3 NRF24L01无线传输模块测试: (26)5.1.4 DS18B20温度模块测试: (27)5.1.5按键扫描模块测试: (27)5.2 服务端测试分析: (27)5.2.1 PWM控速模块测试: (27)5.2.3 NRF24L01无线传输模块测试: (27)5.2.2 L298N电机驱动模块测试: (28)6总结 (29)参考文献 (30)致谢 (31)1前言智能作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途。
基于C51单⽚机的智能计算器、矩阵键盘、lcd1602⽬录1绪论 (1)1.1选题背景 (1)1.2起源与发展 (1)1.3研究的⽬的和意义 (2)2项⽬总体设计框架 (2)2.1芯⽚STC89C52 (2)2.2采⽤矩阵式键盘作为输⼊模块 (2)2.3显⽰模块 (3)2.4硬件资源分配 (3)3计算器硬件设计 (4)3.1系统组成及硬件框图 (4)3.2元器件简介 (4)3.2.1 STC89C52的特点 (4)3.2.2 LCD1602 液晶显⽰屏 (5)4系统电路设计 (6)4.1键盘电路设计 (7)4.2显⽰电路设计 (8)4.3其他电路部分 (8)4.3.1 蜂鸣器模块 (8)4.3.2 电源模块 (9)4.3.3 单⽚机最⼩系统 (9)5计算器软件设计 (10)5.1整体设计结构 (10)5.2液晶屏读写函数 (10)5.2.1 初始化函数 (10)5.2.2 写命令函数 (11)5.2.3 写数据函数 (11)5.3接收矩阵键盘输⼊函数 (12)5.4调试和运⾏程序 (13)5.4.1 Proteus仿真运⾏程序 (13)5.4.2 在实验箱上运⾏程序 (13)6总结 (14)基于51单⽚机的简易计算器摘要:近⼏年单⽚机技术的发展很快,其中,电⼦产品的更新速度迅猛。
计算器是⽇常⽣活中⽐较常见的电⼦产品之⼀。
如何才能使计算器技术更加的成熟,充分利⽤已有的硬件和软件条件,设计出更出⾊的计算器。
本设计是以STC89C52单⽚机为核⼼的计算器模拟系统设计,输⼊采⽤4*4矩阵键盘,可以进⾏加、减、乘、除带符号数字运算(六位整数或两位⼩数点点),并在液晶显⽰屏LCD1602上静态显⽰操作过程及结果。
对字符液晶显⽰模块的⼯作原理,如初始化、清屏、显⽰、调⽤及外特性有较清楚的认识,并会使⽤LCD(液晶显⽰模块)实现计算结果的显⽰;掌握液晶显⽰模块的驱动和编程,设计LCD和单⽚机的接⼝电路,以及利⽤单⽚机对液晶显⽰模块的驱动和操作;在充分分析内部逻辑的概念,进⾏软件和调试,学会使⽤,并能够以其为平台设计出具有四则运算能⼒简易计算器的硬件电路和软件程序。
第6章MCS-51系列单片机键盘/显示的C51编程 (2)6.1 七段数码显示器的C51编程 (2)6.1.1 7段LED显示器基础知识 (2)6.1.2 七段数码静态显示的C51编程 (3)6.1.3 七段数码动态显示的C51编程 (6)6.1.4 串行口控制的LED显示的C51编程 (10)6.2 键盘接口的C51编程 (11)6.2.1 键盘的基础知识 (11)6.2.2 独立式键盘接口的C51编程 (12)6.2.3 矩阵键盘的C51编程 (14)6.3 点阵LED显示器接口的C51编程 (20)6.3.1 点阵LED显示器基础知识 (20)6.3.2 一个5×7点阵字符显示的C51编程 (21)6.3.3 一个8×8点阵字符串显示的C51编程 (22)6.3.4 两个8×8点阵字符串显示的C51编程 (24)6.4 液晶显示器的C51编程 (26)6.4.1 LCD基础知识 (26)6.4.2 字符型LCD1602应用的C51编程 (27)本章小结 (36)习题 (37)第6章MCS-51系列单片机键盘/显示的C51编程在单片机应用系统中,除了完成基本的功能外,另一个最重要的任务是设计优秀的人机交互接口。
人机交互接口用来实现控制命令及数据的输入,并且将系统运行信息反映给操作者。
系统运行信息的反映是通过各种显示器来完成的,主要包括八段数码显示、液晶显示、点阵显示等;控制命令及数据的输入时通过键盘来实现的。
本章主要介绍键盘及显示的C51编程技术。
6.1 七段数码显示器的C51编程在单片机应用系统中,七段LED显示器的应用非常广泛。
6.1.1 七段LED显示器基础知识1.结构与原理通常的七段LED显示器中有8个发光二极管,管脚如图6-1(a)所示。
a、b、c、d、e、f、g、dp称为LED的段,公共端com称为LED的位。
从管脚a~dp输入不同的8位二进制数,可显示不同的数字或字符。