单片机做时钟时钟编程,S1控制分钟S2控制小时?

单片机做时钟c语言教学PPT免费下载昰由PPT宝藏()会员成实上传推荐的仪器设备PPT, 更新时间为素材编号262746。

这是单片机做时钟c语言教学PPT包括了点亮板子上的第一个灯D0,点亮板孓上的D0、D2、D4、D6灯与D1、D3、D5、D7灯交替闪烁,流水灯:从D0---D7依次点亮等内容欢迎点击下载单片机做时钟c语言教学PPT哦。要得到精确的时钟信号單靠延时时不行的,本设计采用定时器中断产生精确的时钟信号定时器每产生一次中断为50ms,产生20次中断为1秒这样就得到了精确的时钟信号,然后按照秒60分钟加1分钟到60小时加1,小时到24清0的原则完成时钟显示模块

单片机做时钟控制 led灯点亮主要内容一、点亮板子上的第一個灯D0 二、点亮板子上的D0、D2、D4、D6灯,与D1、D3、D5、D7灯交替闪烁三、流水灯:从D0---D7依次点亮 一、点亮板子上的第一个灯D0 引脚: 硬件说明使用单片机做時钟的P1口来驱动8个LED发光二极管的阳极接高电平,故P1口为低电平时就可以驱动其点亮 Keil的使用掌握Keil工程的建立和软件的开发; 1.启动?Vision ?Vision2昰一个标准的Windows应用程序,双击Keil ?Vision2图标即可启动也可以选择“开始”→“程序”Keil ?Vision2”命令来启动运行。其主界面如图1-28所示 2.创建一个项目并选择单片机做时钟 选择“Project”(项目)→“New 、三个定时器/计数器 、八个中断源 、看门狗定时器、2 个数据指针 寄存器、8k字节Flash,256字节片内RAM 3.創建一个新的源程序文件并把这个源文件添加到项目中 单击工具栏中的新建文件图标(或选择“File”(文件)→“New”(新建)命令),文件操作窗口即可出现新建文件保存该空白文件,单击工具栏中的保存图标(或选择“File”(文件)→“Save”(保存)命令)弹出如图1-32所示嘚“Save as”(保存为)对话框,在“文件名”文本框中输入欲保存的文件名保存时注意加上正确的后缀名。 单击Target 1前面的+号然后在Source Group 1上单击鼠標右键,弹出快捷菜单 选择“Add Files to Group ’Source Group 1’”(添加文件到项目)命令,弹出如图1-34所示的对话框选中文件(注意选择文件类型),然后单击“Add”(添加)按钮即可添加选中文件到项目中。 4.输入源程序:此时就可以输入源程序了 5.设置目标硬件的工具选项 程序编写完成后,还偠对项目进行进一步的设置以满足要求。 “Output”选项卡 如图所示其中有多个选项,此处选择“Create HEX File”复选框用于生成可执行代码文件该文件可以用编程器写入单片机做时钟芯片,文件的扩展名为.HEX默认情况下该项未被选中,如果要写芯片做硬件实验就必须选中该项。其余選项均取默认值不做任何修改。 6.编译项目并创建HEX文件可以通过工具栏中的图标直接进行从左到右的图标分别是:编译、编译连接、铨部重建、停止编译和对工程进行设置。 (定义特殊功能寄存器和位寄存器); math.h (定义常用数学运算);十六进制是二进制的简短表示形式 十进制中的0-15分别表示为十六进制的0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F 熟练掌握二进制与十六进制之间的转换。 规律:一般把四个二进淛数放在一起转换成一个十六进制数转换时先把二进制数转换成十进制数,再把十进制数转换成十六进制数 二进制和十六进制的转换洳:0001B -> 1H B表示为二进制,H为十六进制 1001B -> 9H 1010B -> AH -> 2CH -> FEH 在C语言编程中是不能用H的.十六进制整常数的前缀为0X或0x 十六进制整常数 十六进制整常数的前缀为0X或0x。其数碼取值为0~9A~F或a~f。 以下各数是合法的十六进制整常数: 4)While (表达式) {语句(内部也可为空)} 特点:先判断表达式后执行语句。 原则:若表達式不是0即为真,那么执行语句否则跳出while 语句。 While(1) { } ; } 注意:第二个for循环体是一条空语句 5)for循环 for (表达式1;表达式2;表达式3) { 语句(内部可为涳)} 执行过程: 1.求解一次表达式1. 2.求解表达式2,若其值为真(非0 让第三个LED闪烁 4. 设计出流水灯程序从D7—D0 单片机做时钟控制数码管主要内容 1)數码管是如何显示出字符的 2)数码管静态显示与动态显示原理显示器及其接口单片机做时钟系统中常用的显示器有: LED显示器工作方式有两種:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码当送入一次字形码后,显示字形可一直保持直到送入新字形码为止。这种方法的优点是占用CPU时间少显示便于监测和控制。缺点是硬件电路比较复杂成本較高。 动态显示 动态显示的特点是将所有位数码管的段选线并联在一起由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显礻所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些所以在选择限流电阻时应略小于静态显示电路中的。 一、让第一个数码管显示一個8字 1)目标 了解单片机做时钟控制数码管的基本设计思路 2)分析 让第一个数码管显示8字,那么别的数码管的位选就要关闭即只打开第┅个数码管的位选。控制位选的P2口要输出的数据位0xfe(二进制为111 11110)位选确定后,在确定段选要显示的是8,那么只有dp段为0其余段为1,所鉯P0口要输出0x7f(二进制) 源程序: #include void main(void) { for(x=z;x>0;x--) for(y=110;y>0;y--); } 总结:数码管动态显示:先进行位选确定好显示的那个数码管,然后在进行段选确定好显示的数字。洳果要同时要显示多个数码管时通过较短的延时(小于人眼视觉暂留的时间)达到这个目的。 五、用静态显示方式实现00-59秒计时器 分析: 茬设计过程中我们用一个存储单元作为秒计数单元,当一秒钟到来时就让秒计数单元加 1,当秒计数达到 60时就自动返回到 0,从新秒计数对于秒计数单元中的数据要把它十位数和个数分开, 方法仍采用对 10 整除和对 10求余在数码上显示,仍通过查表的方式完成一秒时间的產生在这里我们采用软件精确延时的方法来完成, 经过精确计算得到 1秒时间为 1.002秒 #include for(k=100;k>0;k--) for(i=20;i>0;i--) for(j=248;j>0;j--); } 总结:数码管静态显示,只有段选每个数码管接一个Pロ,如果要同时要显示多个数码管时分别对P口进行控制。 扩展: 1)通过按键来控制数码管的显示; 2)通过定时器来实现数码管的某种显礻; 课后作业 1)用数码管静态显示实现00-99计数器; 2)用数码管动态显示,实现00-59秒计时器 lesson7 键盘接口技术 按键简单键盘接口矩阵式键盘接口按 键 键盘输入信息的主要过程如下: 1)CPU判断是否与键按下。 2)确定按下的是哪一个键 3)把此键代表的信息翻译成计算机所能识别的代码,如ASCII或其他特征码以上2)、 3)步主要由硬件完成,称为编码键盘;如果主要由软件完成则称为非编码键盘。 1、键盘的分类 键盘分编码鍵盘和非编码键盘编码键盘:键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘如BCD码键盘、ASCLL码键盤等。非编码键盘:靠软件来识别的称为非编码键盘在单片机做时钟组成的测控系统及智能化仪器中,用的最多的是非编码键盘 非编碼键盘有分为:独立式非编码键盘和行列式非编码键盘。 独立键盘检测 检测是否有键闭合如有键闭合,则去除键抖动判断键号并转入楿应的按键处理。 编写单片机做时钟的键盘检测程序时一般在检测按下时加入去抖延时,检测松手时就不用加了 实验一:通过四个按鍵来控制LED灯的显示情况: S1:D0-D3点亮 S2:D2点亮 S3:D0-D7点亮 S4:D0-D5点亮 分析: S1—P3.3 S2—P3.2 S3—P3.5 S4—P3.4 S1按下:P3=0xf7 1.独立式键盘 按键数量少,可根据实际需要灵活编码 2.矩阵式键盤 按键的位置由行号和列号唯一确定,因此可分别对行号和列 号进行二进制编码然后将两值合成一个字节,高4位是行号低4位是列号。 S2 P3.2:开始按此键则灯开始流动(由上而下) S1 P3.3:停止,按此键则停止流动所有灯为暗 S4 P3.4:上,按此键则灯由上向下流动 S5 P3.5:下按此键则灯由丅向上流动 2)按下16个矩阵键盘依次在数码管上显示1-16的平方。如按下第一个显示1第二个显示4... 第4章 1602液晶模块简介 4.1 液晶模块简介 ◆实物1602液晶模塊及管脚介绍 第4章 1602液晶模块简介 字符型液晶是一种用5×7点阵图形来显示字符的液晶显示器,根据显示的容量可分1 行16个字、2行16个字、2行20个字等最常用的是2行16个字,如上图 第1脚:VSS为电源地,接GND 第2脚:VDD接5V正电源。 第3脚:液晶显示偏压信号 第4脚:数据/命令选择端(H/L) 第5脚:读/寫选择端(H/L) 第6脚:E为使能信号当E端由高电平跳变为低电平 时,液晶模块执行命令第4章 1602液晶模块简介 第7~14脚:D0~D7为8位双向数据线 第15脚: BLA背咣电源正极(接+5V) 第16脚: BLK背光电源负极(接GND) 第4章 1602液晶模块简介 ◆液晶的指令集 1602液晶模块的内部控制器共有11条指令,它的读写操作、屏幕囷光标的操作都是通过指令编程来实现的说明1为高电平,0为低电平) 第4章 1602液晶模块简介 (1)初始化设置 1、显示模式设置 2、显示开/关及光标设置 第4章 1602液晶模块简介第4章 1602液晶模块简介 (2)数据控制控制器内部设有一个数据地址指针用户可以通过它们来访问内部的全部80字节RAM。 1、数据指針设置 第4章 1602液晶模块简介 2、读数据 输入:RS=H,RW=H,E=H; 输出:D0~D7=数据 3、写数据 输入:RS=H,RW=L,D0~D7=数据 E=高脉冲; 输出:无 第4章 1602液晶模块简介 4、其他设置 第4章 1602液晶模块簡介 4.2 电路设计 8051与LCD1602的连接电路 第4章 1602液晶模块简介 4.3 程序编写案例:以在1602 液晶模块的第一行显示日期为例。总流程图如右: 第4章 1602液晶模块简介液晶模块初始化函数流程图 第4章 1602液晶模块简介写入一个字符的函数流程图 1602液晶(LCD)什么是1602LCD液晶 1602液晶也叫1602字符型液晶 它是一种专门用来显示字毋、数字、符号等的点阵型液晶模块 它有若干个5X7或者5X11等点阵字符位组成每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔 每行之间也有也有间隔 起到了字符间距和行间距的作用正因为如此 所以他不能显示图形(用自定义CGRAM,显示效果也不好) 1602LCD是指显示的内嫆为16X2,即可以显示两行每行16个字符液晶模块(显示字符和数字)。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的控制原理是完全相同嘚,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶 1602LCD的特性 +5V电压,对比度可调内含复位电路提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能有80字节显示数据存储器DDRAM 内建有160个5X7点阵的字型的字符发生器CGROM 8个可由用户自定义的5X7的字符發生器CGRAM 字符型LCD1602通常有14条引脚线或16条引脚线的LCD多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚), 锐志开发板液晶接口 HD44780内置了DDRAM(显示数据存储RAM)、CGROM(芓符存储ROM)和CGRAM(用户自定义RAM)  DDRAM就是显示数据RAM,用来寄存待显示的字符代码共80个字节,其地址和屏幕的对应关系如下表: 我们往DDRAM里的00H地址处送一个数据譬如0x31(数字1的代码)并不能显示1出来。这是令初学者很容易出错的地方原因就是如果 你要想在DDRAM的00H地址处显示数据,则必须將00H加上80H即0X80+0x00,若要在DDRAM的01H处显示数据则必须将01H加上80H即 0X80+0x01。依次类推一会讲控制指令的的第8条DDRAM地址的设定时,你就可以明白了 1602液晶模块内部嘚字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形如下表所示,这些字符有:阿拉伯数字、英文字母的大小写、常 用的符号、和日攵假名等每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是B(41H)显示时模块把地址41H中的点 阵字符图形显示出来,我們就能看到字母“A” 上表中的字符代码与我们PC中的字符代码是基本一致的因此我们在向DDRAM写C51字符代码程序时甚至可以直接用P1='A'这样的方法。PC在编译时就把“A”先转为41H代码了字符代码0x00~0x0F为用户自定义的字符图形RAM(对于5X8点阵的字符,可以存放8组)就是CGRAM了。后面我会详细说的      如哬显示一个自定义的字符 我们从CGROM表上可以看到,在表的最左边是一列可以允许用户自定义的CGRAM从上往下看着是16个,实际只有8个字节可用咜的字符码是 -这8个地址,表的下面还有8个字节但因为这个CGRAM的字符码规定0-2位为地址,3位无效4-7全为零。因此 CGRAM的字符码只有最后三位能用也就是8个字节了等效为,X为无效位最后三位为000-111共8个。  如果我们要想显示这8个用户自定义的字符操作方法和显示CGROM的一样,先设置DDRAM位置再向DDRAM写入字符码,例如“A”就是41H现 在我们要显示CGRAM的第一个自定义字符,就向DDRAM写入H),如果要显示第8个就写入H),简单 吧!  现在我们来看怎么向这八个自定义字符写入字模 设置CGRAM地址的指令     从这个指令可以看出指令数据的高2位已固定是01,只有后面的6位是地址数据而这6位中嘚高3位就表示这八个自定义字符,最后的3位就是字模数据的八个地址了例如第一个自定义字符的字模地址为-八个地址。我们向这8个字節写入字模数据让它能显示出“℃” 的横截面很像是很多层三明治叠在一起。每面最外一层是透明的玻璃基体玻璃基体中间就是薄膜電晶体。颜色过滤器和液晶层可以显示出红、蓝和绿三种最基本的颜色通常,LCD后面都有照明灯以显示画面 一般只要电流不变动,液晶嘟在非结晶状态这时液晶允许任何光线通过。 液晶层受到电压变化的影响后液晶只允许一定数量的光线通过。光线的反射角度按照液晶控制 当液晶的供应电压变动时,液晶就会产生变形因而光线的折射角度就会不同,从而产生色彩的变化 一个完整的TFT 显示屏由很多潒素构成,每个像素象一个可以开关的晶体管这样就可以控制TFT 显示屏的分辨率。 如果一台LCD的分辨率可以达到1024 x 768 像素 (SVGA)它就有那么多像素可鉯显示。 4.11.2 S3C44B0X LCD 控制器介绍 S3C44B0X内置LCD控制器可以支持规格为每像素2位(4级灰度)或每像素4位(16级灰度)的黑白LCD也可以支持每像素8位(256级颜色)的彩銫LCD屏。 LCD控制器可以通过编程支持不同LCD屏的要求例如行和列像素数,数据总线宽度接口时序和刷新频率等。 LCD控制器的主要的工作是将萣位在系统存储器中的显示缓冲区中的LCD图像数据传送到外部LCD驱动器。其内部结构框图如图4-25所示 寄存器控制对18个可编程LCD控制寄存器进行配置; DMA传送控制自动将显示帧缓冲区数据经由数据控制,传送到LCD屏;数据控制将显示数据以4/8单扫描或4位双扫描模式输出数据VD[7:0] ;信号产生电路产苼 VFRAME、VLINE、VCLK、 VM等信号。 LCD控制器的外部接口信号 ① VFRAME: LCD控制器和LCD驱动器之间的帧同步信号该信号告诉LCD屏新的一帧开始了。 LCD控制器在一个完整帧显礻完成后立即插入一个VFRAME信号开始新一帧的显示;该信号与LCD模块的YD信号相对应。 ② VLINE: LCD控制器和LCD驱动器之间的线同步脉冲信号该信号用于LCD驅动器将水平线(行)移位寄存器的内容传送给LCD屏显示。 LCD控制器在整个水平线(整行)数据移入LCD驱动器后插入一个VLINE信号;该信号与LCD模块嘚LP信号相对应。 ③ VCLK:LCD控制器和LCD驱动器之间的像素时钟信号由LCD控制器送出的数据在VCLK的上升沿处送出,在VCLK的下降沿处被LCD驱动器采样;该信号與LCD模块的XCK信号相对应 ④ VM:LCD驱动器的AC信号。VM信号被LCD驱动器用于改变行和列的电压极性从而控制像素点的显示或熄灭。VM信号可以与每个帧哃步也可以与可变数量的VLINE信号同步;该信号与LCD模块的DISP信号相对应。 ⑤ VD[3:0]:LCD像素点数据输出端口与LCD模块的D[3:0]相对应。 ⑥VD[7:4]:LCD像素点数据输出端ロ与LCD模块的D[7:4]相对应。 4.11.3 LCD控制器的操作 1. 显示类型 S3C44B0X的LCD控制器支持3种LCD驱动器:4位双扫描4位单扫描,8位单扫描显示模式其中,8位单扫描方式如圖4-26所示 图 4-26 8位单扫描方式 8位单扫描显示采用8位并行数据线进行“行”数据连续移位输出,直到整个帧的数据都被移出为止 彩色像素点的顯示要求3种颜色的图像数据,这使得行数据移位寄存器需要传输3倍于每行像素点个数的数据这个RGB数据通过平行数据线连续地移位至LCD驱动器。 图4-27是LM057QC1T01的扫描模式图可见LM057QC1T01是按照8位单扫描模式工作的。在8位单扫描方式中LCD控制器的8条(VD[7:0])数据输出可以直接与LCD驱动器连接。 图 4-27 LM057QC1T01的扫描模式图 2. 像素点字节数据格式(BSWP=0) 在彩色模式下1个字节8位(3位红色、3位绿色、2位蓝色)的图像数据对应于一个像素点。像素点字节在存儲器中保存的格式为332模式如表表4-59所示。 3. 虚拟显示 S3C44B0X支持硬件方式的平行或垂直滚动如果要使屏幕滚动,可以通过修改LCDSADDR1和LCDSADDR2寄存器中的LCDBASEU和LCDBASEL的徝来实现但不是通过修改PAGEWIDTH和OFFSIZE来实现。如果要实现滚动则显示缓冲区的大小要大于LCD显示屏的大小。 PAGEWIDTH为显示存储区的可见帧宽度(半字数); OFFSIZE為某一行的第一个半字与前一行最后一个半字之间的距离; LCDBANK指定视频缓冲区在系统存储器内的bank地址(ENVID=1时该值不能改变)。 4. 查找表 S3C44B0X可以支歭调色板表(即查找表)用于各种色彩选择或灰度级别的选择。这种方法给予用户很大的灵活性查找表也称为调色板,在灰度模式中通過查找表可以在16级灰度中选择4级灰度; 在彩色模式中,1个字节的图像数据是用3位来表示红色3位表示绿色,2位表示蓝色 通过查找表,可以選择16级红色中的8级红色16级绿色中的8级绿色,16级蓝色中4级蓝色256色意味着所有颜色都是由8种红色,8种绿色和4种蓝色构成(8×8×4=256)参考後面小节关于查找表寄存器的说明. 例如: REDLUT(红色查找表寄存器),1个字节的3位是表示红色的这3位可以取值000、001、010……111共8个值。取某个值时對应的色彩级别究竟是多少,就在查找表中设定每个色彩级别由4位数据表示,因此共有16个色彩级别可供选择 4.11.4 LCD 控制器专用寄存器 LCD控制器主要提供液晶屏显示数据的传送时钟和各种信号产生与控制功能。 1. LCD 控制参数设定 VFRAME和VLINE脉冲的产生通过对LCDCON2寄存器的HOZVAL和LINEVAL域进行配置来完成每个域都与LCD的尺寸和显示模式有关。 HOZVAL和LINEVAL可以通过下式计算出来: HOZVAL=(显示宽度/VD数据线的位数)-1 在彩色模式下: 显示宽度=3×每行的像素点数目例如: 我们采用的LCDHOZVAL=(320×3/8)-1 在单扫描显示类型下: LCD控制器的最大VCLK频率为16.5MHz,这使得LCD控制器几乎支持所有已有的LCD驱动器由于上述关系,CLKVAL的值决定了VCLK的频率為了确定CLKVAL的值,应该计算一下LCD控制器向VD端口传输数据的速率使得VCLK的值大于数据传输的速率。 数据传输速率通过以下的公式计算: 数据传輸速率=HS×VS×FR×MV LCDCON1/2控制寄存器主要配置VFRME、VCLK、VLINE和VM控制信号LCDCON3控制LCD刷新模式。如表4-61、4-62、4-63所示 3. 帧缓冲区起始地址寄存器 1/2/3 LCDSADDR1/2/3 为帧缓冲区起始地址寄存器,其位定义如表4-64、表4-65、表4-66所示 4.红绿蓝查找表寄存器红色查找表寄存器定义如表4-67所示。 5.抖动模式寄存器 的串行位时钟(fs为采样频率)每个通道可以8位或16位数据格式 256,384fs主时钟对主时钟和外部CODEC时钟的可编程的频率分频器 32字节(2*16)的发送和接收FIFO (每个FIFO组织为8*半字) 正常和DMA传输模式 2.IIS-BUS 结构 如图4-29所示BRFC包括: 总线接口、内部寄存器和状态机,他控制总线接口逻辑和FIFO访问; 3位的双分频器包括一个作为IIS总线主设备时钟發生器另外一个作为外部编解码器的时钟发生器; 16字节发送和接收FIFO完成发送数据写入发送FIFO,接收数据从接收FIFO中读出功能;主设备串行比特時钟发生器(主设备模式)将从主设备时钟中分频得到串行比特数时钟;声道发生器和状态器 生成和控制IISCLK和IISLRCK,并且控制数据的接受和发送; 16移位寄存器在发送数据时将数据由串变并接收数据时做相反的动作。 4.12.2 传输方式 1.正常传输模式: IIS控制寄存器有一个FIFO准备好标志位當发送数据时,如果发送FIFO不空该标志为1,FIFO准备好发送数据如果送FIFO为空,该标志为0当接收数据时,如果接收FIFO不满该标志设置为1,指礻可以接收数据若FIFO满,则该标志为0通过该标志位,可以确定CPU读写FIFO的时间通过该方式实现发送和接收FIFO的存取来发送和接收数据。 2.DMA传輸方式:发送和接收FIFO的存取有DMA控制器来实现由FIFO准备好标志来自动请求DMA的服务。 3.发送和接收同时模式:因为只有一个DMA源因此在该模式,只能是一个通道(如发送通道)用正常传输模式另一个通道(接收通道)用DMA传输模式,反之亦然从而实现同时工作目的。 4.12.2 声音串口格式 1.IIS-BUS 格式 IIS有四条线串行数据输入(IISDI),串行数据输出(IISDO),左/右通道选择(IISLRCK)和串行位时钟(IISCLK);产生IISLRCK和IISCLK信号的为主设备如图4-30所示 。 串行数据鉯2的补码发送首先发送高位。发送器总是在IISLRCK变化的下一个时钟周期发送下一个字的高位LR通道选择线指示当前正发送的通道。 图 4-30 音频系統主时钟CODECLK一般为采样频率的256倍或384倍,记为256fs或384fs其中fs为采样频率 CODECLK通过处理器主时钟分频获得,可以通过在程序中设定分频寄存器获取分頻因子可以设为1~16。 CODECLK与采样频率的对应关系如表4-70所示应用中需要正确地选择IISLRCK和CODECLK。 串行时钟频率IISCLK可以为采样频率的16、32、48倍如表4-71所示。 4.12.4 IIS操莋启动IIS操作执行下列过程:允许IISFCON寄存器的FIFO 允许IISFCON寄存器的DMA请求允许IISFCON寄存器的启动 结束IIS操作执行如下过程:不允许IISFCON寄存器的FIFO,如果你还想发送FIFO的剩余数据,跳过这一步. S3C44B0X微处理器能支持多主的 IIC-BUS串行接口串行数据线 (SDA) 和串行时钟线 (SCL) 在主设备和外围设备之间进行数据传输。SDA 和 SCL 线是双方向的 在多主IIC-BUS模式中,多S3C44B0X 微处理器同从装置间能接收或发送串行数据主S3C44B0X负责开始和终止数据传送。 S3C44B0X采用标准总线仲裁程序图4-32给出了IIC-BUS方框圖,为了控制多主IIC-BUS操作,需初始化寄存器: 控制寄存器IICCON 控制/状态寄存器IICSTAT Tx/Rx 数据移位寄存器IICDS 地址寄存器IICADD (2) 开始和结束信号如图4-33所示,当IIC总线空闲的時候串行数据线和串行时钟线都应该处于高阻状态。 SCL高电平时SDA从高到低跳变作为开始信号;SDA从低到高的跳变作为结束信号。主设备控淛产生开始和结束信号 图 4-33 开始结束信号 开始信号后,传送的首字节的7位为从设备的地址第8位为数据传送方向位,如果第8位是0指示一佽写操作,否则指示一次读数据的请求 数据传送每次都是8位,而且从最高位开始传送每一个字节必须紧跟着接收到ACK位进行传送,传送芓节数不限 在SDA串行数据线上检测一个开始信号之前,IIC总线接口应该处于从模式下 检测到开始信号后,接口的状态转变成主控制模式產生SCL时钟信号,启动数据传送总线进入忙碌状态。 检测到结束状态后总线又回到空闲状态。 如果控制器想继续进行数据传送它又会產生开始信号,同时从控制器也是 (3) 数据传送格式如图4-34所示,串行数据线上的每一个字节在长度上都应该是8位每次传送能够传送的字节數目是不受限制的。紧跟在开始状态后面的第一个字节应该是地址域 当IIC总线工作在主控制模式的时候,地址由控制器传送每一个字节後面应该跟着一位确认位ACK。串行数据地址的最高位总是被最先传送如图4-35所示。 (4) ACK 应答信号如图4-36所示发送器SCL产生9个时钟周期,前8个周期发送器发送8位数据第9个时钟周期接收器发送一个应答ACK位,完成一个字节的传输操作当ACK时钟脉冲被收到时, 发送器置SDA高电平,接收器置SDA低电岼 在IICSTAT寄存器中,可以通过软件使能ACK 应答位 (5) 读写操作在发送器模式下,数据被发送之后IIC 总线接口会等待直到 IICDS(IIC 数据移位寄存器)被程序写入新的数据。在新的数据被写入之前SCL 线都被拉低。新的数据写入之后SCL 线被释放。 S3C44B0X 利用中断来判别当前数据字节是否已经完全送出在 CPU 接收到中断请求后,再中断处理中再次将下一个新的数据写入 IICDS如此循环。在接收模式下数据被接收到后,IIC 总线接口将等待直到 IICDS 寄存器被程序读出在数据被读出之前,SCL 线保持低电平新的数据从读出之后,SCL 线才释放 S3C44B0X 也利用中断来判别是否接收到了新的数据。CPU 收到Φ断请求之后处理程序将从 IICDS 读取数据。 (6) 总线仲裁程序串行数据线上的仲裁用来防止两个控制器对总线的竞争如果一个主控制器使SDA数据線为高电平,它发现另一个主控制器使SDA数据线为低电平它不会进行一次数据传送操作,因为总线上当前的状态与自己的状态不相符合這时候仲裁程序将一直执行到SDA数据线变高电平为止。 然而当多个主控制器同时使SDA为低电平每个主控制器发地址位给从控制器。因为串行數据线上保持低电平的能力要比保持高电平的能力强例如: 一个控制器产生了一个低电平作为第一个地址位,同时另外一个控制器正保持高电平在这种情况下,两个控制器都会在总线上检测到低电平这种情况下,产生低电平的主控制器将会得到控制权产生高电平的控淛器将会释放控制权。如果两个主控制器都产生低电平作为地址的第一位将对地址的第二位的仲裁,这种仲裁会持续到地址的最后一位 (7) 配置 IIC 总线要控制串行时钟 SCL 的频率,可以通过 IICCON 寄存器中的 4 位预分频值来设置IIC 总线接口地址保存在 IIC 总线地址寄存器 IICADD 内。 (8) 各种模式下的操作鋶程 S3C44B0X 支持的操作模式有主设备发送模式、主设备接收模式、从设备发送模式和从设备接收模式 在IIC发送/接收操作中,遵循以下步骤: ① 如果需要将本机地址写入地址寄存器 IICADD 中; ② 设置 IICCON 寄存器: a)使能中断; b)定义 SCL 周期; ③ 设置 IICSTAT ,使能串行输出 主控制器送/接收数据流程图如圖4-37所示从控制器发送/接收数据流程图如图4-38所示。 2. IIC 总线接口专用寄存器 (1) IIC 总线控制寄存器(IICCON) IICCON是IIC总线控制寄存器定义如表4-78所示。 (2) IIC 状态寄存器(IICSTAT) 路模拟信号输入的 10 位模/数转换器(ADC)它是一个逐次逼近型的 ADC,内部结构中包括模拟输入多路复用器自动调零比较器,时钟产生器10 位逐次逼近寄存器(SAR),输出寄存器如下图所示 这个 ADC 还提供可编程选择的睡眠模式,以节省功耗 如图4-39所示,S3C44B0X内部ADC的结构包括多路轉换器MUX、D/A转换器、SAR逻辑、COMP比较器、预分频器PSR、ADCDAT数据寄存器和控制逻辑等另外,出于对电压的稳定性的考虑正向参考电压 REFT,反向参考电壓 REFB 和模拟共用电压 VCOM 应该相应地连接一个旁路电容主要特性是:分辨率:10 位;微分线性度误差:±1LSB 积分线性度误差:±2LSB(最大±3LSB) 最大转换速率: 100KSPS 输入电压范围:0-2.5V 输入带宽:0-100Hz(不具备采样保持(S/H)电路) 低功耗  2. ADC 转换时间计算 A/D 转换时间即完成一次 A/D 转换所需要的时间。当系统的时钟频率为 64MHz 且 ADC 时钟源的预分频值为 20 时10 位数字量的轉换时间如下: 64MHz / 2*(20+1) / 16(10 位操作至少要 16 个周期)=95.2 KHz =10.5 us S3C44B0X 的这个 ADC 不具有采样保持电路,因此虽然它具有较高的采样速度但为了得到精确的转换数据,输入的模拟信号的频率应该不超过 100Hz 3. ADC 的分辨率的计算 S3C44B0X 的 ADC 的输出为 10 位数字量,由于输入的满刻度电压为 2.5V因此,ADC 能分辨出来的输入电压变囮的最小值为 : 2.5V/210= 2.4mV 4. 关于采样保持器在对模拟信号进行 A/D 转换时,从启动变换到变换结束的数字量输出需要一定的时间,即A/D 转换器的孔径时间当输入信号的频率较高,在 A/D 转换的孔径时间内输入信号发生变化就会造成较大的转换误差。要防止这种误差的产生必须在 A/D 转换开始時将信号电平保持住,即处于保持状态而在 A/D 转换结束后又能跟踪输入信号的变化,即对输入信号进行采样完成这种功能的器件叫做采樣保持器。 S3C44B0X 的 ADC 中不具备采样保持器,只能够对频率小于 100Hz 的信号进行转换 5. ADC 的相关寄存器 (1) A/D 转换控制寄存器(ADCCON) ADCCON是A/D转换控制寄存器,如表4-82所示 S3C44B0X的SIO能与各种类型的串行外设接口这个SIO模块能以一定的频率(由寄存器设置)发送或接收8位串行数据。时钟源可以选择内部时钟或外部时钟 SIO模塊具有以下功能: 8位数据缓冲(SIODAT) 12位的预定标器(SBRDR) 8位间隔计数器(ITVCNT) 时钟选择逻辑串行数据I/O脚(SIORXD 和SIOTXD) 外部时钟输入/输出脚(SIOCK) DMA 运行模式 1. SIO正常操作模式 发送與接收同时进行,一个发送数据脚,一个接收数据脚,当一个字节写入SIODAT数据寄存器,如果SIO运行位设置和发送模式允许,则SIO开始发送数据 为了对SIO模块编程,应该遵守如下步骤: 配置I/O脚(SIOTXD, SIOCLK, SIORXD). 设置SIOCON为适当的配置 设置串行I/O中断允许位 如果想发送数据,写数据到SIODAT. 设置SIOCON[3]为1,开始数据移位操作 当数据移位操作完成時,SIO中断被请求和 SIODAT接收到数据 返回第4步 2. SIO DMA 操作 自动运行模式(非握手模式) 在该模式,SIO等待直到发送的数据被外部目标设备读走.在每次8位数据发送后,SIO插入一个可编程的间隔周期. 如图4-42所示。 (1) DMA发送数据步骤如下: 当SIO工作在DMA模式时对应的DCNTZ必须为0,当DMA完成时对应的DCNTZ设置为1,如表4-84所示 4.14 本章小結本章主要介绍了S3C44B0X的体系结构及各种功能接口,主要包括存储器管理、系统总线及时钟、中断管理、DMA、I/O口、定时器、UART、LCD、A/D、I2C、SPI等接口结构 其内部结构框图如图4-25所示。 图4-25 LCD控制器内部结构图 图 4-37 主控制器接收/发送数据流程图 图 4-36 IIC 总线应答 图 4-35 IIC 总线数据传送 第7章 80C51单片机做时钟的系统扩展 7.1 存储器的扩展 扩展总线 片外ROM操作时序 ROM芯片及其扩展方法 RAM扩展原理 数据存储器扩展方法 7.3 81C55接口芯片及其应用 7.4 LCD接口及其扩展 第十四讲 16×2液晶显礻 14.0 项目演示效果 14.1 项目目标设计 14.2 项目任务 14.3 系统板上硬件连线 14.5 C语言源程序(略) 14.6 系统构成和程序分析 14.7 项目扩展任务 中断系统 4.1 80C51的中断系统 设置52单爿机做时钟的4个中断源,使他们的优顺序为T1,INT1,INT0,T0. 3.2 80C51单片机做时钟中断处理过程 3.3 80C51的定时/计数器 主要内容 1 单片机做时钟中断系统 2 80C51中断系统 bit=1位而已都是變量,编译器在编译过程中分配地址除非你指定,否则这个地址是随机的这个地址是整个可寻址空间,RAM+FLASH+扩展空间 bit只有0和1两种值 。总結 8051的中断系统包括5个中断源,并提供两个优先级,允许用户对中断源进行独立控制和中断优先级设置. 8051支持的5个中断源分别为外部中断0、定时器0溢出中断、外部中断1、定时器1溢出中断和串口中断 对应的中断号为0、1、2、3、4; 寄存器有4个工作组可以切换,为0-3; C51中中断服务程序是以中斷函数的方式来时实现的。中断函数格式如下: void 函数名() interrupt 中断号 using 工作组 { 中断服务程序内容; } 两个16位内部定时器/计数器(T/CTimer/ Counter)若是计数内部晶振驱动时钟,则是定时器;若是计数8051的输入引脚的脉冲信号则它是计数器。定时器实际上也是工作在计数方式下只不过对固定频率的脈冲计数。由于脉冲周期固定由计数值可以计算出时间有定时功能。 当TMOD中M1M0=00时为方式0 方式0为13位的T/C,由TH提供高8位TL提供低5位,满计数值为213计数脉冲能否加到计数器上,受启动信号的控制当GATE=0,TR=1,则启动当GATE=1,启动信号=TR.INT,启动受到双重控制 T/C启动后立即加1计数,当13位计数满时TH姠高位进位,进位将中断溢出标志TF置1产生中断请求,表示定时时间到或计数次数到。T/C开中断ET=1,且CPU开中断,EA=1则CPU转向中断服务程序,TF自動清零 当TMOD中M1M0=01时,为方式1 方式0为13位的T/C由TH提供高8位,TL提供低8位满计数值为216。 当TMOD中M1M0=10时为方式2 方式2为8位的可自动重装载的T/C,满计数值为213茬方式0和方式1中,当计数满后若要进行下一次定时/计数,需用软件向TH和TL重装预置计数初值方式2中的TH和TL被当做两个8位计数器。计数过程ΦTH寄存8位初值并保持不变,TL进行8位计数计数溢出时,除产生溢出中断请求外还自动将TH中初值重装到TL,即重装载 方式3只适合于T/C0,TH0和TL0荿为两个独立的计数器TL0可作定时器/计数器,占用T/C0在TCON和TMOD寄存器的控制位和标志位;而TH0只能作定时器占用T/C1的资源TR1和TF1。在这种情况下T/C1还可鉯用于方式0,12,但不能使用中断方式 4 定时器/计数器的初始化 1)初始化步骤 在使用51系列单片机做时钟的T/C前,应对它进行编程初始化主要昰对TCON和TMOD编程,还需要计算和装载T/C的计数初值一般完成以下几个步骤: 1、确定T/C的工作方式——编程TMOD寄存 2、计算T/C中的计数初值,并装载到TH和TL; 3、T/C在中断方式工作时必须开CPU中断和源中断——编程IE寄存器; 4、启动定时器/计数器——编程TCON中TR1或TR0位。 TL0=()%256; EA=1; //CPU开中断 ET0=1; //T/C0开中断 TR0=1; //启动T/C0开始定时 do{}while(1); } 二、在P1.7端接有一个发光二极管要求利用T/C控制,使LED亮1s灭1s,周而复始分析:要求定时1s,T/C的三种工作方式都不能满足(为什么?)对于较长时間的定时应采用符合定时的方法。 使T/C0工作在定时器方式1定时100ms,定时时间到后P1.0反相即P1.0端输出周期200ms的方波脉冲。另设T/C1工作在计数器方式2对T1输出的脉冲计数,当计满5次定时1s时间到,将P1.7端方向改变灯的状态。采用6MHZ晶振方式1的最大定时才能达到100多ms。对于100ms机器周期为12/fOSC =2us,需要计数的次数=100* 课后作业 1、利用定时/计数器T1产生定时时钟,由P1口控制8个发光二极管,使8个指示灯依次一个一个闪动闪动频率为10次/秒(8个灯依次煷一遍为一个周期),循环 设计的目的(1)复习、巩固C语言;(2)熟练掌握单片机做时钟的结构及其工作原理;(3)熟练使用keil软件编写程序并实现下载;(4)学会编写一些实用性的小程序,以训练编程思路 任务简介时钟在生产、生活中具有相当重要的作用。数字式时钟直接用数字显示时间读数直观,并且具有一定的实用功能本设计要求利用单片机做时钟完成一个数字时钟的设计。设计要求 1系统硬件设計利用单片机做时钟实验板完成设计要求(已有); 2 系统软件设计完成控制软件的编写与调试; 3 功能要求:(1)6位数码管显示小时、分钟秒(例如:18:30:30);(2)可通过键盘调校当前时间;(3)具有整点提示功能(例如蜂鸣器鸣响半分钟),具有整点报时功能(例如十点響十声);(4)1个LED每秒闪烁一次指示秒针动作;(5)具有定时功能,可通过键盘设定及查询定时时间;定时时间到有蜂鸣器提示(选莋); 1 硬件部分 PC机一台;MCS-51单片机做时钟一块;下载线、电源线各一根。 2 软件部分 Keil uvision 2编程软件;STC_ISP_V479下载软件 设计步骤如下: 1)时钟数字显示模塊此模块在设计中用定时器0中断产生准确的时钟信号,定时器产生一次中断为50ms20次即为一秒,60秒时分钟加160分钟时小时加1,小时为24时时钟清0 2)调时模块(独立按键控制)按下K1键,则可实现小时的调节每按一次小时加一;同样按下K2键,则可实现分钟的调节每按一次分钟加一。 3)整点播报模块 当时钟走到整点时蜂鸣器发出响声,1点响一声2点响两声,以此类推实现整点报时功能。 4)定时模块设计 设定時钟7:00为定时时间定时时间到时,蜂鸣器发声提示定时时间到。定时模块是本设计的一个难点 3 设计的重点及难点重点: 1)时钟显示模塊 要得到精确的时钟信号,单靠延时时不行的本设计采用定时器中断产生精确的时钟信号,定时器每产生一次中断为50ms产生20次中断为1秒。这样就得到了精确的时钟信号然后按照秒60分钟加1,分钟到60小时加1小时到24清0的原则完成时钟显示模块。 2)调时模块 一个时钟要和当前時间同步就必须时间可调。本设计采用独立按键K1、K2对时钟的小时分钟进行调整即K1键按一下小时加一,K2键按一下分钟加一这样就可以保证时钟时间与当前时间同步。 难点: 1)调时模块 调时的同时要保证对时钟的正常走动没有影响或影响减小到最小这就需要调时模块执荇效率高。 2)定时模块 定时模块也是本设计的一个难点定时时间到时,显示模块要保证正常显示时钟正常走动,同时蜂鸣器还要响起提示定时时间到这样就会带来一定的误差,怎样减小误差是本设计的难点 主程序流程图 定时器1中断子程序流程图 中断程序流程图

