数显人口计数器。
班级:电子0252班。
姓名:管超。
指导教师:董增寿武晓嘉。
同组人:麻远鸣。
日期:2024年1月1日。
目录。一、设计目的与要求3
二、原理与方案3
三、硬件连接与说明4
四、软件流程图以及说明6
五、程序清单7
六、试验结论10
七、设计体会和改进思想10
八、参考文献10
一、设计目的与要求。
本课题需要设计一个以外部感应装置为信号控制源的计数器及数码显示系统。用于统计人口数量。
要求设计外部感应装置(输入设备),信号处理计数模块(处理设备),显示译码管(输出设备)。从而达到记录人数的目的。
二、原理与方案。
此试验我们选择了以单片机教学用试验箱来完成此试验。
利用at89s51单片机来设计制作一个通过外部感应式计数器并接数码管显示出来所计数字的电路及模块;外部感应器为光感应器。每当有人经过时,感应器就能感应到,同时发送信号到外部计数器外部接口,每输入一个信号计数器就会计数一次,然后通过数码显示管来显示出所记的数字。
选择at89s51单片机设计一个外部信号输入计数器模块,和数码显示管,和一个外部感应装置 ,此感应装置可以是通过人体重力触发的压力传感器或是通过光敏器件触发的光感触发装置。 传感器可用试验箱中的键控来实现。
数码显示管采用6个七段译码管,分别显示个,十,百,千,万,十万位,用以实时观察人数变化。
即把设计人口计数器分为三部分,外部感应器,信号处理计数模块,显示数码管。
设计原理。计数器设计原理。
1. 识别信息用的外部感应器。
2.对外部信号的识别及处理的计数器。
3.计数器芯片对外部信号输入的反应以及计数。
4.计数器对外部信号所计的数值要进行数码管的数码显示,所计的数是十进制数,有六位即个位,十位,百位,千位等六位。将个位,十位,百位等六位显示在数码管上。
5.通过查表,分别显示出个位,十位,百位等六位的数字。
6.译码管显示数字。
三、硬件连接与说明。
外部感应器电路采用光敏电阻的光控开关。
在at89s51单片机上的p3.7管脚接来自外部感应装置的外部信号源,每过来一个信号计数器就加一,然后将所记录的数据显示在数码管上。
硬件电路图如图所示。
人口记数器系统板上硬件连线:
1)把“单片机系统”区域中的p0.0-p0.7与“动态数码显示”区域中的abcdefgh端口用8芯排线连接。
2)把“单片机系统”区域中的p2.0-p2.7与“动态数码显示”区域中的s1s2s3s4s5s6s7s8端口用8芯排线连接。
3)把“单片机系统”区域中的p3.4(t0)端子用导线连接到“频率产生器”区域中的w**e端子上。
4)定时/计数器t0和t1的工作方式设置,由图可知,t0是工作在计数状态下,对输入的频率信号进行计数,但对工作在计数状态下的t0,最大计数值为fosc/24,由于fosc=12mhz,因此:t0的最大计数频率为250khz。对于频率的概念就是在一秒只数脉冲的个数,即为频率值。
所以t1工作在定时状态下,每定时1秒中到,就停止t0的计数,而从t0的计数单元中读取计数的数值,然后进行数据处理。送到数码管显示出来。
5)t1工作在定时状态下,最大定时时间为65ms,达不到1秒的定时,所以采用定时50ms,共定时20次,即可完成1秒的定时功能。
四、软件流程图及说明。
at89s51单片机人口计数器的流程图:
五、程序清单。
计数器的c语言源程序。
#include <>
unsigned char code dispbit=
unsigned char code dispcode=
unsigned char dispbuf[8]=;
unsigned char temp[8];
unsigned char dispcount;
unsigned char t0count;
unsigned char timecount;
bit flag;
unsigned long x;
void main(void)
unsigned char i;
tmod=0x15;
th0=0;
tl0=0;
th1=(65536-4000)/256;
tl1=(65536-4000)%256;
tr1=1;
tr0=1;
et0=1;
et1=1;
ea=1;
while(1)
i=0; while(x/10)
temp[i]=x;
for(i=0;i<6;i++)
timecount=0;
t0count=0;
th0=0;
tl0=0;
tr0=1;
void t0(void) interrupt 1 using 0
t0count++;
void t1(void) interrupt 3 using 0
th1=(65536-4000)/256;
tl1=(65536-4000)%256;
timecount++;
if(timecount==250)
p0=dispcode[dispbuf[dispcount]];
p2=dispbit[dispcount];
dispcount++;
if(dispcount==8)
六、实验结论。
此实验是选用at89s51单片机器件进行,数字显示人口计数器通过外部信号感应装置控制由at89s51单片机制作的计数器,同时将所显示的六位数显示在数码管上。当**于外部感应装置的外部信号输入计数器时,计数器开始计数同时将所记录的数值显示在6位数码管上。此人口计数器是通过人们经过感应装置时(每个人通过时就计数一次)的个数,能统计人口数。
并通过数码管显示出来。
七、设计体会及今后的改进意见。
通过这次的单片机课程实验,让我更加熟练的掌握了课本的知识,提高了独自设计能力,并且增加了实践经验。同时对单片机及其元器件的资料的整理,电路设计,方案选取以及电子线路的组装调试使得我们更熟悉单片机的工作原理。而且在此次课程设计中对汇编语言有进一步提高。
本次实验总共花费了3周的时间完成,虽然困难重重,但是还是有非常多的体会,首先感受到了团队精神的重要性,对于那段和同组同学麻远鸣一起努力的时间现在还是历历在目。
觉得在学习和设计过程中受益良多,在巩固和加深在相关课程中所学的理论知识和实验技能的基础上,提高单片机的设计能力和调试能力,从而为今后的毕业设计和从事电子技术方面的科研、开发工作打下一定的基础,在未来的岗位中能发挥出自身的才能。
但是我深知我们的这点设计水平对于从容应对以后的工作还是不够的,况且我们的设计可能还是有很多的错误,也很不成熟,所以希望老师能斧正,给我们指出设计中的不足。
八、参考文献。
在此实验中参考的是at89s51的一些单片机原理及接口计数和at89s51单片机的参考资料。
外部感应器参考《数字信息处理应用精粹》
单片机原理及接口计数》
8051单片机内部有2个16位可编程定时器/计数器,记为to和t1。他们的工作方式可以通过指令对相应特殊功能寄存器编程来设定,作为定时器或外部事件计数器使用。
定时器/计数器在硬件上由双字节加法计数器th和yl组成,作为计数器使用时,技术脉冲由p3口的p3.4或p3.5即t0或t1引脚输入,外部脉冲的样值为1,下一个周期的采样值为0 ,则计数器加1 。
故识别一个从0到1的跳变需要两个机器周期 ,所以对外部计数脉冲的最高计数频率为fosc/24,同时还要求外部脉冲的高低电平保持事件均大于一个机器周期。
at89s51单片机原理及介绍》
at89s51是一个低功耗,高性能cmos 8位单片机,片内含4k bytes isp(in-system programmable)的可反复擦写1000次的flash只读程序存储器,器件采用atmel公司的高密度、非易失性存储技术制造,兼容标准mcs-51指令系统及80c51引脚结构,芯片内集成了通用8位**处理器和isp flash存储单元,功能强大的微型计算机的at89s51可为许多嵌入式控制应用系统提供高性价比的解决方案。
at89s51具有如下特点:40个引脚,4k bytes flash片内程序存储器,128 bytes的随机存取数据存储器(ram),32个外部双向输入/输出(i/o)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(wdt)电路,片内时钟振荡器。
单片机课程设计
可变程序控制器是集微机技术 自动化技术 通讯技术于一体的通用工业控制装置。它可靠性强 性能 比高 使用方便,已在工业控制的各个领域里得到了极为广泛的应用,成为实现工业自动化的一种强有力的工具 1 plc的定义有许多种。国际电工委员会 iec 对plc的定义是 可编程控制器是一种数字运算操作的电子系统...
单片机课程设计
目录。内容提要2 关键词2引言3 一 硬件电路设计3 一 电路板原理3 二 电路元器件3 二 软件设计3 一 秒钟设计方案3 二 时钟设计方案4 结语7单片机时钟设计。内容摘要 一 在实验板上用动态扫描显示00 59秒钟,具体要求如下 一 6m晶振 二 l9 l10显示00 59十进制数并循环,间隔...
单片机课程设计
1 选题背景。1.1 家庭智能防盗报警系统设计的背景及目的。随着经济的发展,人们对防盗 防劫 防火保安设备的需求量大大增加。针对偷盗 抢劫 火灾 煤气泄漏等事故进行检测和报警的系统,其需求也越来越高。家居智能是以家为平台,兼备建筑 自动化,智能化于一体的高效 舒适 安全 便利的家居环境。自动化的家居...