89C52单片机课程设计

合集下载

89C52单片机课程设计

89C52单片机课程设计

1. 设计任务及要求1.1 设计任务(1)完成基本焊接任务(2)单片机开发板功能正确(3)完成指定的实验(4)完成课程设计报告1.2 要求(1)元件面:元器件位置正确、排列整齐有序,元件整形恰当。

焊接面:整洁、清爽,焊点圆润、无虚焊,引脚修整合适。

(2)能够下载程序、运行演示程序。

(3)完成3个程序的编写、下载及演示功能。

(4)报告格式规范、文字流畅、思路清晰。

2.方案设计与论证2.1 方案设计方案一:仿照周立功实验箱自行设计电路,然后完成焊接,实现各功能。

单片机仿真器、编程器、实验仪三合一综合开发平台方案二:采用JB-MCS 51-V8.0电路板,直接焊接相关元器件并实现各功能。

2.2论证经验证实验平台所需元器件无法找齐,且体积过大不便于携带等原因,最终决定采用方案二。

3.单元电路原理各单元电路原理图4.总原理图及元器件清单4.1 总原理图4.2 元器件清单5 硬件安装与调试在安装硬件的过程中要注意硬件的排列有序,焊点圆润、无虚焊,引脚修剪整齐。

在硬件安装完毕后,对作品进行调试。

通过STC软件对作品进行调试以及程序的下载,具体步骤如下:(1)选择单片机型号(2)选择程序(3)选择串口,安装USB驱动程序后,可在设备管理器中看到多出的串口(每台电脑不一样)。

然后在软件中选择相应的串口(4)选择波特率,一般情况下这都是默认的,最高波特率选择115200,最低波特率选择1200。

(5)以上步骤完成后,就点击Download/下载,按左下角的提示进行操作。

6.各实验具体操作和相关解释6.1跑马灯试验6.1.1系统概述通过模式键来改变单片机的工作模式,进行程序控制,一共有八个模式。

LED 等工作在不同的模式下,有不同的现象。

加速减速开关来控制灯泡的闪亮快慢。

复位电路用来初始化芯片的工作状态。

控制电路是整个电路的核心,主要由单片机来完成。

89C52 RC的管脚如图所示。

单片机执行指令是在时钟脉冲控制下进行的。

1_7798690_课程设计:基于单片机AT89C52电子时钟课程设计说明书

1_7798690_课程设计:基于单片机AT89C52电子时钟课程设计说明书

单片机课程设计报告一、课程设计内容1)显示时间功能,能正确显示“时”、“分”。

2)显示日期功能,能显示“月”、“日”。

3)闹钟功能,可按设定的时间闹时。

4)具有校准月、日、时、分的功能。

二、元器件介绍本次课程设计我使用的单片机是至强51蓝精灵版,而实验中使用到的关键元器件主要有:STC85C52RC,4*4按键,蜂鸣器,数码管等。

下面是STC85C52RC的简单介绍:AT89C52是本设计最核心的部件,它是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含8K bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。

AT89C52单片机适用于许多较为复杂的控制应用场合。

下图是AT89C52最常见的一种封装。

如上图所示,AT89C52共有40个管脚,其各个功能如下:·VCC ——运行时加+5V·VSS ——接地·XTAL1 ——振荡器反相放大器及内部时钟发生器的输入端·XTAL2 ——振荡器反相放大器的输出端·RST ——复位输入,高电平有效,在晶振工作时,在RST引脚上作用2个机器周期以上的高电平,将使单片机复位。

·EA/VPP ——片外程序存储器访问允许信号。

欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地),如果EA端为高电平(接Vcc端),CPU则执行内部程序中的指令。

·LAE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址允许锁存)输出脉冲用于锁存地址的低8位位数字节。

一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。

单片机课程设计stc89c52+nrf24l01

单片机课程设计stc89c52+nrf24l01

武汉纺织大学单片机原理与应用课程设计设计题目:nrf24l01数据传送学院:电子与电气工程学院班级:电子11201姓名:张啸宇胡安凯QQ 号:1272779714目录一、思想出路: (3)二、设计方案: (3)2.1、硬件设计方案: (3)2.2、软件设计方案: (3)1.驱动文件: (3)2.发送端主程序 (4)3.接收端主程序 (5)2.3、接线: (6)三、选题方案 (7)四、系统原理图 (7)4.1、发射端: (7)4.2、接收端: (8)五、程序精选 (8)六、总结 (8)6.1、功能总结: (8)6.2、功能完善: (9)6.3、自我总结: (9)七、展望: (9)一、思想出路:物联网是新一代信息技术的重要组成部分,也是“信息化”时代的重要发展阶段。

