出租车计价器

更新时间:2024-01-23 14:19:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

南昌航空大学《单片机与接口技术》课程设计

课程设计说明书

课程设计名称: 专业课程设计报告

课程设计题目: 基于52单片机的出租车计价器

学 院 名 称: 信息工程学院

专业:电子信息工程 班级: 100414

学号: 10041427 姓名: 吴纬

评分: 教师: 徐琦

20 13 年 7 月 1 日

1

南昌航空大学《单片机与接口技术》课程设计

专业 课程设计任务书

2012-2013学年第二学期 分散一周 第17周-19周集中

题目 出租车计价器的设计 内容及要求 采用信号源产生脉冲模拟出租车计价传感器产生脉冲,根据输入的脉冲个数,计算行驶的路程和该路程内应支付的价钱。运算处理过的数据经过7279显示模块显示输出。 要求:(1)里程显示为:***.**公里; (2)能预置起步价及单价。 进度安排 分散一周: 查资料、方案确定。 第17周:电子钟编程及调试。 第18周:出租车计价器的软硬件设计、调试。 第19周:考试、撰写并上交报告。 学生姓名:吴纬、刘文红 指导时间: 分散1周,集中指导:2013.6.17-7.5 任务下达 考核方式 指导教师 2013 年 6 月 6 日 任务完成 指导地点:中 506室 2013 年 7 月 5 日 1.评阅 □ 2.答辩 □ 3.实际操作√ 4.其它□ 王忠 系(部)主任 孙成立 注:1、此表一组一表二份,课程设计小组组长一份;任课教师授课时自带一份备查。

2、课程设计结束后与“课程设计小结”、“学生成绩单”一并交院教务存档。

2

南昌航空大学《单片机与接口技术》课程设计

基于52单片机原理出租车计价器的设计

摘要

由于科技的飞速发展,带动汽车行业快速发展,出租车日益普遍,而出租车上的计价器也不断发展,并且更加精确和智能化。出租车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。而使用单片机实现该系统,是深化单片机应用的良好途径。

从加强出租车行业管理及服务质量并且节约成本出发,本设计以AT89C52 单片机为中心、附加A44E 霍尔传感器测距,实现对出租车计价统计,输出采用5461液晶显示屏。本设计通过单片机上的键盘的按键来执行开始、暂停、复位等功能。本设计不仅能实现基本的计价,还能通过手动修改价格,以实现不同时段的需求。

关键词:计价器 AT89C52单片机 A44E霍尔传感器测距 5461AS液晶显示屏

3

南昌航空大学《单片机与接口技术》课程设计

目录

目录 .............................................................. 4 前 言 ............................................................ 5 第一章 出租车计价系统的设计要求与设计方案 ................................................... 6

1.1 设计要求 ........................................................................................................ 6

1.2 性能指标 ........................................................................................................ 6 1.3 方案论证与比较 ............................................................................................ 6 第二章 出租车计价系统的硬件设计 .................................. 8

2.1振荡电路 ......................................................................................................... 8

2.2复位电路设计 ................................................................................................. 8 2.3键盘接口电路 ................................................................................................. 9 2.4显示电路 ......................................................................................................... 9 2.5路程测量部分 ............................................................................................... 10 2.6单片机各引脚功能说明 ............................................................................... 11 2.7 5461AS液晶简介 .......................................................................................... 13 第三章 出租车计价系统的软件设计 ................................. 15

3.1系统工作流程 ............................................................................................... 15 第四章 设计体会与小结 ........................................... 16 参考文献 ......................................................... 17 附 录 ........................................................... 18

源程序.................................................................................................................. 18

硬件电路图.......................................................................................................... 26

4

南昌航空大学《单片机与接口技术》课程设计

前 言

出租汽车已经成为我国城市公共交通的重要组成部分和现代化城市必备的基础设施,成为人们工作、生活中不可缺少的交通工具。出租汽车服务行业和出租汽车计价器紧密相关,因为出租汽车必须安装出租汽车计价器才能投入营运。出租汽车计价器是一种能根据乘客乘坐汽车行驶距离和等候时间的多少进行计价,并直接显示车费值的计量器具。计价器是出租汽车的经营者和乘坐出租汽车的消费者之间用于公平贸易结算的工具,因而计价器计价准确与否,直接关系到经营者和消费者的经济利益。依据国家有关法律、法规,出租汽车计价器是列入国家首批强制检定的工作计量器具之一,也是近年来国家质量技术监督部门强化管理的六类重点计量器具之一。

