バッテリを充電する充電部と、前記充電部による前記バッテリの充電を制御する制御部であって、第1の充電モードの場合に前記バッテリの容量が第1の容量になったら前記バッテリの充電を停止させ、第2の充電モードの場合に前記バッテリの容量が前記第1の容量より低い第2の容量になったら前記バッテリの充電を停止させる、制御部と、前記バッテリの容量の履歴に応じて、前記第1の充電モードと前記第2の充電モードとの間の切り替えに関わる処理を実行する切り替え手段と、を具備する充電装置。前記切り替え手段は、前記バッテリの容量が前記第1の容量と前記第2の容量との間の第3の容量を示す期間が設定期間経過した場合に、前記第1の充電モードから前記第2の充電モードへの切り替えに関わる処理を実行する、請求項1に記載の充電装置。前記第1の充電モードから前記第2の充電モードへの切り替えに関わる処理は、前記第1の充電モードから前記第2の充電モードへの切り替えを示唆するためのポップアップウィンドウを表示することである、請求項1に記載の充電装置。前記切り替え手段は、前記ポップアップウィンドウが操作された場合に、前記第1の充電モードから第2の充電モードに切り替えるための設定ウィンドウを表示する、請求項3に記載の充電装置。前記バッテリの容量が前記第2の容量より低い第4の容量を示す回数が設定回数あった場合に、前記切り替え手段は、前記第2の充電モードから前記第1の充電モードへの切り替えに関わる処理を実行する、請求項1に記載の充電装置。前記第2の充電モードから前記第1の充電モードへの切り替えに関わる処理は、前記第2の充電モードから前記第1の充電モードに切り替えることである、請求項5に記載の充電装置。前記切り替え手段は、前記第2の充電モードから前記第1の充電モードに切り替えた場合に、前記第2の充電モードから前記第1の充電モードに切り替えたことを通知するポップアップウィンドウを表示画面に表示する請求項6に記載の充電装置。前記切り替え手段は、前記ポップアップウィンドウが操作された場合に前記第1の充電モードから前記第2の充電モードに切り替えるための設定ウィンドウを表示する旨の通知を前記ポップアップウィンドウ内に表示する、請求項7に記載の充電装置。前記バッテリの容量は、前記バッテリの現在の容量と前記バッテリの満充電量との商を百分率で表した値である、請求項1に記載の充電装置。第1の充電モードの場合に、バッテリの容量が第1の容量になるまで前記バッテリを充電し、第2の充電モードの場合に、前記バッテリの容量が前記第1の容量より低い、第2の容量になるまで前記バッテリを充電する、充電方法であって、前記バッテリの容量の履歴に応じて、前記第1の充電モードと前記第2の充電モードとの間の切り替えに関わる処理を実行する、充電方法。第1の充電モードの場合に、バッテリの容量が第1の容量になるまで前記バッテリを充電し、第2の充電モードの場合に、前記バッテリの容量が前記第1の容量より低い、第2の容量になるまで前記バッテリを充電する、コンピュータによって実行されるプログラムであって、前記バッテリの容量の履歴に応じて、前記第1の充電モードと前記第2の充電モードとの間の切り替えに関わる処理を実行する手順、を前記コンピュータに実行させることを特徴とするプログラム。100充電モードと80充電モードとの間の切り替えのために、ユーザ自身がアプリを起動しなければならない。ユーザが80充電モードを備えている事を知らず、ACアダプタを接続したまま、満充電に近い状態を長期間保持される場合、バッテリの充電可能容量が低下してしまう。また、バッテリで利用することが多いユーザが、バッテリの長寿命化をしたいので80充電モードに設定にした場合、20分余計に利用できない。本発明の目的は、バッテリの利用状況に応じてバッテリの充電を停止する残容量を切り替えることが可能な充電装置および充電方法を提供することにある。実施形態によれば、充電装置は、充電部と、制御部と、切り替え手段とを具備する。充電部は、バッテリを充電する。制御部は、前記充電部による前記バッテリの充電の停止を制御する。制御部は、第1の充電モードの場合に前記バッテリの容量が第1の容量になったら前記バッテリの充電を停止させ、第2の充電モードの場合に前記バッテリの容量が前記第1の容量より低い第2の容量になったら前記バッテリの充電を停止させる。切り替え手段は、前記バッテリの容量の履歴に応じて、前記第1の充電モードと前記第2の充電モードとの間の切り替えに関わる処理を実行する。以下、図面を参照して本発明の実施形態を説明する。まず、図1を参照して、本発明の一実施形態に係る充電装置の構成について説明する。この充電装置は、例えば、バッテリによって駆動可能なノートブック型の携帯型パーソナルコンピュータ10として実現されている。図1は、ディスプレイユニットを開いた状態におけるコンピュータ10を正面側から見た斜視図である。本コンピュータ10は、コンピュータ本体11と、ディスプレイユニット12とから構成される。ディスプレイユニット12には、LCD16LiquidCrystalDisplayから構成される表示装置が組み込まれている。ディスプレイユニット12は、コンピュータ本体11に支持され、そのコンピュータ本体11に対してコンピュータ本体11の上面が露出される開放位置とコンピュータ本体11の上面がディスプレイユニット12によって覆れる閉塞位置との間を回動自由に取り付けられている。コンピュータ本体11は薄い箱形の筐体を有しており、その上面にはキーボード13、本コンピュータ10をパワーオン/オフするための電源スイッチ14およびタッチパッド15が配置されている。また、コンピュータ本体11には、電源コネクタが設けられている。電源コネクタ20はコンピュータ本体11の側面、例えば左側面に設けられている。この電源コネクタには、外部電源装置が取り外し自在に接続される。外部電源装置としては、ACアダプタ122を用いることが出来る。ACアダプタ122は商用電源AC電力をDC電力に変換する電源装置である。電源コネクタは、ACアダプタのような外部電源装置から導出される電源プラグが取り外し自在に接続可能なジャックから構成されている。さらに、コンピュータ本体11内にはバッテリ17が設けられている。バッテリ17は例えばコンピュータ本体11の後端部に取り外し自在に装着される。本コンピュータ10は外部電源装置からの電力またはバッテリ17からの電力によって駆動される。本コンピュータ10の電源コネクタに外部電源装置が接続されているならば、本コンピュータ10は外部電源装置からの電力によって駆動される。また、外部電源装置からの電力は、バッテリ17を充電するためにも用いられる。バッテリ17の充電は、本コンピュータ10が電源オンされている期間中のみならず、本コンピュータ10が電源オフされている期間中にも実行される。本コンピュータ10の電源コネクタに外部電源装置が接続されていない期間中は、本コンピュータ10はバッテリ17からの電力によって駆動される。図2は、本コンピュータ10のシステム構成を示している。本コンピュータ10は、CPU111、ノースブリッジ112、主メモリ113、グラフィクスコントローラ114、サウスブリッジ115、ハードディスクドライブHDD116、光ディスクドライブODD117、BIOS-ROM118、エンベデッドコントローラEC119、電源コントローラPSC120、電源回路121、ACアダプタ122等を備えている。ACアダプタ122は上述の外部電源装置として使用される。CPU111は、本コンピュータ10の各コンポーネントの動作を制御するプロセッサである。このCPU111は、HDD116から主メモリ113にロードされる各種ソフトウェア、例えば、オペレーティングシステムOSおよび各種アプリケーションプログラムを実行する。また、CPU111は、不揮発性メモリであるBIOS-ROM118に格納されたBIOS基本入出力システム:BasicInputOutputSystemも実行する。BIOSはハードウェア制御のためのシステムプログラムである。ノースブリッジ112は、CPU111のローカルバスとサウスブリッジ115との間を接続するブリッジデバイスである。また、ノースブリッジ112はグラフィクスコントローラ114との通信を実行する機能も有している。さらに、ノースブリッジ112には、主メモリ113を制御するメモリコントローラも内蔵されている。グラフィクスコントローラ114は、本コンピュータ10のディスプレイモニタとして使用されるLCD16を制御する表示コントローラである。サウスブリッジ115はPCIバス1に接続されており、PCIバス1上の各デバイスとの通信を実行する。また、サウスブリッジ115は、ハードディスクドライブHDD116および光ディスクドライブODD117を制御するためのIDEIntegratedDriveElectronicsコントローラやSerialATAコントローラを内蔵している。EC119、電源コントローラPSC120、電源回路121、およびバッテリ17は、I2CバスまたはLPCLowpincountバスのようなシリアルバス2を介して相互接続されている。エンベデッドコントローラEC119は本コンピュータ10の電力管理を実行するための電源管理コントローラであり、例えば、キーボードKB13およびタッチパッド15などを制御するキーボードコントローラを内蔵した1チップマイクロコンピュータとして実現されている。EC119は、ユーザによる電源スイッチ14の操作に応じて本コンピュータ10をパワーオン/パワーオフする機能を有している。本コンピュータ10のパワーオン/パワーオフの制御は、EC119と電源コントローラPSC120との協働動作によって実行される。EC119から送信されるON信号を受けると、電源コントローラPSC120は電源回路121を制御して本コンピュータ10をパワーオンする。また、EC119から送信されるOFF信号を受けると、電源コントローラPSC120は電源回路121を制御して本コンピュータ10をパワーオフする。EC119、電源コントローラPSC120、および電源回路121は、本コンピュータ10がパワーオフされている期間中も、バッテリ17またはACアダプタ122からの電力によって動作する。電源回路121は、コンピュータ本体11に装着されたバッテリ17からの電力、またはコンピュータ本体11に外部電源として接続されるACアダプタ122からの電力を用いて、各コンポーネントへの動作電源を生成する。コンピュータ本体11にACアダプタ122が接続されている場合には、電源回路121は、ACアダプタ122からの電力を用いて各コンポーネントへの動作電源を生成すると共に、充電回路131をオンすることによってバッテリ17を充電する。バッテリ17はダイオードD1を介して電源回路201の電源入力端子に接続され、またACアダプタ122もダイオードD2を介して電源回路201の電源入力端子に接続される。充電回路131は、例えば、ダイオードD2のアノードとダイオードD1のアノードとの間に接続されている。充電回路131は、電源回路121の制御の下、ACアダプタ122からの電力を用いてバッテリ17を充電する。充電回路131は、例えば、電源回路121からの制御信号によってオン/オフされるスイッチ回路等を含んでいる。コンピュータ本体11にACアダプタ122が接続されている場合には、バッテリ17の容量が所定の基準容量に達するまで、バッテリ17の充電が行われる。電源回路121は、DC/DCコンバータ201と充電コントローラ202とを備えている。DC/DCコンバータ201は、電源入力端子に入力される入力直流電圧を目標直流電圧に変換することによって、目標直流電圧の電力VCCを動作電源として生成する。充電コントローラ202は充電回路131を制御する。ACアダプタ122が取り外されると、バッテリ17の充電はその時点で終了される。バッテリ17は複数の2次電池、バッテリコントローラ171から構成されている。バッテリコントローラ171は、2次電池の温度特性、サイクル特性を示すデータを有し、電池パックの環境、履歴に応じて、残容量[]を1単位で演算する。残容量[]は、現容量と充電可能容量との割合を百分率で表した値である。バッテリコントローラ171は、充電コントローラ202やオペレーティングシステムからの要求に応じて残容量を送信する。なお、バッテリの残容量は、バッテリの容量と同義である。バッテリを充電する場合、100充電モードと80充電モードとの二つの充電モードがある。100充電モードでは、バッテリの残容量が100にったら充電を停止する。80充電モードは、バッテリの残容量が80にったら充電を停止する。本コンピュータは、100充電モードから80充電モードへの変更をユーザに促す、または80充電モードから100充電モードに自動的に変更する機能を有する。図3は、100充電モードから80充電モードへの変更を促す、または80充電モードから100充電モードに自動的に変更するための構成を示すブロック図である。オペレーティングシステム300、およびバッテリマネージャ310は、メインメモリにロードされ、CPUによって実行されるプログラムである。バッテリマネージャ310は、充電モード切替モジュール3101、100充電モード用判定モジュール3102、および80充電モード用判定モジュール3103等を備えている。バッテリコントローラ171は、充電可能容量演算部1711、現容量演算部1712、残容量演算部1713等を備えている。バッテリコントローラ171は、バッテリ17内の2次電池の充電可能容量[mAh]を電池パックの環境、履歴に応じて演算する。現容量演算部1712は、2次電池の流入電流及び流出電流を測定し、それぞれを積分することによって現容量[mAh]を演算する。残容量演算部1713は、充電可能容量演算部1711によって演算された充電可能容量[mAh]と、現容量演算部1712によって演算された現容量[mAh]との割合を百分率で表した値を1単位で演算する。オペレーティングシステム300は、定期的にバッテリコントローラ171に残充電量[]を問い合わせる。バッテリコントローラ171は、オペレーティングシステムからの問い合わせに応じて残容量[]を演算する。オペレーティングシステム300は、残容量[]が変化した場合に、バッテリマネージャ310に通知する。充電モード切替モジュール3101は、100充電モードと80充電モードとの間を切り替える処理を行う。充電モード切替モジュール3101は、図4に示す設定ウィンドウ401をLCD16の表示画面上に表示する。そして、充電モード切替モジュール3101は、ユーザによる設定ウィンドウ401の操作に応じて、100充電モードと80充電モードとの間を切り替える。充電モード切替モジュール3101は、充電モードが切り替えられた場合に、充電コントローラ202内のモードフラグ2021に記録されている値を充電モードに応じた値に書き換える。充電コントローラ202は、モードフラグ2021内に記録されている価に応じた充電モードでバッテリの充電を行う。100充電モード用判定モジュール3102は、バッテリの残充電量[]、および充電モードが100充電モードの場合に基準日時データ3111が示す基準日時に基づいて、100充電モードから80充電モードへの切替を促すかを判定する。基準日時データ3111には、80充電モードから100充電モードに切り替えられた後に残容量[]が90以上になったと初めて判定された日時、またはコンピュータの出荷後に起動されてから残容量[]が90以上になったと初めて判定された日時を示すデータが記録される。出荷時に充電モードは100充電モードに設定されているので、コンピュータの出荷後に起動されてから残容量[]が90以上になったと初めて判定された日時を示すデータが記録される。100充電モード用判定モジュール3102は、残容量[]が90以上の状態が2週間以上継続していると判定した場合に、100充電モードから80充電モードへの切替を促す。100充電モードから80充電モードへの切替を促すために、100充電モード用判定モジュール3102は、図5に示すポップアップウィンドウ501をLCD16の表示画面上に表示する。図5に示すポップアップウィンドウ501内には、ACアダプタを差し手のご使用が多いようです。バッテリの寿命を長く保つには、80充電モードの設定をおすすめします。詳しくはここをクリックしてください。と記載されている。ポップアップウィンドウ501がクリック操作された場合、100充電モード用判定モジュール3102は、図4に示す設定ウィンドウ401をLCD16の表示画面上に表示する。80充電モード用判定モジュール3103は、残容量[]が21から20に変化した場合に、変化した日時を検出日時データ3112内に記録する。検出日時データ3112内には三つの検出日時が記録される。80充電モード用判定モジュール3103は、前々回検出日時と今回検出日時との差が1週間以内の場合に、80充電モードから100充電モードに自動的に切り替える。そして、80充電モード用判定モジュール3103は、自動的に切り替えた旨をユーザに通知する。自動的に切り替えた旨をユーザに通知するために、80充電モード用判定モジュール3103は、図6に示すポップアップウィンドウ601をLCD16の表示画面上に表示する。ポップアップウィンドウ601内には、バッテリ駆動でのご使用が多いようです。80充電モードから100充電モードへ切り替えました。設定を戻すには、ここをクリックしてください。と記載されている。ポップアップウィンドウ501がクリック操作された場合、80充電モード用判定モジュール3103は、図4に示す設定ウィンドウ401をLCD16の表示画面上に表示する。次に、100充電モード用判定モジュール3102および80充電モード用判定モジュール3103によって実行される処理をそれぞれ説明する。最初に、100充電モード時に100充電モード用判定モジュール3102よって行われる処理を説明する。100充電モード用判定モジュール3102は、80充電モードから100充電モードに切り替えられた後、またはコンピュータの出荷後に起動された後、オペレーティングシステム300から残容量[]が通知される度に、次に説明する処理を実行する。100充電モード用判定モジュール3102によって行われる処理を図7のフローチャートを参照して説明する。先ず、100充電モード用判定モジュール3102は、オペレーティングシステム300から残容量[]が通知されるたびに、通知された残容量[]が90以上であるかを判定するステップ701。90以上ではないと判定した場合、100充電モード用判定モジュール3102は、何も処理を行わない。90以上であると判定した場合、100充電モード用判定モジュール3102は、基準日時データ3111内に判定日時を示すデータを記録するステップ702。基準日時データ3111内に判定日時を示すデータを記録した後、100充電モード用判定モジュール3102は、オペレーティングシステム300から残容量[]が通知される度に、次に説明する処理を実行する。基準日時データ3111内に判定日時を示すデータを記録した後、オペレーティングシステム300から残容量[]が通知される度に、100充電モード用判定モジュール3102によって行われる処理を図8のフローチャートを参照して説明する。100充電モード用判定モジュール3102は、現在の充電モードが100充電モードであるかを判定するステップ801。100充電モードではないと判定した場合ステップ801のNo、100充電モード用判定モジュール3102は、基準日時データ3111内に記録されているデータをクリアするステップ805。100充電モードであると判定した場合ステップ801のYes、通知された残容量[]が90以上であるかを判定するステップ802。90以上ではないと判定した場合ステップ802のNo、100充電モード用判定モジュール3102は、基準日時データ3111内に記録されているデータをクリアするステップ805。90以上であると判定した場合ステップ802のYes、基準日時データ3111が示す日時と、オペレーティングシステム300から通知された日時との差を演算する。そして、100充電モード用判定モジュール3102は、差が20日以上であるかを判定するステップ803。20日以上ではないと判定した場合ステップ803のNo、100充電モード用判定モジュール3102は、処理を終了する。20日以上であると判定した場合ステップ803のYes、100充電モード用判定モジュール3102は、図5に示すポップアップウィンドウ501をLCD16の表示画面上に表示する。以上の処理で、残容量[]が90以上の期間が20日以上の場合に、100充電モードから80充電モードに切り替えをユーザに示唆するためのポップアップウィンドウを表示することが可能である。なお、残容量[]が90以上の期間が20日以上の場合に、自動的に100充電モードから80充電モードに切り替えても良い。次に、80充電モード時にオペレーティングシステム300から残容量[]が通知される度に、80充電モード用判定モジュール3103よって行われる処理を説明する。80充電モード用判定モジュール3103よって行われる処理について図9のフローチャートを参照して説明する。80充電モード用判定モジュール3103は、現在の充電モードが80充電モードであるかを判定するステップ901。80充電モードではないと判定した場合ステップステップ901のNo、検出日時データ3112内のデータをクリアするステップ907。80充電モードであると判定した場合ステップ901のYes、通知された残容量[]が21から20に変化したかを判定するステップ902。21から20に変化していないと判定した場合ステップ902のNo、80充電モード用判定モジュール3103は、処理を終了する。20に変化したと判定した場合ステップ902のYes、80充電モード用判定モジュール3103は、ステップ902の判定日時を示すデータを検出日時データ3112内に今回検出日時として記録するステップ903。80充電モード用判定モジュール3103は、今回検出日時と前々回検出日時との差期間を演算するステップ903。80充電モード用判定モジュール3103は、演算された期間が1週間以内であるかを判定する。1週間以内ではないと判定した場合ステップ904のNo、80充電モード用判定モジュール3103は、処理を終了する。1週間以内であると判定した場合ステップ904のYes、80充電モード用判定モジュール3103は、充電コントローラ202内のモードフラグ2021を100充電モードを示す値に書き換えるステップ905。80充電モード用判定モジュール3103は、図6に示すポップアップウィンドウ601を表示する。以上の処理で、1週間以内に残容量[]が21から20に変化した回数が3回を示す場合に、80充電モードから100充電モードに切り替えに自動的に切り替えることが可能である。なお、1週間以内に残容量[]が21から20に変化した回数が3回を示す場合に、100充電モードから80充電モードへの切り替えをユーザに示唆するためのポップアップウィンドウを表示することが可能である。なお、上記実施形態では、オペレーティングシステム300からバッテリコントローラ171に残容量[]を問い合わせ、バッテリコントローラ171が残容量[]をオペレーティングシステム300に通知した。しかし、バッテリコントローラ171が残容量[]を監視し、残容量[]が変化したらバッテリコントローラ171からオペレーティングシステム300に通知するようにしても良い。また、なお、上記実施形態では、オペレーティングシステム300からバッテリコントローラ171に残容量[]を問い合わせた。しかし、オペレーティングシステム300が、バッテリコントローラ171に充電可能容量および現容量を問い合わせ、バッテリコントローラ171から通知された充電可能容量および現容量に基づいて残容量[]を演算しても良い。なお、上記実施形態では、バッテリの残容量に基づいて、バッテリの充電開始および充電停止を制御しているが、残容量ではなくバッテリの電圧に基づいてバッテリの充電開始および充電停止を制御しても良い。また、残容量は、バッテリに充電された容量とバッテリの電圧との両方から求めてもよい。なお、本実施形態のバッテリマネージャ310によって行われる処理はコンピュータプログラムによって実現されているので、このコンピュータプログラムをコンピュータ読み取り可能な記憶媒体を通じて通常のコンピュータにインストールするだけで、本実施形態と同様の効果を容易に実現することができる。また、このコンピュータプログラムは、パーソナルコンピュータのみならず、プロセッサを内蔵した電子機器上で実行することができる。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。