随着我国互联网的发展,物联网相关概念也随之进入了人们的视线,物联网是继计算机、互联网与移动通信网之后的又一次信息产业化浪潮。

而基于物联网的智能家居系统也渐渐浮出水面,科学技术在发展,也在慢慢的改变我们的生活。

因此,为了适应潮流,我们选择了nrf24l01模块,和单片机,组成一个简单的wifi传输系统,实现简单的物联网功能。

二、设计方案:2.1、硬件设计方案:一个完整的传输系统至少应该有两个部分组成。

一个发射端,一个接收端。

发送端:硬件:nRF24l01模块发送部分STC89C52RC单片机小系统控制发送部分数码管显示发送值代号8键独立键盘触发发送接收端:硬件:nRF24l01模块接收部分STC89C52RC单片机小系统控制接收处理显示部分LCD1602显示单片机处理后的要显示内容2.2、软件设计方案:1.驱动文件:nRF24l01的驱动头文件(引脚定义和功能函数定义),LCD1602驱动头文件(引脚定义和功能函数定义),52单片机驱动头文件。

2.发送端主程序程序存储器中存储8组发送数组,扫描按键后对应子函数发送。

发送成功后数码管点亮。

(1)8组16字节数组。

AT89C52单片机原理与接口技术课程设计

AT89C52单片机原理与接口技术课程设计

AT89C52单片机原理与接口技术课程设计一、课程设计背景及目的AT89C52单片机是一种8位低功耗高性能CMOS Flash微控制器,被广泛应用于工控、仪器仪表等领域。

本课程设计旨在通过使用AT89C52单片机,系统地讲解单片机电路的组成原理、指令系统、应用接口,培养学生的软硬件设计能力,以实现一个完整的工程设计。

二、实验要求本次实验设有以下要求:1.设计一个基于AT89C52单片机的温度检测与报警系统;2.系统应能通过温度传感器获得环境温度,当温度超过设定阈值后进行报警;3.设计实时温度显示功能;4.熟悉AT89C52的功能、特点、指令系统、输入输出口等,学会使用Keil C51编程;5.能够熟练使用Oscilloscope,Verilog等EDA工具设计单片机电路原理图和PCB。

三、实验所需硬件与软件硬件:1.AT89C52单片机;2.DS18B20数字温度传感器;3.MAX232芯片;4.LED指示灯、按键开关、蜂鸣器、电阻电容等组件;5.电源、Oscilloscope组件。

软件1.Keil C51;2.Proteus;3.Altium Designer。

四、实验流程1. 单片机接口设计1.将DS18B20数字温度传感器中的DQ引脚连接至单片机P1.0口;2.将MAX232芯片中的T2OUT和R2IN引脚分别连接至单片机P3.1与P3.0口。

2. 温度检测功能设计1.编写程序,通过单片机P1.0口将DS18B20温度传感器所需的初始化代码发送给其,然后实现温度读取功能;2.对所读取的温度进行比较,当温度高于阈值时使用单片机P3.2口控制蜂鸣器发出警报,同时向P3.4口输出高电平使LED指示灯闪烁;3.当温度恢复正常时,将P3.2和P3.4口输出低电平,关闭警报。

3. 温度显示功能设计1.配置单片机P2.0口为8位数码管共阴极数码管的位选控制信号,P2.1~P2.7口为8位数码管的段选控制信号;2.编写数字转移代码,将读取到的温度进行转换成8位二进制码;3.编写8位数码管显示程序,将温度以数码形式实时输出。

基于STC89C52单片机最小系统的设计

基于STC89C52单片机最小系统的设计

基于STC89C52单片机最小系统的设计1 设计内容及要求设计题目:基于STC89C52单片机最小系统的设计及制作。

设计要求:输入信号为传感器、电压、电流、开关等形式,单片机型号可以自己选择(51,128,430等),输出控制信号为模拟电压或者数字信号,控制对象可以是电机(直流电机,步进电机)、开关、显示器等。

