单片机 数字显示

合集下载

51单片机数码管0到99循环程序代码

51单片机数码管0到99循环程序代码

51单片机数码管0到99循环程序代码1. 概述在嵌入式系统的开发中,数码管是一种常见的输出设备,可以用于显示数字、字符等信息。

而51单片机是一种广泛应用的微控制器,其结合了强大的功能和灵活的应用,能够很好地驱动数码管。

本文将介绍如何使用51单片机编写一个循环显示0到99的程序,通过数码管输出这些数字。

2. 电路连接我们需要连接51单片机和数码管。

通常我们使用的是共阴数码管,其连接方式如下:- VCC连接到5V电源- GND连接到GND- DIO(数据输入/输出)连接到51单片机的IO口3. 程序设计下面是一个简单的C语言程序设计,用于控制数码管显示0到99的数字。

```c#include <reg51.h>sbit DIO = P2^0; // 数码管数据输入/输出sbit CL = P2^1; // 数码管片选信号unsigned char code numCode[10] = { 0xc0, // 00xf9, // 10xa4, // 20xb0, // 30x99, // 40x92, // 50x82, // 60xf8, // 70x80, // 80x90 // 9};//延时函数void delay(unsigned int i) {unsigned int j,k;for (j=i;j>0;j--)for(k=110;k>0;k--);}void display(unsigned char num) { CL = 1; //关闭片选DIO = numCode[num / 10]; //十位 delay(2);CL = 0;DIO = 0xff; //消隐delay(2);CL = 1; //关闭片选DIO = numCode[num 10]; //个位 delay(2);CL = 0;DIO = 0xff; //消隐delay(2);}void m本人n() {unsigned char i,j;while(1) {for(i=0;i<10;i++) {for(j=0;j<10;j++) {display(i * 10 + j);}}}}```4. 程序说明- 首先定义了数码管的连接引脚,以及0~9的显示编码。

C51单片机数码管

C51单片机数码管

引言概述:在嵌入式系统中,C51单片机是一种常用的微控制器,其广泛应用于各种数字显示设备中。

本文将深入探讨C51单片机数码管的二进制数码显示原理及应用,以及其与其他单元的连接方式和驱动方法。

正文内容:一、C51单片机数码管的工作原理1.二进制数码显示的基本原理2.C51单片机与数码管的连接方式3.C51单片机的引脚功能与数码管的位选和段选控制二、C51单片机数码管的编程方法1.C语言编程实现数码管的静态显示a.初始化数码管的引脚b.编写静态显示函数以及显示位数的控制c.数字转换和位选控制方法的实现2.C语言编程实现数码管的动态显示a.初始化数码管的引脚b.编写动态显示函数以及显示位数和刷新频率的控制c.使用定时器中断实现动态显示的驱动方法三、C51单片机数码管的扩展和复用1.使用74HC595芯片扩展数码管的显示位数a.74HC595芯片的功能和引脚配置b.C51单片机与74HC595的连接方式c.编程实现数码管的扩展方法2.同时驱动多个数码管的方法a.使用位选和段选控制进行扫描显示b.C51单片机与多个数码管的连接方式c.编程实现多个数码管的驱动方法四、C51单片机数码管的应用案例1.实现时钟的数码管显示功能a.数字时钟的硬件设计b.C51单片机编写时钟程序c.数码管显示时钟的驱动方法2.实现计数器的数码管显示功能a.计数器的硬件设计b.C51单片机编写计数器程序c.数码管显示计数器数值的驱动方法五、C51单片机数码管的注意事项和优化方法1.数码管亮度控制的方法2.误差校正和灵敏度调节3.多个数码管时序同步和抗干扰处理4.优化显示算法和降低功耗的方法总结:本文详细介绍了C51单片机数码管的设计原理、连接方法、驱动方式以及应用案例。

通过对每个大点的详细阐述,读者可以了解如何编写C语言程序来实现数码管的静态和动态显示,如何扩展和复用数码管,以及数码管的注意事项和优化方法。

希望本文对初学者和嵌入式开发爱好者提供了一些有用的指导和参考。

单片机 科学计数法显示

单片机 科学计数法显示

单片机上显示科学计数法的方法,可以采用以下步骤:
1.将需要显示的数字转换成浮点数类型。

2.使用printf函数,以科学计数法的格式输出这个浮点数。

例如,如果需要显示一个8位的数字,并且想把小数点也点亮的话,那么可以将8个阳极全部送高电平,如果想要显示0的话,除了第“g, dp”这两位送低电平外,其余引脚全部都送高电平,这样它就显示出0字了。

需要注意的是,如果使用共阴数码管,那么在连接单片机时可能需要加驱动电路,可以用上拉电阻的方法或使用专门的数码管驱动芯片,比如74HC573、74HC245等,其输出电流较大,电路接口简单。

以上信息仅供参考,建议咨询专业的技术人员以获得权威解答。

基于单片机的6位led显示设计报告

基于单片机的6位led显示设计报告

设计题目:用单片机控制6位数字显示摘要:单片微型计算机(single chip microcomputer)简称单片机,它是为各类专用控制器而设计的通用或专用微型计算机系统,高密度集成了普通计算机微处理器,一定容量的RAM和ROM以及输入/输出接口,定时器等电路于一块芯片上构成的。