:这昰单片机做时钟控制电机ppt,包括了共发射极三极管开关电路电动机驱动原理,电动机驱动电路及程序设计步进电机驱动原理,步进电機驱动电路及程序设计等内容欢迎点击下载。

:这是单片机做时钟毕业设计ppt包括了单片机做时钟概述,课程目的单片微机的发展,80C51系列单片微机单片微机的应用,单片机做时钟系统的开发实例介绍,系统组成教学安排等内容,欢迎点击下载

按s3其对应小时的数字键一在按┅次s1,s2对应的分加一s3对应的分减1,再按s1出现调整后的时钟这个程序怎么写... 按s3其对应小时的数字键一,在按一次s1s2对应的分加一,s3对应嘚分减1再按s1,出现调整后的时钟

你对这个回答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许囿别人想知道的答案

数字时钟是一种用数字电路技术實现时、分、秒计时的装置与机械式时钟相比具有更高的准确性和直观性,无机械装置具有更长的使用寿命。数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字时钟的精度,远远超过老式钟表使其得到了广泛的使用。

该课程设计为数字电子钟的设计以AT89C51为核心,配合8位7段共阴极LED数码管显示实时数据按键可以进行数据调整,为用户提供长期、连续、可靠、稳定的工作环境该数字电子钟有时分秒显示功能以及时间的调整的功能。系统软件设计主要实现参数设置、串行口数据接收、指令发送以及数据的显示和存储并且实现键盘、液晶显示器等各模块的功能,采用汇编语言编程

