最新单片机实验1计数显示器

合集下载

单片机实验1计数显示器

单片机实验1计数显示器

洛阳理工学院实验报告系部计算机系班级B100508学号B姓名课程名称单片机原理及应用实验日期实验名称计数显示器成绩实验目的:熟习Proteus 仿真软件,掌握单片机原理图的画图方法。

【实验原理】以下列图实验原理图,图中两位七段共阴极数码管分别外接于P0 和 P2口还外接 7 只上拉电阻。

按钮开关BUT接在引脚。

时钟与复位电路分别接在第9 脚处。

口,别的 P019、18 和【原理图】该计数显示器的功能是,按压按键 BUT 后,数码管 LED1和 LED2上立刻显示出按键压下的次数。

当显示值达到 99 后再次按压按键,显示值将从 1 从头开始,以此无穷循环。

【实验内容】( 1)熟习 Proteus 软件,认识软件的构造构成与功能;(2)学习 ISIS模块的使用方法,学会设置图纸、选元件、画导线、画总线、改正属性等基本操作;(3)学会可履行文件加载及程序仿真运转方法;(4)理解 Proteus 在单片机开发中的作用,达成单片机电路原理图的绘制。

【实验步骤】(1)察看 proteus 软件的菜单、工具栏、对话框等基本构造。

(2)在 proteus 中绘制电路原理图,依据下表将元件增添到编写环境中。

(3)在 proteus 中加载程序,察看仿真结果,查验电路图绘制的正确性。

Category Reference Value Microprocessor U180C51Data converter U3ADC0808 Miscellaneous X1CRYSTALCapacitors C1、C2CAPCapacitors C3CAP-ELECResistors R2~R8RESResistors R1RESOptoelectronics LED1、LED27SEG-COM-CAT-GRN 【C语言程序】:#include <>int count=0;int number=0;char led_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void timer0 (void) interrupt 1{int a;int b;count++;TH0=-(50000/256);TL0=-(50000%256);if(count==20){count=0;number++;if(number<60){a=number%10;b=number/10;P2=led_mod[a];P0=led_mod[b];}else if(number==60){number=0;P2=led_mod[0];P0=led_mod[0];}}}void main(){TMOD=0x01;TH0=-(50000/256);TL0=-(50000%256);P0=0x3f;P2=0x3f;EA=1;ET0=1;TR0=1;while(1);}【仿真图】【实验总结】(1)对 proteus 和 keil 软件有了初步的认识,学会了基本的画图操作。

计数显示器实验报告

计数显示器实验报告

实验1 计数显示器实验目的:熟悉proteus仿真软件和Keil C51,掌握单片机的绘图方法。

实验原理:上图为一计数显示器的电路原理图。

图中两位七段共阴极数码管分别外接于p0口和P2口,此外P0口还外接7只上拉电阻。

按钮开关BUT接在3.7引脚。

时钟与复位电路分别接在19、18和9脚外处。

该显示器的功能是按压按键BUT后,数码管LED1和LED2上立即显示出按键压下次数。

当显示值到99后再次按压按键,显示值将从1重新开始,以此无限循环。

实验内容:(1)熟悉proteus软件,了解软件的结构组成与功能;(2)学习ISIS模块的使用方法,学会设置图纸、选元件、画导线、画总线、修改属性等基本操作;(3)学会可执行文件加载和程序仿真运行方法;(4)理解proteus在单片机开发中的作用,完成单片机电路原理图的绘制。

实验步骤:(1)观察proteus软件的菜单、工具栏、对话框等基本结构;(2)在proteus中绘制电路原理图,按照元件要求添加到编辑环境中;(3)在proteus中加载程序,观察仿真结果,检查电路图绘制的正确性。

具体实验如下:1、启动proteus的ISIS环境如下图:2、选择元器件:单击页面的“P”按钮,可弹出“Pick Device”元件选择窗口,利用“Keywords”检索输进元件名称,页面中将会显示元件图形,按“ok”见即选中。

如下图所示:利用此方法可继续选择其它元器件。

3、摆放好选择好的元器件:、编辑好元器件名称、编辑元器件属性。

4、对原理图布线:(1)画导线:利用鼠标通过画笔连接好元器件之间的连线。

如下图:(2)画总线:单击工具栏中的总线按钮,即可在编辑窗口画总线。

并在总线分支线上标好线标签。

如下图:5、画电源线:在工具栏中点击图标,会出现端子列表,其中POWER为电源端,GROUND为接地端。

6、编辑仿真文件.hex:(1)打开keil uvision软件,新建一个文件,在文件中输进计数器程序的源代码,保存该文件,在其文件后应加上扩展名(*.c)(2)单击“Project”下的“New project”菜单,在出现的对话框中输入要建立的工程的名字,不需要扩展名。

单片机液晶显示实验报告

单片机液晶显示实验报告

单片机液晶显示实验报告篇一:点阵液晶显示实验报告单片机实验课程名称:点阵液晶汉字显示实验授课班级:10自动化三班任课教师:文远熔计划学时:32学时实验组员:张腾耀梁钦赵福亮秦菱蔚郑欢王聪慧摘要本文介绍了PROTEUS与Keil联调开发51系列单片机应用系统的方法以及基于PROTEUS环境下的12864液晶显示的仿真设计。

将Keil C开发的程序用Proteus设计的仿真电路中交互运行调试的方法,设计12864的液晶显示汉字图像。

在基于PROTEUS环境下的12864液晶显示的仿真设计中,使用51芯片控制,然后显示在12864显示屏上,最多可显示4行每行8个汉字,并且可以通过按键随时改变12864显示屏上的内容。

通过Proteus环境下的温度报警器的仿真实验证明,在PROTEUS环境下可以完成单片机系统的硬件设计和软件调试,测试系统的性能,在实际应用中可以降低设计成本,缩短开发周期,提高效率。

