加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 单片机C语言实验(例程)

单片机C语言实验(例程).pdf

单片机C语言实验(例程)

new69toss
2010-11-11 0人阅读 举报 0 0 暂无简介

简介:本文档为《单片机C语言实验(例程)pdf》,可适用于IT/计算机领域

合肥硕锋电子技术有限公司单片机项目式教学教程项目:一步一步学习单片机(流水灯)单片机控制一个发光二极管闪烁(略)单片机实现流水灯(项目)实例分析、、、、概述概述概述概述学习单片机贵在动手。流水灯实验虽然简单却是单片机入门的重要一步。同时在完成基本项目要求的基础上通过程序的修改变换可以实现许多不同的效果。我们把这称之为“创新课题探讨”。希望同学们能循序渐进在完成本基本项目内容及创新课题探讨之后再进入到项目的学习。、、、、培养目的培养目的培养目的培养目的要求学生通过本项目的学习掌握C语言编程的基本结构、循环语句、函数调用、移位操作等的基本知识。、、、、项目要求项目要求项目要求项目要求实现如下效果的循环左移按下列步骤运行每步间隔毫秒。(其中黑点为高电平代表LED发光但单片机送给该口的电平应该是低电平为什么是低电平呢?请同学们从原理图上来分析下。)、、、、项目原理项目原理项目原理项目原理在进入项目之前我们先来聊聊发光二极管。半导体发光器件包括半导体发光二极管(简称LED)、数码管、符号管、米字管及点阵式显示屏等。事实上数码管、符号管、米字管及LED显示屏中的每个发光单元都是一个发光二极管。发光二极管是由砷化镓、磷化镓、磷砷化镓等ⅢⅣ族化合物半导体制成的其核心是PN结。因此它具有一般PN结的特性即正向导通反向截止、击穿特性。此外在一定条件下它还具有发光特性。在正向电压下电子由N区注入P区空穴由P区注入N区。进入对方区域的少数载流子(少子)一部分与多数载流子(多子)复合而发光。合肥硕锋电子技术有限公司单片机项目式教学教程市场上现已有红外、红、黄、绿及蓝光发光二极管但其中蓝光二极管成本、价格很高使用不普遍。LED现被广泛用于种电子仪器和电子设备中可作为电源指示灯、电平指示或微光源之用。红外发光管常被用于电视机、录像机等。下图是该项目的原理图我们来对原理图简单分析下中间一个大的芯片是ATS单片机芯片的左边分别是复位电路和晶振电路。这个复位电路既可以上电复位又可以手动按键复位。晶振电路很简单外接晶振M另连接了两个p的电容。芯片的左边是上拉电阻电路和LED阵列。接上拉电阻的目的是使电平的稳定。在每一个发二极管上都串联了一个欧姆的电阻串联这个电阻的目的是限流。需要说明的是该电路LED的接法为共灌电流接法即LED的阳极接在电源上当单片机引脚输出低电平时相应的LED发光我们称之为低电平有效。那请同学们想一想为什么采用灌电流接法呢?灌电流与拉电流接法有什么不同呢?图项目原理图图项目程序编译窗口合肥硕锋电子技术有限公司单片机项目式教学教程图项目仿真图C语言语言语言语言程序清单程序清单程序清单程序清单************************************************************Projecl:项目:流水灯Version:Dale:Aulhor:窦宝成Company:合肥硕锋电子科技(安培实验室)Commenls:Chiptype:AlSProgramlype:ApplicalionClockfrequency:MHzMemorymodel:Small说明:P口相连的个发光二极管循环显示************************************************************************************************************************#include<regh>#defineucharunsignedcharvoiddelayms(ucharms){uchari,jfor(i=i<msi){for(j=j<j)for(j=j<j)}}合肥硕锋电子技术有限公司单片机项目式教学教程voidmain(void){ucharledcontrl指示灯控制字uchari循环变量P=xff将P口置高电平熄灭所有指示灯while(){ledcontrl=x初始化指示灯控制字节delayms()for(i=i<i){P=~ledcontrl点亮控制字节相应指示灯delayms()if(ledcontrl<x)ledcontrl<<=控制字节移位操作elseledcontrl=x}}}****************************************************************汇编语言程序清单汇编语言程序清单汇编语言程序清单汇编语言程序清单************************************************************Projecl:项目:流水灯Version:Dale:Aulhor:窦宝成Company:合肥硕锋电子科技(安培实验室)Commenls:Chiplype:AlSProgramlype:ApplicalionClockfrequency:MHzMemorymodel:Small************************************************************************************************************************ORGH定义程序存放的起始地址START:MOVR,#H设置循环次数MOVA,#FEH送显示模式字NEXT:MOVP,A点亮P的发光二极管ACALLDELAY延时RLA左移一位改变显示模式字DJNZR,NEXT循环次数减一不为则继续点亮下面一个二极管合肥硕锋电子技术有限公司单片机项目式教学教程SJMPSTARTDELAY:延时子程序开始MOVR,#FFHDEL:MOVR,#FFHDEL:NOPDJNZR,DELDJNZR,DELRETEND用SFS系列单片机开发板来实现⑴查找资料了解LED的基本知识和keil的使用。⑵从根本上理解该项目的原理图。⑶程序设计。学会程序的调试。生成hex文件。⑷在proteus中进行程序仿真。⑸通过ISP下载线将生成的hex文件烧入目标板。⑹将开发板上LED端子、脚短接运行硬件调试。(需要说明的是由于我们的ISP下载口使用的是单片机的P、P、P,而我们的发光二极管连接的也是单片机的P口所以在下载程序的时候需要将LED端子上的短路冒拔掉否则会出现程序不能下载的现象。请大家务必要注意。)延时时间的分析与计算应用单片机的时候经常会遇到需要短时间延时的情况。需要的延时时间很短一般都是几十到几百微秒(us)。有时候还需要很高的精度这种情况下用计时器往往有点小题大做。而在许多的情况下计时器甚至已经全部派上了别的用途。这时就需要我们另想别的办法了当用汇编语言写单片机程序的时候若用的是MHz晶振延时us只要用下面的代码就可以满足一般的需要:MOVR,#HLOOP:DJNZR,LOOP单片机的指令周期是晶振频率的即微秒(us)一个周期。MOVR,#H需要个机器周期DJNZ也需要个机器周期。那么存在R里的数就是()。用这种方法可以非常方便的实现us以下时间的延时。如果需要更长时间可以使用两层嵌套。而且精度可以达到us一般来说这已经足够了。目前广泛采用的是KEIL编译器用C延时首先想到的就是循环经笔者多次试验采用下面个子程序的延时比较好!可以在C文件中通过使用带NOP()语句的函数实现定义一系列不同的延时函数如delayus()的延时函数可编写如下:voidDelayus(){NOP()合肥硕锋电子技术有限公司单片机项目式教学教程NOP()NOP()NOP()NOP()NOP()}说明说明说明说明::::delayus()函数中共用了个NOP()语句每个语句执行时间为μs。主函数调用Delayus()时先执行一个LCALL指令,需μs然后执行个NOP()语句需要μs最后执行了一个RET指令需要μs所以执行上述函数时共需要μs。可以把这一函数当作基本延时函数在其他函数中调用。在C中嵌套汇编程序段实现延时在C中通过预处理指令#pragmaasm和#pragmaendasm可以嵌套汇编语言语句。用户编写的汇编语言紧跟在#pragmaasm之后在#pragmaendasm之前结束。如:#pragmaasm…汇编程序…#pragmaendasm在应用时应注意以下几点:◆#pragmaasm、#pragmaendasm不允许嵌套使用◆在程序的开头应加上预处理指令#pragmaasm在该指令之前只能有注释或其他预处理指令◆当使用asm语句时编译系统并不输出目标模块而只输出汇编源文件◆asm只能用小写字母如果把asm写成大写编译系统就把它作为普通变量◆#pragmaasm、#pragmaendasm和asm只能在函数内使用。将汇编语言与C结合起来充分发挥各自的优势将是单片机开发人员的最佳选择。合肥硕锋电子技术有限公司单片机项目式教学教程单片机的复位电路单片机的复位脚是第脚可以这样记忆:单片机“久久(脚)不动所以要复位”。单片机的复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态并在这个状态开始工作例如复位后PC=H,使单片机从第一个单元取指令。单片机复位的条件是:使RST引脚(第脚)维持至少个机器周期的高电平。若晶振为M个机器周期为微秒即只要维持微秒以上的高电平就可使单片机复位。单片机复位期间不会产生ALE和PSEN信号在复位期间ALE=PSEN=。这说明单片机在复位期间不会有任何取指令操作。复位后内部专用寄存器状态如下:专用寄存器专用寄存器专用寄存器专用寄存器状态状态状态状态专用寄存器专用寄存器专用寄存器专用寄存器状态状态状态状态PCHACCHBHPSWHDPTRHPPFFHTMODHTCONHTHHTLHTHHTLHSCONHSBUF不确定SPH下图是笔者在SFS系列单片机开发系统中应用的复位电路。该电路除了上电复位以外还具有手动复位功能。合肥硕锋电子技术有限公司单片机项目式教学教程单片机的时钟电路与时序单片机本身就是一个复杂的同步时序电路为了保证同步工作方式就需要在唯一的时钟信号下工作。单片机的时钟脚为XTAL(脚)和XTAL(脚)XTAL和XTAL是芯片内部高增益放大器的输入端和输出端虽然内部有振荡电路要产生时钟还需要外接一些间单的电路通常我们采用内部时钟方式。电路原理图如下:说明说明说明说明::::电容C、C常取p左右晶振频率范围是M,晶振频率越高则系统时钟频率越高单片机运行速度也就越快在通常情况下采用M、M、M就可以了。机器周期:关于单片机的时序很多书上都有详细的介绍在此不说那么多了也许对于初学者来说节拍、状态、机器周期、指令周期等等绕在一起越说越糊涂请大家记住以下两大就可以了:()机器周期就是振荡脉冲的分频当振荡频率为M时一个机器周期为微秒当为M时一个机器周期为微秒。()指令周期执行一条指令所需要的时间。一般由为若干个机器周期不同的指令所需的周期也不一样。合肥硕锋电子技术有限公司单片机项目式教学教程创新课题探讨之一请大家考虑如何实现下图的两种效果?(程序清单请见随书光盘“项目”和“项目”)初始态:○○○○○○○○初始态:○○○○○○○○○○○○○○○●●○○○○○●○○○○○○○●●○●○○○●○○○○○○○●●●○○●○●○○○○○○○●●●●○○○●○○○○○○○●●●●●○○●○●○○○○○●●●●●●○●○○○●○○○●●●●●●●●○○○○○●○●●●●●●●●○○○○○○○●同学们在完成以上三个试验效果的基础上我们再来思考这样一个问题如何将以上的三种流水灯效果在一个系统中按顺序实现。要求效果一循环次后进入效果效果二循环次后进入效果三效果三循环次后又返回效果一如此这样循环下去。(该程序清单请见随书光盘“混合效果程序”)创新探讨之二(项目)请同学们再思考一个问题以上我们实现了种不同的效果那我们怎样用个按键来控制每一种效果呢!(程序见光盘“项目”)合肥硕锋电子技术有限公司单片机项目式教学教程项目:完全掌握单片机定时器、计数器定时器计数器的基本结构及工作原理单片机内设有两个可编程的定时器计数器T和T它们都是位的可用于定时也可用于对外部事件进行计数及为串行接口的波特率发生器。定时器计数器的内部结构和功能单片机的定时器计数器的内部结构主要部件是两个位计数器:TH、TL和TH、TL还有方式控制寄存器(TMOD)和定时器计数器的控制寄存器(TCON)。()TH、TL用来存放T的计数初值。TH存高位字节地址为CHAH。()TH、TL用来存放T的计数初值TH存高位。字节地址为DHBH。()TMOD定时器计数器的方式控制寄存器字节地址为H。()TCON定时器计数器控制寄存器字节地址为H。....定时器定时器定时器定时器T和T在作定时器使用时输入的时钟脉冲是由晶体振荡器的输出经分频后得到的故其频率为晶振频率的。如果晶振频率为M则定时器每接收一个输入脉冲的时间为us。....计数器计数器计数器计数器当它用作对外部事件计数时接相应的外部输入引脚T或T在这种情况下当检测到输入引脚上的电平由高跳变到低时计数器就加(由于需要两个机器周期来识别一个从“”到“”的跳变故最高计数频率为晶振频率的)。这就要求输入信号的电平要在跳变后至少应在一个机器周期内保持不变以保证在给定的电乎再次变化而至少被采样一次。工作方式寄存器工作方式寄存器工作方式寄存器工作方式寄存器TMODTMODTMODTMOD::::①门控位GATE=时只要软件使TR(TR)置就能启动T或T。门控位GATE=时以外中断请求信号启动定时器。只有在INT(INT)引脚为高电平情况下且由软件使TR(TR)置才能启动T或T。②CT方式选择位CT=定时、CT=计数。③M、M工作方式控制位MMMMMMMM工作方式工作方式工作方式工作方式说明说明说明说明方式位计数器方式位计数器DDDDDDDDGATECTMMGATECTMM定时器计数器定时器计数器合肥硕锋电子技术有限公司单片机项目式教学教程方式自动装入位计数器方式T分为两个位计数器T无效停止计数控制寄存器控制寄存器控制寄存器控制寄存器TCONTCONTCONTCONDDDDDDDDTFTRTFTRIEITIEITTFT溢出标志。TRT运行控制位可由软件置或清零来启动或关闭TTFT溢出标志。TRT运行控制位可由软件置或清零来启动或关闭T。IE外中断请求标志位。IT外中断触发方式控制位。IE外中断请求标志位。IT外中断触发方式控制位。定时器计数器的四种工作方式工作方式:下图是定时器计数器工作方式逻辑图。振荡器÷控制TTRGATE≥INT中断TFTL(位)fosc中断TFTH(位)TRCT=CT=foscfosc①计数方式:计数范围:~()。②定时方式:时间=(-计数初值)×机器周期晶振:MHz则最小定时us过程分析:TL→进位→TH、TH→溢出→向TF进位、硬件置位→申请中断。操作是否完成可以查询TF是否置位或产生定时器中断。◆GATE=时封锁或门使其固定输出打开与门由TR控制开启和关断TR=→接通控制开头。◆GATE=时且TR=时或门与门全打开外信号电平通过INT直接开启和关断T。工作方式工作方式工作方式工作方式::::方式为具有自动重新加载计数初值的位计数器即以TL作计数器TH作预置寄存器初始化时把计数初值分别装入TL和TH中。当计数溢出后置TF为的同时由TH自动给TL重新加载。这样可以省去在程序中重装常数的操作。TL作计数器TH作初值预置器。合肥硕锋电子技术有限公司单片机项目式教学教程计数溢出后TH→TL自动加载初值省去人工预置计数范围:~()。工作方式工作方式工作方式工作方式::::在工作方式下T拆成两个独立的位计数器TL和TH。TL使用T的各控制位和引脚信号其工作情况与方式或方式完全相同。而TH只能作为简单的定时器使用,借用TR作为运行控制位计数溢出去置位TF。振荡器÷控制TTRGATE≥INT中断TFTH(位)CT=CT=TL(位)如果T已工作在工作方式则T只能工作在方式、方式l或方式下因为TR、TF已被T借用T没有运行控制和溢出中断功能此时定时器T仅由控制位切换其定时或计数功能当计数器计数满溢出时只能将输出送往串行口。所以T常作为串行口的波特率发生器使用或不需要中断的场合。因定时器的TR被占用因此其启动和关闭较为特殊当设置好工作方式时定时器即自动开始运行。若要停止操作只需送入一个设置定时器为方式的方式字即可。右图是方式逻辑结构图。定时器计数器的初值计算使用定时器计数器时应首先对它进行初始化编程主要对TMOD和TCON进行编程并计算和装载TC的初值。通常分以下几个步骤:初始化程序设计主要是确定TC的工作方式即编程TMOD和TCON计算TC中的计数初值并装载到THx和TLx编写中断服务程序。定时器的计数初值的确定的具体方法如下定时器的计数初值的确定的具体方法如下定时器的计数初值的确定的具体方法如下定时器的计数初值的确定的具体方法如下::::在定时方式下定时器是对机器周期脉冲计数的若时钟频率采用MHz则一个机器周期位机器周期=晶振频率=(×)=μs在各个工作方式下:方式:位定时器的最大时间间隔=×μs=ms方式:位定时器的最大时间间隔=×μs=ms方式:位定时器的最大时间间隔=×μs=μs假设定时器工作在方式要求定时ms求计数初值。设计数初始值位x则:(x)××=×x=–=因此THx=xFEHTLx=xCH在计数方式下TC是对外部输入脉冲计数的在各个工作方式下:方式:位计数器的最大计数值==方式:位计数器的最大计数值==合肥硕锋电子技术有限公司单片机项目式教学教程方式:位定计数器的最大计数值==假设计数器工作在计数器方式要求计数个脉冲的计数初值的计算如下。设计数初始值位x则:x=x=因此THx=TLx=xCH。以下就定时器的工作方式举例说明定时器的应用方法。定时器计数器编程步骤与技巧假设时钟频率采用MHz要在P上输出一个周期为ms的方波方波的周期用定时器T中设置一个时间常数使其每隔ms产生一次中断CPU响应中断后在中断服务程序中对P取非。T中断入口地址为BH。为此要做如下几步工作:设计初始化程序初始化程序包括:定时器初始化和中断系统初始化主要是对IP(中断优先级寄存器)、IE(中断允许寄存器)、TCON(控制寄存器)、TMOD(工作方式寄存器)的相应位进行正确的设置并将时间常数送入定时器中。在本例中假设程序是从系统复位开始运行的TMOD、TCON均为H因此不必对TMOD操作。确定定时器初值机器周期=晶振频率=(×)=μs设:需要初值为X则(X)××=×(X)=得:X=化为进制X=ECH。根据位定时器特性初值应为:TH=FHTL=CH。设计中断服务程序和主程序中断服务程序除了完成要求的产生方波这一工作之外还要注意将时间常数重新送入定时器中为下一次产生中断做准备。主程序可以完成任何其他工作一般情况下常常是键盘程序和显示程序。在本例中由于没有这方面的要求用一条转至自身的短跳转指令来代替主程序。按上面设计的程序清单如下:ORGHRESET:AJMPMAIN转移到主程序入口地址ORGBH中断处理程序AJMPITPORGHMAIN:MOVSP#HACALLPTMHERE:AJMPHEREEHCHDDDDDDDDDDDDDDDDTH(FH)TL(CH)合肥硕锋电子技术有限公司单片机项目式教学教程PTM:MOVTL#CHT置初值低位MOVTH#FHT初值高位SETBTR启动TSETBET允许T中断SETBEACPU开放中断RET中断服务程序ITP:MOVTL#CHT置初值低位MOVTH#FHT初值高位CPLPP取反RETI用定时器设计的秒表(项目)实例分析要求:用单片机定时器设计一个秒表由P口相连的LED采用BCD码显示发光二极管亮表示暗表示计满秒后重头开始。说明:定时器工作于方式产生秒定时定时器工作于方式当秒时间到由软件复位T(P)脚产生负跳变再由定时器进行计数计满次(分钟)溢出再重新开始计数。方式寄存器TMOD的控制字为H定时器初值为==CH程序清单************************************************************Projecl:项目:秒表汇编程序Version:Dale:Aulhor:窦宝成Company:合肥硕锋电子科技(安培实验室)Commenls:Chiplype:AlSProgramlype:ApplicalionClockfrequency:MHzMemorymodel:Small************************************************************ORGHMOVTMOD,#H定时器以方式定时定时器以方式定时MOVTH,#CH定时器置初值MOVTL,#CHSETBTR启动定时器DISP:合肥硕锋电子技术有限公司单片机项目式教学教程MOVA,#H计数显示初始化MOVP,ACONT:ACALLDELAYCLRPT引脚产生负跳变NOPNOPSETBPT引脚恢复高电平INCA累加器加一DAA将进制数转换为BCD码MOVP,A点亮发光二极管JBCTF,DISP查询定时器计数溢出SJMPCONT秒不到继续计数DELAY:MOVR,#H置毫秒计数循环初值MOVTH,#CH置定时器初值MOVTL,BHSETBTR启动定时器LP:JBCTF,LP查询计数溢出SJMPLP未到毫秒继续计数LP:MOVTH,#CH重新置定时器初值MOVTL,BHDJNZR,LP未到秒继续循环RET返回主程序END数码管显示加、减计数器(项目)实例分析P接绿色发光二极管P接红色发光二极管按键接P。有两种计数模式加计数和减计数按键用于切换模式当绿色发光二极管点亮表示加计数模式当红色发光二极管点亮表示减计数模式。分析:采用数码管串口显示(串口显示技术在下一项目中专门谈到)定时器工作方式M晶振时ms溢出每ms中断一次次就是ms即为s定时器初值为TH=(),TL=()。项目程序清单合肥硕锋电子技术有限公司单片机项目式教学教程************************************************************Projecl:项目:任意进制Version:Dale:Aulhor:窦宝成Company:合肥硕锋电子科技(安培实验室)Commenls:Chiplype:AlSProgramlype:ApplicalionClockfrequency:MHzMemorymodel:Small说明:P接绿色发光二极管P接红色发光二极管按键接P。有两种计数模式加计数和减计数按键用于切换模式当绿色发光二极管点亮表示加计数模式当红色发光二极管点亮表示减计数模式。************************************************************************************************************************#include<regh>#include<pinh>#definenum用于存放计数最大值最大为段码表(共阴)“”“”“”“”“”“”“”“”“”“”熄灭“P”ucharcodetab={xfc,x,xda,xf,x,xb,xbe,xe,xfe,xf,x,xce}***定义定时器重装值(只适用于晶振为M时),ms溢出*#defineRELOADH()#defineRELOADL()*功能:串口显示子程序*voidshow(ucharn){SBUF=tabnwhile(!TI)TI=}*功能:定时器初始化(晶振M溢出周期为ms)*voidTimerInit(void){合肥硕锋电子技术有限公司单片机项目式教学教程TMOD|=x定时器,方式TL=RELOADLTL定时器低位计数器TH=RELOADHTH定时器高位计数器TR=定时器计数器启动位TR=:开始计时或计数TR=禁止计时或计数ET=定时器计数器中断使能EA=全局中断使能}*功能:定时器中断服务程序*voidTimerISR(void)interrupt{uinta,bstaticucharintcnt=中断次数staticucharseccnt=次计数器staticunsignedi=staticbitpstatus=if(p==){i=pstatus=!pstatus}检测按键intcntif((intcnt)==)每ms中断一次,次就是ms即为s""为求余{intcnt=seccntif(!pstatus){p=p=绿色发光二极管点亮a=ib=i取显示的高位和低位show()show()show()show()熄灭左边四个数码管show(a)show(b)显示高位和低位}else{p=p=红色发光二极管点亮a=(numi)b=(i)取显示的高位和低位show()show()show()show()熄灭左边四个数码管show(a)show(b)显示高位和低位}iif(i>=num){i=}}合肥硕锋电子技术有限公司单片机项目式教学教程TL=RELOADL定时器初值重装TH=RELOADH}*主函数*voidmain(void){TimerInit()定时器初始化while(){}}合肥硕锋电子技术有限公司单片机项目式教学教程项目:七段数码管显示技术实现一颗数码管的计数(项目)项目目的和要求要求学生通过本项目的学习掌握共阴和共阳数码管的区别以及在电路中的不同连接方法。掌握单片机C语言一维数组的使用。要求要求要求要求掌握七段数码管的显示原理能区分共阳和共阴数码管在电路中的不同连接方法。利用单片机控制一颗共阳数码管并实现数字的循环显示。项目原理和数码管知识段LED数码管则在一定形状的绝缘材料上利用单只LED组合排列成“”字型的数码管分别引出它们的电极点亮相应的点划来显示出的数字。数码管根据LED的接法不同分为共阴和共阳两类了解LED的这些特性对编程是很重要的因为不同类型的数码管除了它们的硬件电路有差异外编程方法也是不同的。右图是共阴和共阳极数码管的内部电路它们的发光原理是一样的只是它们的电源极性不同而已。将多只LED的阴极连在一起即为共阴式而将多只LED的阳极连在一起即为共阳式。以共阳数码管为例如把阳极接电源在相应段的阴极送入低电平该段即会发光。当然LED的电流通常较小一般均需在回路中接上限流电阻。假如我们将"b"和"c"段送入低电平那么"b"和"c"段发光此时数码管显示将显示数字“”。而将"a"、"b"、"d"、"e"和"g"段都送入低电平此时数码管将显示“”。其它字符的显示原理类同读者自行分析即可。下表是共阴和共阳数码管段码表。熄灭熄灭熄灭熄灭共阴共阴共阴共阴FBFDDFF共阳共阳共阳共阳CFABFFF请同学们思考一个问题共阴和共阳数码管段码为什么是这样的呢?如果不告诉你的话你能推导出来吗?试试看!合肥硕锋电子技术有限公司单片机项目式教学教程图项目原理图图项目程序编译窗口合肥硕锋电子技术有限公司单片机项目式教学教程图项目仿真图程序清单****************************************************************#include<regh>#defineucharunsignedcharcodetab={xF,x,xB,xF,x,xD,xD,x,xF,xF}*******************************时间延迟的函数***************************voiddelay(void){uchari,jfor(i=i<i)for(j=j<j)}*********************************主函数********************************main(){uchari变量i用来储存~while(){for(i=i<i){P=tabi输出~到共阳七段显示器delay()delay()}}}****************************************************************在SFS单片机开发板上实现⑴查找资料掌握共阴、共阳数码管的基础知识。⑵自己能动手写出共阴、共阳数码管的段码表。合肥硕锋电子技术有限公司单片机项目式教学教程⑶从原理上理解共阴、共阳数码管在电路上的连接方式。⑷根据项目要求自己绘制程序流程图。⑸根据程序流程图编写程序并在KEIL中调试程序。生成hex文件。⑹在proteus中进行仿真。⑺在仿真正确的情况下通过ISP下载线将程序烧入目标板。⑻将SFSXS板的七段码与主板的P口相连接GND与主板的GND相连CS(第一个数码管的选通端)与主板的VCC(或V)相连接运行硬件调试。注意:本例程使用的是共阴数码管若使用共阳数码管程序和硬件连接方式要做修改。创新课题探讨同学们在完成本项目的过程中同学们在

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/24

单片机C语言实验(例程)

仅供在线阅读

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利