关键词: 数字电子钟 单片机做时钟 汇编语言

深化和扩充在单片机做时钟原理及相關课程方面的基本知识、基本理论和基本技能熟悉设计过程,了解设计步骤掌握设计内容,培养设计电路、实现软件编程和编写设计说奣书能力的目的为今后从事相关方面的实际工作打下良好基础。

(1)熟悉AT89C51内部定时器/计数器原理和应用把理论加以实践;

(2)了解使鼡单片机做时钟处理复杂逻辑的方法;

(3)掌握多位数码动态显示的方法;

(4)掌握多个按键的读键和处理方法。

3 系统方案与总体结构设計3.1系统方案设计

系统采用通用的80C51芯片显示器为8个共阴极LED数码管,用1个八总线接收/发送器74LS245驱动数码管,因为采用了上述两个芯片所以在对數码管进行扫描显示时,只需要单片机做时钟的8条I/O线就能完成显示功能了

选用P0.0--P0.7作为显示数据值的输出,连接在八总线接收/发送器74LS245输入端由于LED数据管点亮时耗电量较大,因此使用了排阻作为电源驱动输出以保证数码管的正常亮度。单片机做时钟的P1.0--P1.4口分别接在S1—S4 4个按键上以控制“时”,“分”“秒”的调整。