单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。

单片机的优点是体积小、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。

在现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字,汉字显示屏也广泛应用到汽车报站器,广告屏等。

所以研究LED显示有实用的意义。

关键词:单片机、AT89C51、74HC245、驱动电路、LED数码管论文提纲:收集相关资料并仔细研读和思考。

对设计方案进行分析,通过相关数学推导和计算,确定相关元器件的参数和型号。

硬件电路的设计与调试。

整体连调及测试性能。

整理资料,编写设计论文。

ξ 1.1设计目的:1、进一步学习、掌握MCS-51系列单片机指令系统2、掌握单片机循环程序、子程序的设计方法3、掌握单片机与数码管的接口电路及显示程序设计4、了解单片机查表程序的设计方法ξ 1.2设计内容:利用单片机控制七段LED数码管显示“654321”6位数字ξ 1.3设计的组成:1、(1)晶体振荡器2、复位电路3、数码管数码管通常有发光二极管(LED)数码管和液晶(LCD)数码管,本设计提供的为LED数码管4、控制部分ξ 1.4设计的工作原理(1):输入/输出口线P0.0-P0.7 P0口8位双向口线P1.0-P1.7 P1口8位双向口线P2.0-P2.7 P2口8位双向口线P3.0-P3.7 P3口8位双向口本设计用到的是P0口和P2口(2):地址锁存控制信号ALE在系统扩展时,ALE用于控制把P0口输出地低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。

用单片机AT89C51设计一个2位的LED数码显示作为“秒表”—单片机课程设计

用单片机AT89C51设计一个2位的LED数码显示作为“秒表”—单片机课程设计

目录一、设计题目和要求: (2)二、设计目的: (2)三、设计内容: (3)四、课程设计心得体会 (25)五、参考文献 (26)六、课程设计指导教师评审标准及成绩评定 (27)附件1:秒表原理图(实际接线图) (28)附件2:仿真图1 (30)附件3:仿真图2 (31)一、设计题目和要求:题目三:秒表应用AT89C51的定时器设计一个2位的LED数码显示作为“秒表”:显示时间为00~99s,每秒自动加1,设计一个“开始”键,按下“开始”键秒表开始计时。

设计一个“复位”键,按下“复位”键后,秒表从0开始计时。

任务安排:李座负责绘制电路原理图;梁宗林负责收集资料及电子版整理;付忠林负责程序和仿真。

二、设计目的:1.进一步掌握AT89C51单片机的结构和工作原理;2.掌握单片机的接口技术及外围芯片的工作原理及控制方法;3.进一步掌握单片机程序编写及程序调试过程,掌握模块化程序设计方法;4.掌握PROTEUS仿真软件的使用方法;5.掌握LED数码管原理及使用方法。

6.掌握定时器、外部中断的设置和编程原理。

7.通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。

8.该课程设计通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、复位功能,并同时可以用数码管显示。

三、设计内容:了解8051芯片的的工作原理和工作方式,使用该芯片对LED数码管进行显示控制,实现用单片机的端口控制数码管,显示分、秒,并能用按钮实现秒表起动、停止、清零功能,精确到1秒。

AT89C51单片机的主要工作特性:·内含4KB的FLASH存储器,擦写次数1000次;·内含28字节的RAM;·具有32根可编程I/O线;·具有2个16位可编程定时器;·具有6个中断源、5个中断矢量、2级优先权的中断结构;·具有1个全双工的可编程串行通信接口;·具有一个数据指针DPTR;·两种低功耗工作模式,即空闲模式和掉电模式;·具有可编程的3级程序锁定定位;AT89C51的工作电源电压为5(1±0.2)V且典型值为5V,最高工作频率为24MHz.AT89C51各部分的组成及功能:振荡器和时钟电路数据存储器128字节程序存储器14KBCPU 两个16位定时器计数器中断控制总线扩展控制器并行可编程I/O口可编程串行口内部总线外部中断扩展控制P0 P1 P2 P3 RXD TXD1.单片机的中央处理器(CPU )是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。

stm共阳数码管动态显示0~9999对应的代码

stm共阳数码管动态显示0~9999对应的代码

stm共阳数码管动态显示0~9999对应的代码文章主题:STM共阳数码管动态显示0~9999对应的代码在嵌入式系统开发领域,常常会使用到数码管来显示数字信息。

而对于STM32系列单片机来说,共阳数码管是一种常用的显示设备。

本文将以 STM 单片机为例,介绍如何动态显示 0 到 9999 对应的代码,并讨论其实现原理。

一、STM32单片机简介STM32 是意法半导体推出的 32 位 Flash 型存储器嵌入式微控制器产品系列。

它广泛应用于工业控制、消费类电子、电源管理、医疗保健和自动控制等领域。

STM32 单片机具有丰富的外设和强大的性能,因此备受开发者的青睐。

二、共阳数码管原理共阳数码管是一种常见的 LED 数码显示器件。

在共阳数码管中,所有的 LED 二极管的阳脚都连接在一起,而阴极则分别连接到对应的引脚上。