关键词:Proteus;仿真;单片机;12864目录第一章绪论1.1实验任务和要求???????????????????????..11.2 基于Proteus的12864显示的研究???????????????.1 . 1.3 实验方案及原理??????????????????????..1第二章点阵液晶汉字显示的硬件部分2.1程序流程图?????????????????????????.2 2.2硬件电路图???????????????????????. 2.3芯片12864的简介?????????????????????第三章点阵液晶汉字显示的软件部分3.1 Keil简介??????????????????????????. 3.2 Proteus简介????????????????????????. 3.3 Proteus与Keil软件联合仿真的建立??????????????.第四章结论4.1实验总结??????????????????????????.附录1:点阵液晶汉字显示的源程序第一章绪论1.1 实验任务和要求用LCD128x64点阵液晶显示器显示指定汉字,最多可以显示4行、8个/行汉字,通过键盘可以随时改变显示的内容。

单片机的显示实验报告

单片机的显示实验报告

一、实验目的本次实验旨在通过学习单片机显示技术,掌握单片机控制数码管显示的基本原理和方法。

通过实验,加深对单片机基本原理和实际应用的理解,提高动手实践能力。

二、实验内容1. 硬件设备(1)单片机:AT89C51(2)晶振:12MHz(3)电容:22pF(两个)(4)复位电路:10K电阻与10F电容实现自动复位(5)显示器:7段共阳级数码管2. 软件环境(1)仿真软件:Proteus 7.8(2)编程软件:Keil 4.223. 实验步骤(1)搭建实验电路根据实验要求,利用Proteus软件搭建单片机实验电路,包括单片机、晶振、电容、复位电路和7段共阳级数码管。

(2)编写程序利用Keil 4.22编程软件编写控制数码管显示的程序,实现以下功能:1)数码管显示0-9循环显示2)数码管显示自定义字符3)数码管显示时间(小时、分钟、秒)(3)编译程序将编写的程序编译生成HEX文件。

(4)仿真运行在Proteus软件中加载HEX文件,观察数码管显示效果。

三、实验结果与分析1. 数码管显示0-9循环显示通过编写程序,实现数码管显示0-9循环显示的功能。

程序中,首先定义一个数组,存储0-9的数字编码;然后通过循环遍历数组,控制数码管显示对应的数字。

2. 数码管显示自定义字符为了实现数码管显示自定义字符,需要设计字符编码。

根据字符形状,将字符编码存储在数组中。

程序中,通过改变数组指针,控制数码管显示不同的字符。

3. 数码管显示时间实现数码管显示时间功能,需要设计一个计时器。

程序中,通过定时器中断,更新时间数据。

当定时器溢出时,更新数码管显示的时间。

四、实验总结通过本次实验,掌握了单片机控制数码管显示的基本原理和方法。

具体收获如下:1. 熟悉了Proteus和Keil软件的使用,提高了编程能力。

2. 加深了对单片机基本原理和实际应用的理解。

3. 学会了数码管显示程序的设计和调试。

4. 提高了动手实践能力。

五、拓展实验1. 实现多个数码管的连接和显示2. 设计一个可编程的字符编码表,实现更多字符的显示3. 利用数码管显示复杂图形,如动画效果4. 将数码管显示与其他功能结合,如温度、湿度显示等通过以上拓展实验,可以进一步提高单片机显示技术的应用水平。

(单片机)

(单片机)

实验四一、实验题目:当K1键按下后,首先使蜂鸣器响一声,然后使LED1-LED8完成3种闪亮的花样(自己定义),每一种花样循环3次,然后周而复始。

二、keil代码:/*当K1键按下后,首先使蜂鸣器响一声,然后使LED1- LED8完成3种闪亮的花样(自己定义),每一种花样循环3次,然后周而复始。

*/#include<reg51.h>sbit P2_0=P2^0;//接蜂鸣器sbit P2_7=P2^7;sbit P1_0=P1^0;sbit P1_1=P1^1;sbit P1_2=P1^2;sbit P1_3=P1^3;sbit P1_4=P1^4;sbit P1_5=P1^5;sbit P1_6=P1^6;sbit P1_7=P1^7;void DELAY(int time)//延时{while(time--){}}void BUZ_ON(){if(P2_7==0){P2_0=1;}else{ P2_0=0;}}void F1(void){int i;char data_group_mide[5]={0x00,0x18,0x24,0x42,0x81};//向两边延伸for(i=0;i<5;i++){P1=data_group_mide[i];DELAY(20000);}P1=0x00;}void F2(void){int i;char data_group_left[8]={0xFF,0x7F,0x3F,0x0F,0x07,0x03,0x01,0x00};//向左延伸for(i=0;i<8;i++){P1=data_group_left[i];DELAY(20000);P1=0x00;}void F3(void){int i;char date_group_right[8]={0x00,0x01,0x03,0x07,0x0f,0x3f,0x7f,0xff};//向右延伸for(i=0;i<8;i++){P1=date_group_right[i];DELAY(20000);}P1=0x00;}void main(){unsigned int i; //每种花样循环三次P2_0=0;P2_7=1;BUZ_ON();P1=0x00;while(P2_7==0){for(i=0;i<3;i++)//花样1 {F1();}for(i=0;i<3;i++)//花样2 {F2();}for(i=0;i<3;i++)//花样3 {F3();}}}三、protues电路图:四、实验截图:五、实验小结:通过本次实验,我们熟悉了protues的编译环境,对以后的单片机学习有很大帮助。

单片机计数显示器

单片机计数显示器

电子秒表显示器一、设计要求及目的设计要求:在Keil C中用C51语言编程,并在Proteus中模拟51单片机的电子秒表显示器,并在电子秒表显示器中加入中断和定时,使得电子秒表显示器反复的显示某个区间(0~60)的值。