(注:可以采用单片机、传感器电路模块以及集成电路芯片制作。

)使用器材:感光板及常用PCB制版器材、常用电子装配工具、万用表、示波器及电子元器件(详见附录)。

2 STC89C52单片机2.1 STC89C52单片机简介单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。

单片机由芯片内仅有CPU的专用处理器发展而来。

最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。

用专业语言讲,单片机就是在一块硅片上集成了微处理器、存储器及各种输入/输出接口的芯片。

2.2 单片机的特点(1)高集成度,体积小,高可靠性单片机将各功能部件集成在一块晶体芯片上,集成度很高,体积自然是最小的。

芯片本身是按工业测控环境要求设计的,内部布线很短,其抗工业噪声性能优于一般通用的CPU。

单片机程序指令,常数及表格等固体化在ROM中不易破坏,许多信号通道均在一个芯片内,故可靠性高。

(2)控制功能强为了满足对控制对象的要求,单片机的指令系统均有极丰富的条件:分支转移能力、I/O口的逻辑操作机位处理能力,非常适用于专门的控制功能。

(3)低电压,低功耗,便于生产携带为了便于广泛使用于便携式系统,许多单片机内的工作电压仅为 1.8V~3.6V,工作电流仅为数百微安。

(4)易扩展片内具有计算机正常运行所需的部件。

芯片外部有许多供扩展用的三总线及并行、串行输入/输出管脚,很容易构成各种规模的计算机应用系统。

基于89C52单片机智能风扇设计课程设计

基于89C52单片机智能风扇设计课程设计

基于89C52单⽚机智能风扇设计课程设计毕业论⽂声明本⼈郑重声明:1.此毕业论⽂是本⼈在指导教师指导下独⽴进⾏研究取得的成果。

除了特别加以标注地⽅外,本⽂不包含他⼈或其它机构已经发表或撰写过的研究成果。

对本⽂研究做出重要贡献的个⼈与集体均已在⽂中作了明确标明。

本⼈完全意识到本声明的法律结果由本⼈承担。

2.本⼈完全了解学校、学院有关保留、使⽤学位论⽂的规定,同意学校与学院保留并向国家有关部门或机构送交此论⽂的复印件和电⼦版,允许此⽂被查阅和借阅。

本⼈授权⼤学学院可以将此⽂的全部或部分内容编⼊有关数据库进⾏检索,可以采⽤影印、缩印或扫描等复制⼿段保存和汇编本⽂。

3.若在⼤学学院毕业论⽂审查⼩组复审中,发现本⽂有抄袭,⼀切后果均由本⼈承担,与毕业论⽂指导⽼师⽆关。

4.本⼈所呈交的毕业论⽂,是在指导⽼师的指导下独⽴进⾏研究所取得的成果。

论⽂中凡引⽤他⼈已经发布或未发表的成果、数据、观点等,均已明确注明出处。

论⽂中已经注明引⽤的内容外,不包含任何其他个⼈或集体已经发表或撰写过的研究成果。

对本⽂的研究成果做出重要贡献的个⼈和集体,均已在论⽂中已明确的⽅式标明。

学位论⽂作者(签名):年⽉关于毕业论⽂使⽤授权的声明本⼈在指导⽼师的指导下所完成的论⽂及相关的资料(包括图纸、实验记录、原始数据、实物照⽚、图⽚、录⾳带、设计⼿稿等),知识产权归属华北电⼒⼤学。

本⼈完全了解⼤学有关保存,使⽤毕业论⽂的规定。

同意学校保存或向国家有关部门或机构送交论⽂的纸质版或电⼦版,允许论⽂被查阅或借阅。

本⼈授权⼤学可以将本毕业论⽂的全部或部分内容编⼊有关数据库进⾏检索,可以采⽤任何复制⼿段保存或编汇本毕业论⽂。

如果发表相关成果,⼀定征得指导教师同意,且第⼀署名单位为⼤学。

本⼈毕业后使⽤毕业论⽂或与该论⽂直接相关的学术论⽂或成果时,第⼀署名单位仍然为⼤学。

