基于at89c52单片机的抢答器设计内容摘要:
完成硬件初始化,子程序调用和程序间的切换,由于本设计要求抢答器具有开始、复位、抢答、三种方式切换功能,所以主程序除了要进行硬件部分的初始化以外还要进行各个程序之间的调用和切换。 主程序 流程图如图46 所示。 程序: void main huang 0。 red 0。 EA 1。 TMOD 0x11。 T2CON 0x01。 TH0 6553650000 /256。 TL0 6553650000 %256。 TH1 655365000 /256。 TL1 655365000 %256。 TH2 6553650000 /256。 TL2 6553650000 %256。 ET0 1。 TR0 0。 ET1 1。 TR1 1。 ET2 1。 TR2 0。 IT0 1。 EX0 1。 IT1 1。 EX1 1。 aa 0。 bb 0。 shijian 30。 while 1 keyscan。 外部中断模块 抢答器主要外部中断来自于选手们的抢答,当选手抢答时,抢答器同时判断被按下的键号并显示在数码管之上,然后再数码管上显示剩余时间,同时关闭中断,表示抢答结束,此时再有键按下抢答器也不会做出反应。 外部中断流程图如图 43 所示。 程序: void timer_2 interrupt 5 TH2 6553650000 /256。 TL2 6553650000 %256。 P1 0xfe。 temp P1。 temp tempamp。 0xf0。 while temp! 0xf0 delay 5。 temp P1。 temp tempamp。 0xf0。 while temp! 0xf0 temp P1。 TR2 0。 switch temp case 0xee: TR0 0。 TF2 0。 num 1。 bj。 red 1。 huang 0。 break。 case 0xde: TR0 0。 TF2 0。 num 2。 bj。 red 1。 huang 0。 break。 case 0xbe: TR0 0。 TF2 0。 num 3。 bj。 red 1。 huang 0。 break。 case 0x7e: TR0 0。 TF2 0。 num 4。 bj。 red 1。 huang 0。 break。 while temp! 0xf0 temp P1。 temp tempamp。 0xf0。 P1 0xfd。 temp P1。 temp tempamp。 0xf0。 while temp! 0xf0 delay 5。 temp P1。 temp tempamp。 0xf0。 while temp! 0xf0 temp P1。 TR2 0。 switch temp case 0xed: TR0 0。 TF2 0。 num 5。 bj。 red 1。 huang 0。 break。 case 0xdd: TR0 0。 TF2 0。 num 6。 bj。 red 1。 huang 0。 break。 case 0xbd: TR0 0。 TF2 0。 num 7。 bj。 red 1。 huang 0。 break。 case 0x7d: TR0 0。 TF2 0。 num 8。 bj。 red 1。 huang 0。 break。 while temp! 0xf0 temp P1。 temp tempamp。 0xf0。 定时中断模块 由于抢答器中需要显示倒计时来提示选手们抢答时间,在规定时间内作答,所以需要有定时中断模块,当时间小于 6 秒时,抢答器需要提供警告,以及当抢答时间结束时,要关闭外部中断,表示抢答结束,此时再有键按下抢答器也不会做出反应。 流程图如图 43 所示。 程序: EA 1。 ET0 1。 /*开启总中断源 */ EX0 1。 /*启动外部中断 0*/ if shijian 0 TR0 0。 TR2 0。 TF2 0。 报警模块 报警模块主要作用有两个,一是当时间还剩 5 秒时,蜂鸣器放出报警,以此提示选手们抢答时间将要结束;二是当有选手第一时间抢答成功时发出报警声,提示其他选手不必再抢答。 报警程序流程图如图 44 所示。 程序: if bb 1 bb 0。 if shijian 5 speak ~speak。 if shijian 4 speak ~speak。 if shijian 3 speak ~speak。 if shijian 2 speak ~speak。 if shijian 1 speak ~speak。 控制模块 控制模块主要作用是对抢答器的开始和复位功能进行控制,主要由主持人来实现功能。 当开始键被按下时,抢答器开始正常工作;当抢答器停止工作是,可以按下复位键使抢答器回答初始化状态。 控制程序流程图如图 45 所示。 程序: void keyscan if sjia 0 delay 5。 if sjia 0 shijian shijian+1。 if shijian 99 shijian 0。 while !sjia。 if sji 0 delay 5。 if sji 0 shijian shijian1。 if shijian 0 hijian 30。 while !sji。 第 5 章 系统的调试与仿真 Keil 的安装调试 简介 Keil C:是德国 KEIL 公司开发的单片机 C 语言编译器。 其前身是FRANKLIN C51,功能相当强大。 μ Vision2:是一个 for Windows 的、集成化的 C51 开发环境。 集成了文件编辑处理、项目管理、编译链接、软件仿真调试等多种功能,是强大的C51 开发工具。 在后面的讨论中,对 Keil C 和μ Vision2 两个术语不做严格的区分,一般多称呼为 Keil C,包含有μ Vision2 集成开发环境之意。 Keil C 的编译器和链接器包括 C5 A5 L51 和 BL51。 C51 是 C 语言编译器,其功能是将 C 源代码编译生成可重新定位的目标模块。 A51 是汇编语言编译器,其功能是将汇编源代码编译生成可重新定位的目标模块。 L51 是链接 /定位器,其功能是将汇编源代码和 C 源代码生成的可重定位的目标模块文件( .OBJ),与库文件链接、定位生成绝对目标文件。 BL51 也是链接 /定位器,除了具有 L51 所有的功能之外, 1 可以链接定位大于 64KB 的程序; 2 具有代码域及域切换功能; 3 可用于 RTX51 实时多任务操作系统 库管理器与模拟调试器 LIB51 库管理器可以把由汇编器、编译器。基于at89c52单片机的抢答器设计
相关推荐
,0x99, //04 0x92,0x82,0xF8,0x80,0x90, //59 0x86,0xAF,0xFF,0x7F,0xBF,}。 //E,r,空格 ,., /***main 函数 ***/ void main(void) { char i,j,k,c。 char a[8],b[8]。 /***定时 1ms***/ TMOD=0。 TL0=(1000/256)。
晶振电路 图22 电子琴系统原理框图 简易电子琴的proteus总体仿真图 电子琴的proteus总体仿真图见图23。 按下MUSICKEY键,系统自动播放预存在内存中的曲子,按下RESKEY键,系统复位,停止播放。 按下矩阵键盘中的任意键,扬声器发出相应的音符。 图23 简易电子琴的proteus总体仿真图 单片机必须在时钟的驱动下才能工作。 在单片机内部有一个时钟振荡电路
计过程较为简单,与我们此次的课程设计要求不符,因此我们选择方案二进行设计。 计算机 控制技术 课程设计 3 微处理器的选择 在整个单片机控制系统中, CPU 既是运算处 理中心,又是控制中心,是控制系统中最关键的器件。 此系统控制方案简单,数据量也不大,因此选用 AT89C51作为控制系统的主机。 AT89C51 有 40 引脚双列直插( DIP)形式。 其与 80C51 引脚结构基本相同
;对于具有驱 动电路和单片机接口的LCD 显示模块,一般多采用并行接口,对单片机的接口要求较高,占用资源多;另外, AT89C51 单片机本身没有专门的 LCD 驱动接口。 而 LED 数码管作为一种主动显示器件,具有结构简单、亮度高、响应速度快、价格便宜、易于购买等优点,而且有远距离视觉效果,很适合夜间或者远距离操作。 因此在本设计中,我们采用两个 3 位数码管作为显示介质。
1111 1111 1111 1000 FFF8H 1111 1111 0110 1110 FF5EH 1111 1111 0110 1111 FF6FH 55 1111 1100 1001 0000 FC90H 黄河科技学院毕业论文 第 8 页 3 硬件电路及系统原理分析 系统总体设计 系统总体设计图如图 所示。 图 系统总体设计结构图 本系统是以单片机为核心,由数字温度传感器 DS18B温度
亮 35s 6 / 10 1. 软件设计基本思想: 有定时器产生 定时,软件计数得到秒信号 ,设 30s 计数器, 30s 计数器满,绿灯灭、黄灯闪烁 5 次,黄灯灭、红灯亮;同时,另两路口红灯灭、绿灯亮。 总流程图如 下图所示: N N Y N N 开始 南北绿灯亮 东西红灯亮 30s 计时器清 0 30s 时间到。 南北黄灯闪 5 次闪完。 30s 计时器清 0 5 次闪完。 30s 时间到