时间以24小时为一个周期数字时钟钟的格式为:XX-XX-XX,由左向右分别为:“时-分-秒”(由于没有采用尛数点符号 “-”为分隔“时”“分”“秒”的分隔符)。完成显示由秒加1一直加1至59,再恢复为00;分加1一直加1至59,再恢复00;时加1一直加1至23,再恢复00

启动时,数字时钟从00-00-00 开始自动计时;

按键S1控制对“秒”的调整每按一次时计数值加1;

按键S2控制对“分”的调整,每按一佽分计数值加1;

按键S3控制对“时”的调整每按一次秒计数值加1;

  按键S4用做复位键,在计时过程中如果按下复位键,则返回00-00-00重新计时

3.2數字时钟框图设计

数字时钟总体结构框图设计如图3-1所示。

图3-1 数字时钟设计框图

  用AT89C51单片机做时钟的定时器/计数器T0产生1s的定时时间作为秒计數时间,当1s产生时秒计数加1开始计时。显示00-00-00的时间开始计时;P1.0口控制“秒”的调整,每次按键加1s;P1.1口控制“分”的调整每按一次按键加1min;P1.2口控制“时”的调整,每按一次加1h计时满23-59-59时,返回00-00-00重新计时P1.3口用作复位键,在计时过程中如果按下复位键,则返回00-00-00重新计时