设计目的:熟悉51单片机的基本输入/输出应用,掌握Proteus ISIS模块的原理图绘图方法及单片机系统仿真运行方法,同时,掌握C51语言的编程方式和数据结构,掌握中断和定时的概念以及在51系列单片机中的应用。

二、实验环境操作平台:Windows 编程软件:Keil C 模拟仿真软件:Proteus8三、元器件列表四、实验原理1.实验电路原理图如图1所示,图中有如下5个分支点路:由共阴极数码管LED1和LED2、P0口、P2口、上拉电阻RP1以及V cc组成的输出电路;由按钮开关BUT、、和接地点组成的输入电路;由C1、C2、晶振X1、引脚XTAL1、XTAL2与接地点组成的时钟电路;由C3、R1、引脚RST和V cc组成的上电复位电路;由V cc和引脚EA组成片内ROM选择电路(简称片选电路)。

图表 1 实验原理图2.数码管的初始显示值为“00”;当1s产生时,秒计数器加1;秒计数器到60时清零,并从“00”重新开始,如此周而反复。

3.软件编程原理:采用T0定时方式1中断法编程,其中1s定时采用20次50ms定时中断的方案实现。

程序设计的流程图如图2所示。

主函数变量定义初始化T0定时方式1初始化计数初值初始化数码管显示初始化T0中断初始化启动T0原地循环T0中断函数中断计数器加11s计时到?秒计数器加1,中断计数器清060s计时到?秒计数器清0秒值输出显示重装计数初值中断返回YYNN 图表2 程序流程图五、程序源代码#include<>unsigned char count1=0; //中断计数器unsigned char count2=0; //计数器变量usigned char code table[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //LED显示字符timer0() interrupt 1{ //T0中断函数count1++; //计数器增1if(count1==20){ //将1s分为20个50mscount1=0; count2++;}if(count2==60) count2=0; //计数器达到 60时清零P0=table[count2/10]; //显示十位数字P2=table[count2%10]; //显示个位数字TH0=0x3c; TL0=0xb0; }main(){TMOD=0x01; //设置T0技术方式为1TH0=0x3c; //计数初值TL0=0xb0;P0=table[count2/10]; //显示初值"00"P2=table[count2%10];ET0=1;EA=1; //开启中断TR0=1; //启动T0while(1); } //循环六、实验结果图表3 数码管初始显示图表4 数码管经过一个定时周期显示说明:图3显示的是初始时刻数码管的显示(“00”),图4显示的是数码管在经过一个定时周期60s后显示的值(“59”)。

单片机实验一计数显示器

单片机实验一计数显示器

单片机原理及应用实验报告一实验名称:计数显示器实验指导老师:学生姓名:班级:学号:【实验目的】熟悉51单片机的基本输入\输出应用,掌握Proteus ISIS模块的原理图绘图方法及单片机系统仿真运行方法。

【实验方法】实验电路原理图如图1.1所示,图中含有如下五个分支电路:共阴极数码管LED1和LED2,P0口,P2口,上拉电阻RP1以及Vcc组成的输出电路;由按钮开关BUT,P3.7和接地点组成的输入电阻;由C1,C2,晶振X1,引脚XTAL1,XTAL2与接地点组成的时钟电路;由C3,R1,引脚RST和Vcc组成的上电复位电路;由Vcc和引脚(EA非)组成的片内ROM选择电路(简称片选电路)。

在编程软件的配合下,该电路可实现如下计数功能显示,可统计按钮BUT的按压次数,并将按压的结果以十进制形式显示出来;当显示值达到99后可自动从一开始循环。

图1.1【实验内容】观察Proteus ISIS模块的软件结构,熟悉菜单栏,工具栏,对话框等基本单元功能,如图1.2图1.2选择元件(1.3),画导线(1.4),画总线(1.5),修改参数(1.6)等基本操作图1.3图1.4图1.5图1.6 学会可执行文件加载及程序仿真运行方法;如图1.7图1.7验证计数显示器的共能。

【电路原理图分析】上拉电阻的存在是因为P0口不能正常输出信号“1”(因为漏极开路),所以接上拉电阻是必须的。

【实验程序】#include<reg51.h>void delay(unsigned int c) ; //申明延时函数,延时时间为c*10mssbit key=P3^7; //位申明unsigned char code duanma[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0、1、2、3、4、5、6、7、8、9的显示码void main(){ int a,b;int i=0;while(1){if(key!=1){delay(1); //延时消抖(实际电路中会出现颤抖)if(key==1) //判断按键是否松开,松开之后才会自加一,不然计数不作处理i++;}if(i==100)i=1;a=i/10;b=i%10;P0=duanma[a]; //输出相应的十位P2=duanma[b]; //输出相应的各位}}void delay(unsigned int c) //延时程序10ms{unsigned char a, b;for (;c>0;c--){for (b=0;b<38;b++){for (a=0;a<130;a++);}}}【仿真运行截图】【实验小结】由于C语言有比较好的移植性,所以我从我的单片机教程上移植了数码显示管的断码,本着是16个I/0口控制两个数码管就没用到相应的74LS138译码器来选择哪个数码管显示(即位选),就是实验程序调试时发现延时的时间控制不是那么好控制,远远没有定时器那么精确。

单片机实验报告——LED数码管显示实验

单片机实验报告——LED数码管显示实验

单⽚机实验报告——LED数码管显⽰实验(此⽂档为word格式,下载后您可任意编辑修改!)《微机实验》报告LED数码管显⽰实验指导教师:专业班级:姓名:学号:联系⽅式:⼀、任务要求实验⽬的:理解LED七段数码管的显⽰控制原理,掌握数码管与MCU的接⼝技术,能够编写数码管显⽰驱动程序;熟悉接⼝程序调试⽅法。

