全球旧事资料 分类
构成。
2硬件设计简述
单片机最小系统就是支持主芯片正常工作的最小电路部分包括主控芯片、复位电路和晶振电路。
主控芯片选取STC12C5410AD芯片因其具有良好的性能及稳定性价格便宜应用方便。
晶振选取110592MHz晶振旁电容选取22pF。
采用按键复位电路电阻分别选取560Ω和10K电容选取10μF。
f键盘接口电路
计算器所需按键有
数字键’1’’2’’3’’4’’5’’6’’7’’8’’9’’0’
功能键’’’‘’’’’’’’C清零’
共计16个按键采用44矩阵键盘键盘的行和列之间都有公共端相连四行和四列的8个公共端分别接P10P17这样扫描P1口就可以完成对矩阵键盘的扫描通过对16个按键进行编码从而得到键盘的口地址对比P1口的扫描结果和各按键的地址我们就可以得到是哪个键按下从而完成键盘扫描的功能。
数码管显示电路
采用4位数码管对计算数据和结果的显示这里选取共阳数码管利用NPN三极管对数码管进行驱动为了节省IO资源采取动态显示的方法来显示计算数据及结果动态扫描。
为了实现数码管的动态显示P2口输出显示值通过P2口的二进制代码送到数码管进行显示。
P32P35用来作为位选端控制哪几位数码管进行显示。比如当P32为高电平时其他位全给0具体的在软件中会有说明。此时就将扫描的数据送给指定数码管显示。
3软件设计简述
键盘扫描子程序设计
要进行数据的计算就必须先进行数据的输入也就必须确定按键输入的数值是什么这就需要对键盘进行扫描从而确定究竟是哪个键按下。
对于键盘的扫描这里采用行列扫描的方法来完成对键盘的扫描。原理就是先确定按键在哪一行接着再确定是哪一列这样就可以知道是哪个按键被按下了。我是将P1口作为按键扫描口的比如开始先给P1口设置为0xf0即P10P17为11110000将它定义为e再给P1口设置为0x0f即P10P17为00001111将它定义为f并且定义tempef好了接下来若按下的是按键sw1则P1口变为11100000e就是0xe0并在非常短的时间内P1口变为00001110则f就是0x0e那么temp就为0xee同理每个按键都会有一个对应的十六进制值
f我把它们列出来进行一一对应就行了下面是扫描按键图。
以下为键盘扫描子程序的程序清单。
ui
tkesca

ui
tcom
P10xf0
eP1
P10x0f
fP1
tempef
whileP10x0f
iftemp0xb7com0
iftemp0x7ecom1
iftemp0xbecom2
iftemp0xdecom3
iftemp0x7dcom4
iftemp0xbdcom5
iftemp0xddcom6
iftemp0x7bcom7
fiftemp0xbbcom8
iftemp0xdbcom9
iftemp0x77com10
iftemp0xd7com11
iftemp0xe7com12
iftemp0xebcom13
iftemp0xedcom14
iftemp0xeecom15
retur
com
数码管显示r
好听全球资料 返回顶部