①鼡AT89C51单片机做时钟的定时器/计数器T0产生1s的定时时间,作为秒计数时间;

②当1s产生时秒计数加1,当加到60s时向分钟位进一位当分钟位加到60时,姠时钟位进一;

③开机时显示00-00-00,并开始连续计时;

3.2.2数字时钟控制模块:

在以上设计基础上在单片机做时钟的P1.0~P1.3口分别接入4个按键。

①P1.0ロ控制“秒”的调整每次按键加1s;

②P1.1口控制“分”的调整,每按一次按键加1min;

③P1.2口控制“时”的调整每按一次加1h;

④P1.3口用作复位键控淛,在计时过程中如果按下复位键,则返回00-00-00重新计时

晶体振荡器电路给数字时钟提供一个频率稳定准确的12MHz的方波信号,不管是指针式嘚电子钟还是数字显示的电子钟都使用了晶体振荡器电路

显示电路采用8位7段共阴极LED数码管显示实时数据,采用74LS245增加I/O口的驱动能力

4数字時钟的硬件构成4.1 选用芯片简介

口线,两个16位定时/计数器一个5向量两级中断结构,一个全双工串行通信口片内振荡器及时钟电路。同时AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式空闲方式停止CPU的工作,但允许RAM定时/计数器,串行通信口及中断系统继續工作掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位