当将对应的引脚置为低电平时,LED 点亮,从而显示出相应的数字或字母。

三、动态显示 0 到 9999 对应的代码在 STM32 单片机中,动态显示 0 到 9999 对应的代码需要通过定时器和中断的方式来实现。

在初始化阶段,需要设置定时器的时钟周期和中断频率。

然后在中断服务函数中,根据需要显示的数字进行位选和段选操作,以便在共阳数码管上显示出对应的数字。

具体代码如下:```#include "stm32f10x.h"uint8_t dis_buf[4]; // 数码管显示缓存void TIM_Configuration(void){// 设置定时器的时钟周期和中断频率// ...}void NVIC_Configuration(void){// 设置中断优先级和使能// ...}void GPIO_Configuration(void) {// 设置数码管引脚对应 STM32 的引脚 // ...}void Number_Display(uint16_t num) {// 数字分解dis_buf[0] = num / 1000;dis_buf[1] = (num % 1000) / 100; dis_buf[2] = (num % 100) / 10;dis_buf[3] = num % 10;// 依次显示// ...}void TIM2_IRQHandler(void){// 中断服务函数,动态显示数字// ...}int main(void){// 初始化// ...while (1){// 主循环// ...}}```四、个人观点和理解动态显示共阳数码管需要较为复杂的逻辑控制和定时器中断处理,但通过合适的代码编写和优化,可以实现可靠、高效的数字显示效果。

单片机数码管动态显示1234-9999

单片机数码管动态显示1234-9999

一、实验目的1.掌握Keil软件的基本使用2.学习和掌握C语言编写程序的一般格式3.了解数码管与单片机的接口方法;4.了解数码管性能及动态显示编程方法;5.了解并掌握单片机系统中定时器中断控制的基本方法;二、实验内容用定时器中断实现四位数码管动态显示从1234-9999。

三、实验原理3.1基础知识介绍A.数码管是LED的升级,每位数码管里面继承了8个LED,点亮数码管就是点亮数码管里面的LED。

要在数码管上面显示相应的值,就是点亮不同位置的LED。

数码管有共阴和共阳两种,共阴数码管公共端是所有LED的负极连接在一起,相反共阳数码管公共端是所有LED的正极连接在一起。

一般公共端称作“位选”,控制每一个LED的称为“段选”。

数码管主要是利用视觉暂留的效果,通过快速循环点亮数码管方式,将数据呈现出来。

数码管如图1.2所示1.2数码管1.3数码管实物图/B.定时器定时器也可看作是对计算机机器周期的计数器。

因为每个机器周期包含12个振荡周期,故每一个机器周期定时器加1,可以把输入的时钟脉冲看成机器周期信号。

故其频率为晶振频率的1/12。

如果晶振频率为12MHz,则定时器每接收一个输入脉冲的时间刚好为1μs。

定时器有两种工作模式,分别为计数模式和定时模式。

对Px,y 的输入脉冲进行计数为计数模式。

定时模式,则是对MCU的主时钟经过12分频后计数。

因为主时钟是相对稳定的,所以可以通过计数值推算出计数所经过的时间。

计数器的计数值存放于特殊功能寄存器中。

T0(TL0-0x8A, TH0-0x8C), T1(TL1-0x8B, TH1-0x8D)定时器工作原理如下图由上图可见与定时器相关的寄存器主要有下面这几个:TMOD、TCON、TL0、TH0、TL1、TH1。

下面介绍一下这几个寄存器16位加法计数器:是定时计数器的核心,其中TL0、TH0、是定时计数器0的底八位和高八位;TL1、TH1是定时计数器1的底八位和高八位;并且高八位和底八位可单独使用。

单片机数码管动态显示实验报告

单片机数码管动态显示实验报告

单片机数码管动态显示实验报告单片机数码管动态显示实验程序(汇编)单片机数码管动态显示实验程序org 00hajmp headorg 0030hhead:mov sp,#0070hnum equ p0 ;p0口连接数码管reset:mov dptr ,#tabmov r0,#4sh:acall show_tabcall dptr_adddjnz r0,shmov r0 ,#4sjmp resetdptr_add:inc dptrinc dptrinc dptrinc dptrrettab :db0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH;;;;;;;;;;;;;;;;;;;;; 函数的功能是用来动态显示dptr上的四个数据 ;;;;;;;;;;;;;;;;;;;;;; show_tab:clr amov r2,#0mov r3,#148mov p2,#238loop:movc a,@a+dptrmov num ,aacall delay_5msinc r2mov a,r2;调用片选函数前注意A的变化acall select_movcjne r2,#4,loopmov r2,#0clr adjnz R3,loopret;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;select_mov:;p2的初值238push 0e0hmov a,p2rl amov p2,apop 0e0hretdelay_5ms:mov r6,#5signed_5ms:call delay_1msdjnz r6,signed_5msret篇二:单片机动态数码显示设计实验报告微机原理与接口技术实验报告实验题目:指导老师:班级:计算机科学与技术系姓名:动态数码显示设计2014年 12月3日实验十三动态数码显示设计一、实验目的1.掌握动态数码显示技术的设计方法。

单片机四位数码管阳极管1 ,2,3,4