出租车行业在我国是八十年代初兴起的一项新兴行业,随着我国国民经济的高速发展,出租汽车已成为城市公共交通的重要组成部分。多年来国内普遍使用的计价器只具备单一的计量功能。目前全世界的计价器中有90%为台湾所生产。现今我国生产计价器的企业有上百家,主要是集中在北京,上海,沈阳和广州等地。

5

南昌航空大学《单片机与接口技术》课程设计

第一章 出租车计价系统的设计要求与设计方案

1.1 设计要求

设计一个出租车自动计费器,计费包括起步价、行车里程计费、二部分,用5461AS液晶 显示总金额,运行时间,暂停时间,最大值为99.9元,起步价为5.0元,3Km之内起步价计费,超过3Km,增加2.0元(即1KM增加2.0元),用液晶显示总里程,同时用液晶显示等待时间和运行花费时间。

①、计费功能

费用的计算是按行驶里程收费。设起步价为5.00元。 1、当里程<3km时,按起价计算费用 2、当里程>3km时,每公里按2.0元计费 ②、显示功能

1、显示行驶里程:用四位数字显示,显示方式为“XXXX”,单位为km。计程范围0-99km,精确到1km。

2、显示等候时间:用两位数字显示,显示方式为“XX”,单位为min。计时范围0-59min,精确到1min。

3、显示总费用:用四位数字显示,显示方式为“XXX.X”,单位为元。计价范围0-999.9元,精确到0.1元。 1.2 性能指标

1. 数据输出:等待时间输出、路程输出、单双路程总金额输出; 2. 按键:启动计时开关、暂停、复位; 3. 能根据不同的需要切换白天晚上的起步价。

1.3 方案论证与比较

方案一:采用数字电子技术,利用555定时芯片构成多谐振荡器,或采用外围的晶振电路作为时钟脉冲信号,采用计数芯片对脉冲尽心脉冲的计数和分频,最后通过译码电路对数据进行译码,将译码所得的数据送给数码管显示,以下是该方案的流程框图:

6

南昌航空大学《单片机与接口技术》课程设计

图1-1方案一

案二:采用EDA技术,根据层次化设计理论,该设计问题自顶向下可分为分频模块,控制模块 计量模块、译码和动态扫描显示模块。

图1-2方案二

方案三:采用MCU技术,通过单片机作为主控器,利用1602字符液晶作为显示电路,采用外部晶振作为时钟脉冲,通过按键可以方便调节。本方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。方案图如图1-3所示:

图1-3方案三

7

南昌航空大学《单片机与接口技术》课程设计

第二章 出租车计价系统的硬件设计

2.1振荡电路

单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。通过这两个引脚在芯片外并接石英晶体振荡器和两只电容

(电容和一般取33pF)。这样就构成一个稳定的自激振荡器。 振荡电路脉冲经过二分频后作为系统的时钟信号,再在二分频的基础上三分频产生ALE信号,此时得到的信号时机器周期信号。振荡电路如图2-1所示:

图2-1振荡电路

2.2复位电路设计

复位操作有两种基本形式:一种是上电复位,另一种是按键复位。按键复位具有上电复位功能外,若要复位,只要按图中的RESET键,电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。上电复位电路要求接通电源后,通过外部电容充电来实现单片机自动复位操作。上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。RERST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。按键复位电路图如图2-2所示。

8

南昌航空大学《单片机与接口技术》课程设计

图2-2 AT89C52引脚配置

2.3键盘接口电路

独立式键盘:独立式键盘中,每个按键占用一根I/O口线,每个按键电路相对独立。I/O口通过按键与地相连,I/O口有上拉电阻,无键按下时,引脚端为高电平,有键按下时,引脚电平被拉低。I/O口内部有上拉电阻时,外部可不接上拉电阻。键盘接口电路如图2-3所示:

图2-3键盘接口电路

2.4显示电路

对于现实电路我们可以采用数码管,也可以采用液晶显示,液晶又分字符型和点阵型,我们使用的液晶是字符型液晶,并且带字符库的,不需要查找代码。英文字符就可。液晶电路使用时,如果发现液晶不亮可以调节连接液晶的点位器,改变液晶的亮度。显示电路如图2-4所示:

9

南昌航空大学《单片机与接口技术》课程设计

图2-4 数码管封装图及数据线与数码管管脚关系

2.5路程测量部分