实验内容:利⽤C8051F310单⽚机控制数码管显⽰器基本要求:利⽤末位数码管循环显⽰数字0-9,显⽰切换频率为1Hz。

提⾼要求:在4位数码管显⽰器上依次显⽰当天时期和时间,显⽰格式如下:yyyy (年份)mm.dd(⽉份.⽇).asm;Description: 利⽤末位数码管循环显⽰数字0-9,显⽰切换频率为1Hz。

;Designed by:gxy;Date:2012117;*********************************************************$include (C8051F310.inc)ORG 0000H ;复位⼊⼝AJMP MAINORG 000BH ;定时器0中断⼊⼝AJMP TIME0MAIN: ACALL Init_Device ;初始化配置MOV P0,#00H ;位选中第⼀个数码管MOV R0,#00H ;偏移指针初值CLR PSW.1 ;标志位清零SETB EA ;允许总中断SETB ET0 ;允许定时器0中断MOV TMOD,#01H ;定时器0选⼯作⽅式1MOV TH0,#06HMOV TL0,#0C6H ;赋初值,定时1sLOOP: MOV A,R0ADD A,#0BH ;加偏移量MOVC +PC ;查表取,段码MOV P1,A ;段码给P1显⽰SETB TR0 ;开定时LOOP1: JNB PSW.1,LOOP1 ;等待中断CLR PSW.1INC R0 ;偏移指针加⼀CJNE R0,#0AH,LOOP3MOV R0,#00H ;偏移指针满10清零AJMP LOOP ;返回DB 0FCH,60H,0DAH,0F2H,66H ;段码数据表:0、1、2、3、4 DB 0B6H,0BEH,0E0H,0FEH,0F6H; 5、6、7、8、9 ;***************************************************************** ; 定时器0中断;***************************************************************** TIME0: SETB PSW.1 ;标志位置⼀MOV TH0,#06H ;定时器重新赋值MOV TL0,#0C6HLOOP3: CLR TR0 ;关定时RETI;***************************************************************** ;初始化配置;***************************************************************** PCA_Init:anl PCA0MD, #0BFhmov PCA0MD, #000hretTimer_Init:mov TMOD, #001hmov CKCON, #002hretPort_IO_Init:; P0.0 - Unassigned, Open-Drain, Digital ; P0.1 - Unassigned, Open-Drain, Digital ; P0.2 - Unassigned, Open-Drain, Digital ; P0.3 - Unassigned, Open-Drain, Digital ; P0.4 -Unassigned, Open-Drain, Digital ; P0.5 - Unassigned, Open-Drain, Digital ; P0.6 - Unassigned, Open-Drain, Digital ; P0.7 - Unassigned, Open-Drain, Digital ; P1.0 - Unassigned, Open-Drain, Digital ; P1.1 - Unassigned, Open-Drain, Digital ; P1.2 - Unassigned, Open-Drain, Digital ; P1.3 - Unassigned, Open-Drain, Digital ; P1.4 - Unassigned, Open-Drain, Digital ; P1.5 - Unassigned, Open-Drain, Digital ; P1.6 - Unassigned, Open-Drain, Digital ; P1.7 - Unassigned, Open-Drain, Digital ; P2.0 - Unassigned, Open-Drain, Digital ; P2.1 -Unassigned, Open-Drain, Digital ; P2.2 - Unassigned, Open-Drain, Digital ; P2.3 - Unassigned, Open-Drain, Digital mov XBR1, #040hretInterrupts_Init:mov IE, #002hretInit_Device:lcall PCA_Initlcall Timer_Initlcall Port_IO_Initlcall Interrupts_Initretend提⾼部分:;*********************************************************;Filename: shumaguan2.asm;Description:在4位数码管显⽰器上依次显⽰当天时期和时间,显⽰格式如下:; 2012 (年份); 12.07(⽉份.⽇); 12.34(⼩时.分钟);Designed by:gxy;Date:2012117;*********************************************************$include (C8051F310.inc)ORG 0000HAJMP MAINORG 000BHAJMP TIME0MAIN: ACALL Init_DeviceMOV R0,#00H ;⽤于位选MOV R1,#00H ;⽤于段选MOV R2,#22H ;置偏移量,⽤于控制模式MOV R4,#8MOV R5,#250CLR PSW.1 ;标志位清零SETB EA ;允许总中断SETB ET0 ;允许定时器0中断MOV TMOD,#01H ;定时器0选⼯作⽅式1MOV TH0,#0FFHMOV TL0,#0C0H ;定时器赋初值1msBACK: MOV P0,R0 ;位选MOV A,R0ADD A,#40H ;选下⼀位MOV R0,AMOV A,R1ADD A,R2 ;加偏移量MOVC +PC ;查表取段码MOV P1,A ;段码给P1显⽰LOOP: SETB TR0 ;开定时HERE: JNB PSW.1,HERE ;等待中断CLR PSW.1DJNZ R5,BACKMOV R5,#250DJNZ R4,BACKMOV R4,#8 ;循环2000次(2s)MOV A,R2ADD A,#04H ;偏移量加04H,到下⼀模式段码初值地址 MOV R2,ACJNE R2,#2EH,LOOP2MOV R2,#22H ;加三次后偏移量回到初值LOOP2: AJMP BACK ;返回进⼊下⼀模式;段码数据表:DB 0DAH,60H,0FCH,0DAH ; 2102DB 0E0H,0FCH,61H,60H ; 701. 1DB 66H,0F2H,0DBH,60H ; 432. 1;*****************************************************************; 定时器0中断;***************************************************************** TIME0: MOV TH0,#0FFH MOV TL0,#0C0HCLR TR0SETB PSW.1INC R1 ;偏移指针加⼀CJNE R1,#04H,LOOPMOV R1,#00H ;偏移指针满04H清零RETI;***************************************************************** ; 初始化配置;***************************************************************** PCA_Init:anl PCA0MD, #0BFhmov PCA0MD, #000hretTimer_Init:mov TMOD, #001hmov CKCON, #002hretPort_IO_Init:; P0.0 - Unassigned, Open-Drain, Digital; P0.1 - Unassigned, Open-Drain, Digital; P0.2 - Unassigned, Open-Drain, Digital; P0.3 - Unassigned, Open-Drain, Digital; P0.4 - Unassigned, Open-Drain, Digital; P0.5 - Unassigned, Open-Drain, Digital; P0.6 - Unassigned, Open-Drain, Digital; P0.7 - Unassigned, Open-Drain, Digital; P1.0 - Unassigned, Open-Drain, Digital; P1.1 - Unassigned, Open-Drain, Digital; P1.2 - Unassigned, Open-Drain, Digital; P1.3 - Unassigned, Open-Drain, Digital; P1.4 - Unassigned, Open-Drain, Digital; P1.5 - Unassigned, Open-Drain, Digital; P1.6 - Unassigned, Open-Drain, Digital; P1.7 - Unassigned, Open-Drain, Digital; P2.0 - Unassigned, Open-Drain, Digital; P2.1 - Unassigned, Open-Drain, Digital; P2.2 - Unassigned, Open-Drain, Digital; P2.3 - Unassigned, Open-Drain, Digitalmov XBR1, #040hretInterrupts_Init:mov IE, #002hretInit_Device:lcall PCA_Initlcall Timer_Initlcall Port_IO_Initlcall Interrupts_Initretend六、程序测试⽅法与结果、软件性能分析软件调试总体截图:基础部分:软件运⾏时,我们发现P0端⼝为00H,P1端⼝以依次为FCH、60H、DAH、F2H、66H、B6H、BEH、E0H、FEH、F6H。