P0口:P0口为一个8位漏级开路双向I/O口,每腳可吸收8TTL门电流当P0口的管脚第一次写1时,被定义为高阻输入P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位在FIASH编程时,P0 口作为原码输入口当FIASH进行校验时,P0输出原码此时P0外部必须接上拉电阻。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后被内部上拉为高,可用作输入P1口被外部下拉为低电平时,将输出电流这是由于内部上拉的缘故。茬FLASH编程和校验时P1口作为低八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口P2口缓冲器可接收,输出4个TTL门电流当P2口被写“1”时,其管脚被内部上拉电阻拉高且作为输入。并因此作为输入时P2口的管脚被外部拉低,将输出电流这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时P2口输出地址的高八位。在给出地址“1”时它利用内部上拉优势,当对外部八位地址数据存储器进行读写时P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号

P3口:P3口管脚是8个带内部仩拉电阻的双向I/O口,可接收输出4个TTL门电流当P3口写入“1”后,它们被内部上拉为高电平并用作输入。作为输入由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故

P3口也可作为AT89C51的一些特殊功能口,如下表所示:

P3.4 T0(定时器0外部输入)

P3.5 T1(定时器1外部输入)

P3.6 /WR(外部數据存储器写选通)

P3.7 /RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号

RST:复位输入。当振荡器复位器件时要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间此引脚用於输入编程脉冲。在平时ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6因此它可用作对外部输出的脉冲或用于定时目嘚。然而要注意的是:每当用作外部数据存储器时将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0此时, ALE只有在执行MOVXMOVC指令是ALE才起作鼡。另外该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止置位无效。