单片机四位数码管阳极管1 ,2,3,4

单片机四位数码管阳极管1 ,2,3,4通常用于控制数码管的显示。

这些阳极管用于选择要显示的数码管,以便单片机可以向其发送相应的数据。

具体来说,单片机通过控制阳极管的导通或截止,来选择要显示的数码管。

例如,如果单片机想要显示数字“1”,它会控制阳极管1、2、3、4都处于截止状态,而阳极管5、6、7、8处于导通状态。

这样,数码管1就会被选通,并显示数字“1”。

此外,阳极管也可以通过编程来实现复用,以便同时控制多个数码管。

这样,单片机可以通过控制阳极管的导通和截止,来同时控制多个数码管的显示。

需要注意的是,具体的控制方式可能会因不同的单片机型号和数码管型号而有所不同。

因此,在使用单片机控制数码管时,需要参考相关的技术文档和数据手册,以确保正确的连接和控制方式。

51单片机(四位数码管的显示)程序[1]

51单片机(四位数码管的显示)程序[1]

51单片机(四位数码管的显示)程序基于单片机V1或V2实验系统,编写一个程序,实现以下功能:1)首先在数码管 上显示P ”个字符;2)等待按键,如按了任何一个键,则将这 4个字符清除, 改为显示0000”个字符(为数字的0)。

E3最佳答案下面这个程序是4x4距阵键盘丄ED 数码管显示,一共可以到0-F 显示,你可以稍微 改一下就可以实现你的功能了,如还有问题请发信息,希望能帮上你!#i nclude<at89x52.h> un sig ned char codeDig[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1 ,0x86,0x8e}; //gongyang 数码管 0-F 代码void key_delay(void) {int t;for(t=0;t<500;t++);}un sig nedchar k;//设置全局变量k 为键盘的键值键盘延时函数键盘扫描函数 ***************************** *///延时函数voidkeyscan(void)//键盘初始化 //有键按下? //延时 //确认真的有键按下? //使行线 P2.4 为低电平,其余行为高电平 //a 作为缓存 //开始执行行列扫描 {case 0xee:k=15;break;case 0xde:k=11;break;case 0xbe:k=7;break;case 0x7e:k=3;break;default:P2 = 0xfd;//使行线 P2.5 为低电平,其余行为高电平a = P2;switch (a)//键盘扫描函数 {unsigned char a;P2 = 0xf0;if(P2!=0xf0){key_delay();if(P2!=0xf0){P2 = 0xfe;key_delay();a = P2;switch (a)case 0xed:k=14;break;case 0xdd:k=10;break;case 0xbd:k=6;break;case 0x7d:k=2;break;default:P2 = 0xfb; //使行线 P2.6 为低电平,其余行为高电平a = P2;switch (a){case 0xeb:k=13;break;case 0xdb:k=9;break;case 0xbb:k=5;break;case 0x7b:k=1;break;default:P2 = 0xf7; //使行线P2.7为低电平,其余行为高电平a = P2;switch (a){case 0xe7:k=12;break;case 0xd7:k=8;break;case 0xb7:k=4;break;case 0x77:k=0;break;default:break;}} break;}}}}void main(void){while(1){keyscan(); switch(k){case 0:P0=Dig[0];break;case 1:P0=Dig[1];break;case 2:P0=Dig[2];break;case 3:P0=Dig[3];break;case 4:P0=Dig[4];break;case 5:P0=Dig[5];break;**************************** ***主函数 * ********************************** //调用键盘扫描函数 //查找按键对应的数码管显示代码case 6:P0=Dig[6];break;case 7:P0=Dig[7];break;case 8:P0=Dig[8];break;case 9:P0=Dig[9];break;case10:P0=Dig[10];break;case11:P0=Dig[11];break;case12:P0=Dig[12];break;case13:P0=Dig[13];break;case14:P0=Dig[14];break;case15:P0=Dig[15];break;default:break; // 退出}}}endWelcome ToDownload !! !欢迎您的下载,资料仅供参考!。

基于单片机液晶的c语言数字显示

基于单片机液晶的c语言数字显示

LCD_write_char('.');//加上小数点
y =x*1000000; //此句可以修改,来扩大显示位数到 20 位
//一位一位的补 0
if(y <100000) LCD_write_char('0');//防止小数点后边第 1 位是 0
if(y<10000) LCD_write_char('0');//防止小数点后边第 2 位是 0
基于单片机液晶的 c 语言数字显示
前言:
编者之前遇到的问题(所有存在的问题均在小数部分) 1、显示“123.01235”时,取出整数部分后,小数部分如果放大 100000 倍,变成 1235,再 去显示 1235,就会发现小数点后第一位的 0 丢失了。 2、显示“1.23100”时如果直接放大 100000 倍,那么显示的是“1.23099”;但是如果里边没 有 0 是可以正常显示的。 3、如果取出整数部分,然后一位一位的放大 10 倍再去显示,会发现从小数点后左边第一个 0 开始以后全是 0。例如:显示“1.23052”,实际显示的是“1.23000”。
结语:以上的程序可以直接调用,只需要修改 LCD_write_char('0')为你所用的显示函数
显示字符'0'即可。
if(y<1000) LCD_write_char('0');//防止小数点后边第 3 位是 0
if(y<100)
LCD_write_char('0');//防止小数点后边第 4 位是 0
if(y<10)
LCD_write_char('0');//防止小数点后边第 5 位是 0