单片机LCD显示实验报告

单片机LCD显示实验报告

单片机LCD显示实验报告实验目的:本实验旨在通过使用单片机控制LCD进行显示,掌握单片机与外围设备的交互操作,学习并理解LCD显示原理。

实验器材:1. 单片机开发板2. LCD1602液晶显示屏3. 杜邦线若干4. 电阻若干实验原理:液晶显示原理是在液晶材料施加电场的作用下,通过改变传输光的偏振状态来实现图像显示。

本实验使用的LCD1602是一种16×2的字符型液晶显示模块,其中每个字符由5×8的点阵构成。

实验步骤:1. 连接电路:将LCD1602与单片机开发板通过杜邦线连接。

一般来说,液晶显示屏的引脚布局如下:- VSS: 接地- VDD: 供电(一般为5V)- V0:对比度控制端(通过电位器调节)- RS:数据/指令选择端(通常连接到单片机的I/O口)- RW:读写选择端(连接至地)- E:使能端(通常连接到单片机的I/O口)- D0-D7:数据线(连接到单片机的I/O口)- A:背光灯正极(连接5V)- K:背光灯负极(连接至地)2. 编写程序:根据实验要求,使用相应的单片机编程语言编写程序。

在程序中,需要调用相关的LCD1602命令来实现字符的显示。

3. 烧录程序:使用相应的烧录工具将编写好的程序下载到单片机开发板中。

4. 实验验证:将开发板上电,通过观察LCD1602的显示情况来验证程序的正确性。

实验结果与分析:在本次实验中,我使用单片机控制LCD1602成功实现了字符的显示。

实验结果表明,编写的程序能够正确地将字符显示在液晶屏上,并且显示效果良好。

实验中遇到的问题及解决方法:在实验过程中,我遇到了一些问题,例如LCD1602无显示、乱码或显示异常等情况。

针对这些问题,我采取了以下解决方法:1. 检查接线是否正确:确保LCD1602的引脚与单片机开发板之间的连接准确无误。

2. 检查电源供应:确认LCD1602的电源供应是否正常,电源电压是否稳定。

3. 调整对比度:通过旋转电位器调整LCD1602的对比度,以适应不同环境下的显示效果要求。

单片机 科学计数法显示

单片机 科学计数法显示

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

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

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

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

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

计数显示器