出租车中需要一个能准确获得车轮转动即路量信号的装置,以得到标准的脉冲信号送入单片机的定时/ 计数器T1 即P3. 5 引脚,利用单片机的T1 的计数功能完成100次的计数后产生一中断来完成路程的测量。(设车轮周长为1 m ,则霍尔传感器每产生100 个脉冲便表示车已行程0. 1 km ,根据际情况在程序中进行设置) 。汽车联轴器按圆周间隔嵌入磁钢,用霍传感器集成芯片A44E 测并输出脉冲,其工作原理如图4 所示,霍尔传感器集成芯片A44E 有信号转换、电压放大、等功能,为增加其抗干扰的能力,经过74L S14 对信号整形后再通过光偶送入P3. 5 引脚。

10

南昌航空大学《单片机与接口技术》课程设计

图2-5路程测量电路

2.6单片机各引脚功能说明

AT89S52电路图如图2-6所示:

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

图2-6 AT89S52

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,

11

南昌航空大学《单片机与接口技术》课程设计

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

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89S52的一些特殊功能口,P3口同时为闪烁编程和编程校验接收一些控制信号。

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

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

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

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

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

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

12

南昌航空大学《单片机与接口技术》课程设计

2.7 5461AS液晶简介

5461AS共阴四位数码管主要技术参数如表2-1所示:

显示容量: 16*2个字符 芯片工作电压: 4.5—5.5V 工作电流: 2.0mA(5.0V) 模块最佳工作电压: 5.0V 字符尺寸: 2.95*4.35(W*H)mm 表2-1 5461AS共阴四位数码管主要技术参数 接口信号说明如图2-6所示:

图2-5 5461AS共阴四位数码管接口信号说明

控制器接口说明(HD44780及兼容芯片) 1、 基本操作时序

a 读状态:输入:Rs=L, Rw=H, E=H 输出:D0—D7=状态字 b 写指令:输入:Rs=L, Rw=L, D0—D7=指令码 输出:无 E=高脉冲

C 读数据:输入:Rs=H, Rw=L, E=H 输出:D0—D7=数据 d 写数据:输入:Rs=H, Rw=L, D0—D7=数据 输出:无 E=高脉冲

状态字说明如表2-2所示: STA7 STA6 STA5 STA4 STA3 STA2 D7 D6 D5 D4 D3 D2 表2-2状态字说明(a) STA0--6 当前数据地址指针的数值 13

STA1 D1 STA0 D0 南昌航空大学《单片机与接口技术》课程设计

STA7 读写操作使能 1:禁止 0:允许 表2-3 状态字说明(b) 注:对控制器进行读写操作之前,都必须进行读写检测,确保STA7为0 RAM地址映射图

控制器内部带有80*8位的RAM缓冲区,对应关系如下图2-5所示:

表2-4 RAM地址映射图LCD16字*2行 00000000000000001… 20 1 2 3 4 5 6 7 8 9 A B C D E F 0 7 44444444444444445… 60 1 2 3 4 5 6 7 8 9 A B C D E F 0 7

显示模式设置如表2-5所示: 指令码 功能 0 0 1 1 1 0 0 0 设置16*2显示,5*7点阵,8位数据接口 表2-5 显示模式设置 显示开关及光标设置如表2-6所示: 指令码 功能 0 0 0 0 1 D C B D=1 开显示; D=0 关显示 C=1 显示光标; C=0 不显示光标 B=1 光标闪烁; B=0 光标不显示 0 0 0 0 0 1 N S N=1 当读或写一个字符后地址指针加一,且光标加一 N=0 当读或写一个字后地址指针减一,且光标减一 S=1 当写一个字符后,整屏显示左移(N=1)或右移(N=0),以得到光标不移动而屏幕移动的效果 S=0 当写一个字符,整屏显示不移动 表2-4 显示开关及光标设置 数据控制

控制器内部没有一个数据地址指针,用户可通过它们来访问内部的全部80字节RAM。

14

南昌航空大学《单片机与接口技术》课程设计

第三章 出租车计价系统的软件设计

3.1 系统工作流程

在本系统中,需要完成对各参量和接口的初始化、出租车起价和单价的初始化等工作。

然后将开始记录距离和时间,并计算总金额、里程和单价送数码管显示出来。程序流程如图所示。

15

南昌航空大学《单片机与接口技术》课程设计

第四章 设计体会与小结

通过这次课程设计,最大的收获就是动手能力和独立解决问题的能力得到了很大的提高,也充分体会到了设计东西的乐趣、学会查阅资料和对别人的东西融会变通的重要性,验证了一句话:实践出真知。