本⼈完全了解⼤学关于收集、保存、使⽤学位论⽂的规定,同意如下各项内容:按照学校要求提交学位论⽂的印刷本和电⼦版本;学校有权保存学位论⽂的印刷本和电⼦版,并采⽤影印、缩印、扫描、数字化或其它⼿段保存或汇编本学位论⽂;学校有权提供⽬录检索以及提供本学位论⽂全⽂或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论⽂的复印件和电⼦版,允许论⽂被查阅和借阅。

最新STC89C52单片机表决器的设计--课程设计

最新STC89C52单片机表决器的设计--课程设计

摘要表决器是一种常见的电子产品,尤其是在各类投票中,为了实现投票的公平性,性能优良的表决器往往更能得到各单位的青睐。

这里通过两种设计方案的对比,最终选定了用STC89C52单片机实现表决器电路。

由于单片机具有可编程定时器和中断设备,便于实现显示表决人数和抢答是否成功的精确控制。

所用方案电路结构简单,易于实现,它用3颗LED灯来进行显示,且具有简单精准的报警功能。

所选方案的一个很重要的特点在于具有灵活性,投票的每个人可以根据自己的意愿选择“同意”、“反对”的两个不同按键。

自行进行投票表决,这样进一步保证了公平性。

由于它具有成本低廉,结构简单,且性能优良的诸多优点,必定会得到广泛的应用。

关键字:STC89C52单片机,LED灯,表决器,投票表决ABSTRACTV oting is a common electronic product, especially in all kinds of voting, in order to achieve the fairness of voting, the performance of the voting machine is often better available to all units of all ages. Here through the comparison of two design options, the final selection with STC89C52single-chip implementation of the voting circuit. As the microcontroller has a programmable timer and interrupt devices, easy to achieve the number of voting and answer to achieve the success of the precise control. The circuit structure is simple, easy to implement, it uses three LED lights to display, and has a simple and accurate alarm function. A very important feature of the chosen program is the flexibility to vote for everyone who can choose "agree" and "oppose" the two different keys according to their own wishes. To vote on their own, so as to further ensure the fairness. Because of its low cost, simple structure, and excellent performance of many advantages, will be widely used.Key Words: STC89C52 single chip, LED lights, voting machine, vote目录第1章引言 (1)第2章STC89C52单片机 (2)2.1 STC89C52单片机概述 (2)2.2 STC89C52单片机设计要求 (4)2.3 STC89C52单片机设计方案 (5)2.3 STC89C52单片机硬件组成 (5)2.4 STC89C52单片机引脚 (7)2.4.1 STC89C52单片机引脚实物图 (7)2.4.2 STC89C52单片机引脚功能 (7)2.5 STC89C52单片机模块设计 (9)2.5.1 STC89C52单片机主控制模块设计 (9)2.5.2 STC89C52单片机按键模块设计 (11)2.5.3 STC89C52单片机LED模块设计 (12)第3章三人表决器的功能调试 (13)3.1 调试过程 (13)3.2 检测电路 (13)3.3 仿真调试 (13)3.4 调试出现的问题 (15)第4章三人表决器软件设计 (16)4.1.1 开发语言介绍 (16)4.2开发软件介绍 (16)4.2.1 Keil 4 (16)4.2.2 Proteus ISIS (20)第5章实物及程序展示 (23)5.1实物展示 (23)5.2程序展示 (23)第6章结论 (24)参考文献 (25)致谢 (26)第1章引言电子技术是电类相关专业的基础课程,近年来通过教学改革虽然精简了理论教学,加强了实践教学,但是有时理论和实践脱节。

基于89C52单片机的电子时钟设计课程设计

基于89C52单片机的电子时钟设计课程设计

毕业设计题目基于89C52单片机的电子时钟设计英文题目 Electronic Clock Design Based on 89C52学生姓名陈志仁学号 09325202专业电子信息工程系别机械与电子工程系指导教师黄河职称讲师二零一三年六月摘要至今,微处理器的发展已有40多年的历史,起初由美国Intel公司首推的4为微处理器Intel4004,实现将单片处理器和运算器等元件集成在一片电路芯片上。

此后微处理器的迅猛发展,微处理器内集成的元件也越来越多,其中包括增加了存储器、I/O接口电路、定时/计数器、串行通信口、中断控制、系统总线以及系统时钟等,大大加强了微处理器的性能,并针对特定的领域制作出最大效率的微处理器。