计数显示器
实验条件:安装有Proteus7.0、Keil C软件的PC机
实验内容:统计按钮的按压次数并将按压结果以十进制数形式显示出来;当显示值达到99后自动从1开始,无限循环
代码展示:
#include<reg51.h>
sbit button=P2^0;
void delay_ms(unsigned int ms){
unsigned int i;
for(i=0;i<ms;i++){
TH1=0xFC;
TL1=0x18;
TR1=1;
while(!TF1)
TF1=0;
}
}
void main(){
unsigned char num[]={0x3F,0x06,0x5B,0x4F,0x66,
0x6D,0x7D,0x07,0x7F,0x6F}; //共阴极数码管的0~9显示的16进制数
系别
大数据学院
班级
计科18-1
学号
18232366007
姓名
XXX
课程名称
单片机原理与应用
实验日期
6.4
实验名称
计数显示器
成绩
实验目的:
1、熟悉51单片机的I/O口的基本输入/输出功能,掌握C51语言的编程与调试方法。
2、掌握Proteus与Keil C两个仿真软件的使用方法,能够用按键控制指示灯的亮灭。
}
}
仿真效果展示:
实验总结:
1、注意延时函数的使用,为了是开关按动的次数和数码管显示的数值遗址,则延时函数的延时效果就要相对延长
int sum=0,i;
P0=0x3F;
P3=0x3F;
while(1){

计数显示器实验报告1

计数显示器实验报告1

实验报告实验课程:单片机与外围电路设计实验名称:实验1 ——原理图绘制练习班级:学号:姓名:教师:实验日期:年月日一、实验目的:学习Proteus 软件的使用,掌握单片机原理图的绘图方法二、实验内容:1、绘制“计数显示器”电路原理图;2、利用提供的hex文件验证此电路的运行效果。

三、实验要求:提交的实验报告中应包括:1、绘图方法简述,要求说明元件与电源的选取、摆放及属性编辑,总线与标签的画法等内容;2、电路原理图,要求采用bmp图形输出方法提供;3、仿真运行效果展示,要求就仿真文件加载方法及3~4幅运行截图进行简要说明;4、实验小结,说明遇到的主要问题或实验1体会等。

参考电路原理图如下:元件类别电路符号元件名称Microprocessor ICs “U1”80C51Miscellaneous “X1”/12MHz CRYSTALCapacitors “C1”~“C2”/1nF CAPCapacitors “C3”/22μF CAP-ELECResistors Packs “RP1”/7-100ΩRESPACK-7Resistors “R1”/100ΩRESOptoelectronics “LED1”~“LED2”7SEG-COM-CAT-GRNSwitches & Relays “BUT”BUTTON ————————————————1、绘图方法简述在Proteus ISIS的绘图工具栏中找到元件模式,点击“P”,在库中输入关键词搜索实验需要的元器件,点击留以备用;连线时总线在总线模式中选取;电源,接地状态在终端模式中选取。

画图时左击选取元器件或电源等,移至屏幕中,选取自己想要放置的位置,按照原理图进行连线(可选取直接连线器,也可取消,自行连接)。

连线完毕后可以根据需要,对器件属性进行改变(右击编辑属性即可);为了更直观辨别连线,可右击连线,放置网络标号,完善电路原理图。

仿真时,点击单片机,将编辑元件中的Program File连至相应的代码文件,确认后,点击屏幕左下角开始键进行仿真。

《单片机技术》实验(2022级自动化1201~02电气1201~02)教案

《单片机技术》实验(2022级自动化1201~02电气1201~02)教案

《单片机技术》实验(2022级自动化1201~02电气1201~02)教案课程教案课程名称:单片机技术实验任课教师:王韧所属院部:电气与信息工程学院教学班级:自动化1201~02、电气1201~02教学时间:2022—2022学年第二学期湖南工学院课程基本信息湖南工学院教案用纸实验一数据传送实验一、本次实验主要内容1、Keil软件的使用方法和调试。

2、存储器之间数据传送的方法和循环程序设计。

3、MCS-51系列单片机堆栈的使用。

二、实验目的与要求1、掌握单片机的汇编指令系统及汇编语言程序设计方法。

2、掌握单片机的存储器体系结构。

3、熟悉Keil软件的功能和使用方法。

4、掌握单片机应用程序的调试方法。

三、实验重点难点MOV、MOV某指令的用法特点。

四、实验方法和手段讲授、演示、操作、仿真、提问。

五、作业与习题布置写出实验报告。

P1湖南工学院教案用纸一、实验内容或原理1、实现单片机内部RAM之间,外部RAM之间以及内部RAM与外部RAM之间的数据传送。

2、利用Keil软件编辑、汇编、调试、运行实验程序并记录实验数据。

二、设计要求1、编写程序将00H~0FH16个数据分别送到单片机内部RAM30H~3FH单元中。

2、编写程序将片内RAM30H~3FH的内容传送至片内RAM40~4FH单元中。

3、编写程序将片内RAM40H~4FH单元中的内容传送到外部RAM4800H~480FH单元中。

4、编写程序将片外4800H~480FH单元内容送到外部RAM5800H~580FH单元中。

5、编写程序将片外RAM5800H~580FH单元内容传送回片内RAM50H~5FH单元中。

三、实验报告要求1、实验目的和要求。

2、设计要求。

3、实验程序流程框图和程序清单。

4、实验总结。

5、思考题。

四、思考题1、说明MCS-51系列单片机对片内RAM和片外RAM存贮器各有哪些寻址方式?2、说明指令MOVA,20H和MOVC,20H中的20H含义有什么不同?传送指令中的助记符MOV,MOV某,MOVC各适用于访问哪个存储器空间?P2湖南工学院教案用纸实验后记:P3湖南工学院教案用纸实验二单片机并行I/O口的应用实验一、本次实验主要内容1、利用单片机并行I/O口控制流水灯。

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

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

单片机实验报告二-数码管显示实验摘要:本实验使用单片机控制数码管的显示,在实验过程中通过学习单片机的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灯的亮灭,可以实现不同符号显示。

单片机数码管显示实验

单片机数码管显示实验

单片机数码管显示实验单片机数码管显示实验一、实验目的本实验旨在通过单片机控制数码管显示,掌握单片机的基本操作和数码管显示原理,培养实践能力和创新意识。

二、实验原理1.单片机基本原理单片机是一种微型计算机,广泛应用于各种嵌入式系统中。

它具有体积小、功耗低、功能强大、可靠性高等优点。

本实验采用常见的8051单片机进行操作。

2.数码管显示原理数码管是一种常见的电子显示器件,可以显示数字和某些特定字符。

它由多个LED段组成,通过控制不同段的亮灭来显示不同的数字或字符。

本实验采用共阴极数码管进行显示。

三、实验步骤1.硬件准备(1)选择合适的单片机开发板和数码管;(2)连接数码管的阳极和单片机的某个端口;(3)连接数码管的各个段到单片机的其他端口;(4)连接电源和地线。

2.程序编写使用单片机开发软件(如Keil)编写程序,控制数码管显示不同的数字或字符。

程序中需要定义数码管的段码,以及选择要显示的数字或字符。

3.调试与测试将程序下载到单片机中,接通电源,观察数码管是否正常显示。

如果出现问题,检查硬件连接是否正确,或者修改程序中的控制逻辑。

四、实验结果与分析在本实验中,我们成功地实现了数码管的显示。

通过编写程序,我们可以控制数码管显示不同的数字和字符。

例如,我们可以编写一个循环程序,让数码管依次显示0-9的数字,或者某个特定的字符。

通过实验,我们深入了解了单片机的操作和数码管显示原理。

在实践中,我们需要注意硬件连接的正确性,以及控制程序的逻辑性。

如果硬件连接不正确,可能会导致数码管无法正常显示;如果程序逻辑有误,则可能导致显示的数字或字符不正确。

因此,我们需要认真检查硬件连接和程序逻辑,确保实验结果的准确性。

五、实验总结与展望本实验通过单片机控制数码管显示,使我们对单片机的操作和数码管显示原理有了更深入的了解。

在实验过程中,我们需要注意硬件连接的正确性和程序逻辑的准确性。

通过不断调试和测试,我们可以提高自己的实践能力和创新意识。

按键控制1位LED数码管显示0-9

按键控制1位LED数码管显示0-9

单片机课程设计姓名:陈素云班级:09电力方向2班学号:200920305340设计题目:按键控制1位LED数码管显示0-9设计要求:通过单片的I/O口与LED数码管所构成的单片机系统的软件编程,使学生掌握简单的单片机系统的设计,同时初步学全用汇编语言和C语言两种方式编程的基本方法。

学生必须采用单片机AT89C51为LED显示屏的控制为核心,分别置“1”或“0”,让某些段的LED 发光,其它的熄灭,然后达到显示不同的字符和图符号的目的. 学生根据前期设计的步骤按照设计报告内容的具体要求,选择前期设计的一个典型题目,写出详尽的课程设计报告,重点内容包括方案论证、完整的电路图、软件系统流程图及开发程序、组装调试内容和总结等。

目录第1节引言 (3)1.1 LED数码显示器概述 (3)1.2 设计任务 (5)1.3设计目的 (6)第2节 AT89C51单片机简介 (6)2.1 AT89C51单片机 (6)2.2 单片机管脚图 (7)2.3管脚说明 (7)2.4振荡器特性 (9)第3节设计主程序与硬件电路设计 (9)3.1设计的主程序 (10)3.2系统程序所需硬件 (10)3.2.1所需的硬件 (10)3.2.2所需硬件的结构图 (11)3.3 硬件电路总连接图 (12)第4节程序运行过程 (12)4.1分析步骤 (12)4.2 程序执行过程 (13)第5节程序运行结果 (13)总结参考文献第1节引言还记得我们小时候玩的“火柴棒游戏”吗,几根火柴棒组合起来,能拼成各种各样的图形,LED数码管显示器实际上也是这么一个东西。

在单片机系统中,常常用LED数码数码管显示器来显示各种数字或符号。

LED 数码显示器是单片机嵌入式系统中经常使用的显示器件。

一个“8”字型的显示模块用“a、b、c、d、e、f、g、h” 8 个发光二极管组合而成。

每个发光二极管称为一字段。

LED 数码显示器有共阳极和共阴极两种结构形式。

由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。

单片机计数显示器实验报告

单片机计数显示器实验报告

单片机计数显示器实验报告实验报告:单片机计数显示器一、实验目的本实验旨在通过单片机编程,设计并实现一个计数显示器电路。

通过实现计数功能,掌握单片机的IO口操作、延时函数的使用及LED数码管的驱动原理。

二、实验器材1.单片机开发板2.数码管3.连接线三、实验原理本实验使用的单片机开发板上有8个LED数码管和相应的IO口,我们可以通过控制IO口状态,来驱动数码管显示数字。

数码管是7段共阳极结构,即每个数字都是由7个发光二极管组成。

我们可以通过控制每个发光二极管的通断状态,来显示不同的数字。

数码管的7个段分别命名为a、b、c、d、e、f、g,表示显示数字的不同部分。

每个IO口控制一个发光二极管的通断,例如P0口控制a段,P1口控制b段,以此类推。

四、实验步骤1.设计电路连接:将单片机开发板的IO口与数码管的各段和各位连接起来。

2.编写程序代码:使用C语言编写单片机的程序代码,实现计数及显示功能。

4.运行程序:观察数码管显示的效果,检查是否符合预期。

五、实验结果与分析经过以上步骤,我们成功地实现了单片机计数显示器电路。

通过设置不同的数值,数码管会显示相应的数字,实现了计数功能。

六、实验心得体会通过本次实验,我学到了单片机的IO口操作、延时函数的使用及LED数码管的驱动原理。

在实验中,我遇到了一些困难,如如何控制不同位的数码管显示不同的数字,并且在显示不同数字时存在闪烁现象。

通过调试程序,我解决了这些问题,并对单片机的使用更加熟悉了。

总的来说,本次实验让我对单片机有了更深入的了解,通过实际操控硬件并编写程序,使我对计算机硬件与软件的关系有了更直观的认识。

同时,通过解决问题,我也提高了自己的动手能力和问题解决能力。

七、实验改进设想在实验过程中,我注意到数码管在显示数字时会有闪烁现象,这可能是由于程序中的延时时间不够长引起的。

后续改进可以通过增加延时时间来减少闪烁现象的发生。

另外,本实验只实现了基本的计数功能,除了数字0-9的显示外,还可以扩展显示其他字符或符号。

单片机实验 带程序的

单片机实验  带程序的

五.实验步骤: 1. 连接电源线和串行口数据线; 2. 把P3.1接至P3.0孔,P1.0~P1.7分别接发光二极管 L1~L8孔。 3.打开DICE—5203 K实验开发系统的电源; 4. 启动计算机,打开桌面软件文件夹,选择MS51仿真 开发系统图标双击,进入软件编程界面; 5. 编制程序,调试、运行; 6. 从按键开关输入数字量,观察发光二极管的发光状 态,或从寄存器观察其对应数值。 六.思考题: 修改程序,使串行口工作于方式3或 2(考虑波特率)。
四、实验步骤 (一)定时/计数器T0延时实验 1、连接电源线和串行口数据线; 2、用插针将P1.0孔与发光二极管L1孔相连, P1.1孔与发光二极管L2孔相连; 3、打开DICE—5203 K实验开发系统的电源; 4、启动计算机,打开桌面软件文件夹,选择 MS51仿真开发系统图标双击,进入软件 编程界面; 5、编制程序,调试、运行; 6、观察发光二极管状态。
• void tim0(void) interrupt 1 using 1 • { EA=0; • i++; • j++; • if(i==20) • {P1_0=!P1_0; • i=0;} • if(j==100) • {P1_1=!P1_1; • j=0;} • TH0=(65536-50000)/256; • TL0=(65536-50000)%256; • EA=1; • }
ds-ms(int j) {uchar k; while(j--!=0) for(k=0,k<125,k++);}
void main (void) { uchar i,a; COM8255 =0x80; a =0x01; for(i=0,i<8,i++) {PB8255=a; ds-ms(500); a=a<<1; if(a==0)a=0x01; } }

基于单片机控制LED显示计数器课程设计

基于单片机控制LED显示计数器课程设计

目录摘要 (I)1 概述 (1)2系统总体方案及硬件设计 (2)2.1 AT89C51简介 (2)2.2 数码管显示原理 (2)2.3 系统总体方案 (3)3 编程设计 (4)3.1 定时/计数器 (4)3.2 程序流程图 (4)3.3 程序分析 (6)4 Proteus软件仿真 (7)4.1 Proteus仿真软件简介 (7)4.2 仿真过程 (7)5 调试分析 (10)6 心得体会 (11)致谢 (12)参考文献 (13)附录一程序清单 (14)附录二电路原理图 (16)摘要本系统是采用单片机AT89C51作为本设计的核心元件。

利用7段共阳LED作为显示器件。

在此设计中共接入了2个7段共阳LED显示器,用于记录该队的分数, 2个LED显示器显示范围可达到0~99分,基本满足赛程需要。

当比赛队得1分时,按下S1键加1分,得2分时按S2键加2分,得3分时按下S3键加3分。

如分数计错需减分时,每按一次S4键减1分。

采用单片机控制是这个系统按键操作使用简洁,LED显示,安装方便。

解决了篮球比赛计数器的安装问题,节约了线材,适合在各种规模的体育场馆使用,完全可以代替传统的用钟表进行计时的方法,当然稍加改动也可以用于其他球类比赛,是体育器材向智能化发展的一个实例。

关键词:AT89C51 LED显示定时/计数器1 概述体育比赛计分系统是对体育比赛过程中所产生的时间,比分等数据进行快速采集记录,加工处理,传递利用的信息系统。

根据不同运动项目的不同比赛规则要求,体育比赛的计时计分系统包括测量类,评分类,命中类,制胜类得分类等多种类型。

篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时系统是一种得分类型的系统。

篮球比赛的计时系统由计时器等多种电子设备组成,同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时系统设备应能够与现场成绩处理,现场大屏幕,电视转播车等多种设备相联,以便实现高比赛现场感,表演娱乐观众等功能目标。

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

洛阳理工学院实验报告
系部计算机系班级B100508 学号B10050812 姓名
课程名称单片机原理及应用实验日期2012.5.26
实验名称计数显示器成绩
实验目的:熟悉Proteus仿真软件,掌握单片机原理图的绘图方法。

【实验原理】
如下图实验原理图,图中两位七段共阴极数码管分别外接于P0和P2口,此外P0口还外接7只上拉电阻。

按钮开关BUT接在P3.7引脚。

时钟与复位电路分别接在第19、18和9脚处。

【原理图】
该计数显示器的功能是,按压按键BUT后,数码管LED1和LED2上立即显示出按键压下的次数。

当显示值达到99后再次按压按键,显示值将从1重新开始,以此无限循环。

P2=led_mod[0];
P0=led_mod[0];}
}
}
void main(){
TMOD=0x01;
TH0=-(50000/256);
TL0=-(50000%256);
P0=0x3f;
P2=0x3f;
EA=1;
ET0=1;
TR0=1;
while(1);}【仿真图】
【实验总结】
(1)对proteus和keil软件有了初步的认识,学会了基本的绘图操作。