单片机 LED点阵-点阵显示数字

单片机 LED点阵-点阵显示数字

太原师范学院实验报告Experimentataion Report of Taiyuan teachers College系部:计算机系年级:201404 课程:单片机基础姓名:王利军同组者:陈敬斌日期:2016.10.28项目LED点阵-点阵显示数字一、实验要求通过单片机使LED点阵一次循环显示数字字母。

二、实验目的使LED点阵显示数字。

熟悉8255的功能,了解点阵显示的原理及控制方法;三、实验仪器软件:Keil uVision4硬件:单片机开发实验仪四、实验连线JP10(P0)和J12用8PIN排线连接起来。

JP1(P2)和J20用8PIN排线连接起来。

JP8(P1)和J19用8PIN排线连接起来。

J21接VCC,JP165断开。

五、实验程序#include<reg51.h>//--定义要使用的IO口--//#define READPORTS P2#define GREENPORTS P1#define COMMONPORTS P0//--列选通控制--//unsigned char code TAB[8] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//--点阵字码--//unsigned char code CHARCODE[18][8]={{0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00}, //0{0x00,0x00,0x00,0x00,0x21,0x7f,0x01,0x00}, //1{0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00}, //2 {0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00}, //3 {0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00}, //4 {0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00}, //5 {0x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00}, //6 {0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00}, //7 {0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00}, //8 {0x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00}, //9 {0x00,0x00,0x7F,0x48,0x48,0x30,0x00,0x00}, //P {0x00,0x00,0x7F,0x48,0x4C,0x73,0x00,0x00}, //R {0x00,0x00,0x7F,0x49,0x49,0x49,0x00,0x00}, //E{0x00,0x00,0x3E,0x41,0x41,0x62,0x00,0x00}, //C{0x00,0x00,0x7F,0x08,0x08,0x7F,0x00,0x00}, //H{0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00}, //I{0x00,0x7F,0x10,0x08,0x04,0x7F,0x00,0x00}, //N{0x7C,0x48,0x48,0xFF,0x48,0x48,0x7C,0x00} //中};/************************************************** ****************************** 函数名 : main* 函数功能 : 主函数* 输入 : 无* 输出 : 无*************************************************** ****************************/void main(){unsigned char tab, j;unsigned int i;while(1){for(i= 0; i<5000; i++ ) //两个字之间的扫描间隔时间{for(tab=0;tab<8;tab++){READPORTS=0xFF; //消隐COMMONPORTS=CHARCODE[j][tab]; //输出字码READPORTS=TAB[tab];}}j++;if(j == 18){j = 0;}} }。

单片机实验报告二-数码管显示实验

单片机实验报告二-数码管显示实验

单片机实验报告二-数码管显示实验摘要:本实验使用单片机控制数码管的显示,在实验过程中通过学习单片机的GPIO口的编程,调试程序、调节电路来达到正确的显示效果。

最终按照要求实现了单片机控制数码管的计数器。

关键词:单片机、数码管、GPIO口、计数器一、实验介绍数码管是一种介于机械仪表和液晶显示器之间的电子显示器件,广泛应用于计时器、计数器、仪表等电子产品中。

本实验旨在通过单片机控制数码管的显示来加深对GPIO口的使用和调试程序的理解,同时了解数码管的原理。

本实验主要分为两部分:数码管显示基础实验和数码管控制开关实验。

通过这两部分的实验可以了解数码管的工作原理和单片机的基本控制方式。

二、实验原理2.1 数码管的基本原理数码管显示器将数字显示为一组符号,例如“0”到“9”。

表示不同数字的符号被编码成一个数字码。

七段数码管用一个七段数码字母来表示数字,如下表所示:| 数字 | a | b | c | d | e | f | g || ---- | - | - | - | - | - | - | - || 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 || 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 || 2 | 1 | 1 | 0 | 1 | 1 | 0 | 1 || 3 | 1 | 1 | 1 | 1 | 0 | 0 | 1 || 4 | 0 | 1 | 1 | 0 | 0 | 1 | 1 || 5 | 1 | 0 | 1 | 1 | 0 | 1 | 1 || 6 | 0 | 0 | 1 | 1 | 1 | 1 | 1 || 7 | 1 | 1 | 1 | 0 | 0 | 0 | 0 || 8 | 1 | 1 | 1 | 1 | 1 | 1 | 1 || 9 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |通过控制数码管的七个LED灯的亮灭,可以实现不同符号显示。

单片机数字电压表设计LED显示含C源代码

单片机数字电压表设计LED显示含C源代码

1. 绪论............................... 错误!未定义书签。

1.1 课程设计规定...................... 错误!未定义书签。

1.2 数字电压表简介.................... 错误!未定义书签。

2. 硬件单元电路设计................... 错误!未定义书签。

2.1数字电压表构造框图................. 错误!未定义书签。

2.1.1 AT89C51单片机简介............ 错误!未定义书签。