不同功能的微处理器称为微控制器,也被我们简称为单片机。

本文主要介绍以单片机ST89C52和DS12C887时钟芯片为核心的电子时钟显示,LCD1602为液晶显示器件,此电子时钟显示具有年月日等基本时间显示,以及秒表计时处理、闹钟定时、蜂鸣、温度的设计。

单片机通过对时钟、温度等数据处理后传送至LCD显示输出,也可通过按键对时间进行调节。

通过单片机外围接口的扩展实现温度采集等功能。

关键词:电子时钟;AT89C52;计时;温度ABSTRACTThis project mainly introduces that the electronic clock which based on microcontroller ST89C52 display.LCD1602 Liquid crystal display devices's electronic clock display has the date and time display.Stopwatch timing processing, alarm clock timing and the design of buzzer, temperature.SCM through the clock, temperature and other data processing and transmits signals to the LCD display output, also by adjusting button for time.Through the expansion of single-chip peripheral interface to achieve temperature acquisition functions.Key words: electronic clock。

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

1. 设计任务及要求1.1 设计任务(1)完成基本焊接任务(2)单片机开发板功能正确(3)完成指定的实验(4)完成课程设计报告1.2 要求(1)元件面:元器件位置正确、排列整齐有序,元件整形恰当。

焊接面:整洁、清爽,焊点圆润、无虚焊,引脚修整合适。

(2)能够下载程序、运行演示程序。

(3)完成3个程序的编写、下载及演示功能。

(4)报告格式规范、文字流畅、思路清晰。

2.方案设计与论证2.1 方案设计方案一:仿照周立功实验箱自行设计电路,然后完成焊接,实现各功能。

单片机仿真器、编程器、实验仪三合一综合开发平台方案二:采用JB-MCS 51-V8.0电路板,直接焊接相关元器件并实现各功能。

2.2论证经验证实验平台所需元器件无法找齐,且体积过大不便于携带等原因,最终决定采用方案二。

3.单元电路原理各单元电路原理图4.总原理图及元器件清单4.1 总原理图4.2 元器件清单5 硬件安装与调试在安装硬件的过程中要注意硬件的排列有序,焊点圆润、无虚焊,引脚修剪整齐。

在硬件安装完毕后,对作品进行调试。

通过STC软件对作品进行调试以及程序的下载,具体步骤如下:(1)选择单片机型号(2)选择程序(3)选择串口,安装USB驱动程序后,可在设备管理器中看到多出的串口(每台电脑不一样)。

然后在软件中选择相应的串口(4)选择波特率,一般情况下这都是默认的,最高波特率选择115200,最低波特率选择1200。

(5)以上步骤完成后,就点击Download/下载,按左下角的提示进行操作。

6.各实验具体操作和相关解释6.1跑马灯试验6.1.1系统概述通过模式键来改变单片机的工作模式,进行程序控制,一共有八个模式。

LED 等工作在不同的模式下,有不同的现象。

加速减速开关来控制灯泡的闪亮快慢。

复位电路用来初始化芯片的工作状态。

控制电路是整个电路的核心,主要由单片机来完成。

89C52 RC的管脚如图所示。

单片机执行指令是在时钟脉冲控制下进行的。

因此单片机必须外接振荡器构成时钟电路才能正常工作。

另外,还应在单片机的RES端外接电阻电容构成复位电路,当单片机运行错误时可以给一个复位信号使其复位。

单片机对接口电路的控制是由软件向单片机的I/O口来实现的。

89C52 RC单片机内部有两个定时/计数器,可以用其中一个定时/计数器来对时间进行计数,而另一个可以对显示器的显示延时进行定时并通过中断把相应的数据通过I/O口送给显示器显示。

同时通过对外部按键的状态判断来进行时间的调整。

6.1.2 单元电路设计与分析1、时钟电路单片机执行指令是在脉冲控制下进行的,因此时钟信号是单片机的基本工作条件。

时钟可以由内部和外部两种方式产生,本设计采用内部方式。

如图所示,在XTAL1和XTAL2引脚上外接定时元件。

定时元件通常采用振荡器和电容组成的并联谐振电路。

X1为振荡器,C1、C2为电容。

振荡的主要频率决定于晶振,电容对振荡频率起微调作用。