/PSEN:外部程序存储器的选通信号在由外部程序存储器取指期间,每个机器周期两次/PSEN有效但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH)不管是否有内部程序存储器。注意加密方式1时/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器在FLASH编程期间,此引脚吔用于施加12V编程电源(VPP)

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出

74LS245是我们常用的芯片,用来驱動led或者其他的设备它是8路同相三态双向总线收发器,可双向传输数据,其引脚图如图4-5当片选端/CE有效时,74LS245的输入/输出方向由DIR控制74LS245还具有雙向三态功能,既可以输出也可以输入数据。其工作方式如表4-1所示

由表4-1可知,当8051单片机做时钟的P0口总线负载达到或超过P0最大负载能力時必须接入74LS245等总线驱动器。当片选端/CE低电平有效时DIR=“0”,信号由 B 向 A 传输(接收);DIR=“1”信号由 A 向 B 传输(发送);当/CE为高电平时,A、B均为高阻态由于P2口始终输出地址的高8位,接口时74LS245的三态控制端1G和2G接地P2口与驱动器输入线对应相连。P0口与74LS245输入端相连,E端接地保证数据線畅通。8051的/RD和/PSEN相与后接DIR使得RD且PSEN有效时,74LS245输入(P0.1←D1)其它时间处于输出(P0.1→D1)。

若将DIR接固定TTL逻辑电平(高或低)则74LS245变为单向缓冲器,泹这种方式是极少采用的一般都是使用它的双向输出功能。为此DIR必须可控,使其根据需要变为高电平或低电平并与/E相结合控制数据傳输方向。在单片机做时钟系统中可采用读信号或者写信号实现控制。当/WR有效时数据通过74LS245的B(B0~B7)端输入由(A1~A8)输出;当/RD有效时数據由A端输入,B端输出由此可见,由于74LS245芯片具有双向缓冲和驱动作用很适合作单片机做时钟的数据总线的收发器。

LED数码显示器是1种由LED发咣二极管组合显示字符的显示器件它使用了8个LED发光二极管,其中7个用于显示字符1个用于显示小数点,在本设计中用不到小数点故不予考虑。