这几个礼拜有关于出租车计价器的课程设计,对单片机的应用有了更深的了解。在课程设计的过程中,还是碰到了许多的问题。比如,对于数码管动态扫描显示和键盘的延时防抖的综合编程不能较好地解决;对于代码的前后顺序及调用掌握得还不够好;对于一些相关的应用软件没能熟练掌握。通过这几天晚上的苦想和反复调试,以及参考网上的程序,最终还是把问题解决了。

在最初的设计中,和同组人增加了单程的双程的控制这一环节,即A地到B地和A地到B地再返回A地的设计,通过设计达到双程比单程略实惠的想法,但是,在检查中,老师说这样的设计是不符合常理的,因为出租车司机不可能在B地一直等待。所以,学会了在设计中要遵循日常生活的细节和常规做法,不刻意制造特殊情况,尽管设计看起来很有道理,但却不符合日程生活的规律,以后的设计一定要遵循生活准则,不胡思乱想,因为那样反而会事倍功半。

第二就是编程顺序,要写一个功能很复杂的程序首先写那些可以很快完成的较简单的内容,比如调单价时的闪烁,那么就可以开始只写调一位单价,然后再加入程序可以调两位单价,再然后加入闪烁功能,这样既可以使编程变得更有条理,而且对心态也是很有帮助的。做完后,学到了许多,心情变得轻松了,但是要学的东西还有很多,所以得继续努力。

凡事都要自己去动下手,去实践一下,遇到困难,永远不要沮丧气馁。在动手的过程中,不仅能增强实践能力,而且在理论上可以有更深的认识;这次设计给了我极大的鼓舞和信心,相信在以后的学习中可以通过不断的摸索和实践来提高其他方面的知识。

16

南昌航空大学《单片机与接口技术》课程设计

参考文献

1. 李群芳、张士军、黄建.《单片微型计算机与接口技术》(第三版).电子工

业出版社,2008.

2. 张鑫、华臻、陈书谦.《单片机原理及应用》[M].电子工业出版社,2005. 3. 丁元杰、吴大伟.《单片微机实题集与实验指导书》[M].机械工业出版社,

2004.

4. 李群芳,肖看.单片机原理接口与应用.北京:清华大学出版社,2005. 5. 张迎新.单片微型计算机原理、应用及接口技术.北京:国防工业出版社,

1999.

6. 高峰.单片微型应用系统设计及实用技术.北京:机械工业出版社,2004.

17

南昌航空大学《单片机与接口技术》课程设计

附 录

源程序

#include

#define uchar unsigned char #define uint unsigned int

uchar qianwei,baiwei,shiwei,gewei; //显示数据各个位置数字的临时变量 char led_seg_code[10]={0x3f,0x06,0x05b,0x04f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //段码表

uint tt,distance,cost,danjia,wait;//定义路程、价钱、等待时间及一些全局的变量等;

uchar dengdai,second,minute,a,b;

//按键的定义,所有按键按下去为低电平 sbit key0=P1^0; //清零

sbit key1=P1^1; //切换路程与等待时间 sbit key2=P1^2; //单程还是往返设置 sbit key3=P1^3; //暂停按钮 sbit key4=P3^6; //晚上单双程键 sbit key5=P2^0; //白天和夜晚键 sbit led1=P1^4; // 指示 sbit led2=P1^5; sbit led3=P1^6; sbit led4=P1^7; sbit led5=P2^1; sbit clk =P3^7; sbit dula=P3^1; sbit wela=P3^2;

bit key1_flag; //由于按键会自动复位,这个为标位 bit key2_flag; bit key3_flag; bit flag;

bit key4_flag; bit key5_flag; //初始化函数 void initial_data() { distance=0;

18

南昌航空大学《单片机与接口技术》课程设计

cost=0; second=0; minute=0; tt=0; key1_flag=1; // 清零 key2_flag=0; //单程or往返,接指示灯; key3_flag=1; //暂停,接指示灯; key4_flag=1; //晚上的计价往返的标志 key5_flag=0; //白天和晚上的标志位 dengdai=0; led1=1; //双程指示 led2=1; //暂停指示 led3=1; //堵车指示 led4=1; // 等待时间切换标志 led5=1; //晚上计价指示 }

void delay(uint x) {

int i,j;

for(i=x;i>0;i--)

for(j=100;j>0;j--); }

//暂停程序