其中,晶振选择12MHz2、复位电路一个时钟周期为振荡周期的2倍,12个时钟周期构成一个机器周期。

在RES 引脚上输入一个超过两个机器周期的高电平信号,单片机就可以复位。

时钟频率为12MHz ,则有效的复位信号至少应保持2us 以上。

下图为单片机的复位电路3.C 语言编程如下:#include<reg51.h>#define uchar unsiged charchar k=0;unsigned int i,t=45000,j;sbit p3_0=P3^0;code char tab[9]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f}; int0()interrupt 0{ while(1){k++;if(k<9) P1=tab[k];else { k=0;P1=0x3f;}if(k==0) {P0=0xff;P2=0xff;}if(k==1){P0=0xfc;P2=0xff;}if(k==2){P0=0xf3;P2=0xff;}if(k==3){P0=0xcf;P2=0xff;}if(k==4){P0=0x3f;P2=0xff;}if(k==5){P0=0xff;P2=0xfc;}if(k==6){P0=0xff;P2=0xf3;}if(k==7){P0=0xff;P2=0xcf;}if(k==8){P0=0xff;P2=0x3f;}}}int1()interrupt 2{while(1){for(j=0;j<16;j++){if(j<=7){P2=0xff;P0<<=1;if(j!=0){P0=P0|0x01;}for(t=0;t<=20000-1000*j;t++);}if(j>7) {P0=0xff;P2<<=1;if(j!=8){P2=P2|0x01;}for(t=0;t<=20000-1000*j;t++);}}}}main(){EA=1;EX1=1;IT1=1;EX0=1;IT0=1;p3_0=0;if(p3_0==1){ while(1){{ for(j=0;j<16;j++){if(j<=7){P2=0xff;P0<<=1;if(j!=0){P0=P0|0x01;}for(t=0;t<=3000+1000*j;t++);}if(j>7) {P0=0xff;P2<<=1;if(j!=8){P2=P2|0x01;}for(t=0;t<=3000+1000*j;t++);}}}}}}6.1.3电路的安装与调试程序调试完成后直接运行,可看到8只LED灯的走马灯效果。

通过这个仿真可以直观地看到按键对程序的控制、走马灯运行的结果,效果非常好。

本课程设计中用到了单片机的I/0、定时器中断等硬件功能,同时涉及到软件查询定时、中断程序、按键控制、数码管动态显示等主要程序的设计方法。

程序开始先使P1口为低电平,熄灭各LED,随后系统进入键盘检测循环,当检测到某个键被按下,则转到该键对应的程序处执行。

按键处理执行程序各自的功能后,每循环一次后检测S1是否按下,如果按下,各LED熄灭,重新进入检测循环,否则继续循环。

6.2计数器实验6.2.1系统软件程序OUTBIT equ 0e101hCLK164 equ 0e102h ; 段控制口(接164时钟位)DA T164 equ 0e102h ; 段控制口(接164数据位)LEDBuf equ 40hIN equ 0e103hORG 0000hMOV SP,#60HMOV DPTR,#0e100H ;8155初始化MOV A,#03HMOVX @DPTR,AMOV TMOD,#05H ;定时器初始化MOV TH0,#00HMOV TL0,#00HSETB TR0LOOP0: MOV R2,TH0MOV R3,TL0LCALL LOOP1MOV R0,#40HMOV A,R6LCALL PTDSMOV A,R5LCALL PTDSMOV A,R4LCALL PTDSLCALL DISPLAYSJMP LOOP0LOOP1: CLR A ;二转十子程序MOV R4,AMOV R5,AMOV R6,AMOV R7,#10HLOOP2: CLR CMOV A,R3RLC AMOV R3,AMOV A,R2RLC AMOV R2,AMOV A,R6ADDC A,R6DA AMOV R6,AMOV A,R5ADDC A,R5DA AMOV R5,AMOV A,R4ADDC A,R4DA AMOV R4,ADJNZ R7,LOOP2RETPTDS: MOV R1,A ;拆字子程序ACALL PTDS1MOV A,R1SW AP APTDS1: ANL A,#0FHMOV @R0,AINC R0RETDelay:mov r7, #0 ; 延时子程序DelayLoop:djnz r7, DelayLoopdjnz r6, DelayLoopretDISPLAY:setb 0d3hmov r0, #LEDBufmov r1, #6 ; 共6个八段管mov r2, #00000001b ; 从左边开始显示Loop:mov dptr, #OUTBITmov a, #00hmovx @dptr, a ; 关所有八段管mov a, @r0mov dptr,#LEDmapmovc a,@a+dptrmov B, #8 ; 送164DLP:rlc amov r3, amov acc.0, canl a,#0fdhmov dptr, #DA T164movx @dptr, amov dptr, #CLK164orl a,#02hmovx @dptr, aanl a,#0fDhmovx @dptr, amov a, r3djnz B, DLPmov dptr, #OUTBITmov a, r2movx @dptr, a ; 显示一位八段管mov r6, #1call Delaymov a, r2 ; 显示下一位rl amov r2, ainc r0djnz r1, Loopmov dptr, #OUTBITmov a, #0movx @dptr, a ; 关所有八段管clr 0d3hretLEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hdb 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hEND6.2.2 系统软、硬件调试过程将十进制数改为十六进制数IOOP0:MOV R2,TH0MOV R3,TL0MOV R0,LEDBufMOV A,R3LCALL PTDSMOV A,R2LCALL PTDSLCALL DISPLAY当工作在定时方式时,计数脉冲来自单片机的内部,每个机器周期使计数器加1,由于计数脉冲的频率是固定的(即每个脉冲为1个机器周期的时间),故可通过设定计数值来实现定时功能。