(2)学会了可执行文件的加载及程序运行的方法。

(3)对80C51芯片的接口有了清晰的认识,知道了晶振作为时钟脉冲的电路和复位电路是构成单片机系统不可或缺的。

(4)初步熟悉了单片机程序的编写和调试的方法。

初一政治下册《法不可违》教学案例
古竹初中朱海生
【课题】法不可违
【教学依据】本课内容主要是引导学生明确为什么要遵守法律,在内容设计上共两目,第一目“谁都不能违法”意在帮助学生了解什么是违法,课文通过“小勤的事例”说明不违法是人们行为的底线,尤其不能违反法律。

之后通过三个情景引出违法的含义,填表区别三种违法含义及区别。

第二目“犯罪必受惩罚”引导学生了解什以是犯罪行为和刑事处罚。

通过教学让学生明白不论什么原因,只要触犯了法律,就是违法行为,都要受到法律的制裁,以提高学生的守法意识。

【教学设计】
一、教学目标
(1)态度情感价值观目标:通过教学,让学生明白不论是什么原因,只要是违反了法律,就是违法行为,都要受到法律的制裁,以提高学生的守法意识。

(2)过程方法目标:针对初一年级学生思想不成熟,法制意识不健全的现状,对学生以创设情境导入,典型案例分析等形式,培养学生的自主学习能力。

(3)知识能力目标:引导学生了解什么是违法,三种违法的含义及区别,以及犯罪的含义及基本特征,刑事处罚的含义及种类。

二、教学方式:
(1)学生的学习方式:在教师的引导下自主、探究性学习。

(2)教师教学方式:多媒体、启发诱导、讨论探究式。

相关文档
最新文档