void zanting() { if(key3==0) { delay(5); if(key3==0) { IE0=0X00; //关闭中断 TR0=0; TR1=0; } } else { IE==0X80; TR0=1; TR1=1;

19

定时器 南昌航空大学《单片机与接口技术》课程设计

} // key3_flag=!key3_flag; }

//计算数据处理 void jisuan() { if(key5_flag==0) { if(tt<=60) { distance=tt*50; cost=50; //50角 } danjia=2; //白天单程价格 if(key2_flag) danjia=1; //白天往返价格 if(tt>60) { distance=tt*50; cost=danjia*(distance-3000)/100+50; } } else { if(tt<=60) { distance=tt*50; cost=80; //80角 } danjia=4; if(key4_flag) danjia=3; if(tt>60) { distance=tt*50; cost=danjia*(distance-3000)/100+80; } } wait=minute*100+second; }

20

南昌航空大学《单片机与接口技术》课程设计

//显示的辅助程序,分离一个数的各个数字

void fenli(uint temp) //数据的分离处理 { if(temp>9999) temp=0; qianwei=temp/1000; baiwei=temp/100; shiwei=temp/10; gewei=temp; }

//延时约1ms,数码管显示时使用 void diplay_delay() {

uchar i;

for(i=0;i<240;i++); }

//显示程序; void led_show() { //-----显示路程或者等待时间---- if(key1_flag) fenli(distance); else { fenli(wait); } wela=1; P0=0xfe; wela=0; dula=1; P0=led_seg_code[qianwei]; delay(1); dula=0; wela=1; P0=0xfd; wela=0; dula=1; P0=led_seg_code[baiwei]; //如果是路程,点亮小数点儿 delay(1); dula=0; wela=1;

21

南昌航空大学《单片机与接口技术》课程设计

P0=0xfb; wela=0; dula=1;

if(key1_flag)P0=led_seg_code[shiwei]; else P0=led_seg_code[shiwei]|0x80; delay(1); dula=0; wela=1; P0=0xf7; wela=0; dula=1;

P0=led_seg_code[gewei]; delay(1); dula=0;

//-----显示价格---- fenli(cost); wela=1; P0=0xef; wela=0; dula=1;

P0=led_seg_code[qianwei]; delay(1); dula=0; wela=1; P0=0xdf; wela=0; dula=1;

P0=led_seg_code[baiwei]; delay(1); dula=0; wela=1; P0=0xbf; wela=0; dula=1;

P0=led_seg_code[shiwei]|0x80; delay(1); dula=0; wela=1; P0=0x7f; wela=0; dula=1;

P0=led_seg_code[gewei]; delay(1);

22

南昌航空大学《单片机与接口技术》课程设计

dula=0; }

//键盘的扫描 void keyscan()

{ if(key1==0) // 按键消抖并判断按下去的次数为基数还是偶数 { delay(5); if(key1==0) key1_flag=!key1_flag; } if(key0==0) // 清零 { delay(5); if(key0==0) initial_data(); } /* if(key3==0) // 暂停 { delay(5); if(key3==0) { //key3_flag=!key3_flag; zanting(); } }*/ zanting(); if(key2==0) // 单程还是往返 { delay(5);

if(key2==0) key2_flag=!key2_flag; } if(key4==0) { delay(5); if(key4==0) key4_flag=!key4_flag; } if(key5==0) { delay(5); if(key5==0)

23

南昌航空大学《单片机与接口技术》课程设计

key5_flag=!key5_flag; } //指示等扫描 led1=!key2_flag; // 指示,单程还是往返,灯低电平点亮; 往返亮; led2=key3_flag; // 指示,暂停时亮; led3=flag; // 指示是否等待; led4=key1_flag; //切换指示,显示路程还是等待时间; diplay_delay(); }

//定时器初始化 void initial_time() { TMOD=0x15; TH0=(65535-50)/256; TL0=(65535-50)%6; TH1=(65535-10000)/256; TL1=(65535-10000)%6; IE=0x8a; IT0=1; //外部边沿触发方式 TR0=1; IT1=1; TR1=1; }

// 中断记录脉冲数

//********* 定时器 ********

void time0() interrupt 1 //定时0 计数 { TH0=(65535-50)/256; //50次 TL0=(65535-50)%6; tt++; }

void time1() interrupt 3 { TH1=(65535-20000)/256; TL1=(65535-20000)%6; a++; a++; b++; if(b>=1) {

24

南昌航空大学《单片机与接口技术》课程设计

b=0; clk=~clk; } if(a>=100) { a=0; second++; if(second>=60) { second=0; minute++; } } }

//主程序 void main(void) {

initial_data(); initial_time(); while(1) {

keyscan(); jisuan(); led_show(); } }

//初始化数据 //初始化定时器 //扫描显示 25

本文来源:https://www.bwwdw.com/article/mv6o.html

Top