2.1.2 ADC0832转换器简介............ 错误!未定义书签。

2.1.3 时钟电路..................... 错误!未定义书签。

2.1.4 复位电路..................... 错误!未定义书签。

2.1.5 LED显示电路.................. 错误!未定义书签。

3. 软件单元电路设计................... 错误!未定义书签。

3.1 主程序流程图...................... 错误!未定义书签。

3.2显示子程序流程图................... 错误!未定义书签。

3.3 A/D转换子程序流程图............... 错误!未定义书签。

3.4 数据解决子程序流程图.............. 错误!未定义书签。

4. 数字电压表仿真设计图与实物图....... 错误!未定义书签。

4.1 仿真图............................ 错误!未定义书签。

4.2 器件清单.......................... 错误!未定义书签。

4.3 硬件电路实物图.................... 错误!未定义书签。

5. 程序代码.............................. 错误!未定义书签。

单片机数字显示说明

单片机数字显示说明

实验5 数码管动态扫描显示01234567原理图:8个数码管它的数据线并联接到JP5,位控制由8个PNP型三级管驱动后由JP8引出。

数码管是怎样来显示1,2,3,4呢?数码管实际上是由7个发光管组成8字形构成的,加上小数点就是8个。

我们分别把他命名为A,B,C,D,E,F,G,H。

搞懂了这个原理, 我们如果要显示一个数字2, 那么A,B,G,E,D这5个段的发光管亮就可以了。

也就是把B,E,H(小数点)不亮,其余全亮。

根据硬件的接法我们编出以下程序。

当然在此之前,还必须指定哪一个数码管亮,这里我们就指定最后一个P2.7。

LOOP:CLR P2.7;选中最后的数码管SETB P0.7;B段不亮SETB P0.5;小数点不亮SETB P0.1;C段不亮CLR P0.2;其他都亮CLR P0.3CLR P0.4CLR P0.6CLR P0.0JMP LOOP;跳转到开始重新进行END把这个程序编译后写入单片机,可以看到数码管的最后一位显示了一个数字2。

也许你会说:显示1个2字就要10多行程序,太麻烦了。

显示数字2则是C,F,H(小数点)不亮,同时由于接法为共阳接法,那么为0(低电平)是亮为1(高电平)是灭。

从高往低排列,(p0.7_p0.0)写成二进制为01111110,把他转化为16进制则为A2H。

我们可以根据硬件的接线把数码管显示数字编制成一个表格,以后直接调用就行了。

显示p0.7C p0.6Ep0.5小数点p0.4Dp0.3Gp0.2Ap0.1Fp0.0BHEX代码0 0 0 1 0 1 0 0 0 28H1 0 1 1 1 1 1 1 0 7EH2 1 0 1 0 0 0 1 0 A2H3 0 1 1 0 0 0 1 0 62H4 0 1 1 1 0 1 0 0 74H5 0 1 1 0 0 0 0 1 61H6 0 0 1 0 0 0 0 1 21H7 0 1 1 1 1 0 1 0 7AH8 0 0 1 0 0 0 0 0 20H9 0 1 1 0 0 0 0 0 60H有了这个表格上面显示一个2的程序则可简化为LOOP:CLR P2.7;选中左边的数码管MOV P0,#0A2H;送数字2的代码到P0口JMP LOOP;跳转到开始重新进行END原理图中把所有数码管的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。

用单片机AT89C51设计一个2位的LED数码显示作为“秒表”—单片机课程设计

用单片机AT89C51设计一个2位的LED数码显示作为“秒表”—单片机课程设计

目录一、设计题目和要求: (2)二、设计目的: (2)三、设计内容: (3)四、课程设计心得体会 (25)五、参考文献 (26)六、课程设计指导教师评审标准及成绩评定 (27)附件1:秒表原理图(实际接线图) (28)附件2:仿真图1 (30)附件3:仿真图2 (31)一、设计题目和要求:题目三:秒表应用AT89C51的定时器设计一个2位的LED数码显示作为“秒表”:显示时间为00~99s,每秒自动加1,设计一个“开始”键,按下“开始”键秒表开始计时。

设计一个“复位”键,按下“复位”键后,秒表从0开始计时。

任务安排:李座负责绘制电路原理图;梁宗林负责收集资料及电子版整理;付忠林负责程序和仿真。

二、设计目的:1.进一步掌握AT89C51单片机的结构和工作原理;2.掌握单片机的接口技术及外围芯片的工作原理及控制方法;3.进一步掌握单片机程序编写及程序调试过程,掌握模块化程序设计方法;4.掌握PROTEUS仿真软件的使用方法;5.掌握LED数码管原理及使用方法。

6.掌握定时器、外部中断的设置和编程原理。

7.通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。

8.该课程设计通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、复位功能,并同时可以用数码管显示。

三、设计内容:了解8051芯片的的工作原理和工作方式,使用该芯片对LED数码管进行显示控制,实现用单片机的端口控制数码管,显示分、秒,并能用按钮实现秒表起动、停止、清零功能,精确到1秒。