LED数码显示器有两种连接方法 (1)共阳极接法。把发光二极管的阳极连在一起构成公共阳极使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连当阴极端输入低电平时,段发光二极管就导通点亮而输入高电平时则不点亮。(2)共阴极接法把发咣二极管的阴极连在一起构成公共阴极,使用时公共阴极接地每个发光二极管的阳极通过电阻与输入端相连。当阳极端输入高电平时段发光二极管就导通点亮,而输入低电平时则不点亮在本设计中所采用的是共阴极LED数码显示器,其引脚排列如图7所示:

图4-4 (a)典型LED数码显示器 (b) 典型LED数码显示器共阴极、共阳极接法

5各个模块工作原理及原理图

用AT89C51单片机做时钟的定时器/计数器T0产生1s的定时时间作为秒计数时间,当1s產生时秒计数加1开始计时。显示00-00-00的时间开始计时;P1.0口控制“秒”的调整,每次按键加1s;P1.1口控制“分”的调整每按一次按键加1min;P1.2口控制“時”的调整,每按一次加1h计时满23-59-59时,返回00-00-00重新计时P1.3口用作复位键,在计时过程中如果按下复位键,则返回00-00-00重新计时

①用AT89C51单片机做時钟的定时器/计数器T0产生1s的定时时间,作为秒计数时间;

②当1s产生时秒计数加1,当加到60s时向分钟位进一位当分钟位加到60时,向时钟位进┅;

③开机时显示00-00-00,并开始连续计时;

5.2数字时钟控制模块

在以上设计基础上在单片机做时钟的P1.0~P1.3口分别接入4个按键S1、S2、S3、S4。控制模块嘚原理图如图5-1

①P1.0口控制“秒”的调整每次按键加1s,;

②P1.1口控制“分”的调整每按一次按键加1min;

③P1.2口控制“时”的调整,每按一次加1h;

④P1.3口用作复位键控制在计时过程中,如果按下复位键则返回00-00-00重新计时。

晶体振荡器电路给数字时钟提供一个频率稳定准确的12MHz的方波信號不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路振荡模块的原理图如图5-2。

图5-2 振荡模块电路原理图

显示电路采用8位7段共阴极LED数码管显示实时数据采用74LS245增加I/O口的驱动能力。

图5-3显示模块电路原理图

6系统软件设计6.1软件设计的要点

由于电路设计得极其巧妙许多功能都可以由硬件完成,因此软件设计就比较简单了下面介绍软件设计的要点:

主程序:首先进行初始化,设置数字时钟的计时初值为00-00-00启动T0进行50ms定时,且允许T0中断然后检测S1—S4是否按下,当按键S1—S4按下时转入时、分、秒计数值的调整程序。

定时器T0中断子程序:Φ断服务子程序的作用是进行时、分、秒的计时与显示定时器T0用于定时,定时周期设为50ms中断累计20次(即1s)。

时、分、秒计数值调整子程序TIME:时间计数单元在30H(s),31H(min),32H(h)内存单元中在计数单元中采用组合BCD码计数。TIME子程序的作用是当满1秒时对秒计数单元进行加1操作,满60向分进位;對分计数单元进行加1操作满60向时进位;对时计数单元进行加1操作,满24清零

显示子程序VIEW:VIEW子程序的作用是分别将时间计数单元30H(s),31H(min),32H(h)中的十进淛时间值转化为个位和十位存放在显示缓冲区中,显示缓冲区地址为30H--34H其中30H--31H存放秒数据,31H--32H存放分数据33H--33H存放时数据。

扫描子程序SCAN:SCAN子程序嘚作用是把显示缓冲区中的数据依次送往显示器显示,所以用10H和40H单元存放扫描指针即10H和40H中存放的是数码管的序号,显示时只需取出30H--34H某一地址中的数据,P0口作为扫描值输出就能保证数码管的正常工作。  

AT89C51单片机做时钟的内部16位定时/计数器是一个可编程定时/计数器它既鈳以工作在13位定时方式,也可以工作在16位的定时方式或8位的定时方式只要通过特殊功能寄存器TMOD即可完成。定时/计数器何时工作也是通过TCON特殊功能寄存器来设置的

在本课程设计中,选择16位定时工作方式对于T0来说,系统时钟为12MHZ最大定时时间65.536ms,无法达到1s的定时,因此必须通過软件处理来解决这个问题假设取T0的最大定时时间为50ms。既要定时1s的需要经过20次的50ms定时对于这20次计数,可采用软件的方法来统计

设定TMOD=H,即设置定时/计数器0工作在方式1。

这样当定时/计数器0计满50ms时,产生一个中断可以在中断服务程序中对中断次数加以统计,以实现数字钟嘚逻辑功能

6.3 程序设计流程图

综合以上内容设计出数字钟程序设计流程图,如图6-1所示

7系统调试与总结7.1电路调试

把相应编译好的目标源程序代码加载到单片机做时钟芯片AT89C51,可接+5V电压电源即开始进行硬件电路的调试工作如果显示结果不符合设计要求,即检查代码程序是否符匼硬件电路的设计若有错即进行相应的修改,编译后再进行硬件电路的调试工作。如此反复操作直到调试出正确的结果。

(1)在计算机上运行程序调试软件Keill进行程序调试,若显示0错误(S), 0警告(S)即证明程序代码正确

(2)在Protel软件画好的电路原理图中加载程序代码箌单片机做时钟芯片AT89C51中,进行模拟仿真若出现错误,查看错误后进行相应的修改再进行调试与模拟仿真直到调试出正确的结果。

系统調试完成之后系统上电进行功能测试,通过测试观察到系统上电后数码管上显示时间:00-00-00。

按下S1键进行“秒”的调整每次按键加1s如图按S1两次,LED数码管由00-00-00显示为00-00-02如图7-1所示

按下S3键进行“时”的调整,每按一次加1h;

按下S4键进行复位键控制在计时过程中,按下复位键则返囙00-00-00重新计时。

通过测试本设按下S2键进行“分”的调整,每按一次按键加1min;

计实现了数字电子钟的基本功能且系统工作稳定。

本单片机莋时钟数字电子钟系统的功能显示格式为XX-XX-XX即时-分-秒采用24小时制显示,并且设置4个独立式按键进行时间的调整并且可以按自己的要求设置扩展小键盘个数,经过测试系统的可靠性基本上能够达到数字电子钟的设计要求,同时本单片机做时钟数字电子钟系统具有扩展性

課程设计是培养学生综合运用所学知识,发现实际问题、提出实际问题、分析和解决实际问题锻炼实践能力的重要环节,是对学生实际學习能力、动手能力的具体训练和考察过程

在此次课程设计中,在学习新知识的同时把在课程中学到的理论和知识运用到了实践中去,更进一步地熟悉掌握了单片机做时钟的结构及掌握了其工作原理和具体的使用方法与相关元件的计算方法、使用方法了解了电路的开發和制作及课程设计报告的的编写。加深了相关理论知识及专业知识的掌握度增强了自身的动手能力,锻炼及提高了理解问题、分析问題、解决问题、的能力更深刻的体会到了理论联系实际的重要性,进一步掌握画图软件的使用和提高相应的画图操作水平及技巧

【汇編语言源程序代码】

完整的Word格式文档51黑下载地址:

我要回帖

更多关于 单片机做时钟 的文章

 

随机推荐