当工作在计数方式时,计数脉冲来自单片机的引脚,每当引脚上出现一个有1到0的电平变化时,计数器的值加1,从而实现计数功能。

可以通过编程来指定时技术计数器的功能,以及他的工作方式。

读取计数器的当前值时,应读3次。

这样可以避免在第一次读完后,二次读完钱,由于低位溢出向高位进行时的错误。

6.3抢答器实验6.3.1.程序org 0000h 初始地址ajmp main ;跳入mainorg 0003hajmp start ;跳入startorg 000bhajmp time ;跳入timeorg 0030hmain: mov tmod,#1 ;主程序mov th0,#0b1h ;定时期高八位赋值mov tl0,#0e0h ;定时期低八位赋值mov ie, #83h ;申请中断控制数setb tr0 ;开定时期mov r3,#0 ;工作寄存器赋值mov r4,#0 ;工作寄存器赋值mov 30h,#0mov 31h,#0mov 32h,#0;显示子程序disp: mov sp,5fh ;堆栈指针mov a,#03hmov dptr,#0ff20h ;初值movx @dptr,aloop: mov r5,#1mov r0,#30hmov a,r5loop1: mov dptr,#0ff21h ;A口输出movx @dptr,amov dptr,#0ff22h ;B口输出mov a,@r0add a,#0ehmovc a,@a+pc ;查表movx @dptr,aacall dlay ;调用延时程序inc r0mov a,r5jb acc.2,ld ;判断rl a ;a值左移mov r5,aajmp loop1 ;跳回loop1ld: sjmp loop ;跳回looptable: ;数据表db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0c8hdlay: mov r7,#02h ;延时子程序1.02msdl1: mov r6,#0ffhdl2: djnz r6,dl2djnz r7,dl1rettime: mov th0,#0b1h ;判断有人抢答mov tl0,#0e0hpush psw ;压栈保存push accmov a,#0fhorl p1,amov a,p1anl a,#0fhcjne a,#0,go_on ;判断a值,a=0,继续程序;a≠0,跳转go_on inc r3 ; r3+1cjne r3,#25,back ;判断r3与25大小,r3=25,继续程序;r3≠25,跳转到backmov r3,#0inc r4 ;r4+1mov a,r4mov b,#10div abmov 31h,amov 30h,bcjne r4,#20,backcpl p1.7mov 32h,#10clr tr0sjmp backgo_on: clr tr0 ;判断谁抢答jnb acc.0,twomov 32h,#01hsjmp backtwo: jnb acc.1,threemov 32h,#02hsjmp backthree: jnb acc.2,fourmov 32h,#03hsjmp backfour: mov 32h,#04hback: pop accpop pswretistart: setb tr0 ;中断后,继续记时retiend6.3.2.6.3.3.把单片机中需要的连线进行正确的连接,检查无误后开始运行程序。

相关文档
最新文档