AT89C51单片机的主要工作特性:·内含4KB的FLASH存储器,擦写次数1000次;·内含28字节的RAM;·具有32根可编程I/O线;·具有2个16位可编程定时器;·具有6个中断源、5个中断矢量、2级优先权的中断结构;·具有1个全双工的可编程串行通信接口;·具有一个数据指针DPTR;·两种低功耗工作模式,即空闲模式和掉电模式;·具有可编程的3级程序锁定定位;AT89C51的工作电源电压为5(1±0.2)V且典型值为5V,最高工作频率为24MHz.AT89C51各部分的组成及功能:振荡器和时钟电路数据存储器128字节程序存储器14KBCPU 两个16位定时器计数器中断控制总线扩展控制器并行可编程I/O口可编程串行口内部总线外部中断扩展控制P0 P1 P2 P3 RXD TXD1.单片机的中央处理器(CPU )是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。

#25单片机点阵式LED“0-9”数字显示技术实验

#25单片机点阵式LED“0-9”数字显示技术实验

25.点阵式LED“0-9”数字显示技术1.实验任务利用8X8点阵显示数字0到9的数字。

2.电路原理图图4.25.13.硬件系统连线(1>.把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“DR1-DR8”端口上;(2>.把“单片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1-DC8”端口上;4.程序设计内容(1>.数字0-9点阵显示代码的形成如下图所示,假设显示数字“0”123 45 6 7 8●●●●●●●●●●●●●●●●00 00 3E 41 41 41 3E 00因此,形成的列代码为00H,00H,3EH,41H,41H,3EH,00H,00H;只要把这些代码分别送到相应的列线上面,即可实现“0”的数字显示。

送显示代码过程如下所示送第一列线代码到P3端口,同时置第一行线为“0”,其它行线为“1”,延时2ms左右,送第二列线代码到P3端口,同时置第二行线为“0”,其它行线为“1”,延时2 ms左右,如此下去,直到送完最后一列代码,又从头开始送。

数字“1”代码建立如下图所示123 45 6 7 8●●●●●●●●●●其显示代码为00H,00H,00H,00H,21H,7FH,01H,00H数字“2”代码建立如下图所示123 45 6 7 8●●●●●●●●●●●●●●●●●00H,00H,27H,45H,45H,45H,39H,00H 数字“3”代码建立如下图所示123 45 6 7 8●●●●●●●●●●●●●●●00H,00H,22H,49H,49H,49H,36H,00H 数字“4”代码建立如下图所示123 45 6 7 8●●●●●●●●●●●●●●00H,00H,0CH,14H,24H,7FH,04H,00H 数字“5”代码建立如下图所示123 45 6 7 8●●●●●●●●●●●●●●●●●00H,00H,72H,51H,51H,51H,4EH,00H 数字“6”代码建立如下图所示123 45 6 7 8●●●●●●●●●●●●●●●●●00H,00H,3EH,49H,49H,49H,26H,00H 数字“7”代码建立如下图所示123 45 6 7 8●●●●●●●●●●●00H,00H,40H,40H,40H,4FH,70H,00H 数字“8”代码建立如下图所示123 45 6 7 8●●●●●●●●●●●●●●00H,00H,36H,49H,49H,49H,36H,00H 数字“9”代码建立如下图所示123 45 6 7 8●●●●●●●●●●●●●●●●●00H,00H,32H,49H,49H,49H,3EH,00H 5.汇编源程序TIM EQU 30HCNTA EQU 31HCNTB EQU 32HORG 00HLJMP STARTORG 0BHLJMP T0XORG 30HSTART: MOV TIM,#00HMOV CNTA,#00HMOV CNTB,#00HMOV TMOD,#01HMOV TH0,#(65536-4000>/256MOV TL0,#(65536-4000> MOD 256SETB TR0SETB ET0SETB EASJMP $T0X:MOV TH0,#(65536-4000>/256MOV TL0,#(65536-4000> MOD 256MOV DPTR,#TABMOV A,CNTAMOVC A,@A+DPTRMOV P3,AMOV DPTR,#DIGITMOV A,CNTBMOV B,#8MUL ABADD A,CNTAMOVC A,@A+DPTRMOV P1,AINC CNTAMOV A,CNTACJNE A,#8,NEXTMOV CNTA,#00HNEXT: INC TIMMOV A,TIMCJNE A,#250,NEXMOV TIM,#00HINC CNTBMOV A,CNTBCJNE A,#10,NEXMOV CNTB,#00HNEX: RETITAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FHDIGIT: DB 00H,00H,3EH,41H,41H,41H,3EH,00HDB 00H,00H,00H,00H,21H,7FH,01H,00HDB 00H,00H,27H,45H,45H,45H,39H,00HDB 00H,00H,22H,49H,49H,49H,36H,00HDB 00H,00H,0CH,14H,24H,7FH,04H,00HDB 00H,00H,72H,51H,51H,51H,4EH,00HDB 00H,00H,3EH,49H,49H,49H,26H,00HDB 00H,00H,40H,40H,40H,4FH,70H,00HDB 00H,00H,36H,49H,49H,49H,36H,00HDB 00H,00H,32H,49H,49H,49H,3EH,00HEND6.C语言源程序#include <AT89X52.H>unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}。

点阵式LED“0~9”数字显示

点阵式LED“0~9”数字显示

点阵式LED“0~9”数字显示摘要:简要介绍51单片机的主要性能、内部结构及其各引脚功能,概述其应用原理。

MCS-51单片机是美国INTEL公司于1980年推出的产品,与MCS-48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品。

简述点阵式LED工作原理、内部结构及其应用,并通过89C51单片机和点阵式LED进行显示“0~9”的设计。

关键字:51单片机点阵式LED “0~9”数字显示Abstract:Briefly the main properties of 51 single chip, the internal structure and function of each pin, an overview of the application principle. MCS-51 microcontroller is a U.S. INTEL company launched products in 1980, compared with the MCS-48 microcontroller, and its structure is more advanced and more powerful, based on the increase in the original circuit units and more instructions, instructions up to 111, MCS-51 microcontroller products can be quite successful, until now, MCS-51 series or compatible microcomputer application is still the mainstream product. Dot Matrix LED briefly the working principle of the internal structure and its applications, and by 89C51 And Dot Matrix LED to display "0 9" design.Keyword:51 Microcontroller Dot Matrix LED "0 ~ 9" digital display目录1. 51单片机------------------------------------------------------------------------------------------41.1 51单片机简介-----------------------------------------------------------------------------41.2 89C51单片机的封装及引脚功能----------------------------------------------51.3 89C51单片机的内部结构----------------------------------------------------------72. LED点阵-------------------------------------------------------------------------------------------92.1 8X8 LED点阵结构图-----------------------------------------------------------------92.2 相关知识------------------------------------------------------------------------------------102.3 8X8 LED工作原理--------------------------------------------------------------------113. 电路设计------------------------------------------------------------------------------------------113.1 电路原理图---------------------------------------------------------------------------------113.2 点阵与单片机的连接----------------------------------------------------------------124. 程序设计-----------------------------------------------------------------------------------------124.1 数字“0~9”点阵显示代码的形成----------------------------------------------124.2 程序代码------------------------------------------------------------------------------------165. 电路PCB图及其3D图--------------------------------------------------------------186. 总结--------------------------------------------------------------------------------------------------207. 参考文献-----------------------------------------------------------------------------------------20一、51单片机1.1 51单片机简介MCS-51单片机是美国INTEL公司于1980年推出的产品,MCS-51系列单片机主要包括8031、8051和8751等通用产品,其主要功能如下:·8位CPU·4kbytes 程序存储器(ROM)·128bytes的数据存储器(RAM)·32条I/O口线·111条指令,大部分为单字节指令·21个专用寄存器·2个可编程定时/计数器·5个中断源,2个优先级·一个全双工串行通信口·外部数据存储器寻址空间为64kB·外部程序存储器寻址空间为64kB·逻辑操作位寻址功能·双列直插40PinDIP封装·单一+5V电源供电MCS-51以其典型的结构和完善的总线专用寄存器的集中管理,众多的逻辑位操作功能及面向控制的丰富的指令系统,堪称为一代“名机”,为以后的其它单片机的发展奠定了基础。

数字显示器实验报告

数字显示器实验报告

一、实验目的1. 了解数字显示器的基本原理和分类。

2. 掌握数字显示器的设计方法和应用。

3. 学会使用数码管和LCD显示器进行数字显示。

4. 提高动手实践能力和问题解决能力。

二、实验内容1. 数码管显示实验2. LCD显示器显示实验三、实验原理1. 数码管显示原理:数码管是一种半导体发光器件,由若干个发光二极管(LED)组成,每个LED代表一个数码管的笔画。

通过控制LED的亮灭,可以显示不同的数字和字符。

2. LCD显示器显示原理:LCD显示器是一种液晶显示器,通过液晶分子的旋转控制光的透过与阻挡,实现图像的显示。

LCD显示器主要由液晶面板、背光源、偏振片、驱动电路等组成。

四、实验步骤1. 数码管显示实验(1)搭建电路:将数码管与AT89C51单片机连接,连接方式包括共阴极和共阳极两种。

(2)编写程序:使用C语言编写程序,实现数码管显示数字和字符。

(3)调试程序:使用Keil软件对程序进行编译和调试,观察数码管显示效果。

2. LCD显示器显示实验(1)搭建电路:将LCD显示器与AT89C51单片机连接,连接方式包括并行和串行两种。

(2)编写程序:使用C语言编写程序,实现LCD显示器显示数字和字符。

(3)调试程序:使用Keil软件对程序进行编译和调试,观察LCD显示器显示效果。

五、实验结果与分析1. 数码管显示实验结果:通过编写程序,数码管能够显示数字和字符,实现了实验目的。

2. LCD显示器显示实验结果:通过编写程序,LCD显示器能够显示数字和字符,实现了实验目的。

3. 分析:(1)数码管显示实验:在实验过程中,发现数码管的共阴极和共阳极连接方式不同,需要根据实际连接方式编写程序。

此外,为了提高显示效果,需要对数码管进行动态扫描显示。

(2)LCD显示器显示实验:在实验过程中,发现LCD显示器的并行和串行连接方式不同,需要根据实际连接方式编写程序。

此外,为了提高显示效果,需要对LCD显示器进行初始化和设置显示模式。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档